From e337be1ec250d2db02b6d21de5434246c2f28288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sat, 29 Mar 2025 18:25:15 +0100 Subject: [PATCH 01/12] Cache instantiated object alias type arguments on mapper --- src/compiler/checker.ts | 58 +- src/compiler/types.ts | 10 +- .../checkJsxChildrenCanBeTupleType.types | 2 +- .../checkJsxChildrenProperty16.types | 2 +- ...onSFXContextualTypeInferredCorrectly.types | 2 +- ...onRegularTypeFetchingSpeedReasonable.types | 2 +- ...rianceBigArrayConstraintsPerformance.types | 2 +- .../contextuallyTypedJsxChildren.types | 2 +- .../reference/controlFlowOptionalChain3.types | 2 +- .../divideAndConquerIntersections.types | 2 +- ...tedIndexTypesNoConstraintElaboration.types | 2 +- .../reference/ignoredJsxAttributes.types | 2 +- .../intraExpressionInferencesJsx.types | 2 +- .../jsDeclarationsReactComponents.types | 2 +- .../jsxCallElaborationCheckNoCrash1.types | 2 +- ...xChildrenIndividualErrorElaborations.types | 2 +- ...clarationsWithEsModuleInteropNoCrash.types | 2 +- .../baselines/reference/jsxElementType.types | 2 +- .../reference/jsxElementTypeLiteral.types | 2 +- ...pressionNotCountedAsChild(jsx=react).types | 2 +- ...sionNotCountedAsChild(jsx=react-jsx).types | 2 +- ...nNotCountedAsChild(jsx=react-jsxdev).types | 2 +- .../jsxExcessPropsAndAssignability.types | 2 +- ...WithSpreadingResultOfGenericFunction.types | 2 +- ...sxInferenceProducesLiteralAsExpected.types | 1 - ...sCjsTransformChildren(jsx=react-jsx).types | 2 +- ...sTransformChildren(jsx=react-jsxdev).types | 2 +- ...TransformCustomImport(jsx=react-jsx).types | 2 +- ...nsformCustomImport(jsx=react-jsxdev).types | 2 +- ...ormCustomImportPragma(jsx=react-jsx).types | 2 +- ...CustomImportPragma(jsx=react-jsxdev).types | 2 +- ...xsCjsTransformKeyProp(jsx=react-jsx).types | 2 +- ...jsTransformKeyProp(jsx=react-jsxdev).types | 2 +- ...rmKeyPropCustomImport(jsx=react-jsx).types | 2 +- ...eyPropCustomImport(jsx=react-jsxdev).types | 2 +- ...ropCustomImportPragma(jsx=react-jsx).types | 2 +- ...CustomImportPragma(jsx=react-jsxdev).types | 2 +- ...estedSelfClosingChild(jsx=react-jsx).types | 2 +- ...edSelfClosingChild(jsx=react-jsxdev).types | 2 +- ...sformSubstitutesNames(jsx=react-jsx).types | 2 +- ...rmSubstitutesNames(jsx=react-jsxdev).types | 2 +- ...stitutesNamesFragment(jsx=react-jsx).types | 2 +- ...tutesNamesFragment(jsx=react-jsxdev).types | 2 +- .../reference/jsxPartialSpread.types | 2 +- .../longObjectInstantiationChain1.errors.txt | 64 ++ .../longObjectInstantiationChain1.symbols | 325 +++++++ .../longObjectInstantiationChain1.types | 822 ++++++++++++++++ .../longObjectInstantiationChain2.errors.txt | 73 ++ .../longObjectInstantiationChain2.symbols | 377 ++++++++ .../longObjectInstantiationChain2.types | 912 ++++++++++++++++++ tests/baselines/reference/multiline.types | 1 - .../reference/reactHOCSpreadprops.types | 2 +- .../reactReadonlyHOCAssignabilityReal.types | 2 +- ...dicateIsInstantiateInContextOfTarget.types | 2 +- ...omponentsInstantiaionLimitNotReached.types | 2 +- .../reference/tsxInvokeComponentType.types | 2 +- .../tsxNotUsingApparentTypeOfSFC.types | 2 +- ...tsxResolveExternalModuleExportsTypes.types | 1 - .../tsxStatelessComponentDefaultProps.types | 2 +- .../typeAliasInstantiationNoLeak1.symbols | 22 + .../typeAliasInstantiationNoLeak1.types | 19 + ...typeInferenceWithExcessPropertiesJsx.types | 2 +- .../compiler/longObjectInstantiationChain1.ts | 57 ++ .../compiler/longObjectInstantiationChain2.ts | 60 ++ .../compiler/typeAliasInstantiationNoLeak1.ts | 8 + 65 files changed, 2828 insertions(+), 80 deletions(-) create mode 100644 tests/baselines/reference/longObjectInstantiationChain1.errors.txt create mode 100644 tests/baselines/reference/longObjectInstantiationChain1.symbols create mode 100644 tests/baselines/reference/longObjectInstantiationChain1.types create mode 100644 tests/baselines/reference/longObjectInstantiationChain2.errors.txt create mode 100644 tests/baselines/reference/longObjectInstantiationChain2.symbols create mode 100644 tests/baselines/reference/longObjectInstantiationChain2.types create mode 100644 tests/baselines/reference/typeAliasInstantiationNoLeak1.symbols create mode 100644 tests/baselines/reference/typeAliasInstantiationNoLeak1.types create mode 100644 tests/cases/compiler/longObjectInstantiationChain1.ts create mode 100644 tests/cases/compiler/longObjectInstantiationChain2.ts create mode 100644 tests/cases/compiler/typeAliasInstantiationNoLeak1.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 67a733cbbb811..fa9436267d10a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -19168,7 +19168,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // We don't want inferences from constraints as they may cause us to eagerly resolve the // conditional type instead of deferring resolution. Also, we always want strict function // types rules (i.e. proper contravariance) for inferences. - inferTypes(context.inferences, checkType, extendsType, InferencePriority.NoConstraints | InferencePriority.AlwaysStrict); + inferTypes(context, context.inferences, checkType, extendsType, InferencePriority.NoConstraints | InferencePriority.AlwaysStrict); } // It's possible for 'infer T' type paramteters to be given uninstantiated constraints when the // those type parameters are used in type references (see getInferredTypeParameterConstraint). For @@ -20105,7 +20105,16 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const combinedMapper = combineTypeMappers(type.mapper, mapper); const typeArguments = map(typeParameters, t => getMappedType(t, combinedMapper)); const newAliasSymbol = aliasSymbol || type.aliasSymbol; - const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper); + const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateList(type.aliasTypeArguments, mapper, (t, m) => { + m.instantiations ??= new Map(); + const cached = m.instantiations.get(t.id); + if (cached) { + return cached; + } + const result = instantiateType(t, m); + m.instantiations.set(t.id, result); + return result; + }); const id = (type.objectFlags & ObjectFlags.SingleSignatureType ? "S" : "") + getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments); if (!target.instantiations) { target.instantiations = new Map(); @@ -23265,7 +23274,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { if (sourceParams) { // If the source has infer type parameters, we instantiate them in the context of the target const ctx = createInferenceContext(sourceParams, /*signature*/ undefined, InferenceFlags.None, isRelatedToWorker); - inferTypes(ctx.inferences, (target as ConditionalType).extendsType, sourceExtends, InferencePriority.NoConstraints | InferencePriority.AlwaysStrict); + inferTypes(ctx, ctx.inferences, (target as ConditionalType).extendsType, sourceExtends, InferencePriority.NoConstraints | InferencePriority.AlwaysStrict); sourceExtends = instantiateType(sourceExtends, ctx.mapper); mapper = ctx.mapper; } @@ -25559,7 +25568,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // Before we commit to a particular inference (and thus lock out any further inferences), // we infer from any intra-expression inference sites we have collected. inferFromIntraExpressionSites(context); - clearCachedInferences(context.inferences); + clearCachedInferences(context, context.inferences); inference.isFixed = true; } return getInferredType(context, i); @@ -25576,7 +25585,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { ); } - function clearCachedInferences(inferences: InferenceInfo[]) { + function clearCachedInferences(context: InferenceContext | undefined, inferences: InferenceInfo[]) { + if (context) { + context.nonFixingMapper.instantiations = undefined; + } for (const inference of inferences) { if (!inference.isFixed) { inference.inferredType = undefined; @@ -25608,7 +25620,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { getContextualTypeForObjectLiteralMethod(node as MethodDeclaration, ContextFlags.NoConstraints) : getContextualType(node, ContextFlags.NoConstraints); if (contextualType) { - inferTypes(context.inferences, type, contextualType); + inferTypes(context, context.inferences, type, contextualType); } } context.intraExpressionInferenceSites = undefined; @@ -25789,7 +25801,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const typeParameter = getIndexedAccessType(constraint.type, getTypeParameterFromMappedType(target)) as TypeParameter; const templateType = getTemplateTypeFromMappedType(target); const inference = createInferenceInfo(typeParameter); - inferTypes([inference], sourceType, templateType); + inferTypes(/*context*/ undefined, [inference], sourceType, templateType); return getTypeFromInference(inference) || unknownType; } @@ -26052,7 +26064,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { return isTupleType(type) && getTupleElementType(type, 0) === getIndexedAccessType(typeParameter, getNumberLiteralType(0)) && !getTypeOfPropertyOfType(type, "1" as __String); } - function inferTypes(inferences: InferenceInfo[], originalSource: Type, originalTarget: Type, priority = InferencePriority.None, contravariant = false) { + function inferTypes(context: InferenceContext | undefined, inferences: InferenceInfo[], originalSource: Type, originalTarget: Type, priority = InferencePriority.None, contravariant = false) { let bivariant = false; let propagationType: Type; let inferencePriority: number = InferencePriority.MaxValue; @@ -26190,17 +26202,17 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { if (contravariant && !bivariant) { if (!contains(inference.contraCandidates, candidate)) { inference.contraCandidates = append(inference.contraCandidates, candidate); - clearCachedInferences(inferences); + clearCachedInferences(context, inferences); } } else if (!contains(inference.candidates, candidate)) { inference.candidates = append(inference.candidates, candidate); - clearCachedInferences(inferences); + clearCachedInferences(context, inferences); } } if (!(priority & InferencePriority.ReturnType) && target.flags & TypeFlags.TypeParameter && inference.topLevel && !isTypeParameterAtTopLevel(originalTarget, target as TypeParameter)) { inference.topLevel = false; - clearCachedInferences(inferences); + clearCachedInferences(context, inferences); } } inferencePriority = Math.min(inferencePriority, priority); @@ -35045,11 +35057,11 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const sourceSignature = mapper ? instantiateSignature(contextualSignature, mapper) : contextualSignature; applyToParameterTypes(sourceSignature, signature, (source, target) => { // Type parameters from outer context referenced by source type are fixed by instantiation of the source type - inferTypes(context.inferences, source, target); + inferTypes(context, context.inferences, source, target); }); if (!inferenceContext) { applyToReturnTypes(contextualSignature, signature, (source, target) => { - inferTypes(context.inferences, source, target, InferencePriority.ReturnType); + inferTypes(context, context.inferences, source, target, InferencePriority.ReturnType); }); } return getSignatureInstantiation(signature, getInferredTypes(context), isInJSFile(contextualSignature.declaration)); @@ -35058,7 +35070,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { function inferJsxTypeArguments(node: JsxOpeningLikeElement, signature: Signature, checkMode: CheckMode, context: InferenceContext): Type[] { const paramType = getEffectiveFirstArgumentForJsxSignature(signature, node); const checkAttrType = checkExpressionWithContextualType(node.attributes, paramType, context, checkMode); - inferTypes(context.inferences, checkAttrType, paramType); + inferTypes(context, context.inferences, checkAttrType, paramType); return getInferredTypes(context); } @@ -35118,7 +35130,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { getOrCreateTypeFromSignature(getSignatureInstantiationWithoutFillingInTypeArguments(contextualSignature, contextualSignature.typeParameters)) : instantiatedType; // Inferences made from return types have lower priority than all other inferences. - inferTypes(context.inferences, inferenceSourceType, inferenceTargetType, InferencePriority.ReturnType); + inferTypes(context, context.inferences, inferenceSourceType, inferenceTargetType, InferencePriority.ReturnType); } // Create a type mapper for instantiating generic contextual types using the inferences made // from the return type. We need a separate inference pass here because (a) instantiation of @@ -35126,7 +35138,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // outer arguments), and (b) we don't want any further inferences going into this context. const returnContext = createInferenceContext(signature.typeParameters!, signature, context.flags); const returnSourceType = instantiateType(contextualType, outerContext && outerContext.returnMapper); - inferTypes(returnContext.inferences, returnSourceType, inferenceTargetType); + inferTypes(returnContext, returnContext.inferences, returnSourceType, inferenceTargetType); context.returnMapper = some(returnContext.inferences, hasInferenceCandidates) ? getMapperFromContext(cloneInferredPartOfContext(returnContext)) : undefined; } } @@ -35144,7 +35156,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const thisType = getThisTypeOfSignature(signature); if (thisType && couldContainTypeVariables(thisType)) { const thisArgumentNode = getThisArgumentOfCall(node); - inferTypes(context.inferences, getThisArgumentType(thisArgumentNode), thisType); + inferTypes(context, context.inferences, getThisArgumentType(thisArgumentNode), thisType); } for (let i = 0; i < argCount; i++) { @@ -35153,14 +35165,14 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const paramType = getTypeAtPosition(signature, i); if (couldContainTypeVariables(paramType)) { const argType = checkExpressionWithContextualType(arg, paramType, context, checkMode); - inferTypes(context.inferences, argType, paramType); + inferTypes(context, context.inferences, argType, paramType); } } } if (restType && couldContainTypeVariables(restType)) { const spreadType = getSpreadArgumentType(args, argCount, args.length, restType, context, checkMode); - inferTypes(context.inferences, spreadType, restType); + inferTypes(context, context.inferences, spreadType, restType); } return getInferredTypes(context); @@ -37886,14 +37898,14 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { if (typeNode) { const source = addOptionality(getTypeFromTypeNode(typeNode), /*isProperty*/ false, isOptionalDeclaration(declaration)); const target = getTypeAtPosition(context, i); - inferTypes(inferenceContext.inferences, source, target); + inferTypes(inferenceContext, inferenceContext.inferences, source, target); } } const typeNode = signature.declaration && getEffectiveReturnTypeNode(signature.declaration); if (typeNode) { const source = getTypeFromTypeNode(typeNode); const target = getReturnTypeOfSignature(context); - inferTypes(inferenceContext.inferences, source, target); + inferTypes(inferenceContext, inferenceContext.inferences, source, target); } } @@ -40801,13 +40813,13 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // contextual signature starting with an empty set of inference candidates. const inferences = map(context.inferences, info => createInferenceInfo(info.typeParameter)); applyToParameterTypes(instantiatedSignature, contextualSignature, (source, target) => { - inferTypes(inferences, source, target, /*priority*/ 0, /*contravariant*/ true); + inferTypes(context, inferences, source, target, /*priority*/ 0, /*contravariant*/ true); }); if (some(inferences, hasInferenceCandidates)) { // We have inference candidates, indicating that one or more type parameters are referenced // in the parameter types of the contextual signature. Now also infer from the return type. applyToReturnTypes(instantiatedSignature, contextualSignature, (source, target) => { - inferTypes(inferences, source, target); + inferTypes(context, inferences, source, target); }); // If the type parameters for which we produced candidates do not have any inferences yet, // we adopt the new inference candidates and add the type parameters of the expression type diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 342c0f2af7146..7b15d13740360 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -7029,11 +7029,11 @@ export const enum TypeMapKind { /** @internal */ export type TypeMapper = - | { kind: TypeMapKind.Simple; source: Type; target: Type; } - | { kind: TypeMapKind.Array; sources: readonly Type[]; targets: readonly Type[] | undefined; } - | { kind: TypeMapKind.Deferred; sources: readonly Type[]; targets: (() => Type)[]; } - | { kind: TypeMapKind.Function; func: (t: Type) => Type; debugInfo?: () => string; } - | { kind: TypeMapKind.Composite | TypeMapKind.Merged; mapper1: TypeMapper; mapper2: TypeMapper; }; + | { kind: TypeMapKind.Simple; source: Type; target: Type; instantiations?: Map; } + | { kind: TypeMapKind.Array; sources: readonly Type[]; targets: readonly Type[] | undefined; instantiations?: Map; } + | { kind: TypeMapKind.Deferred; sources: readonly Type[]; targets: (() => Type)[]; instantiations?: Map; } + | { kind: TypeMapKind.Function; func: (t: Type) => Type; debugInfo?: () => string; instantiations?: Map; } + | { kind: TypeMapKind.Composite | TypeMapKind.Merged; mapper1: TypeMapper; mapper2: TypeMapper; instantiations?: Map; }; // dprint-ignore export const enum InferencePriority { diff --git a/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types b/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types index 97d95e8915a41..825cc5ae57c09 100644 --- a/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types +++ b/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === checkJsxChildrenCanBeTupleType.tsx === diff --git a/tests/baselines/reference/checkJsxChildrenProperty16.types b/tests/baselines/reference/checkJsxChildrenProperty16.types index 134b19f773318..e1148ac2824a2 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty16.types +++ b/tests/baselines/reference/checkJsxChildrenProperty16.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === checkJsxChildrenProperty16.tsx === diff --git a/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types b/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types index 82d01bf4f8e67..bbfd4ab9eb6e4 100644 --- a/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types +++ b/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === checkJsxUnionSFXContextualTypeInferredCorrectly.tsx === diff --git a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types index b53132a7c94ba..fb3f341bac093 100644 --- a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types +++ b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types @@ -4,7 +4,7 @@ Strict subtype cache: 2,500 Assignability cache: 10,000 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 === conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.ts === type BigUnion = diff --git a/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types b/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types index 056b20f5d7826..d1cc488621671 100644 --- a/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types +++ b/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 1,000 Type Count: 5,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === conditionalTypeVarianceBigArrayConstraintsPerformance.ts === diff --git a/tests/baselines/reference/contextuallyTypedJsxChildren.types b/tests/baselines/reference/contextuallyTypedJsxChildren.types index 59a17390a16ed..a2a38b1e2739f 100644 --- a/tests/baselines/reference/contextuallyTypedJsxChildren.types +++ b/tests/baselines/reference/contextuallyTypedJsxChildren.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === contextuallyTypedJsxChildren.tsx === diff --git a/tests/baselines/reference/controlFlowOptionalChain3.types b/tests/baselines/reference/controlFlowOptionalChain3.types index bc4f6fc04b27c..2d66db40f61a1 100644 --- a/tests/baselines/reference/controlFlowOptionalChain3.types +++ b/tests/baselines/reference/controlFlowOptionalChain3.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === controlFlowOptionalChain3.tsx === diff --git a/tests/baselines/reference/divideAndConquerIntersections.types b/tests/baselines/reference/divideAndConquerIntersections.types index 880c5d4a95d5a..be6c29df2e156 100644 --- a/tests/baselines/reference/divideAndConquerIntersections.types +++ b/tests/baselines/reference/divideAndConquerIntersections.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 2,500 -Instantiation count: 10,000 +Instantiation count: 5,000 === divideAndConquerIntersections.ts === type QQ = diff --git a/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types b/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types index 8ef18e0a9a5b0..78a347d545fe1 100644 --- a/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types +++ b/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 250,000 +Instantiation count: 100,000 Symbol count: 100,000 === errorInfoForRelatedIndexTypesNoConstraintElaboration.ts === diff --git a/tests/baselines/reference/ignoredJsxAttributes.types b/tests/baselines/reference/ignoredJsxAttributes.types index 158233eda406f..b9196a0531fd7 100644 --- a/tests/baselines/reference/ignoredJsxAttributes.types +++ b/tests/baselines/reference/ignoredJsxAttributes.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === ignoredJsxAttributes.tsx === diff --git a/tests/baselines/reference/intraExpressionInferencesJsx.types b/tests/baselines/reference/intraExpressionInferencesJsx.types index 194a4452b0040..54aaf495a218e 100644 --- a/tests/baselines/reference/intraExpressionInferencesJsx.types +++ b/tests/baselines/reference/intraExpressionInferencesJsx.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === intraExpressionInferencesJsx.tsx === diff --git a/tests/baselines/reference/jsDeclarationsReactComponents.types b/tests/baselines/reference/jsDeclarationsReactComponents.types index ead47f32a6163..032c6c27741e8 100644 --- a/tests/baselines/reference/jsDeclarationsReactComponents.types +++ b/tests/baselines/reference/jsDeclarationsReactComponents.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsDeclarationsReactComponents1.jsx === diff --git a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types index ab87b840acde3..03a1aaae84634 100644 --- a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types +++ b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxCallElaborationCheckNoCrash1.tsx === diff --git a/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types b/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types index 8c0ef6741b035..8312a7a092076 100644 --- a/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types +++ b/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === index.tsx === diff --git a/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types b/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types index 812d3c7a3d3c3..55409b984919e 100644 --- a/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types +++ b/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxDeclarationsWithEsModuleInteropNoCrash.jsx === diff --git a/tests/baselines/reference/jsxElementType.types b/tests/baselines/reference/jsxElementType.types index fef705bff4988..60977590ce45b 100644 --- a/tests/baselines/reference/jsxElementType.types +++ b/tests/baselines/reference/jsxElementType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxElementType.tsx === diff --git a/tests/baselines/reference/jsxElementTypeLiteral.types b/tests/baselines/reference/jsxElementTypeLiteral.types index a43b4d05a6701..981b155ba228c 100644 --- a/tests/baselines/reference/jsxElementTypeLiteral.types +++ b/tests/baselines/reference/jsxElementTypeLiteral.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxElementTypeLiteral.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types index f008da6c2b72a..550daa56cc0b8 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types index f008da6c2b72a..550daa56cc0b8 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types index f008da6c2b72a..550daa56cc0b8 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxExcessPropsAndAssignability.types b/tests/baselines/reference/jsxExcessPropsAndAssignability.types index 9d0d5cafdd5b0..82aaa30d94f51 100644 --- a/tests/baselines/reference/jsxExcessPropsAndAssignability.types +++ b/tests/baselines/reference/jsxExcessPropsAndAssignability.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxExcessPropsAndAssignability.tsx === diff --git a/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types b/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types index 0cb120d89a2bb..25ba4b3d7a941 100644 --- a/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types +++ b/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx === diff --git a/tests/baselines/reference/jsxInferenceProducesLiteralAsExpected.types b/tests/baselines/reference/jsxInferenceProducesLiteralAsExpected.types index a00e190bb8ce3..0b5ea0a258a9f 100644 --- a/tests/baselines/reference/jsxInferenceProducesLiteralAsExpected.types +++ b/tests/baselines/reference/jsxInferenceProducesLiteralAsExpected.types @@ -2,7 +2,6 @@ === Performance Stats === Type Count: 2,500 -Instantiation count: 2,500 === jsxInferenceProducesLiteralAsExpected.tsx === import React = require("react"); diff --git a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types index 4e065c12b325a..4907628b6bd66 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformChildren.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types index 4e065c12b325a..4907628b6bd66 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformChildren.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types index b2865a75dee0b..aa13660ad9ba4 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types index b2865a75dee0b..aa13660ad9ba4 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types index 6d0c659d4f882..b550f712f194e 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types index 6d0c659d4f882..b550f712f194e 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types index 4f08b6385b55a..d618a1ab5ff52 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyProp.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types index 4f08b6385b55a..d618a1ab5ff52 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyProp.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types index bb994e8c95ba4..13d8d36838f06 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyPropCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types index bb994e8c95ba4..13d8d36838f06 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyPropCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types index 3bb08b2658583..fd465b18bbf10 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types index 3bb08b2658583..fd465b18bbf10 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types index 6c9f967278f60..7371ffcc13937 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformNestedSelfClosingChild.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types index 6c9f967278f60..7371ffcc13937 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformNestedSelfClosingChild.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types index b51873228cdfe..94b681fd44460 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNames.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types index b51873228cdfe..94b681fd44460 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNames.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types index f11a5e326ba04..6d67486907b93 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNamesFragment.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types index f11a5e326ba04..6d67486907b93 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNamesFragment.tsx === diff --git a/tests/baselines/reference/jsxPartialSpread.types b/tests/baselines/reference/jsxPartialSpread.types index fb1e8c62b94e7..0f63055beb46c 100644 --- a/tests/baselines/reference/jsxPartialSpread.types +++ b/tests/baselines/reference/jsxPartialSpread.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxPartialSpread.tsx === diff --git a/tests/baselines/reference/longObjectInstantiationChain1.errors.txt b/tests/baselines/reference/longObjectInstantiationChain1.errors.txt new file mode 100644 index 0000000000000..93755bf0f02cc --- /dev/null +++ b/tests/baselines/reference/longObjectInstantiationChain1.errors.txt @@ -0,0 +1,64 @@ +longObjectInstantiationChain1.ts(24,13): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain1.ts(45,13): error TS2589: Type instantiation is excessively deep and possibly infinite. + + +==== longObjectInstantiationChain1.ts (2 errors) ==== + export type merge = Omit & props; + + declare const merge: (l: l, r: r) => merge; + + const o1 = merge({ p1: 1 }, { p2: 2 }); + const o2 = merge(o1, { p3: 3 }); + const o3 = merge(o2, { p4: 4 }); + const o4 = merge(o3, { p5: 5 }); + const o5 = merge(o4, { p6: 6 }); + const o6 = merge(o5, { p7: 7 }); + const o7 = merge(o6, { p8: 8 }); + const o8 = merge(o7, { p9: 9 }); + const o9 = merge(o8, { p10: 10 }); + const o10 = merge(o9, { p11: 11 }); + const o11 = merge(o10, { p12: 12 }); + const o12 = merge(o11, { p13: 13 }); + const o13 = merge(o12, { p14: 14 }); + const o14 = merge(o13, { p15: 15 }); + const o15 = merge(o14, { p16: 16 }); + const o16 = merge(o15, { p17: 17 }); + const o17 = merge(o16, { p18: 18 }); + const o18 = merge(o17, { p19: 19 }); + const o19 = merge(o18, { p20: 20 }); + const o20 = merge(o19, { p21: 21 }); + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + const o21 = merge(o20, { p22: 22 }); + const o22 = merge(o21, { p23: 23 }); + const o23 = merge(o22, { p24: 24 }); + const o24 = merge(o23, { p25: 25 }); + const o25 = merge(o24, { p26: 26 }); + const o26 = merge(o25, { p27: 27 }); + const o27 = merge(o26, { p28: 28 }); + const o28 = merge(o27, { p29: 29 }); + const o29 = merge(o28, { p30: 30 }); + const o30 = merge(o29, { p31: 31 }); + const o31 = merge(o30, { p32: 32 }); + const o32 = merge(o31, { p33: 33 }); + const o33 = merge(o32, { p34: 34 }); + const o34 = merge(o33, { p35: 35 }); + const o35 = merge(o34, { p36: 36 }); + const o36 = merge(o35, { p37: 37 }); + const o37 = merge(o36, { p38: 38 }); + const o38 = merge(o37, { p39: 39 }); + const o39 = merge(o38, { p40: 40 }); + const o40 = merge(o39, { p41: 41 }); + const o41 = merge(o40, { p42: 42 }); + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + const o42 = merge(o41, { p43: 43 }); + const o43 = merge(o42, { p44: 44 }); + const o44 = merge(o43, { p45: 45 }); + const o45 = merge(o44, { p46: 46 }); + const o46 = merge(o45, { p47: 47 }); + const o47 = merge(o46, { p48: 48 }); + const o48 = merge(o47, { p49: 49 }); + const o49 = merge(o48, { p50: 50 }); + const o50 = merge(o49, { p51: 51 }); + \ No newline at end of file diff --git a/tests/baselines/reference/longObjectInstantiationChain1.symbols b/tests/baselines/reference/longObjectInstantiationChain1.symbols new file mode 100644 index 0000000000000..785567d5aa25b --- /dev/null +++ b/tests/baselines/reference/longObjectInstantiationChain1.symbols @@ -0,0 +1,325 @@ +//// [tests/cases/compiler/longObjectInstantiationChain1.ts] //// + +=== longObjectInstantiationChain1.ts === +export type merge = Omit & props; +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0)) +>base : Symbol(base, Decl(longObjectInstantiationChain1.ts, 0, 18)) +>props : Symbol(props, Decl(longObjectInstantiationChain1.ts, 0, 23)) +>Omit : Symbol(Omit, Decl(lib.es5.d.ts, --, --)) +>base : Symbol(base, Decl(longObjectInstantiationChain1.ts, 0, 18)) +>props : Symbol(props, Decl(longObjectInstantiationChain1.ts, 0, 23)) +>base : Symbol(base, Decl(longObjectInstantiationChain1.ts, 0, 18)) +>props : Symbol(props, Decl(longObjectInstantiationChain1.ts, 0, 23)) + +declare const merge: (l: l, r: r) => merge; +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>l : Symbol(l, Decl(longObjectInstantiationChain1.ts, 2, 22), Decl(longObjectInstantiationChain1.ts, 2, 28)) +>r : Symbol(r, Decl(longObjectInstantiationChain1.ts, 2, 24), Decl(longObjectInstantiationChain1.ts, 2, 33)) +>l : Symbol(l, Decl(longObjectInstantiationChain1.ts, 2, 22), Decl(longObjectInstantiationChain1.ts, 2, 28)) +>l : Symbol(l, Decl(longObjectInstantiationChain1.ts, 2, 22), Decl(longObjectInstantiationChain1.ts, 2, 28)) +>r : Symbol(r, Decl(longObjectInstantiationChain1.ts, 2, 24), Decl(longObjectInstantiationChain1.ts, 2, 33)) +>r : Symbol(r, Decl(longObjectInstantiationChain1.ts, 2, 24), Decl(longObjectInstantiationChain1.ts, 2, 33)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0)) +>l : Symbol(l, Decl(longObjectInstantiationChain1.ts, 2, 22), Decl(longObjectInstantiationChain1.ts, 2, 28)) +>r : Symbol(r, Decl(longObjectInstantiationChain1.ts, 2, 24), Decl(longObjectInstantiationChain1.ts, 2, 33)) + +const o1 = merge({ p1: 1 }, { p2: 2 }); +>o1 : Symbol(o1, Decl(longObjectInstantiationChain1.ts, 4, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) +>p2 : Symbol(p2, Decl(longObjectInstantiationChain1.ts, 4, 29)) + +const o2 = merge(o1, { p3: 3 }); +>o2 : Symbol(o2, Decl(longObjectInstantiationChain1.ts, 5, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o1 : Symbol(o1, Decl(longObjectInstantiationChain1.ts, 4, 5)) +>p3 : Symbol(p3, Decl(longObjectInstantiationChain1.ts, 5, 22)) + +const o3 = merge(o2, { p4: 4 }); +>o3 : Symbol(o3, Decl(longObjectInstantiationChain1.ts, 6, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain1.ts, 5, 5)) +>p4 : Symbol(p4, Decl(longObjectInstantiationChain1.ts, 6, 22)) + +const o4 = merge(o3, { p5: 5 }); +>o4 : Symbol(o4, Decl(longObjectInstantiationChain1.ts, 7, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o3 : Symbol(o3, Decl(longObjectInstantiationChain1.ts, 6, 5)) +>p5 : Symbol(p5, Decl(longObjectInstantiationChain1.ts, 7, 22)) + +const o5 = merge(o4, { p6: 6 }); +>o5 : Symbol(o5, Decl(longObjectInstantiationChain1.ts, 8, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o4 : Symbol(o4, Decl(longObjectInstantiationChain1.ts, 7, 5)) +>p6 : Symbol(p6, Decl(longObjectInstantiationChain1.ts, 8, 22)) + +const o6 = merge(o5, { p7: 7 }); +>o6 : Symbol(o6, Decl(longObjectInstantiationChain1.ts, 9, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o5 : Symbol(o5, Decl(longObjectInstantiationChain1.ts, 8, 5)) +>p7 : Symbol(p7, Decl(longObjectInstantiationChain1.ts, 9, 22)) + +const o7 = merge(o6, { p8: 8 }); +>o7 : Symbol(o7, Decl(longObjectInstantiationChain1.ts, 10, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o6 : Symbol(o6, Decl(longObjectInstantiationChain1.ts, 9, 5)) +>p8 : Symbol(p8, Decl(longObjectInstantiationChain1.ts, 10, 22)) + +const o8 = merge(o7, { p9: 9 }); +>o8 : Symbol(o8, Decl(longObjectInstantiationChain1.ts, 11, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o7 : Symbol(o7, Decl(longObjectInstantiationChain1.ts, 10, 5)) +>p9 : Symbol(p9, Decl(longObjectInstantiationChain1.ts, 11, 22)) + +const o9 = merge(o8, { p10: 10 }); +>o9 : Symbol(o9, Decl(longObjectInstantiationChain1.ts, 12, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o8 : Symbol(o8, Decl(longObjectInstantiationChain1.ts, 11, 5)) +>p10 : Symbol(p10, Decl(longObjectInstantiationChain1.ts, 12, 22)) + +const o10 = merge(o9, { p11: 11 }); +>o10 : Symbol(o10, Decl(longObjectInstantiationChain1.ts, 13, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o9 : Symbol(o9, Decl(longObjectInstantiationChain1.ts, 12, 5)) +>p11 : Symbol(p11, Decl(longObjectInstantiationChain1.ts, 13, 23)) + +const o11 = merge(o10, { p12: 12 }); +>o11 : Symbol(o11, Decl(longObjectInstantiationChain1.ts, 14, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o10 : Symbol(o10, Decl(longObjectInstantiationChain1.ts, 13, 5)) +>p12 : Symbol(p12, Decl(longObjectInstantiationChain1.ts, 14, 24)) + +const o12 = merge(o11, { p13: 13 }); +>o12 : Symbol(o12, Decl(longObjectInstantiationChain1.ts, 15, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o11 : Symbol(o11, Decl(longObjectInstantiationChain1.ts, 14, 5)) +>p13 : Symbol(p13, Decl(longObjectInstantiationChain1.ts, 15, 24)) + +const o13 = merge(o12, { p14: 14 }); +>o13 : Symbol(o13, Decl(longObjectInstantiationChain1.ts, 16, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o12 : Symbol(o12, Decl(longObjectInstantiationChain1.ts, 15, 5)) +>p14 : Symbol(p14, Decl(longObjectInstantiationChain1.ts, 16, 24)) + +const o14 = merge(o13, { p15: 15 }); +>o14 : Symbol(o14, Decl(longObjectInstantiationChain1.ts, 17, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o13 : Symbol(o13, Decl(longObjectInstantiationChain1.ts, 16, 5)) +>p15 : Symbol(p15, Decl(longObjectInstantiationChain1.ts, 17, 24)) + +const o15 = merge(o14, { p16: 16 }); +>o15 : Symbol(o15, Decl(longObjectInstantiationChain1.ts, 18, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o14 : Symbol(o14, Decl(longObjectInstantiationChain1.ts, 17, 5)) +>p16 : Symbol(p16, Decl(longObjectInstantiationChain1.ts, 18, 24)) + +const o16 = merge(o15, { p17: 17 }); +>o16 : Symbol(o16, Decl(longObjectInstantiationChain1.ts, 19, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o15 : Symbol(o15, Decl(longObjectInstantiationChain1.ts, 18, 5)) +>p17 : Symbol(p17, Decl(longObjectInstantiationChain1.ts, 19, 24)) + +const o17 = merge(o16, { p18: 18 }); +>o17 : Symbol(o17, Decl(longObjectInstantiationChain1.ts, 20, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o16 : Symbol(o16, Decl(longObjectInstantiationChain1.ts, 19, 5)) +>p18 : Symbol(p18, Decl(longObjectInstantiationChain1.ts, 20, 24)) + +const o18 = merge(o17, { p19: 19 }); +>o18 : Symbol(o18, Decl(longObjectInstantiationChain1.ts, 21, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o17 : Symbol(o17, Decl(longObjectInstantiationChain1.ts, 20, 5)) +>p19 : Symbol(p19, Decl(longObjectInstantiationChain1.ts, 21, 24)) + +const o19 = merge(o18, { p20: 20 }); +>o19 : Symbol(o19, Decl(longObjectInstantiationChain1.ts, 22, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o18 : Symbol(o18, Decl(longObjectInstantiationChain1.ts, 21, 5)) +>p20 : Symbol(p20, Decl(longObjectInstantiationChain1.ts, 22, 24)) + +const o20 = merge(o19, { p21: 21 }); +>o20 : Symbol(o20, Decl(longObjectInstantiationChain1.ts, 23, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o19 : Symbol(o19, Decl(longObjectInstantiationChain1.ts, 22, 5)) +>p21 : Symbol(p21, Decl(longObjectInstantiationChain1.ts, 23, 24)) + +const o21 = merge(o20, { p22: 22 }); +>o21 : Symbol(o21, Decl(longObjectInstantiationChain1.ts, 24, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o20 : Symbol(o20, Decl(longObjectInstantiationChain1.ts, 23, 5)) +>p22 : Symbol(p22, Decl(longObjectInstantiationChain1.ts, 24, 24)) + +const o22 = merge(o21, { p23: 23 }); +>o22 : Symbol(o22, Decl(longObjectInstantiationChain1.ts, 25, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o21 : Symbol(o21, Decl(longObjectInstantiationChain1.ts, 24, 5)) +>p23 : Symbol(p23, Decl(longObjectInstantiationChain1.ts, 25, 24)) + +const o23 = merge(o22, { p24: 24 }); +>o23 : Symbol(o23, Decl(longObjectInstantiationChain1.ts, 26, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o22 : Symbol(o22, Decl(longObjectInstantiationChain1.ts, 25, 5)) +>p24 : Symbol(p24, Decl(longObjectInstantiationChain1.ts, 26, 24)) + +const o24 = merge(o23, { p25: 25 }); +>o24 : Symbol(o24, Decl(longObjectInstantiationChain1.ts, 27, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o23 : Symbol(o23, Decl(longObjectInstantiationChain1.ts, 26, 5)) +>p25 : Symbol(p25, Decl(longObjectInstantiationChain1.ts, 27, 24)) + +const o25 = merge(o24, { p26: 26 }); +>o25 : Symbol(o25, Decl(longObjectInstantiationChain1.ts, 28, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o24 : Symbol(o24, Decl(longObjectInstantiationChain1.ts, 27, 5)) +>p26 : Symbol(p26, Decl(longObjectInstantiationChain1.ts, 28, 24)) + +const o26 = merge(o25, { p27: 27 }); +>o26 : Symbol(o26, Decl(longObjectInstantiationChain1.ts, 29, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain1.ts, 28, 5)) +>p27 : Symbol(p27, Decl(longObjectInstantiationChain1.ts, 29, 24)) + +const o27 = merge(o26, { p28: 28 }); +>o27 : Symbol(o27, Decl(longObjectInstantiationChain1.ts, 30, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o26 : Symbol(o26, Decl(longObjectInstantiationChain1.ts, 29, 5)) +>p28 : Symbol(p28, Decl(longObjectInstantiationChain1.ts, 30, 24)) + +const o28 = merge(o27, { p29: 29 }); +>o28 : Symbol(o28, Decl(longObjectInstantiationChain1.ts, 31, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o27 : Symbol(o27, Decl(longObjectInstantiationChain1.ts, 30, 5)) +>p29 : Symbol(p29, Decl(longObjectInstantiationChain1.ts, 31, 24)) + +const o29 = merge(o28, { p30: 30 }); +>o29 : Symbol(o29, Decl(longObjectInstantiationChain1.ts, 32, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o28 : Symbol(o28, Decl(longObjectInstantiationChain1.ts, 31, 5)) +>p30 : Symbol(p30, Decl(longObjectInstantiationChain1.ts, 32, 24)) + +const o30 = merge(o29, { p31: 31 }); +>o30 : Symbol(o30, Decl(longObjectInstantiationChain1.ts, 33, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o29 : Symbol(o29, Decl(longObjectInstantiationChain1.ts, 32, 5)) +>p31 : Symbol(p31, Decl(longObjectInstantiationChain1.ts, 33, 24)) + +const o31 = merge(o30, { p32: 32 }); +>o31 : Symbol(o31, Decl(longObjectInstantiationChain1.ts, 34, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain1.ts, 33, 5)) +>p32 : Symbol(p32, Decl(longObjectInstantiationChain1.ts, 34, 24)) + +const o32 = merge(o31, { p33: 33 }); +>o32 : Symbol(o32, Decl(longObjectInstantiationChain1.ts, 35, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o31 : Symbol(o31, Decl(longObjectInstantiationChain1.ts, 34, 5)) +>p33 : Symbol(p33, Decl(longObjectInstantiationChain1.ts, 35, 24)) + +const o33 = merge(o32, { p34: 34 }); +>o33 : Symbol(o33, Decl(longObjectInstantiationChain1.ts, 36, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o32 : Symbol(o32, Decl(longObjectInstantiationChain1.ts, 35, 5)) +>p34 : Symbol(p34, Decl(longObjectInstantiationChain1.ts, 36, 24)) + +const o34 = merge(o33, { p35: 35 }); +>o34 : Symbol(o34, Decl(longObjectInstantiationChain1.ts, 37, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o33 : Symbol(o33, Decl(longObjectInstantiationChain1.ts, 36, 5)) +>p35 : Symbol(p35, Decl(longObjectInstantiationChain1.ts, 37, 24)) + +const o35 = merge(o34, { p36: 36 }); +>o35 : Symbol(o35, Decl(longObjectInstantiationChain1.ts, 38, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o34 : Symbol(o34, Decl(longObjectInstantiationChain1.ts, 37, 5)) +>p36 : Symbol(p36, Decl(longObjectInstantiationChain1.ts, 38, 24)) + +const o36 = merge(o35, { p37: 37 }); +>o36 : Symbol(o36, Decl(longObjectInstantiationChain1.ts, 39, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o35 : Symbol(o35, Decl(longObjectInstantiationChain1.ts, 38, 5)) +>p37 : Symbol(p37, Decl(longObjectInstantiationChain1.ts, 39, 24)) + +const o37 = merge(o36, { p38: 38 }); +>o37 : Symbol(o37, Decl(longObjectInstantiationChain1.ts, 40, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o36 : Symbol(o36, Decl(longObjectInstantiationChain1.ts, 39, 5)) +>p38 : Symbol(p38, Decl(longObjectInstantiationChain1.ts, 40, 24)) + +const o38 = merge(o37, { p39: 39 }); +>o38 : Symbol(o38, Decl(longObjectInstantiationChain1.ts, 41, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o37 : Symbol(o37, Decl(longObjectInstantiationChain1.ts, 40, 5)) +>p39 : Symbol(p39, Decl(longObjectInstantiationChain1.ts, 41, 24)) + +const o39 = merge(o38, { p40: 40 }); +>o39 : Symbol(o39, Decl(longObjectInstantiationChain1.ts, 42, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o38 : Symbol(o38, Decl(longObjectInstantiationChain1.ts, 41, 5)) +>p40 : Symbol(p40, Decl(longObjectInstantiationChain1.ts, 42, 24)) + +const o40 = merge(o39, { p41: 41 }); +>o40 : Symbol(o40, Decl(longObjectInstantiationChain1.ts, 43, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o39 : Symbol(o39, Decl(longObjectInstantiationChain1.ts, 42, 5)) +>p41 : Symbol(p41, Decl(longObjectInstantiationChain1.ts, 43, 24)) + +const o41 = merge(o40, { p42: 42 }); +>o41 : Symbol(o41, Decl(longObjectInstantiationChain1.ts, 44, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o40 : Symbol(o40, Decl(longObjectInstantiationChain1.ts, 43, 5)) +>p42 : Symbol(p42, Decl(longObjectInstantiationChain1.ts, 44, 24)) + +const o42 = merge(o41, { p43: 43 }); +>o42 : Symbol(o42, Decl(longObjectInstantiationChain1.ts, 45, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o41 : Symbol(o41, Decl(longObjectInstantiationChain1.ts, 44, 5)) +>p43 : Symbol(p43, Decl(longObjectInstantiationChain1.ts, 45, 24)) + +const o43 = merge(o42, { p44: 44 }); +>o43 : Symbol(o43, Decl(longObjectInstantiationChain1.ts, 46, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o42 : Symbol(o42, Decl(longObjectInstantiationChain1.ts, 45, 5)) +>p44 : Symbol(p44, Decl(longObjectInstantiationChain1.ts, 46, 24)) + +const o44 = merge(o43, { p45: 45 }); +>o44 : Symbol(o44, Decl(longObjectInstantiationChain1.ts, 47, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o43 : Symbol(o43, Decl(longObjectInstantiationChain1.ts, 46, 5)) +>p45 : Symbol(p45, Decl(longObjectInstantiationChain1.ts, 47, 24)) + +const o45 = merge(o44, { p46: 46 }); +>o45 : Symbol(o45, Decl(longObjectInstantiationChain1.ts, 48, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o44 : Symbol(o44, Decl(longObjectInstantiationChain1.ts, 47, 5)) +>p46 : Symbol(p46, Decl(longObjectInstantiationChain1.ts, 48, 24)) + +const o46 = merge(o45, { p47: 47 }); +>o46 : Symbol(o46, Decl(longObjectInstantiationChain1.ts, 49, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o45 : Symbol(o45, Decl(longObjectInstantiationChain1.ts, 48, 5)) +>p47 : Symbol(p47, Decl(longObjectInstantiationChain1.ts, 49, 24)) + +const o47 = merge(o46, { p48: 48 }); +>o47 : Symbol(o47, Decl(longObjectInstantiationChain1.ts, 50, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o46 : Symbol(o46, Decl(longObjectInstantiationChain1.ts, 49, 5)) +>p48 : Symbol(p48, Decl(longObjectInstantiationChain1.ts, 50, 24)) + +const o48 = merge(o47, { p49: 49 }); +>o48 : Symbol(o48, Decl(longObjectInstantiationChain1.ts, 51, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o47 : Symbol(o47, Decl(longObjectInstantiationChain1.ts, 50, 5)) +>p49 : Symbol(p49, Decl(longObjectInstantiationChain1.ts, 51, 24)) + +const o49 = merge(o48, { p50: 50 }); +>o49 : Symbol(o49, Decl(longObjectInstantiationChain1.ts, 52, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o48 : Symbol(o48, Decl(longObjectInstantiationChain1.ts, 51, 5)) +>p50 : Symbol(p50, Decl(longObjectInstantiationChain1.ts, 52, 24)) + +const o50 = merge(o49, { p51: 51 }); +>o50 : Symbol(o50, Decl(longObjectInstantiationChain1.ts, 53, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain1.ts, 0, 0), Decl(longObjectInstantiationChain1.ts, 2, 13)) +>o49 : Symbol(o49, Decl(longObjectInstantiationChain1.ts, 52, 5)) +>p51 : Symbol(p51, Decl(longObjectInstantiationChain1.ts, 53, 24)) + diff --git a/tests/baselines/reference/longObjectInstantiationChain1.types b/tests/baselines/reference/longObjectInstantiationChain1.types new file mode 100644 index 0000000000000..96d651c8443b8 --- /dev/null +++ b/tests/baselines/reference/longObjectInstantiationChain1.types @@ -0,0 +1,822 @@ +//// [tests/cases/compiler/longObjectInstantiationChain1.ts] //// + +=== Performance Stats === +Instantiation count: 50,000,000 + +=== longObjectInstantiationChain1.ts === +export type merge = Omit & props; +>merge : merge +> : ^^^^^^^^^^^^^^^^^^ + +declare const merge: (l: l, r: r) => merge; +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>l : l +> : ^ +>r : r +> : ^ + +const o1 = merge({ p1: 1 }, { p2: 2 }); +>o1 : merge<{ p1: number; }, { p2: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge({ p1: 1 }, { p2: 2 }) : merge<{ p1: number; }, { p2: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>{ p1: 1 } : { p1: number; } +> : ^^^^^^^^^^^^^^^ +>p1 : number +> : ^^^^^^ +>1 : 1 +> : ^ +>{ p2: 2 } : { p2: number; } +> : ^^^^^^^^^^^^^^^ +>p2 : number +> : ^^^^^^ +>2 : 2 +> : ^ + +const o2 = merge(o1, { p3: 3 }); +>o2 : merge, { p3: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o1, { p3: 3 }) : merge, { p3: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o1 : merge<{ p1: number; }, { p2: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p3: 3 } : { p3: number; } +> : ^^^^^^^^^^^^^^^ +>p3 : number +> : ^^^^^^ +>3 : 3 +> : ^ + +const o3 = merge(o2, { p4: 4 }); +>o3 : merge, { p3: number; }>, { p4: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o2, { p4: 4 }) : merge, { p3: number; }>, { p4: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o2 : merge, { p3: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p4: 4 } : { p4: number; } +> : ^^^^^^^^^^^^^^^ +>p4 : number +> : ^^^^^^ +>4 : 4 +> : ^ + +const o4 = merge(o3, { p5: 5 }); +>o4 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o3, { p5: 5 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o3 : merge, { p3: number; }>, { p4: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p5: 5 } : { p5: number; } +> : ^^^^^^^^^^^^^^^ +>p5 : number +> : ^^^^^^ +>5 : 5 +> : ^ + +const o5 = merge(o4, { p6: 6 }); +>o5 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o4, { p6: 6 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o4 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p6: 6 } : { p6: number; } +> : ^^^^^^^^^^^^^^^ +>p6 : number +> : ^^^^^^ +>6 : 6 +> : ^ + +const o6 = merge(o5, { p7: 7 }); +>o6 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o5, { p7: 7 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o5 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p7: 7 } : { p7: number; } +> : ^^^^^^^^^^^^^^^ +>p7 : number +> : ^^^^^^ +>7 : 7 +> : ^ + +const o7 = merge(o6, { p8: 8 }); +>o7 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o6, { p8: 8 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o6 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p8: 8 } : { p8: number; } +> : ^^^^^^^^^^^^^^^ +>p8 : number +> : ^^^^^^ +>8 : 8 +> : ^ + +const o8 = merge(o7, { p9: 9 }); +>o8 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o7, { p9: 9 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o7 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p9: 9 } : { p9: number; } +> : ^^^^^^^^^^^^^^^ +>p9 : number +> : ^^^^^^ +>9 : 9 +> : ^ + +const o9 = merge(o8, { p10: 10 }); +>o9 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o8, { p10: 10 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o8 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p10: 10 } : { p10: number; } +> : ^^^^^^^^^^^^^^^^ +>p10 : number +> : ^^^^^^ +>10 : 10 +> : ^^ + +const o10 = merge(o9, { p11: 11 }); +>o10 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o9, { p11: 11 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o9 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p11: 11 } : { p11: number; } +> : ^^^^^^^^^^^^^^^^ +>p11 : number +> : ^^^^^^ +>11 : 11 +> : ^^ + +const o11 = merge(o10, { p12: 12 }); +>o11 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o10, { p12: 12 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o10 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p12: 12 } : { p12: number; } +> : ^^^^^^^^^^^^^^^^ +>p12 : number +> : ^^^^^^ +>12 : 12 +> : ^^ + +const o12 = merge(o11, { p13: 13 }); +>o12 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o11, { p13: 13 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o11 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p13: 13 } : { p13: number; } +> : ^^^^^^^^^^^^^^^^ +>p13 : number +> : ^^^^^^ +>13 : 13 +> : ^^ + +const o13 = merge(o12, { p14: 14 }); +>o13 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o12, { p14: 14 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o12 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p14: 14 } : { p14: number; } +> : ^^^^^^^^^^^^^^^^ +>p14 : number +> : ^^^^^^ +>14 : 14 +> : ^^ + +const o14 = merge(o13, { p15: 15 }); +>o14 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o13, { p15: 15 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o13 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p15: 15 } : { p15: number; } +> : ^^^^^^^^^^^^^^^^ +>p15 : number +> : ^^^^^^ +>15 : 15 +> : ^^ + +const o15 = merge(o14, { p16: 16 }); +>o15 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o14, { p16: 16 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o14 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p16: 16 } : { p16: number; } +> : ^^^^^^^^^^^^^^^^ +>p16 : number +> : ^^^^^^ +>16 : 16 +> : ^^ + +const o16 = merge(o15, { p17: 17 }); +>o16 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o15, { p17: 17 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o15 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p17: 17 } : { p17: number; } +> : ^^^^^^^^^^^^^^^^ +>p17 : number +> : ^^^^^^ +>17 : 17 +> : ^^ + +const o17 = merge(o16, { p18: 18 }); +>o17 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o16, { p18: 18 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o16 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p18: 18 } : { p18: number; } +> : ^^^^^^^^^^^^^^^^ +>p18 : number +> : ^^^^^^ +>18 : 18 +> : ^^ + +const o18 = merge(o17, { p19: 19 }); +>o18 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o17, { p19: 19 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o17 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p19: 19 } : { p19: number; } +> : ^^^^^^^^^^^^^^^^ +>p19 : number +> : ^^^^^^ +>19 : 19 +> : ^^ + +const o19 = merge(o18, { p20: 20 }); +>o19 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o18, { p20: 20 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o18 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p20: 20 } : { p20: number; } +> : ^^^^^^^^^^^^^^^^ +>p20 : number +> : ^^^^^^ +>20 : 20 +> : ^^ + +const o20 = merge(o19, { p21: 21 }); +>o20 : any +> : ^^^ +>merge(o19, { p21: 21 }) : any +> : ^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o19 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p21: 21 } : { p21: number; } +> : ^^^^^^^^^^^^^^^^ +>p21 : number +> : ^^^^^^ +>21 : 21 +> : ^^ + +const o21 = merge(o20, { p22: 22 }); +>o21 : merge +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o20, { p22: 22 }) : merge +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o20 : any +> : ^^^ +>{ p22: 22 } : { p22: number; } +> : ^^^^^^^^^^^^^^^^ +>p22 : number +> : ^^^^^^ +>22 : 22 +> : ^^ + +const o22 = merge(o21, { p23: 23 }); +>o22 : merge, { p23: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o21, { p23: 23 }) : merge, { p23: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o21 : merge +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p23: 23 } : { p23: number; } +> : ^^^^^^^^^^^^^^^^ +>p23 : number +> : ^^^^^^ +>23 : 23 +> : ^^ + +const o23 = merge(o22, { p24: 24 }); +>o23 : merge, { p23: number; }>, { p24: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o22, { p24: 24 }) : merge, { p23: number; }>, { p24: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o22 : merge, { p23: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p24: 24 } : { p24: number; } +> : ^^^^^^^^^^^^^^^^ +>p24 : number +> : ^^^^^^ +>24 : 24 +> : ^^ + +const o24 = merge(o23, { p25: 25 }); +>o24 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o23, { p25: 25 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o23 : merge, { p23: number; }>, { p24: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p25: 25 } : { p25: number; } +> : ^^^^^^^^^^^^^^^^ +>p25 : number +> : ^^^^^^ +>25 : 25 +> : ^^ + +const o25 = merge(o24, { p26: 26 }); +>o25 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o24, { p26: 26 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o24 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p26: 26 } : { p26: number; } +> : ^^^^^^^^^^^^^^^^ +>p26 : number +> : ^^^^^^ +>26 : 26 +> : ^^ + +const o26 = merge(o25, { p27: 27 }); +>o26 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o25, { p27: 27 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o25 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p27: 27 } : { p27: number; } +> : ^^^^^^^^^^^^^^^^ +>p27 : number +> : ^^^^^^ +>27 : 27 +> : ^^ + +const o27 = merge(o26, { p28: 28 }); +>o27 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o26, { p28: 28 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o26 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p28: 28 } : { p28: number; } +> : ^^^^^^^^^^^^^^^^ +>p28 : number +> : ^^^^^^ +>28 : 28 +> : ^^ + +const o28 = merge(o27, { p29: 29 }); +>o28 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o27, { p29: 29 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o27 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p29: 29 } : { p29: number; } +> : ^^^^^^^^^^^^^^^^ +>p29 : number +> : ^^^^^^ +>29 : 29 +> : ^^ + +const o29 = merge(o28, { p30: 30 }); +>o29 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o28, { p30: 30 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o28 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p30: 30 } : { p30: number; } +> : ^^^^^^^^^^^^^^^^ +>p30 : number +> : ^^^^^^ +>30 : 30 +> : ^^ + +const o30 = merge(o29, { p31: 31 }); +>o30 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o29, { p31: 31 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o29 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p31: 31 } : { p31: number; } +> : ^^^^^^^^^^^^^^^^ +>p31 : number +> : ^^^^^^ +>31 : 31 +> : ^^ + +const o31 = merge(o30, { p32: 32 }); +>o31 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o30, { p32: 32 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o30 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p32: 32 } : { p32: number; } +> : ^^^^^^^^^^^^^^^^ +>p32 : number +> : ^^^^^^ +>32 : 32 +> : ^^ + +const o32 = merge(o31, { p33: 33 }); +>o32 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o31, { p33: 33 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o31 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p33: 33 } : { p33: number; } +> : ^^^^^^^^^^^^^^^^ +>p33 : number +> : ^^^^^^ +>33 : 33 +> : ^^ + +const o33 = merge(o32, { p34: 34 }); +>o33 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o32, { p34: 34 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o32 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p34: 34 } : { p34: number; } +> : ^^^^^^^^^^^^^^^^ +>p34 : number +> : ^^^^^^ +>34 : 34 +> : ^^ + +const o34 = merge(o33, { p35: 35 }); +>o34 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o33, { p35: 35 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o33 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p35: 35 } : { p35: number; } +> : ^^^^^^^^^^^^^^^^ +>p35 : number +> : ^^^^^^ +>35 : 35 +> : ^^ + +const o35 = merge(o34, { p36: 36 }); +>o35 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o34, { p36: 36 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o34 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p36: 36 } : { p36: number; } +> : ^^^^^^^^^^^^^^^^ +>p36 : number +> : ^^^^^^ +>36 : 36 +> : ^^ + +const o36 = merge(o35, { p37: 37 }); +>o36 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o35, { p37: 37 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o35 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p37: 37 } : { p37: number; } +> : ^^^^^^^^^^^^^^^^ +>p37 : number +> : ^^^^^^ +>37 : 37 +> : ^^ + +const o37 = merge(o36, { p38: 38 }); +>o37 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o36, { p38: 38 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o36 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p38: 38 } : { p38: number; } +> : ^^^^^^^^^^^^^^^^ +>p38 : number +> : ^^^^^^ +>38 : 38 +> : ^^ + +const o38 = merge(o37, { p39: 39 }); +>o38 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o37, { p39: 39 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o37 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p39: 39 } : { p39: number; } +> : ^^^^^^^^^^^^^^^^ +>p39 : number +> : ^^^^^^ +>39 : 39 +> : ^^ + +const o39 = merge(o38, { p40: 40 }); +>o39 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o38, { p40: 40 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o38 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p40: 40 } : { p40: number; } +> : ^^^^^^^^^^^^^^^^ +>p40 : number +> : ^^^^^^ +>40 : 40 +> : ^^ + +const o40 = merge(o39, { p41: 41 }); +>o40 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o39, { p41: 41 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o39 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p41: 41 } : { p41: number; } +> : ^^^^^^^^^^^^^^^^ +>p41 : number +> : ^^^^^^ +>41 : 41 +> : ^^ + +const o41 = merge(o40, { p42: 42 }); +>o41 : any +> : ^^^ +>merge(o40, { p42: 42 }) : any +> : ^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o40 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p42: 42 } : { p42: number; } +> : ^^^^^^^^^^^^^^^^ +>p42 : number +> : ^^^^^^ +>42 : 42 +> : ^^ + +const o42 = merge(o41, { p43: 43 }); +>o42 : merge +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o41, { p43: 43 }) : merge +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o41 : any +> : ^^^ +>{ p43: 43 } : { p43: number; } +> : ^^^^^^^^^^^^^^^^ +>p43 : number +> : ^^^^^^ +>43 : 43 +> : ^^ + +const o43 = merge(o42, { p44: 44 }); +>o43 : merge, { p44: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o42, { p44: 44 }) : merge, { p44: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o42 : merge +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p44: 44 } : { p44: number; } +> : ^^^^^^^^^^^^^^^^ +>p44 : number +> : ^^^^^^ +>44 : 44 +> : ^^ + +const o44 = merge(o43, { p45: 45 }); +>o44 : merge, { p44: number; }>, { p45: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o43, { p45: 45 }) : merge, { p44: number; }>, { p45: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o43 : merge, { p44: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p45: 45 } : { p45: number; } +> : ^^^^^^^^^^^^^^^^ +>p45 : number +> : ^^^^^^ +>45 : 45 +> : ^^ + +const o45 = merge(o44, { p46: 46 }); +>o45 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o44, { p46: 46 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o44 : merge, { p44: number; }>, { p45: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p46: 46 } : { p46: number; } +> : ^^^^^^^^^^^^^^^^ +>p46 : number +> : ^^^^^^ +>46 : 46 +> : ^^ + +const o46 = merge(o45, { p47: 47 }); +>o46 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o45, { p47: 47 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o45 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p47: 47 } : { p47: number; } +> : ^^^^^^^^^^^^^^^^ +>p47 : number +> : ^^^^^^ +>47 : 47 +> : ^^ + +const o47 = merge(o46, { p48: 48 }); +>o47 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o46, { p48: 48 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o46 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p48: 48 } : { p48: number; } +> : ^^^^^^^^^^^^^^^^ +>p48 : number +> : ^^^^^^ +>48 : 48 +> : ^^ + +const o48 = merge(o47, { p49: 49 }); +>o48 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o47, { p49: 49 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o47 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p49: 49 } : { p49: number; } +> : ^^^^^^^^^^^^^^^^ +>p49 : number +> : ^^^^^^ +>49 : 49 +> : ^^ + +const o49 = merge(o48, { p50: 50 }); +>o49 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o48, { p50: 50 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o48 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p50: 50 } : { p50: number; } +> : ^^^^^^^^^^^^^^^^ +>p50 : number +> : ^^^^^^ +>50 : 50 +> : ^^ + +const o50 = merge(o49, { p51: 51 }); +>o50 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o49, { p51: 51 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (l: l, r: r) => merge +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>o49 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p51: 51 } : { p51: number; } +> : ^^^^^^^^^^^^^^^^ +>p51 : number +> : ^^^^^^ +>51 : 51 +> : ^^ + diff --git a/tests/baselines/reference/longObjectInstantiationChain2.errors.txt b/tests/baselines/reference/longObjectInstantiationChain2.errors.txt new file mode 100644 index 0000000000000..c6d07b68ddc4d --- /dev/null +++ b/tests/baselines/reference/longObjectInstantiationChain2.errors.txt @@ -0,0 +1,73 @@ +longObjectInstantiationChain2.ts(27,13): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain2.ts(28,13): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain2.ts(47,13): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain2.ts(48,13): error TS2589: Type instantiation is excessively deep and possibly infinite. + + +==== longObjectInstantiationChain2.ts (4 errors) ==== + type merge = Omit & props; + + type Type = { + merge: (r: r) => Type>; + }; + + declare const o1: Type<{ p1: 1 }>; + + const o2 = o1.merge({ p2: 2 }); + const o3 = o2.merge({ p3: 3 }); + const o4 = o3.merge({ p4: 4 }); + const o5 = o4.merge({ p5: 5 }); + const o6 = o5.merge({ p6: 6 }); + const o7 = o6.merge({ p7: 7 }); + const o8 = o7.merge({ p8: 8 }); + const o9 = o8.merge({ p9: 9 }); + const o10 = o9.merge({ p10: 10 }); + const o11 = o10.merge({ p11: 11 }); + const o12 = o11.merge({ p12: 12 }); + const o13 = o12.merge({ p13: 13 }); + const o14 = o13.merge({ p14: 14 }); + const o15 = o14.merge({ p15: 15 }); + const o16 = o15.merge({ p16: 16 }); + const o17 = o16.merge({ p17: 17 }); + const o18 = o17.merge({ p18: 18 }); + const o19 = o18.merge({ p19: 19 }); + const o20 = o19.merge({ p20: 20 }); + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + const o21 = o20.merge({ p21: 21 }); + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + const o22 = o21.merge({ p22: 22 }); + const o23 = o22.merge({ p23: 23 }); + const o24 = o23.merge({ p24: 24 }); + const o25 = o24.merge({ p25: 25 }); + const o26 = o25.merge({ p26: 26 }); + const o27 = o26.merge({ p27: 27 }); + const o28 = o27.merge({ p28: 28 }); + const o29 = o28.merge({ p29: 29 }); + const o30 = o29.merge({ p30: 30 }); + const o31 = o30.merge({ p31: 31 }); + const o32 = o31.merge({ p32: 32 }); + const o33 = o32.merge({ p33: 33 }); + const o34 = o33.merge({ p34: 34 }); + const o35 = o34.merge({ p35: 35 }); + const o36 = o35.merge({ p36: 36 }); + const o37 = o36.merge({ p37: 37 }); + const o38 = o37.merge({ p38: 38 }); + const o39 = o38.merge({ p39: 39 }); + const o40 = o39.merge({ p40: 40 }); + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + const o41 = o40.merge({ p41: 41 }); + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + const o42 = o41.merge({ p42: 42 }); + const o43 = o42.merge({ p43: 43 }); + const o44 = o43.merge({ p44: 44 }); + const o45 = o44.merge({ p45: 45 }); + const o46 = o45.merge({ p46: 46 }); + const o47 = o46.merge({ p47: 47 }); + const o48 = o47.merge({ p48: 48 }); + const o49 = o48.merge({ p49: 49 }); + const o50 = o49.merge({ p50: 50 }); + \ No newline at end of file diff --git a/tests/baselines/reference/longObjectInstantiationChain2.symbols b/tests/baselines/reference/longObjectInstantiationChain2.symbols new file mode 100644 index 0000000000000..44d7480d90887 --- /dev/null +++ b/tests/baselines/reference/longObjectInstantiationChain2.symbols @@ -0,0 +1,377 @@ +//// [tests/cases/compiler/longObjectInstantiationChain2.ts] //// + +=== longObjectInstantiationChain2.ts === +type merge = Omit & props; +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 0, 0)) +>base : Symbol(base, Decl(longObjectInstantiationChain2.ts, 0, 11)) +>props : Symbol(props, Decl(longObjectInstantiationChain2.ts, 0, 16)) +>Omit : Symbol(Omit, Decl(lib.es5.d.ts, --, --)) +>base : Symbol(base, Decl(longObjectInstantiationChain2.ts, 0, 11)) +>props : Symbol(props, Decl(longObjectInstantiationChain2.ts, 0, 16)) +>base : Symbol(base, Decl(longObjectInstantiationChain2.ts, 0, 11)) +>props : Symbol(props, Decl(longObjectInstantiationChain2.ts, 0, 16)) + +type Type = { +>Type : Symbol(Type, Decl(longObjectInstantiationChain2.ts, 0, 71)) +>t : Symbol(t, Decl(longObjectInstantiationChain2.ts, 2, 10)) + + merge: (r: r) => Type>; +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 3, 10), Decl(longObjectInstantiationChain2.ts, 3, 13)) +>r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 3, 10), Decl(longObjectInstantiationChain2.ts, 3, 13)) +>r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 3, 10), Decl(longObjectInstantiationChain2.ts, 3, 13)) +>Type : Symbol(Type, Decl(longObjectInstantiationChain2.ts, 0, 71)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 0, 0)) +>t : Symbol(t, Decl(longObjectInstantiationChain2.ts, 2, 10)) +>r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 3, 10), Decl(longObjectInstantiationChain2.ts, 3, 13)) + +}; + +declare const o1: Type<{ p1: 1 }>; +>o1 : Symbol(o1, Decl(longObjectInstantiationChain2.ts, 6, 13)) +>Type : Symbol(Type, Decl(longObjectInstantiationChain2.ts, 0, 71)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 6, 24)) + +const o2 = o1.merge({ p2: 2 }); +>o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 8, 5)) +>o1.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o1 : Symbol(o1, Decl(longObjectInstantiationChain2.ts, 6, 13)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p2 : Symbol(p2, Decl(longObjectInstantiationChain2.ts, 8, 21)) + +const o3 = o2.merge({ p3: 3 }); +>o3 : Symbol(o3, Decl(longObjectInstantiationChain2.ts, 9, 5)) +>o2.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 8, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p3 : Symbol(p3, Decl(longObjectInstantiationChain2.ts, 9, 21)) + +const o4 = o3.merge({ p4: 4 }); +>o4 : Symbol(o4, Decl(longObjectInstantiationChain2.ts, 10, 5)) +>o3.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o3 : Symbol(o3, Decl(longObjectInstantiationChain2.ts, 9, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p4 : Symbol(p4, Decl(longObjectInstantiationChain2.ts, 10, 21)) + +const o5 = o4.merge({ p5: 5 }); +>o5 : Symbol(o5, Decl(longObjectInstantiationChain2.ts, 11, 5)) +>o4.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o4 : Symbol(o4, Decl(longObjectInstantiationChain2.ts, 10, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p5 : Symbol(p5, Decl(longObjectInstantiationChain2.ts, 11, 21)) + +const o6 = o5.merge({ p6: 6 }); +>o6 : Symbol(o6, Decl(longObjectInstantiationChain2.ts, 12, 5)) +>o5.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o5 : Symbol(o5, Decl(longObjectInstantiationChain2.ts, 11, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p6 : Symbol(p6, Decl(longObjectInstantiationChain2.ts, 12, 21)) + +const o7 = o6.merge({ p7: 7 }); +>o7 : Symbol(o7, Decl(longObjectInstantiationChain2.ts, 13, 5)) +>o6.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o6 : Symbol(o6, Decl(longObjectInstantiationChain2.ts, 12, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p7 : Symbol(p7, Decl(longObjectInstantiationChain2.ts, 13, 21)) + +const o8 = o7.merge({ p8: 8 }); +>o8 : Symbol(o8, Decl(longObjectInstantiationChain2.ts, 14, 5)) +>o7.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o7 : Symbol(o7, Decl(longObjectInstantiationChain2.ts, 13, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p8 : Symbol(p8, Decl(longObjectInstantiationChain2.ts, 14, 21)) + +const o9 = o8.merge({ p9: 9 }); +>o9 : Symbol(o9, Decl(longObjectInstantiationChain2.ts, 15, 5)) +>o8.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o8 : Symbol(o8, Decl(longObjectInstantiationChain2.ts, 14, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p9 : Symbol(p9, Decl(longObjectInstantiationChain2.ts, 15, 21)) + +const o10 = o9.merge({ p10: 10 }); +>o10 : Symbol(o10, Decl(longObjectInstantiationChain2.ts, 16, 5)) +>o9.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o9 : Symbol(o9, Decl(longObjectInstantiationChain2.ts, 15, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p10 : Symbol(p10, Decl(longObjectInstantiationChain2.ts, 16, 22)) + +const o11 = o10.merge({ p11: 11 }); +>o11 : Symbol(o11, Decl(longObjectInstantiationChain2.ts, 17, 5)) +>o10.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o10 : Symbol(o10, Decl(longObjectInstantiationChain2.ts, 16, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p11 : Symbol(p11, Decl(longObjectInstantiationChain2.ts, 17, 23)) + +const o12 = o11.merge({ p12: 12 }); +>o12 : Symbol(o12, Decl(longObjectInstantiationChain2.ts, 18, 5)) +>o11.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o11 : Symbol(o11, Decl(longObjectInstantiationChain2.ts, 17, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p12 : Symbol(p12, Decl(longObjectInstantiationChain2.ts, 18, 23)) + +const o13 = o12.merge({ p13: 13 }); +>o13 : Symbol(o13, Decl(longObjectInstantiationChain2.ts, 19, 5)) +>o12.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o12 : Symbol(o12, Decl(longObjectInstantiationChain2.ts, 18, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p13 : Symbol(p13, Decl(longObjectInstantiationChain2.ts, 19, 23)) + +const o14 = o13.merge({ p14: 14 }); +>o14 : Symbol(o14, Decl(longObjectInstantiationChain2.ts, 20, 5)) +>o13.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o13 : Symbol(o13, Decl(longObjectInstantiationChain2.ts, 19, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p14 : Symbol(p14, Decl(longObjectInstantiationChain2.ts, 20, 23)) + +const o15 = o14.merge({ p15: 15 }); +>o15 : Symbol(o15, Decl(longObjectInstantiationChain2.ts, 21, 5)) +>o14.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o14 : Symbol(o14, Decl(longObjectInstantiationChain2.ts, 20, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p15 : Symbol(p15, Decl(longObjectInstantiationChain2.ts, 21, 23)) + +const o16 = o15.merge({ p16: 16 }); +>o16 : Symbol(o16, Decl(longObjectInstantiationChain2.ts, 22, 5)) +>o15.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o15 : Symbol(o15, Decl(longObjectInstantiationChain2.ts, 21, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p16 : Symbol(p16, Decl(longObjectInstantiationChain2.ts, 22, 23)) + +const o17 = o16.merge({ p17: 17 }); +>o17 : Symbol(o17, Decl(longObjectInstantiationChain2.ts, 23, 5)) +>o16.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o16 : Symbol(o16, Decl(longObjectInstantiationChain2.ts, 22, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p17 : Symbol(p17, Decl(longObjectInstantiationChain2.ts, 23, 23)) + +const o18 = o17.merge({ p18: 18 }); +>o18 : Symbol(o18, Decl(longObjectInstantiationChain2.ts, 24, 5)) +>o17.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o17 : Symbol(o17, Decl(longObjectInstantiationChain2.ts, 23, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p18 : Symbol(p18, Decl(longObjectInstantiationChain2.ts, 24, 23)) + +const o19 = o18.merge({ p19: 19 }); +>o19 : Symbol(o19, Decl(longObjectInstantiationChain2.ts, 25, 5)) +>o18.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o18 : Symbol(o18, Decl(longObjectInstantiationChain2.ts, 24, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p19 : Symbol(p19, Decl(longObjectInstantiationChain2.ts, 25, 23)) + +const o20 = o19.merge({ p20: 20 }); +>o20 : Symbol(o20, Decl(longObjectInstantiationChain2.ts, 26, 5)) +>o19.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o19 : Symbol(o19, Decl(longObjectInstantiationChain2.ts, 25, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p20 : Symbol(p20, Decl(longObjectInstantiationChain2.ts, 26, 23)) + +const o21 = o20.merge({ p21: 21 }); +>o21 : Symbol(o21, Decl(longObjectInstantiationChain2.ts, 27, 5)) +>o20.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o20 : Symbol(o20, Decl(longObjectInstantiationChain2.ts, 26, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p21 : Symbol(p21, Decl(longObjectInstantiationChain2.ts, 27, 23)) + +const o22 = o21.merge({ p22: 22 }); +>o22 : Symbol(o22, Decl(longObjectInstantiationChain2.ts, 28, 5)) +>o21.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o21 : Symbol(o21, Decl(longObjectInstantiationChain2.ts, 27, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p22 : Symbol(p22, Decl(longObjectInstantiationChain2.ts, 28, 23)) + +const o23 = o22.merge({ p23: 23 }); +>o23 : Symbol(o23, Decl(longObjectInstantiationChain2.ts, 29, 5)) +>o22.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o22 : Symbol(o22, Decl(longObjectInstantiationChain2.ts, 28, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p23 : Symbol(p23, Decl(longObjectInstantiationChain2.ts, 29, 23)) + +const o24 = o23.merge({ p24: 24 }); +>o24 : Symbol(o24, Decl(longObjectInstantiationChain2.ts, 30, 5)) +>o23.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o23 : Symbol(o23, Decl(longObjectInstantiationChain2.ts, 29, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p24 : Symbol(p24, Decl(longObjectInstantiationChain2.ts, 30, 23)) + +const o25 = o24.merge({ p25: 25 }); +>o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 31, 5)) +>o24.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o24 : Symbol(o24, Decl(longObjectInstantiationChain2.ts, 30, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p25 : Symbol(p25, Decl(longObjectInstantiationChain2.ts, 31, 23)) + +const o26 = o25.merge({ p26: 26 }); +>o26 : Symbol(o26, Decl(longObjectInstantiationChain2.ts, 32, 5)) +>o25.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 31, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p26 : Symbol(p26, Decl(longObjectInstantiationChain2.ts, 32, 23)) + +const o27 = o26.merge({ p27: 27 }); +>o27 : Symbol(o27, Decl(longObjectInstantiationChain2.ts, 33, 5)) +>o26.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o26 : Symbol(o26, Decl(longObjectInstantiationChain2.ts, 32, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p27 : Symbol(p27, Decl(longObjectInstantiationChain2.ts, 33, 23)) + +const o28 = o27.merge({ p28: 28 }); +>o28 : Symbol(o28, Decl(longObjectInstantiationChain2.ts, 34, 5)) +>o27.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o27 : Symbol(o27, Decl(longObjectInstantiationChain2.ts, 33, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p28 : Symbol(p28, Decl(longObjectInstantiationChain2.ts, 34, 23)) + +const o29 = o28.merge({ p29: 29 }); +>o29 : Symbol(o29, Decl(longObjectInstantiationChain2.ts, 35, 5)) +>o28.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o28 : Symbol(o28, Decl(longObjectInstantiationChain2.ts, 34, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p29 : Symbol(p29, Decl(longObjectInstantiationChain2.ts, 35, 23)) + +const o30 = o29.merge({ p30: 30 }); +>o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 36, 5)) +>o29.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o29 : Symbol(o29, Decl(longObjectInstantiationChain2.ts, 35, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p30 : Symbol(p30, Decl(longObjectInstantiationChain2.ts, 36, 23)) + +const o31 = o30.merge({ p31: 31 }); +>o31 : Symbol(o31, Decl(longObjectInstantiationChain2.ts, 37, 5)) +>o30.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 36, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p31 : Symbol(p31, Decl(longObjectInstantiationChain2.ts, 37, 23)) + +const o32 = o31.merge({ p32: 32 }); +>o32 : Symbol(o32, Decl(longObjectInstantiationChain2.ts, 38, 5)) +>o31.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o31 : Symbol(o31, Decl(longObjectInstantiationChain2.ts, 37, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p32 : Symbol(p32, Decl(longObjectInstantiationChain2.ts, 38, 23)) + +const o33 = o32.merge({ p33: 33 }); +>o33 : Symbol(o33, Decl(longObjectInstantiationChain2.ts, 39, 5)) +>o32.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o32 : Symbol(o32, Decl(longObjectInstantiationChain2.ts, 38, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p33 : Symbol(p33, Decl(longObjectInstantiationChain2.ts, 39, 23)) + +const o34 = o33.merge({ p34: 34 }); +>o34 : Symbol(o34, Decl(longObjectInstantiationChain2.ts, 40, 5)) +>o33.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o33 : Symbol(o33, Decl(longObjectInstantiationChain2.ts, 39, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p34 : Symbol(p34, Decl(longObjectInstantiationChain2.ts, 40, 23)) + +const o35 = o34.merge({ p35: 35 }); +>o35 : Symbol(o35, Decl(longObjectInstantiationChain2.ts, 41, 5)) +>o34.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o34 : Symbol(o34, Decl(longObjectInstantiationChain2.ts, 40, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p35 : Symbol(p35, Decl(longObjectInstantiationChain2.ts, 41, 23)) + +const o36 = o35.merge({ p36: 36 }); +>o36 : Symbol(o36, Decl(longObjectInstantiationChain2.ts, 42, 5)) +>o35.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o35 : Symbol(o35, Decl(longObjectInstantiationChain2.ts, 41, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p36 : Symbol(p36, Decl(longObjectInstantiationChain2.ts, 42, 23)) + +const o37 = o36.merge({ p37: 37 }); +>o37 : Symbol(o37, Decl(longObjectInstantiationChain2.ts, 43, 5)) +>o36.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o36 : Symbol(o36, Decl(longObjectInstantiationChain2.ts, 42, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p37 : Symbol(p37, Decl(longObjectInstantiationChain2.ts, 43, 23)) + +const o38 = o37.merge({ p38: 38 }); +>o38 : Symbol(o38, Decl(longObjectInstantiationChain2.ts, 44, 5)) +>o37.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o37 : Symbol(o37, Decl(longObjectInstantiationChain2.ts, 43, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p38 : Symbol(p38, Decl(longObjectInstantiationChain2.ts, 44, 23)) + +const o39 = o38.merge({ p39: 39 }); +>o39 : Symbol(o39, Decl(longObjectInstantiationChain2.ts, 45, 5)) +>o38.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o38 : Symbol(o38, Decl(longObjectInstantiationChain2.ts, 44, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p39 : Symbol(p39, Decl(longObjectInstantiationChain2.ts, 45, 23)) + +const o40 = o39.merge({ p40: 40 }); +>o40 : Symbol(o40, Decl(longObjectInstantiationChain2.ts, 46, 5)) +>o39.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o39 : Symbol(o39, Decl(longObjectInstantiationChain2.ts, 45, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p40 : Symbol(p40, Decl(longObjectInstantiationChain2.ts, 46, 23)) + +const o41 = o40.merge({ p41: 41 }); +>o41 : Symbol(o41, Decl(longObjectInstantiationChain2.ts, 47, 5)) +>o40.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o40 : Symbol(o40, Decl(longObjectInstantiationChain2.ts, 46, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p41 : Symbol(p41, Decl(longObjectInstantiationChain2.ts, 47, 23)) + +const o42 = o41.merge({ p42: 42 }); +>o42 : Symbol(o42, Decl(longObjectInstantiationChain2.ts, 48, 5)) +>o41.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o41 : Symbol(o41, Decl(longObjectInstantiationChain2.ts, 47, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p42 : Symbol(p42, Decl(longObjectInstantiationChain2.ts, 48, 23)) + +const o43 = o42.merge({ p43: 43 }); +>o43 : Symbol(o43, Decl(longObjectInstantiationChain2.ts, 49, 5)) +>o42.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o42 : Symbol(o42, Decl(longObjectInstantiationChain2.ts, 48, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p43 : Symbol(p43, Decl(longObjectInstantiationChain2.ts, 49, 23)) + +const o44 = o43.merge({ p44: 44 }); +>o44 : Symbol(o44, Decl(longObjectInstantiationChain2.ts, 50, 5)) +>o43.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o43 : Symbol(o43, Decl(longObjectInstantiationChain2.ts, 49, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p44 : Symbol(p44, Decl(longObjectInstantiationChain2.ts, 50, 23)) + +const o45 = o44.merge({ p45: 45 }); +>o45 : Symbol(o45, Decl(longObjectInstantiationChain2.ts, 51, 5)) +>o44.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o44 : Symbol(o44, Decl(longObjectInstantiationChain2.ts, 50, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p45 : Symbol(p45, Decl(longObjectInstantiationChain2.ts, 51, 23)) + +const o46 = o45.merge({ p46: 46 }); +>o46 : Symbol(o46, Decl(longObjectInstantiationChain2.ts, 52, 5)) +>o45.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o45 : Symbol(o45, Decl(longObjectInstantiationChain2.ts, 51, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p46 : Symbol(p46, Decl(longObjectInstantiationChain2.ts, 52, 23)) + +const o47 = o46.merge({ p47: 47 }); +>o47 : Symbol(o47, Decl(longObjectInstantiationChain2.ts, 53, 5)) +>o46.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o46 : Symbol(o46, Decl(longObjectInstantiationChain2.ts, 52, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p47 : Symbol(p47, Decl(longObjectInstantiationChain2.ts, 53, 23)) + +const o48 = o47.merge({ p48: 48 }); +>o48 : Symbol(o48, Decl(longObjectInstantiationChain2.ts, 54, 5)) +>o47.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o47 : Symbol(o47, Decl(longObjectInstantiationChain2.ts, 53, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p48 : Symbol(p48, Decl(longObjectInstantiationChain2.ts, 54, 23)) + +const o49 = o48.merge({ p49: 49 }); +>o49 : Symbol(o49, Decl(longObjectInstantiationChain2.ts, 55, 5)) +>o48.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o48 : Symbol(o48, Decl(longObjectInstantiationChain2.ts, 54, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p49 : Symbol(p49, Decl(longObjectInstantiationChain2.ts, 55, 23)) + +const o50 = o49.merge({ p50: 50 }); +>o50 : Symbol(o50, Decl(longObjectInstantiationChain2.ts, 56, 5)) +>o49.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o49 : Symbol(o49, Decl(longObjectInstantiationChain2.ts, 55, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p50 : Symbol(p50, Decl(longObjectInstantiationChain2.ts, 56, 23)) + diff --git a/tests/baselines/reference/longObjectInstantiationChain2.types b/tests/baselines/reference/longObjectInstantiationChain2.types new file mode 100644 index 0000000000000..a8f99ae353972 --- /dev/null +++ b/tests/baselines/reference/longObjectInstantiationChain2.types @@ -0,0 +1,912 @@ +//// [tests/cases/compiler/longObjectInstantiationChain2.ts] //// + +=== Performance Stats === +Assignability cache: 50 -> 2,500 +Type Count: 2,500 +Instantiation count: 25,000,000 + +=== longObjectInstantiationChain2.ts === +type merge = Omit & props; +>merge : merge +> : ^^^^^^^^^^^^^^^^^^ + +type Type = { +>Type : Type +> : ^^^^^^^ + + merge: (r: r) => Type>; +>merge : (r: r) => Type> +> : ^ ^^ ^^ ^^^^^ +>r : r +> : ^ + +}; + +declare const o1: Type<{ p1: 1 }>; +>o1 : Type<{ p1: 1; }> +> : ^^^^^^^^^^^ ^^^^ +>p1 : 1 +> : ^ + +const o2 = o1.merge({ p2: 2 }); +>o2 : Type> +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>o1.merge({ p2: 2 }) : Type> +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>o1.merge : (r: r_1) => Type> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +>o1 : Type<{ p1: 1; }> +> : ^^^^^^^^^^^ ^^^^ +>merge : (r: r_1) => Type> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +>{ p2: 2 } : { p2: number; } +> : ^^^^^^^^^^^^^^^ +>p2 : number +> : ^^^^^^ +>2 : 2 +> : ^ + +const o3 = o2.merge({ p3: 3 }); +>o3 : Type, { p3: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o2.merge({ p3: 3 }) : Type, { p3: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o2.merge : (r: r_1) => Type, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o2 : Type> +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p3: 3 } : { p3: number; } +> : ^^^^^^^^^^^^^^^ +>p3 : number +> : ^^^^^^ +>3 : 3 +> : ^ + +const o4 = o3.merge({ p4: 4 }); +>o4 : Type, { p3: number; }>, { p4: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o3.merge({ p4: 4 }) : Type, { p3: number; }>, { p4: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o3.merge : (r: r_1) => Type, { p3: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o3 : Type, { p3: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p4: 4 } : { p4: number; } +> : ^^^^^^^^^^^^^^^ +>p4 : number +> : ^^^^^^ +>4 : 4 +> : ^ + +const o5 = o4.merge({ p5: 5 }); +>o5 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o4.merge({ p5: 5 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o4.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o4 : Type, { p3: number; }>, { p4: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p5: 5 } : { p5: number; } +> : ^^^^^^^^^^^^^^^ +>p5 : number +> : ^^^^^^ +>5 : 5 +> : ^ + +const o6 = o5.merge({ p6: 6 }); +>o6 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o5.merge({ p6: 6 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o5.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o5 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p6: 6 } : { p6: number; } +> : ^^^^^^^^^^^^^^^ +>p6 : number +> : ^^^^^^ +>6 : 6 +> : ^ + +const o7 = o6.merge({ p7: 7 }); +>o7 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o6.merge({ p7: 7 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o6.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o6 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p7: 7 } : { p7: number; } +> : ^^^^^^^^^^^^^^^ +>p7 : number +> : ^^^^^^ +>7 : 7 +> : ^ + +const o8 = o7.merge({ p8: 8 }); +>o8 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o7.merge({ p8: 8 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o7.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o7 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p8: 8 } : { p8: number; } +> : ^^^^^^^^^^^^^^^ +>p8 : number +> : ^^^^^^ +>8 : 8 +> : ^ + +const o9 = o8.merge({ p9: 9 }); +>o9 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o8.merge({ p9: 9 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o8.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o8 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p9: 9 } : { p9: number; } +> : ^^^^^^^^^^^^^^^ +>p9 : number +> : ^^^^^^ +>9 : 9 +> : ^ + +const o10 = o9.merge({ p10: 10 }); +>o10 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o9.merge({ p10: 10 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o9.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o9 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p10: 10 } : { p10: number; } +> : ^^^^^^^^^^^^^^^^ +>p10 : number +> : ^^^^^^ +>10 : 10 +> : ^^ + +const o11 = o10.merge({ p11: 11 }); +>o11 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o10.merge({ p11: 11 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o10.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o10 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p11: 11 } : { p11: number; } +> : ^^^^^^^^^^^^^^^^ +>p11 : number +> : ^^^^^^ +>11 : 11 +> : ^^ + +const o12 = o11.merge({ p12: 12 }); +>o12 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o11.merge({ p12: 12 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o11.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o11 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p12: 12 } : { p12: number; } +> : ^^^^^^^^^^^^^^^^ +>p12 : number +> : ^^^^^^ +>12 : 12 +> : ^^ + +const o13 = o12.merge({ p13: 13 }); +>o13 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o12.merge({ p13: 13 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o12.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o12 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p13: 13 } : { p13: number; } +> : ^^^^^^^^^^^^^^^^ +>p13 : number +> : ^^^^^^ +>13 : 13 +> : ^^ + +const o14 = o13.merge({ p14: 14 }); +>o14 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o13.merge({ p14: 14 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o13.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o13 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p14: 14 } : { p14: number; } +> : ^^^^^^^^^^^^^^^^ +>p14 : number +> : ^^^^^^ +>14 : 14 +> : ^^ + +const o15 = o14.merge({ p15: 15 }); +>o15 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o14.merge({ p15: 15 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o14.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o14 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p15: 15 } : { p15: number; } +> : ^^^^^^^^^^^^^^^^ +>p15 : number +> : ^^^^^^ +>15 : 15 +> : ^^ + +const o16 = o15.merge({ p16: 16 }); +>o16 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o15.merge({ p16: 16 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o15.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o15 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p16: 16 } : { p16: number; } +> : ^^^^^^^^^^^^^^^^ +>p16 : number +> : ^^^^^^ +>16 : 16 +> : ^^ + +const o17 = o16.merge({ p17: 17 }); +>o17 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o16.merge({ p17: 17 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o16.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o16 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p17: 17 } : { p17: number; } +> : ^^^^^^^^^^^^^^^^ +>p17 : number +> : ^^^^^^ +>17 : 17 +> : ^^ + +const o18 = o17.merge({ p18: 18 }); +>o18 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o17.merge({ p18: 18 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o17.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o17 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p18: 18 } : { p18: number; } +> : ^^^^^^^^^^^^^^^^ +>p18 : number +> : ^^^^^^ +>18 : 18 +> : ^^ + +const o19 = o18.merge({ p19: 19 }); +>o19 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o18.merge({ p19: 19 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o18.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o18 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p19: 19 } : { p19: number; } +> : ^^^^^^^^^^^^^^^^ +>p19 : number +> : ^^^^^^ +>19 : 19 +> : ^^ + +const o20 = o19.merge({ p20: 20 }); +>o20 : Type +> : ^^^^^^^^^ +>o19.merge({ p20: 20 }) : Type +> : ^^^^^^^^^ +>o19.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o19 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p20: 20 } : { p20: number; } +> : ^^^^^^^^^^^^^^^^ +>p20 : number +> : ^^^^^^ +>20 : 20 +> : ^^ + +const o21 = o20.merge({ p21: 21 }); +>o21 : Type +> : ^^^^^^^^^ +>o20.merge({ p21: 21 }) : Type +> : ^^^^^^^^^ +>o20.merge : (r: r_1) => Type, any>, any>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o20 : Type +> : ^^^^^^^^^ +>merge : (r: r_1) => Type, any>, any>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p21: 21 } : { p21: number; } +> : ^^^^^^^^^^^^^^^^ +>p21 : number +> : ^^^^^^ +>21 : 21 +> : ^^ + +const o22 = o21.merge({ p22: 22 }); +>o22 : Type> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21.merge({ p22: 22 }) : Type> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21.merge : (r: r_1) => Type> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21 : Type +> : ^^^^^^^^^ +>merge : (r: r_1) => Type> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p22: 22 } : { p22: number; } +> : ^^^^^^^^^^^^^^^^ +>p22 : number +> : ^^^^^^ +>22 : 22 +> : ^^ + +const o23 = o22.merge({ p23: 23 }); +>o23 : Type, { p23: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22.merge({ p23: 23 }) : Type, { p23: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22.merge : (r: r_1) => Type, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22 : Type> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p23: 23 } : { p23: number; } +> : ^^^^^^^^^^^^^^^^ +>p23 : number +> : ^^^^^^ +>23 : 23 +> : ^^ + +const o24 = o23.merge({ p24: 24 }); +>o24 : Type, { p23: number; }>, { p24: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23.merge({ p24: 24 }) : Type, { p23: number; }>, { p24: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23.merge : (r: r_1) => Type, { p23: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23 : Type, { p23: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p24: 24 } : { p24: number; } +> : ^^^^^^^^^^^^^^^^ +>p24 : number +> : ^^^^^^ +>24 : 24 +> : ^^ + +const o25 = o24.merge({ p25: 25 }); +>o25 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24.merge({ p25: 25 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24 : Type, { p23: number; }>, { p24: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p25: 25 } : { p25: number; } +> : ^^^^^^^^^^^^^^^^ +>p25 : number +> : ^^^^^^ +>25 : 25 +> : ^^ + +const o26 = o25.merge({ p26: 26 }); +>o26 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25.merge({ p26: 26 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p26: 26 } : { p26: number; } +> : ^^^^^^^^^^^^^^^^ +>p26 : number +> : ^^^^^^ +>26 : 26 +> : ^^ + +const o27 = o26.merge({ p27: 27 }); +>o27 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26.merge({ p27: 27 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p27: 27 } : { p27: number; } +> : ^^^^^^^^^^^^^^^^ +>p27 : number +> : ^^^^^^ +>27 : 27 +> : ^^ + +const o28 = o27.merge({ p28: 28 }); +>o28 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27.merge({ p28: 28 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p28: 28 } : { p28: number; } +> : ^^^^^^^^^^^^^^^^ +>p28 : number +> : ^^^^^^ +>28 : 28 +> : ^^ + +const o29 = o28.merge({ p29: 29 }); +>o29 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28.merge({ p29: 29 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p29: 29 } : { p29: number; } +> : ^^^^^^^^^^^^^^^^ +>p29 : number +> : ^^^^^^ +>29 : 29 +> : ^^ + +const o30 = o29.merge({ p30: 30 }); +>o30 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29.merge({ p30: 30 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p30: 30 } : { p30: number; } +> : ^^^^^^^^^^^^^^^^ +>p30 : number +> : ^^^^^^ +>30 : 30 +> : ^^ + +const o31 = o30.merge({ p31: 31 }); +>o31 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30.merge({ p31: 31 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p31: 31 } : { p31: number; } +> : ^^^^^^^^^^^^^^^^ +>p31 : number +> : ^^^^^^ +>31 : 31 +> : ^^ + +const o32 = o31.merge({ p32: 32 }); +>o32 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31.merge({ p32: 32 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p32: 32 } : { p32: number; } +> : ^^^^^^^^^^^^^^^^ +>p32 : number +> : ^^^^^^ +>32 : 32 +> : ^^ + +const o33 = o32.merge({ p33: 33 }); +>o33 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32.merge({ p33: 33 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p33: 33 } : { p33: number; } +> : ^^^^^^^^^^^^^^^^ +>p33 : number +> : ^^^^^^ +>33 : 33 +> : ^^ + +const o34 = o33.merge({ p34: 34 }); +>o34 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33.merge({ p34: 34 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p34: 34 } : { p34: number; } +> : ^^^^^^^^^^^^^^^^ +>p34 : number +> : ^^^^^^ +>34 : 34 +> : ^^ + +const o35 = o34.merge({ p35: 35 }); +>o35 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34.merge({ p35: 35 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p35: 35 } : { p35: number; } +> : ^^^^^^^^^^^^^^^^ +>p35 : number +> : ^^^^^^ +>35 : 35 +> : ^^ + +const o36 = o35.merge({ p36: 36 }); +>o36 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35.merge({ p36: 36 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p36: 36 } : { p36: number; } +> : ^^^^^^^^^^^^^^^^ +>p36 : number +> : ^^^^^^ +>36 : 36 +> : ^^ + +const o37 = o36.merge({ p37: 37 }); +>o37 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36.merge({ p37: 37 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p37: 37 } : { p37: number; } +> : ^^^^^^^^^^^^^^^^ +>p37 : number +> : ^^^^^^ +>37 : 37 +> : ^^ + +const o38 = o37.merge({ p38: 38 }); +>o38 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37.merge({ p38: 38 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p38: 38 } : { p38: number; } +> : ^^^^^^^^^^^^^^^^ +>p38 : number +> : ^^^^^^ +>38 : 38 +> : ^^ + +const o39 = o38.merge({ p39: 39 }); +>o39 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38.merge({ p39: 39 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p39: 39 } : { p39: number; } +> : ^^^^^^^^^^^^^^^^ +>p39 : number +> : ^^^^^^ +>39 : 39 +> : ^^ + +const o40 = o39.merge({ p40: 40 }); +>o40 : Type> +> : ^^^^^^^^^^^^^^^^^^^^^ +>o39.merge({ p40: 40 }) : Type> +> : ^^^^^^^^^^^^^^^^^^^^^ +>o39.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o39 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p40: 40 } : { p40: number; } +> : ^^^^^^^^^^^^^^^^ +>p40 : number +> : ^^^^^^ +>40 : 40 +> : ^^ + +const o41 = o40.merge({ p41: 41 }); +>o41 : Type +> : ^^^^^^^^^ +>o40.merge({ p41: 41 }) : Type +> : ^^^^^^^^^ +>o40.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o40 : Type> +> : ^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p41: 41 } : { p41: number; } +> : ^^^^^^^^^^^^^^^^ +>p41 : number +> : ^^^^^^ +>41 : 41 +> : ^^ + +const o42 = o41.merge({ p42: 42 }); +>o42 : Type> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o41.merge({ p42: 42 }) : Type> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o41.merge : (r: r_1) => Type> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o41 : Type +> : ^^^^^^^^^ +>merge : (r: r_1) => Type> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p42: 42 } : { p42: number; } +> : ^^^^^^^^^^^^^^^^ +>p42 : number +> : ^^^^^^ +>42 : 42 +> : ^^ + +const o43 = o42.merge({ p43: 43 }); +>o43 : Type, { p43: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42.merge({ p43: 43 }) : Type, { p43: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42.merge : (r: r_1) => Type, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42 : Type> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p43: 43 } : { p43: number; } +> : ^^^^^^^^^^^^^^^^ +>p43 : number +> : ^^^^^^ +>43 : 43 +> : ^^ + +const o44 = o43.merge({ p44: 44 }); +>o44 : Type, { p43: number; }>, { p44: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43.merge({ p44: 44 }) : Type, { p43: number; }>, { p44: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43.merge : (r: r_1) => Type, { p43: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43 : Type, { p43: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p43: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p44: 44 } : { p44: number; } +> : ^^^^^^^^^^^^^^^^ +>p44 : number +> : ^^^^^^ +>44 : 44 +> : ^^ + +const o45 = o44.merge({ p45: 45 }); +>o45 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44.merge({ p45: 45 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44 : Type, { p43: number; }>, { p44: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p45: 45 } : { p45: number; } +> : ^^^^^^^^^^^^^^^^ +>p45 : number +> : ^^^^^^ +>45 : 45 +> : ^^ + +const o46 = o45.merge({ p46: 46 }); +>o46 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45.merge({ p46: 46 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p46: 46 } : { p46: number; } +> : ^^^^^^^^^^^^^^^^ +>p46 : number +> : ^^^^^^ +>46 : 46 +> : ^^ + +const o47 = o46.merge({ p47: 47 }); +>o47 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46.merge({ p47: 47 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p47: 47 } : { p47: number; } +> : ^^^^^^^^^^^^^^^^ +>p47 : number +> : ^^^^^^ +>47 : 47 +> : ^^ + +const o48 = o47.merge({ p48: 48 }); +>o48 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47.merge({ p48: 48 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p48: 48 } : { p48: number; } +> : ^^^^^^^^^^^^^^^^ +>p48 : number +> : ^^^^^^ +>48 : 48 +> : ^^ + +const o49 = o48.merge({ p49: 49 }); +>o49 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48.merge({ p49: 49 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p49: 49 } : { p49: number; } +> : ^^^^^^^^^^^^^^^^ +>p49 : number +> : ^^^^^^ +>49 : 49 +> : ^^ + +const o50 = o49.merge({ p50: 50 }); +>o50 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49.merge({ p50: 50 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p50: 50 } : { p50: number; } +> : ^^^^^^^^^^^^^^^^ +>p50 : number +> : ^^^^^^ +>50 : 50 +> : ^^ + diff --git a/tests/baselines/reference/multiline.types b/tests/baselines/reference/multiline.types index 79ec14021b444..9034cb10624ab 100644 --- a/tests/baselines/reference/multiline.types +++ b/tests/baselines/reference/multiline.types @@ -2,7 +2,6 @@ === Performance Stats === Type Count: 2,500 -Instantiation count: 2,500 === a.ts === export const texts: string[] = []; diff --git a/tests/baselines/reference/reactHOCSpreadprops.types b/tests/baselines/reference/reactHOCSpreadprops.types index 8a50e112749d3..a7fb1094c1580 100644 --- a/tests/baselines/reference/reactHOCSpreadprops.types +++ b/tests/baselines/reference/reactHOCSpreadprops.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === reactHOCSpreadprops.tsx === diff --git a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types index 2da91a602779a..d1e78014fb51f 100644 --- a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types +++ b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === reactReadonlyHOCAssignabilityReal.tsx === diff --git a/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types b/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types index f2678d05d4294..c078dee14317f 100644 --- a/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types +++ b/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === returnTypePredicateIsInstantiateInContextOfTarget.tsx === diff --git a/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types b/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types index 4aebbfa368533..9ab0659bad7a1 100644 --- a/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types +++ b/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 10,000 Type Count: 25,000 -Instantiation count: 250,000 -> 500,000 +Instantiation count: 250,000 Symbol count: 100,000 === styledComponentsInstantiaionLimitNotReached.ts === diff --git a/tests/baselines/reference/tsxInvokeComponentType.types b/tests/baselines/reference/tsxInvokeComponentType.types index 17efa7d6c9f68..a48c21e2c7bd0 100644 --- a/tests/baselines/reference/tsxInvokeComponentType.types +++ b/tests/baselines/reference/tsxInvokeComponentType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxInvokeComponentType.tsx === diff --git a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types index 9175a0cc67294..2b7d4d8853f52 100644 --- a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types +++ b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxNotUsingApparentTypeOfSFC.tsx === diff --git a/tests/baselines/reference/tsxResolveExternalModuleExportsTypes.types b/tests/baselines/reference/tsxResolveExternalModuleExportsTypes.types index 3c3639a91fc87..6b4848bdb665f 100644 --- a/tests/baselines/reference/tsxResolveExternalModuleExportsTypes.types +++ b/tests/baselines/reference/tsxResolveExternalModuleExportsTypes.types @@ -2,7 +2,6 @@ === Performance Stats === Type Count: 2,500 -Instantiation count: 1,000 === /node_modules/@types/a/index.d.ts === declare var a: a.Foo; diff --git a/tests/baselines/reference/tsxStatelessComponentDefaultProps.types b/tests/baselines/reference/tsxStatelessComponentDefaultProps.types index 161044525809c..53f498c7d6cc2 100644 --- a/tests/baselines/reference/tsxStatelessComponentDefaultProps.types +++ b/tests/baselines/reference/tsxStatelessComponentDefaultProps.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxStatelessComponentDefaultProps.tsx === diff --git a/tests/baselines/reference/typeAliasInstantiationNoLeak1.symbols b/tests/baselines/reference/typeAliasInstantiationNoLeak1.symbols new file mode 100644 index 0000000000000..1aa1603ae417e --- /dev/null +++ b/tests/baselines/reference/typeAliasInstantiationNoLeak1.symbols @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/typeAliasInstantiationNoLeak1.ts] //// + +=== typeAliasInstantiationNoLeak1.ts === +type Foo = T | string | number; +>Foo : Symbol(Foo, Decl(typeAliasInstantiationNoLeak1.ts, 0, 0)) +>T : Symbol(T, Decl(typeAliasInstantiationNoLeak1.ts, 0, 9)) +>T : Symbol(T, Decl(typeAliasInstantiationNoLeak1.ts, 0, 9)) + +type Bar = Foo | undefined; +>Bar : Symbol(Bar, Decl(typeAliasInstantiationNoLeak1.ts, 0, 34)) +>T : Symbol(T, Decl(typeAliasInstantiationNoLeak1.ts, 1, 9)) +>Foo : Symbol(Foo, Decl(typeAliasInstantiationNoLeak1.ts, 0, 0)) +>T : Symbol(T, Decl(typeAliasInstantiationNoLeak1.ts, 1, 9)) + +declare let x1: Bar<"a">; +>x1 : Symbol(x1, Decl(typeAliasInstantiationNoLeak1.ts, 3, 11)) +>Bar : Symbol(Bar, Decl(typeAliasInstantiationNoLeak1.ts, 0, 34)) + +declare let x2: Bar<"b">; +>x2 : Symbol(x2, Decl(typeAliasInstantiationNoLeak1.ts, 4, 11)) +>Bar : Symbol(Bar, Decl(typeAliasInstantiationNoLeak1.ts, 0, 34)) + diff --git a/tests/baselines/reference/typeAliasInstantiationNoLeak1.types b/tests/baselines/reference/typeAliasInstantiationNoLeak1.types new file mode 100644 index 0000000000000..5bbb30728cf0a --- /dev/null +++ b/tests/baselines/reference/typeAliasInstantiationNoLeak1.types @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/typeAliasInstantiationNoLeak1.ts] //// + +=== typeAliasInstantiationNoLeak1.ts === +type Foo = T | string | number; +>Foo : Foo +> : ^^^^^^ + +type Bar = Foo | undefined; +>Bar : Bar +> : ^^^^^^ + +declare let x1: Bar<"a">; +>x1 : Bar<"a"> +> : ^^^^^^^^ + +declare let x2: Bar<"b">; +>x2 : Bar<"b"> +> : ^^^^^^^^ + diff --git a/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types b/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types index a62330af4055b..94fdcef1a8b73 100644 --- a/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types +++ b/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 50,000 Symbol count: 50,000 === typeInferenceWithExcessPropertiesJsx.tsx === diff --git a/tests/cases/compiler/longObjectInstantiationChain1.ts b/tests/cases/compiler/longObjectInstantiationChain1.ts new file mode 100644 index 0000000000000..98fe03b13d351 --- /dev/null +++ b/tests/cases/compiler/longObjectInstantiationChain1.ts @@ -0,0 +1,57 @@ +// @strict: true +// @noEmit: true + +export type merge = Omit & props; + +declare const merge: (l: l, r: r) => merge; + +const o1 = merge({ p1: 1 }, { p2: 2 }); +const o2 = merge(o1, { p3: 3 }); +const o3 = merge(o2, { p4: 4 }); +const o4 = merge(o3, { p5: 5 }); +const o5 = merge(o4, { p6: 6 }); +const o6 = merge(o5, { p7: 7 }); +const o7 = merge(o6, { p8: 8 }); +const o8 = merge(o7, { p9: 9 }); +const o9 = merge(o8, { p10: 10 }); +const o10 = merge(o9, { p11: 11 }); +const o11 = merge(o10, { p12: 12 }); +const o12 = merge(o11, { p13: 13 }); +const o13 = merge(o12, { p14: 14 }); +const o14 = merge(o13, { p15: 15 }); +const o15 = merge(o14, { p16: 16 }); +const o16 = merge(o15, { p17: 17 }); +const o17 = merge(o16, { p18: 18 }); +const o18 = merge(o17, { p19: 19 }); +const o19 = merge(o18, { p20: 20 }); +const o20 = merge(o19, { p21: 21 }); +const o21 = merge(o20, { p22: 22 }); +const o22 = merge(o21, { p23: 23 }); +const o23 = merge(o22, { p24: 24 }); +const o24 = merge(o23, { p25: 25 }); +const o25 = merge(o24, { p26: 26 }); +const o26 = merge(o25, { p27: 27 }); +const o27 = merge(o26, { p28: 28 }); +const o28 = merge(o27, { p29: 29 }); +const o29 = merge(o28, { p30: 30 }); +const o30 = merge(o29, { p31: 31 }); +const o31 = merge(o30, { p32: 32 }); +const o32 = merge(o31, { p33: 33 }); +const o33 = merge(o32, { p34: 34 }); +const o34 = merge(o33, { p35: 35 }); +const o35 = merge(o34, { p36: 36 }); +const o36 = merge(o35, { p37: 37 }); +const o37 = merge(o36, { p38: 38 }); +const o38 = merge(o37, { p39: 39 }); +const o39 = merge(o38, { p40: 40 }); +const o40 = merge(o39, { p41: 41 }); +const o41 = merge(o40, { p42: 42 }); +const o42 = merge(o41, { p43: 43 }); +const o43 = merge(o42, { p44: 44 }); +const o44 = merge(o43, { p45: 45 }); +const o45 = merge(o44, { p46: 46 }); +const o46 = merge(o45, { p47: 47 }); +const o47 = merge(o46, { p48: 48 }); +const o48 = merge(o47, { p49: 49 }); +const o49 = merge(o48, { p50: 50 }); +const o50 = merge(o49, { p51: 51 }); diff --git a/tests/cases/compiler/longObjectInstantiationChain2.ts b/tests/cases/compiler/longObjectInstantiationChain2.ts new file mode 100644 index 0000000000000..7a5c13ac40ac5 --- /dev/null +++ b/tests/cases/compiler/longObjectInstantiationChain2.ts @@ -0,0 +1,60 @@ +// @strict: true +// @noEmit: true + +type merge = Omit & props; + +type Type = { + merge: (r: r) => Type>; +}; + +declare const o1: Type<{ p1: 1 }>; + +const o2 = o1.merge({ p2: 2 }); +const o3 = o2.merge({ p3: 3 }); +const o4 = o3.merge({ p4: 4 }); +const o5 = o4.merge({ p5: 5 }); +const o6 = o5.merge({ p6: 6 }); +const o7 = o6.merge({ p7: 7 }); +const o8 = o7.merge({ p8: 8 }); +const o9 = o8.merge({ p9: 9 }); +const o10 = o9.merge({ p10: 10 }); +const o11 = o10.merge({ p11: 11 }); +const o12 = o11.merge({ p12: 12 }); +const o13 = o12.merge({ p13: 13 }); +const o14 = o13.merge({ p14: 14 }); +const o15 = o14.merge({ p15: 15 }); +const o16 = o15.merge({ p16: 16 }); +const o17 = o16.merge({ p17: 17 }); +const o18 = o17.merge({ p18: 18 }); +const o19 = o18.merge({ p19: 19 }); +const o20 = o19.merge({ p20: 20 }); +const o21 = o20.merge({ p21: 21 }); +const o22 = o21.merge({ p22: 22 }); +const o23 = o22.merge({ p23: 23 }); +const o24 = o23.merge({ p24: 24 }); +const o25 = o24.merge({ p25: 25 }); +const o26 = o25.merge({ p26: 26 }); +const o27 = o26.merge({ p27: 27 }); +const o28 = o27.merge({ p28: 28 }); +const o29 = o28.merge({ p29: 29 }); +const o30 = o29.merge({ p30: 30 }); +const o31 = o30.merge({ p31: 31 }); +const o32 = o31.merge({ p32: 32 }); +const o33 = o32.merge({ p33: 33 }); +const o34 = o33.merge({ p34: 34 }); +const o35 = o34.merge({ p35: 35 }); +const o36 = o35.merge({ p36: 36 }); +const o37 = o36.merge({ p37: 37 }); +const o38 = o37.merge({ p38: 38 }); +const o39 = o38.merge({ p39: 39 }); +const o40 = o39.merge({ p40: 40 }); +const o41 = o40.merge({ p41: 41 }); +const o42 = o41.merge({ p42: 42 }); +const o43 = o42.merge({ p43: 43 }); +const o44 = o43.merge({ p44: 44 }); +const o45 = o44.merge({ p45: 45 }); +const o46 = o45.merge({ p46: 46 }); +const o47 = o46.merge({ p47: 47 }); +const o48 = o47.merge({ p48: 48 }); +const o49 = o48.merge({ p49: 49 }); +const o50 = o49.merge({ p50: 50 }); diff --git a/tests/cases/compiler/typeAliasInstantiationNoLeak1.ts b/tests/cases/compiler/typeAliasInstantiationNoLeak1.ts new file mode 100644 index 0000000000000..cb96ecf521e76 --- /dev/null +++ b/tests/cases/compiler/typeAliasInstantiationNoLeak1.ts @@ -0,0 +1,8 @@ +// @strict: true +// @noEmit: true + +type Foo = T | string | number; +type Bar = Foo | undefined; + +declare let x1: Bar<"a">; +declare let x2: Bar<"b">; From cb3b7218142711c51870bde3494af1f11d082528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sat, 29 Mar 2025 18:58:07 +0100 Subject: [PATCH 02/12] Move the cache to `instantiateTypeWithAlias` --- src/compiler/checker.ts | 17 +- .../reference/callsOnComplexSignatures.types | 2 +- .../checkJsxChildrenCanBeTupleType.types | 2 +- .../checkJsxChildrenProperty16.types | 2 +- ...onSFXContextualTypeInferredCorrectly.types | 2 +- .../reference/circularBaseConstraint.types | 3 - ...lySimplifyingConditionalTypesNoCrash.types | 3 - ...onRegularTypeFetchingSpeedReasonable.types | 2 +- .../conditionalTypeDoesntSpinForever.types | 2 +- ...rianceBigArrayConstraintsPerformance.types | 2 +- .../reference/conditionalTypes1.types | 3 - .../contextuallyTypedJsxAttribute2.types | 2 +- .../contextuallyTypedJsxChildren.types | 2 +- .../reference/controlFlowOptionalChain3.types | 2 +- ...ationEmitHigherOrderRetainedGenerics.types | 2 +- ...itRecursiveConditionalAliasPreserved.types | 2 +- ...InternalTypesProduceUniqueTypeParams.types | 3 - .../deeplyNestedMappedTypes.errors.txt | 10 +- .../reference/deeplyNestedMappedTypes.types | 2 +- .../dependentDestructuredVariables.types | 2 +- ...tedIndexTypesNoConstraintElaboration.types | 2 +- .../esNextWeakRefs_IterableWeakMap.types | 2 +- .../excessiveStackDepthFlatArray.types | 1 - .../flatArrayNoExcessiveStackDepth.types | 2 +- .../reference/genericFunctionInference1.types | 2 +- ...nferenceDefaultTypeParameterJsxReact.types | 2 +- ...larationOutputGetsTruncatedWithError.types | 2 +- ...nticalTypesNoDifferByCheckOrder.errors.txt | 67 ++ .../identicalTypesNoDifferByCheckOrder.types | 2 + .../reference/ignoredJsxAttributes.types | 2 +- tests/baselines/reference/importTag24.types | 2 +- .../reference/infiniteConstraints.types | 3 - .../intraExpressionInferencesJsx.types | 2 +- .../isomorphicMappedTypeInference.types | 3 - ...clarationsNonIdentifierInferredNames.types | 2 +- .../jsDeclarationsReactComponents.types | 2 +- .../jsxCallElaborationCheckNoCrash1.types | 2 +- ...xChildrenIndividualErrorElaborations.types | 2 +- .../reference/jsxChildrenWrongType.types | 1 - ...omplexSignatureHasApplicabilityError.types | 1 - ...clarationsWithEsModuleInteropNoCrash.types | 2 +- .../baselines/reference/jsxElementType.types | 2 +- .../reference/jsxElementTypeLiteral.types | 2 +- .../jsxElementTypeLiteralWithGeneric.types | 2 +- ...pressionNotCountedAsChild(jsx=react).types | 2 +- ...sionNotCountedAsChild(jsx=react-jsx).types | 2 +- ...nNotCountedAsChild(jsx=react-jsxdev).types | 2 +- .../jsxExcessPropsAndAssignability.types | 2 +- .../jsxFragmentFactoryNoUnusedLocals.types | 2 +- ...WithSpreadingResultOfGenericFunction.types | 2 +- ...ImportForSideEffectsNonExtantNoError.types | 2 +- .../jsxIntrinsicElementsCompatability.types | 2 +- ...xIntrinsicElementsTypeArgumentErrors.types | 2 +- .../reference/jsxIntrinsicUnions.types | 2 +- ...sErrorWhenTagExpectsTooManyArguments.types | 2 +- ...sCjsTransformChildren(jsx=react-jsx).types | 2 +- ...sTransformChildren(jsx=react-jsxdev).types | 2 +- ...TransformCustomImport(jsx=react-jsx).types | 2 +- ...nsformCustomImport(jsx=react-jsxdev).types | 2 +- ...ormCustomImportPragma(jsx=react-jsx).types | 2 +- ...CustomImportPragma(jsx=react-jsxdev).types | 2 +- ...xsCjsTransformKeyProp(jsx=react-jsx).types | 2 +- ...jsTransformKeyProp(jsx=react-jsxdev).types | 2 +- ...rmKeyPropCustomImport(jsx=react-jsx).types | 2 +- ...eyPropCustomImport(jsx=react-jsxdev).types | 2 +- ...ropCustomImportPragma(jsx=react-jsx).types | 2 +- ...CustomImportPragma(jsx=react-jsxdev).types | 2 +- ...estedSelfClosingChild(jsx=react-jsx).types | 2 +- ...edSelfClosingChild(jsx=react-jsxdev).types | 2 +- ...sformSubstitutesNames(jsx=react-jsx).types | 2 +- ...rmSubstitutesNames(jsx=react-jsxdev).types | 2 +- ...stitutesNamesFragment(jsx=react-jsx).types | 2 +- ...tutesNamesFragment(jsx=react-jsxdev).types | 2 +- ...tComparedToNonMatchingIndexSignature.types | 2 +- .../reference/jsxPartialSpread.types | 2 +- .../jsxRuntimePragma(jsx=preserve).types | 2 +- .../jsxRuntimePragma(jsx=react).types | 2 +- .../jsxRuntimePragma(jsx=react-jsx).types | 2 +- .../jsxRuntimePragma(jsx=react-jsxdev).types | 2 +- ...upleArgsHasCorrectAssignability.errors.txt | 31 + .../baselines/reference/largeTupleTypes.types | 2 +- .../longObjectInstantiationChain1.errors.txt | 64 -- .../longObjectInstantiationChain1.types | 370 +++++------ .../longObjectInstantiationChain2.errors.txt | 73 --- .../longObjectInstantiationChain2.types | 614 +++++++++--------- .../mappedTypeRecursiveInference.types | 2 +- .../mappedTypeRelationships.errors.txt | 4 + .../reference/mappedTypes5.errors.txt | 4 + .../narrowingPastLastAssignment.types | 2 +- ...tiationsRelatedInBothDirections.errors.txt | 27 + ...enthesizedJSDocCastAtReturnStatement.types | 2 +- .../reference/promisePermutations.types | 2 +- tests/baselines/reference/promiseType.types | 3 - .../reference/promiseTypeStrictNull.types | 3 - .../propTypeValidatorInference.types | 3 - .../reference/ramdaToolsNoInfinite2.types | 2 +- .../reactDefaultPropsInferenceSuccess.types | 2 +- .../reference/reactHOCSpreadprops.types | 2 +- .../reactReadonlyHOCAssignabilityReal.types | 2 +- ...ikeDeferredInferenceAllowsAssignment.types | 3 - .../reactSFCAndFunctionResolvable.types | 2 +- .../reactTagNameComponentWithPropsNoOOM.types | 2 +- ...reactTagNameComponentWithPropsNoOOM2.types | 2 +- ...appedTypeModifierTrumpsVariance.errors.txt | 18 +- ...returnConditionalExpressionJSDocCast.types | 2 +- ...dicateIsInstantiateInContextOfTarget.types | 2 +- .../spellingSuggestionJSXAttribute.types | 2 +- ...omponentsInstantiaionLimitNotReached.types | 2 +- .../substitutionTypePassedToExtends.types | 2 +- .../reference/templateLiteralTypes4.types | 1 - .../reference/tsxInvokeComponentType.types | 2 +- .../tsxNotUsingApparentTypeOfSFC.types | 2 +- .../tsxReactEmit8(jsx=react-jsx).types | 2 +- .../tsxReactEmit8(jsx=react-jsxdev).types | 2 +- ...ctEmitSpreadAttribute(target=es2015).types | 2 +- ...ctEmitSpreadAttribute(target=es2018).types | 2 +- ...ctEmitSpreadAttribute(target=esnext).types | 2 +- ...ropsInferenceSucceedsOnIntersections.types | 2 +- .../tsxStatelessComponentDefaultProps.types | 2 +- .../tsxUnionMemberChecksFilterDataProps.types | 2 +- ...typeInferenceWithExcessPropertiesJsx.types | 2 +- .../reference/valueOfTypedArray.types | 2 +- ...dlyPropegatesWithUnreliableFlag.errors.txt | 37 ++ ...peatedlyPropegatesWithUnreliableFlag.types | 3 + .../verifyDefaultLib_webworker.types | 1 - 125 files changed, 776 insertions(+), 790 deletions(-) create mode 100644 tests/baselines/reference/identicalTypesNoDifferByCheckOrder.errors.txt create mode 100644 tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.errors.txt delete mode 100644 tests/baselines/reference/longObjectInstantiationChain1.errors.txt delete mode 100644 tests/baselines/reference/longObjectInstantiationChain2.errors.txt create mode 100644 tests/baselines/reference/nongenericPartialInstantiationsRelatedInBothDirections.errors.txt create mode 100644 tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.errors.txt diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fa9436267d10a..5b0f2d21eff7b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -20105,16 +20105,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const combinedMapper = combineTypeMappers(type.mapper, mapper); const typeArguments = map(typeParameters, t => getMappedType(t, combinedMapper)); const newAliasSymbol = aliasSymbol || type.aliasSymbol; - const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateList(type.aliasTypeArguments, mapper, (t, m) => { - m.instantiations ??= new Map(); - const cached = m.instantiations.get(t.id); - if (cached) { - return cached; - } - const result = instantiateType(t, m); - m.instantiations.set(t.id, result); - return result; - }); + const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper); const id = (type.objectFlags & ObjectFlags.SingleSignatureType ? "S" : "") + getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments); if (!target.instantiations) { target.instantiations = new Map(); @@ -20380,10 +20371,16 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { error(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite); return errorType; } + mapper.instantiations ??= new Map(); + const cached = mapper.instantiations.get(type.id); + if (cached) { + return cached; + } totalInstantiationCount++; instantiationCount++; instantiationDepth++; const result = instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments); + mapper.instantiations.set(type.id, result); instantiationDepth--; return result; } diff --git a/tests/baselines/reference/callsOnComplexSignatures.types b/tests/baselines/reference/callsOnComplexSignatures.types index a9a9805eb5554..f7ac9f28b9a64 100644 --- a/tests/baselines/reference/callsOnComplexSignatures.types +++ b/tests/baselines/reference/callsOnComplexSignatures.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 10,000 Symbol count: 50,000 === callsOnComplexSignatures.tsx === diff --git a/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types b/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types index 825cc5ae57c09..3f6427d8bf2b9 100644 --- a/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types +++ b/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === checkJsxChildrenCanBeTupleType.tsx === diff --git a/tests/baselines/reference/checkJsxChildrenProperty16.types b/tests/baselines/reference/checkJsxChildrenProperty16.types index e1148ac2824a2..0a696e6d43e27 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty16.types +++ b/tests/baselines/reference/checkJsxChildrenProperty16.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === checkJsxChildrenProperty16.tsx === diff --git a/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types b/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types index bbfd4ab9eb6e4..2d4895f84b33a 100644 --- a/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types +++ b/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === checkJsxUnionSFXContextualTypeInferredCorrectly.tsx === diff --git a/tests/baselines/reference/circularBaseConstraint.types b/tests/baselines/reference/circularBaseConstraint.types index cec18961daeaf..359035e7f2696 100644 --- a/tests/baselines/reference/circularBaseConstraint.types +++ b/tests/baselines/reference/circularBaseConstraint.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/circularBaseConstraint.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === circularBaseConstraint.ts === // Repro from #54610 diff --git a/tests/baselines/reference/circularlySimplifyingConditionalTypesNoCrash.types b/tests/baselines/reference/circularlySimplifyingConditionalTypesNoCrash.types index b4b554cedfee0..765ca3234d8cb 100644 --- a/tests/baselines/reference/circularlySimplifyingConditionalTypesNoCrash.types +++ b/tests/baselines/reference/circularlySimplifyingConditionalTypesNoCrash.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/circularlySimplifyingConditionalTypesNoCrash.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === circularlySimplifyingConditionalTypesNoCrash.ts === type Omit = Pick>; >Omit : Omit diff --git a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types index fb3f341bac093..29a1582d72c36 100644 --- a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types +++ b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types @@ -4,7 +4,7 @@ Strict subtype cache: 2,500 Assignability cache: 10,000 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 25,000 === conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.ts === type BigUnion = diff --git a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types index 73fb1f2d6e19d..0e223e2e7f985 100644 --- a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types +++ b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 -> 5,000 +Instantiation count: 2,500 === conditionalTypeDoesntSpinForever.ts === // A *self-contained* demonstration of the problem follows... diff --git a/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types b/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types index d1cc488621671..3f96c7626a6d4 100644 --- a/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types +++ b/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 1,000 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 5,000 Symbol count: 50,000 === conditionalTypeVarianceBigArrayConstraintsPerformance.ts === diff --git a/tests/baselines/reference/conditionalTypes1.types b/tests/baselines/reference/conditionalTypes1.types index 3aac0bf578434..821e5c5119164 100644 --- a/tests/baselines/reference/conditionalTypes1.types +++ b/tests/baselines/reference/conditionalTypes1.types @@ -1,8 +1,5 @@ //// [tests/cases/conformance/types/conditional/conditionalTypes1.ts] //// -=== Performance Stats === -Instantiation count: 1,000 - === conditionalTypes1.ts === type T00 = Exclude<"a" | "b" | "c" | "d", "a" | "c" | "f">; // "b" | "d" >T00 : T00 diff --git a/tests/baselines/reference/contextuallyTypedJsxAttribute2.types b/tests/baselines/reference/contextuallyTypedJsxAttribute2.types index 119033445a3af..31908e787abdb 100644 --- a/tests/baselines/reference/contextuallyTypedJsxAttribute2.types +++ b/tests/baselines/reference/contextuallyTypedJsxAttribute2.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 10,000 -Instantiation count: 250,000 +Instantiation count: 100,000 Symbol count: 100,000 === contextuallyTypedJsxAttribute2.tsx === diff --git a/tests/baselines/reference/contextuallyTypedJsxChildren.types b/tests/baselines/reference/contextuallyTypedJsxChildren.types index a2a38b1e2739f..d16ae87036819 100644 --- a/tests/baselines/reference/contextuallyTypedJsxChildren.types +++ b/tests/baselines/reference/contextuallyTypedJsxChildren.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === contextuallyTypedJsxChildren.tsx === diff --git a/tests/baselines/reference/controlFlowOptionalChain3.types b/tests/baselines/reference/controlFlowOptionalChain3.types index 2d66db40f61a1..53a89c7615f50 100644 --- a/tests/baselines/reference/controlFlowOptionalChain3.types +++ b/tests/baselines/reference/controlFlowOptionalChain3.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === controlFlowOptionalChain3.tsx === diff --git a/tests/baselines/reference/declarationEmitHigherOrderRetainedGenerics.types b/tests/baselines/reference/declarationEmitHigherOrderRetainedGenerics.types index 32975c6fe794a..1cb7b68c29b8f 100644 --- a/tests/baselines/reference/declarationEmitHigherOrderRetainedGenerics.types +++ b/tests/baselines/reference/declarationEmitHigherOrderRetainedGenerics.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 -> 5,000 +Instantiation count: 2,500 === declarationEmitHigherOrderRetainedGenerics.ts === export interface TypeLambda { diff --git a/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types b/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types index 5974792bc2252..02b6e03c9615f 100644 --- a/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types +++ b/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 25,000 Symbol count: 50,000 === input.d.ts === diff --git a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types index 183b707e18779..caba104684964 100644 --- a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types +++ b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.ts] //// -=== Performance Stats === -Instantiation count: 500 -> 1,000 - === declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.ts === // Note that both of the following have an `any` in their return type from where we bottom out the type printout // for having too many instances of the same symbol nesting. diff --git a/tests/baselines/reference/deeplyNestedMappedTypes.errors.txt b/tests/baselines/reference/deeplyNestedMappedTypes.errors.txt index d9cd2e20c31d8..7500e8b0a4017 100644 --- a/tests/baselines/reference/deeplyNestedMappedTypes.errors.txt +++ b/tests/baselines/reference/deeplyNestedMappedTypes.errors.txt @@ -2,8 +2,9 @@ deeplyNestedMappedTypes.ts(9,7): error TS2322: Type 'Id<{ x: { y: { z: { a: { b: The types of 'x.y.z.a.b.c' are incompatible between these types. Type 'number' is not assignable to type 'string'. deeplyNestedMappedTypes.ts(17,7): error TS2322: Type 'Id2<{ x: { y: { z: { a: { b: { c: number; }; }; }; }; }; }>' is not assignable to type 'Id2<{ x: { y: { z: { a: { b: { c: string; }; }; }; }; }; }>'. - The types of 'x.y.z.a.b.c' are incompatible between these types. - Type 'number' is not assignable to type 'string'. + Type '{ x: { y: { z: { a: { b: { c: number; }; }; }; }; }; }' is not assignable to type '{ x: { y: { z: { a: { b: { c: string; }; }; }; }; }; }'. + The types of 'x.y.z.a.b.c' are incompatible between these types. + Type 'number' is not assignable to type 'string'. deeplyNestedMappedTypes.ts(69,5): error TS2322: Type '{ level1: { level2: { foo: string; }; }; }[]' is not assignable to type '{ level1: { level2: { foo: string; bar: string; }; }; }[]'. Type '{ level1: { level2: { foo: string; }; }; }' is not assignable to type '{ level1: { level2: { foo: string; bar: string; }; }; }'. The types of 'level1.level2' are incompatible between these types. @@ -40,8 +41,9 @@ deeplyNestedMappedTypes.ts(77,5): error TS2322: Type '{ level1: { level2: { foo: const foo4: Foo4 = foo3; // Error expected ~~~~ !!! error TS2322: Type 'Id2<{ x: { y: { z: { a: { b: { c: number; }; }; }; }; }; }>' is not assignable to type 'Id2<{ x: { y: { z: { a: { b: { c: string; }; }; }; }; }; }>'. -!!! error TS2322: The types of 'x.y.z.a.b.c' are incompatible between these types. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Type '{ x: { y: { z: { a: { b: { c: number; }; }; }; }; }; }' is not assignable to type '{ x: { y: { z: { a: { b: { c: string; }; }; }; }; }; }'. +!!! error TS2322: The types of 'x.y.z.a.b.c' are incompatible between these types. +!!! error TS2322: Type 'number' is not assignable to type 'string'. // Repro from issue linked in #55535 diff --git a/tests/baselines/reference/deeplyNestedMappedTypes.types b/tests/baselines/reference/deeplyNestedMappedTypes.types index 4c6365c7e74d8..a42afdfb68883 100644 --- a/tests/baselines/reference/deeplyNestedMappedTypes.types +++ b/tests/baselines/reference/deeplyNestedMappedTypes.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 10,000 +Instantiation count: 2,500 === deeplyNestedMappedTypes.ts === // Simplified repro from #55535 diff --git a/tests/baselines/reference/dependentDestructuredVariables.types b/tests/baselines/reference/dependentDestructuredVariables.types index 1b829f101d426..09b7281003c63 100644 --- a/tests/baselines/reference/dependentDestructuredVariables.types +++ b/tests/baselines/reference/dependentDestructuredVariables.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 2,500 -Instantiation count: 5,000 +Instantiation count: 2,500 === dependentDestructuredVariables.ts === type Action = diff --git a/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types b/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types index 78a347d545fe1..170bc9d59e14a 100644 --- a/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types +++ b/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 25,000 Symbol count: 100,000 === errorInfoForRelatedIndexTypesNoConstraintElaboration.ts === diff --git a/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types b/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types index b409385e2c46e..86df81cd4d746 100644 --- a/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types +++ b/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 +Instantiation count: 1,000 === esNextWeakRefs_IterableWeakMap.ts === /** `static #cleanup` */ diff --git a/tests/baselines/reference/excessiveStackDepthFlatArray.types b/tests/baselines/reference/excessiveStackDepthFlatArray.types index 17365af09d86d..992494727bd71 100644 --- a/tests/baselines/reference/excessiveStackDepthFlatArray.types +++ b/tests/baselines/reference/excessiveStackDepthFlatArray.types @@ -2,7 +2,6 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 === index.tsx === interface MiddlewareArray extends Array {} diff --git a/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types b/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types index 38636565617db..454c9e19b13fd 100644 --- a/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types +++ b/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 2,500 -Instantiation count: 5,000 +Instantiation count: 2,500 === flatArrayNoExcessiveStackDepth.ts === // Repro from #43493 diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index 7275fd51f97be..83666b82e0859 100644 --- a/tests/baselines/reference/genericFunctionInference1.types +++ b/tests/baselines/reference/genericFunctionInference1.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 +Instantiation count: 1,000 -> 2,500 === genericFunctionInference1.ts === declare function pipe(ab: (...args: A) => B): (...args: A) => B; diff --git a/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types b/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types index 59a4dafcda412..3eab3b4a72749 100644 --- a/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types +++ b/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 10,000 -Instantiation count: 250,000 +Instantiation count: 100,000 Symbol count: 100,000 === genericInferenceDefaultTypeParameterJsxReact.tsx === diff --git a/tests/baselines/reference/hugeDeclarationOutputGetsTruncatedWithError.types b/tests/baselines/reference/hugeDeclarationOutputGetsTruncatedWithError.types index e6226dafefb4d..671aa9bfe997c 100644 --- a/tests/baselines/reference/hugeDeclarationOutputGetsTruncatedWithError.types +++ b/tests/baselines/reference/hugeDeclarationOutputGetsTruncatedWithError.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 100,000 -Instantiation count: 500,000 +Instantiation count: 250,000 Symbol count: 100,000 === hugeDeclarationOutputGetsTruncatedWithError.ts === diff --git a/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.errors.txt b/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.errors.txt new file mode 100644 index 0000000000000..9e4e98bf411a3 --- /dev/null +++ b/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.errors.txt @@ -0,0 +1,67 @@ +identicalTypesNoDifferByCheckOrder.ts(32,30): error TS2322: Type 'FunctionComponent2' is not assignable to type 'FunctionComponent2'. + Type 'SomeProps' is not assignable to type 'SomePropsCloneX'. + Type 'SomeProps' is not assignable to type 'Required>'. + Types of property 'x' are incompatible. + Type 'string | undefined' is not assignable to type 'string'. + Type 'undefined' is not assignable to type 'string'. +identicalTypesNoDifferByCheckOrder.ts(36,30): error TS2322: Type 'FunctionComponent1' is not assignable to type 'FunctionComponent1'. + Type 'SomeProps' is not assignable to type 'SomePropsX'. + Type 'SomeProps' is not assignable to type 'Required>'. + Types of property 'x' are incompatible. + Type 'string | undefined' is not assignable to type 'string'. + Type 'undefined' is not assignable to type 'string'. + + +==== identicalTypesNoDifferByCheckOrder.ts (2 errors) ==== + interface SomeProps { + x?: string; + y?: number; + renderAs?: FunctionComponent1 + } + + type SomePropsX = Required> & Omit; + + interface SomePropsClone { + x?: string; + y?: number; + renderAs?: FunctionComponent2 + } + + type SomePropsCloneX = Required> & Omit; + + type Validator = {(): boolean, opt?: T}; + type WeakValidationMap = {[K in keyof T]?: null extends T[K] ? Validator : Validator}; + + interface FunctionComponent1

{ + (props: P & { children?: unknown }): void; + propTypes?: WeakValidationMap

; + } + + interface FunctionComponent2

{ + (props: P & { children?: unknown }): void; + propTypes?: WeakValidationMap

; + } + + function needsComponentOfSomeProps3(...x: SomePropsClone[]): void {} + const comp3: FunctionComponent2 = null as any; + needsComponentOfSomeProps3({ renderAs: comp3 }); + ~~~~~~~~ +!!! error TS2322: Type 'FunctionComponent2' is not assignable to type 'FunctionComponent2'. +!!! error TS2322: Type 'SomeProps' is not assignable to type 'SomePropsCloneX'. +!!! error TS2322: Type 'SomeProps' is not assignable to type 'Required>'. +!!! error TS2322: Types of property 'x' are incompatible. +!!! error TS2322: Type 'string | undefined' is not assignable to type 'string'. +!!! error TS2322: Type 'undefined' is not assignable to type 'string'. +!!! related TS6500 identicalTypesNoDifferByCheckOrder.ts:12:5: The expected type comes from property 'renderAs' which is declared here on type 'SomePropsClone' + + function needsComponentOfSomeProps2(...x: SomeProps[]): void {} + const comp2: FunctionComponent1 = null as any; + needsComponentOfSomeProps2({ renderAs: comp2 }); + ~~~~~~~~ +!!! error TS2322: Type 'FunctionComponent1' is not assignable to type 'FunctionComponent1'. +!!! error TS2322: Type 'SomeProps' is not assignable to type 'SomePropsX'. +!!! error TS2322: Type 'SomeProps' is not assignable to type 'Required>'. +!!! error TS2322: Types of property 'x' are incompatible. +!!! error TS2322: Type 'string | undefined' is not assignable to type 'string'. +!!! error TS2322: Type 'undefined' is not assignable to type 'string'. +!!! related TS6500 identicalTypesNoDifferByCheckOrder.ts:4:5: The expected type comes from property 'renderAs' which is declared here on type 'SomeProps' \ No newline at end of file diff --git a/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.types b/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.types index 4e74085412e49..066f6530f932c 100644 --- a/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.types +++ b/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.types @@ -81,6 +81,7 @@ const comp3: FunctionComponent2 = null as any; >comp3 : FunctionComponent2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >null as any : any +> : ^^^ needsComponentOfSomeProps3({ renderAs: comp3 }); >needsComponentOfSomeProps3({ renderAs: comp3 }) : void @@ -104,6 +105,7 @@ const comp2: FunctionComponent1 = null as any; >comp2 : FunctionComponent1 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >null as any : any +> : ^^^ needsComponentOfSomeProps2({ renderAs: comp2 }); >needsComponentOfSomeProps2({ renderAs: comp2 }) : void diff --git a/tests/baselines/reference/ignoredJsxAttributes.types b/tests/baselines/reference/ignoredJsxAttributes.types index b9196a0531fd7..02aa7fcf15375 100644 --- a/tests/baselines/reference/ignoredJsxAttributes.types +++ b/tests/baselines/reference/ignoredJsxAttributes.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === ignoredJsxAttributes.tsx === diff --git a/tests/baselines/reference/importTag24.types b/tests/baselines/reference/importTag24.types index 1a4387b3d0ca8..cb2eebeb53a55 100644 --- a/tests/baselines/reference/importTag24.types +++ b/tests/baselines/reference/importTag24.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 +Instantiation count: 1,000 === types.d.ts === export type Foo = string; diff --git a/tests/baselines/reference/infiniteConstraints.types b/tests/baselines/reference/infiniteConstraints.types index db1a3468d2e26..c07c34920405c 100644 --- a/tests/baselines/reference/infiniteConstraints.types +++ b/tests/baselines/reference/infiniteConstraints.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/infiniteConstraints.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === infiniteConstraints.ts === // Both of the following types trigger the recursion limiter in getImmediateBaseConstraint diff --git a/tests/baselines/reference/intraExpressionInferencesJsx.types b/tests/baselines/reference/intraExpressionInferencesJsx.types index 54aaf495a218e..371a67557c23c 100644 --- a/tests/baselines/reference/intraExpressionInferencesJsx.types +++ b/tests/baselines/reference/intraExpressionInferencesJsx.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === intraExpressionInferencesJsx.tsx === diff --git a/tests/baselines/reference/isomorphicMappedTypeInference.types b/tests/baselines/reference/isomorphicMappedTypeInference.types index 1a75f09c084a8..aca10812a0557 100644 --- a/tests/baselines/reference/isomorphicMappedTypeInference.types +++ b/tests/baselines/reference/isomorphicMappedTypeInference.types @@ -1,8 +1,5 @@ //// [tests/cases/conformance/types/mapped/isomorphicMappedTypeInference.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === isomorphicMappedTypeInference.ts === type Box = { >Box : Box diff --git a/tests/baselines/reference/jsDeclarationsNonIdentifierInferredNames.types b/tests/baselines/reference/jsDeclarationsNonIdentifierInferredNames.types index d652dd0f576f9..75a1df0d58356 100644 --- a/tests/baselines/reference/jsDeclarationsNonIdentifierInferredNames.types +++ b/tests/baselines/reference/jsDeclarationsNonIdentifierInferredNames.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsDeclarationsNonIdentifierInferredNames.jsx === diff --git a/tests/baselines/reference/jsDeclarationsReactComponents.types b/tests/baselines/reference/jsDeclarationsReactComponents.types index 032c6c27741e8..20d40297ecfc3 100644 --- a/tests/baselines/reference/jsDeclarationsReactComponents.types +++ b/tests/baselines/reference/jsDeclarationsReactComponents.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsDeclarationsReactComponents1.jsx === diff --git a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types index 03a1aaae84634..855e01d79c6b0 100644 --- a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types +++ b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxCallElaborationCheckNoCrash1.tsx === diff --git a/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types b/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types index 8312a7a092076..0c951c4df0468 100644 --- a/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types +++ b/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === index.tsx === diff --git a/tests/baselines/reference/jsxChildrenWrongType.types b/tests/baselines/reference/jsxChildrenWrongType.types index b5fa7dbf6194c..ab6ae3cc0318e 100644 --- a/tests/baselines/reference/jsxChildrenWrongType.types +++ b/tests/baselines/reference/jsxChildrenWrongType.types @@ -2,7 +2,6 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 1,000 === other.tsx === /// diff --git a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types index ff3eaf01664be..37a370e59cafe 100644 --- a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types +++ b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types @@ -2,7 +2,6 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 === jsxComplexSignatureHasApplicabilityError.tsx === /// diff --git a/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types b/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types index 55409b984919e..fcd872a6045e1 100644 --- a/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types +++ b/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxDeclarationsWithEsModuleInteropNoCrash.jsx === diff --git a/tests/baselines/reference/jsxElementType.types b/tests/baselines/reference/jsxElementType.types index 60977590ce45b..2d94eed321aee 100644 --- a/tests/baselines/reference/jsxElementType.types +++ b/tests/baselines/reference/jsxElementType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxElementType.tsx === diff --git a/tests/baselines/reference/jsxElementTypeLiteral.types b/tests/baselines/reference/jsxElementTypeLiteral.types index 981b155ba228c..3ef1e1aa72cbb 100644 --- a/tests/baselines/reference/jsxElementTypeLiteral.types +++ b/tests/baselines/reference/jsxElementTypeLiteral.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxElementTypeLiteral.tsx === diff --git a/tests/baselines/reference/jsxElementTypeLiteralWithGeneric.types b/tests/baselines/reference/jsxElementTypeLiteralWithGeneric.types index 758af16eb26dd..e669d3c955cb0 100644 --- a/tests/baselines/reference/jsxElementTypeLiteralWithGeneric.types +++ b/tests/baselines/reference/jsxElementTypeLiteralWithGeneric.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxElementTypeLiteralWithGeneric.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types index 550daa56cc0b8..a29df6de72928 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types index 550daa56cc0b8..a29df6de72928 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types index 550daa56cc0b8..a29df6de72928 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxExcessPropsAndAssignability.types b/tests/baselines/reference/jsxExcessPropsAndAssignability.types index 82aaa30d94f51..0bfba68466c39 100644 --- a/tests/baselines/reference/jsxExcessPropsAndAssignability.types +++ b/tests/baselines/reference/jsxExcessPropsAndAssignability.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxExcessPropsAndAssignability.tsx === diff --git a/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types b/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types index 3953193d3d6d8..ef15959c95fd1 100644 --- a/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types +++ b/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxFragmentFactoryNoUnusedLocals.tsx === diff --git a/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types b/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types index 25ba4b3d7a941..60460bb3093f7 100644 --- a/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types +++ b/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx === diff --git a/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.types b/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.types index 022f947027285..af8b17ce1224b 100644 --- a/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.types +++ b/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxImportForSideEffectsNonExtantNoError.tsx === diff --git a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types index 95c1f25caba6c..9166712e3d927 100644 --- a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types +++ b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxIntrinsicElementsCompatability.tsx === diff --git a/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.types b/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.types index abe3344d40c30..4bdf7d5379136 100644 --- a/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.types +++ b/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxIntrinsicElementsTypeArgumentErrors.tsx === diff --git a/tests/baselines/reference/jsxIntrinsicUnions.types b/tests/baselines/reference/jsxIntrinsicUnions.types index b30ebee352b3b..10a99c1d5e36d 100644 --- a/tests/baselines/reference/jsxIntrinsicUnions.types +++ b/tests/baselines/reference/jsxIntrinsicUnions.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxIntrinsicUnions.tsx === diff --git a/tests/baselines/reference/jsxIssuesErrorWhenTagExpectsTooManyArguments.types b/tests/baselines/reference/jsxIssuesErrorWhenTagExpectsTooManyArguments.types index 1ffb2dcf957e8..652eed2109219 100644 --- a/tests/baselines/reference/jsxIssuesErrorWhenTagExpectsTooManyArguments.types +++ b/tests/baselines/reference/jsxIssuesErrorWhenTagExpectsTooManyArguments.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxIssuesErrorWhenTagExpectsTooManyArguments.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types index 4907628b6bd66..862980832c05c 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformChildren.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types index 4907628b6bd66..862980832c05c 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformChildren.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types index aa13660ad9ba4..a9de52f2118fe 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types index aa13660ad9ba4..a9de52f2118fe 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types index b550f712f194e..3e4c618f417b4 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types index b550f712f194e..3e4c618f417b4 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types index d618a1ab5ff52..64b0922cb76ea 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyProp.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types index d618a1ab5ff52..64b0922cb76ea 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyProp.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types index 13d8d36838f06..351fd96aec7aa 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyPropCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types index 13d8d36838f06..351fd96aec7aa 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyPropCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types index fd465b18bbf10..15a40c06fc4ff 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types index fd465b18bbf10..15a40c06fc4ff 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types index 7371ffcc13937..9c13993196124 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformNestedSelfClosingChild.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types index 7371ffcc13937..9c13993196124 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformNestedSelfClosingChild.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types index 94b681fd44460..7dfd23cb9c9dc 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNames.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types index 94b681fd44460..7dfd23cb9c9dc 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNames.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types index 6d67486907b93..a9f14256ab96d 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNamesFragment.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types index 6d67486907b93..a9f14256ab96d 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNamesFragment.tsx === diff --git a/tests/baselines/reference/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.types b/tests/baselines/reference/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.types index 25c5c3da11f9c..16cc40ca075b1 100644 --- a/tests/baselines/reference/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.types +++ b/tests/baselines/reference/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxNamespacedNameNotComparedToNonMatchingIndexSignature.tsx === diff --git a/tests/baselines/reference/jsxPartialSpread.types b/tests/baselines/reference/jsxPartialSpread.types index 0f63055beb46c..739947eae2327 100644 --- a/tests/baselines/reference/jsxPartialSpread.types +++ b/tests/baselines/reference/jsxPartialSpread.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === jsxPartialSpread.tsx === diff --git a/tests/baselines/reference/jsxRuntimePragma(jsx=preserve).types b/tests/baselines/reference/jsxRuntimePragma(jsx=preserve).types index 87eb419fb5327..df6693ef87b04 100644 --- a/tests/baselines/reference/jsxRuntimePragma(jsx=preserve).types +++ b/tests/baselines/reference/jsxRuntimePragma(jsx=preserve).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === one.tsx === diff --git a/tests/baselines/reference/jsxRuntimePragma(jsx=react).types b/tests/baselines/reference/jsxRuntimePragma(jsx=react).types index 87eb419fb5327..df6693ef87b04 100644 --- a/tests/baselines/reference/jsxRuntimePragma(jsx=react).types +++ b/tests/baselines/reference/jsxRuntimePragma(jsx=react).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === one.tsx === diff --git a/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsx).types b/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsx).types index 87eb419fb5327..df6693ef87b04 100644 --- a/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === one.tsx === diff --git a/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsxdev).types b/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsxdev).types index 87eb419fb5327..df6693ef87b04 100644 --- a/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === one.tsx === diff --git a/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.errors.txt b/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.errors.txt new file mode 100644 index 0000000000000..02a963294101e --- /dev/null +++ b/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.errors.txt @@ -0,0 +1,31 @@ +lambdaParameterWithTupleArgsHasCorrectAssignability.ts(17,14): error TS2345: Argument of type 'GenericClass<[str: string]>' is not assignable to parameter of type 'GenericClass<[string, boolean]>'. + Type '[string, boolean]' is not assignable to type '[str: string]'. + Source has 2 element(s) but target allows only 1. + + +==== lambdaParameterWithTupleArgsHasCorrectAssignability.ts (1 errors) ==== + type MyTupleItem = {}; + type MyTuple = [MyTupleItem, ...MyTupleItem[]]; + + type GenericFunction = (...fromArgs: T) => void; + + class GenericClass { + from: GenericFunction | undefined; + } + + function createClass(f: GenericFunction): GenericClass { + return new GenericClass(/* ... use f */); + } + + function consumeClass(c: GenericClass<[string, boolean]>) { } + + // should work + consumeClass(createClass(str => console.log(str.length))); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2345: Argument of type 'GenericClass<[str: string]>' is not assignable to parameter of type 'GenericClass<[string, boolean]>'. +!!! error TS2345: Type '[string, boolean]' is not assignable to type '[str: string]'. +!!! error TS2345: Source has 2 element(s) but target allows only 1. + + // should work + consumeClass(createClass((str, _unused_num) => console.log(str.length))); + \ No newline at end of file diff --git a/tests/baselines/reference/largeTupleTypes.types b/tests/baselines/reference/largeTupleTypes.types index a8826173d19fa..9d0a43858a19a 100644 --- a/tests/baselines/reference/largeTupleTypes.types +++ b/tests/baselines/reference/largeTupleTypes.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 1,000 Type Count: 25,000 -Instantiation count: 50,000 +Instantiation count: 25,000 Symbol count: 50,000 === largeTupleTypes.ts === diff --git a/tests/baselines/reference/longObjectInstantiationChain1.errors.txt b/tests/baselines/reference/longObjectInstantiationChain1.errors.txt deleted file mode 100644 index 93755bf0f02cc..0000000000000 --- a/tests/baselines/reference/longObjectInstantiationChain1.errors.txt +++ /dev/null @@ -1,64 +0,0 @@ -longObjectInstantiationChain1.ts(24,13): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain1.ts(45,13): error TS2589: Type instantiation is excessively deep and possibly infinite. - - -==== longObjectInstantiationChain1.ts (2 errors) ==== - export type merge = Omit & props; - - declare const merge: (l: l, r: r) => merge; - - const o1 = merge({ p1: 1 }, { p2: 2 }); - const o2 = merge(o1, { p3: 3 }); - const o3 = merge(o2, { p4: 4 }); - const o4 = merge(o3, { p5: 5 }); - const o5 = merge(o4, { p6: 6 }); - const o6 = merge(o5, { p7: 7 }); - const o7 = merge(o6, { p8: 8 }); - const o8 = merge(o7, { p9: 9 }); - const o9 = merge(o8, { p10: 10 }); - const o10 = merge(o9, { p11: 11 }); - const o11 = merge(o10, { p12: 12 }); - const o12 = merge(o11, { p13: 13 }); - const o13 = merge(o12, { p14: 14 }); - const o14 = merge(o13, { p15: 15 }); - const o15 = merge(o14, { p16: 16 }); - const o16 = merge(o15, { p17: 17 }); - const o17 = merge(o16, { p18: 18 }); - const o18 = merge(o17, { p19: 19 }); - const o19 = merge(o18, { p20: 20 }); - const o20 = merge(o19, { p21: 21 }); - ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. - const o21 = merge(o20, { p22: 22 }); - const o22 = merge(o21, { p23: 23 }); - const o23 = merge(o22, { p24: 24 }); - const o24 = merge(o23, { p25: 25 }); - const o25 = merge(o24, { p26: 26 }); - const o26 = merge(o25, { p27: 27 }); - const o27 = merge(o26, { p28: 28 }); - const o28 = merge(o27, { p29: 29 }); - const o29 = merge(o28, { p30: 30 }); - const o30 = merge(o29, { p31: 31 }); - const o31 = merge(o30, { p32: 32 }); - const o32 = merge(o31, { p33: 33 }); - const o33 = merge(o32, { p34: 34 }); - const o34 = merge(o33, { p35: 35 }); - const o35 = merge(o34, { p36: 36 }); - const o36 = merge(o35, { p37: 37 }); - const o37 = merge(o36, { p38: 38 }); - const o38 = merge(o37, { p39: 39 }); - const o39 = merge(o38, { p40: 40 }); - const o40 = merge(o39, { p41: 41 }); - const o41 = merge(o40, { p42: 42 }); - ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. - const o42 = merge(o41, { p43: 43 }); - const o43 = merge(o42, { p44: 44 }); - const o44 = merge(o43, { p45: 45 }); - const o45 = merge(o44, { p46: 46 }); - const o46 = merge(o45, { p47: 47 }); - const o47 = merge(o46, { p48: 48 }); - const o48 = merge(o47, { p49: 49 }); - const o49 = merge(o48, { p50: 50 }); - const o50 = merge(o49, { p51: 51 }); - \ No newline at end of file diff --git a/tests/baselines/reference/longObjectInstantiationChain1.types b/tests/baselines/reference/longObjectInstantiationChain1.types index 96d651c8443b8..a500bfbb2d471 100644 --- a/tests/baselines/reference/longObjectInstantiationChain1.types +++ b/tests/baselines/reference/longObjectInstantiationChain1.types @@ -1,7 +1,7 @@ //// [tests/cases/compiler/longObjectInstantiationChain1.ts] //// === Performance Stats === -Instantiation count: 50,000,000 +Instantiation count: 5,000 === longObjectInstantiationChain1.ts === export type merge = Omit & props; @@ -325,10 +325,10 @@ const o19 = merge(o18, { p20: 20 }); > : ^^ const o20 = merge(o19, { p21: 21 }); ->o20 : any -> : ^^^ ->merge(o19, { p21: 21 }) : any -> : ^^^ +>o20 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o19, { p21: 21 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >o19 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }> @@ -341,14 +341,14 @@ const o20 = merge(o19, { p21: 21 }); > : ^^ const o21 = merge(o20, { p22: 22 }); ->o21 : merge -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o20, { p22: 22 }) : merge -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o20, { p22: 22 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o20 : any -> : ^^^ +>o20 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p22: 22 } : { p22: number; } > : ^^^^^^^^^^^^^^^^ >p22 : number @@ -357,14 +357,14 @@ const o21 = merge(o20, { p22: 22 }); > : ^^ const o22 = merge(o21, { p23: 23 }); ->o22 : merge, { p23: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o21, { p23: 23 }) : merge, { p23: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o21, { p23: 23 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o21 : merge -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p23: 23 } : { p23: number; } > : ^^^^^^^^^^^^^^^^ >p23 : number @@ -373,14 +373,14 @@ const o22 = merge(o21, { p23: 23 }); > : ^^ const o23 = merge(o22, { p24: 24 }); ->o23 : merge, { p23: number; }>, { p24: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o22, { p24: 24 }) : merge, { p23: number; }>, { p24: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o22, { p24: 24 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o22 : merge, { p23: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p24: 24 } : { p24: number; } > : ^^^^^^^^^^^^^^^^ >p24 : number @@ -389,14 +389,14 @@ const o23 = merge(o22, { p24: 24 }); > : ^^ const o24 = merge(o23, { p25: 25 }); ->o24 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o23, { p25: 25 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o23, { p25: 25 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o23 : merge, { p23: number; }>, { p24: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p25: 25 } : { p25: number; } > : ^^^^^^^^^^^^^^^^ >p25 : number @@ -405,14 +405,14 @@ const o24 = merge(o23, { p25: 25 }); > : ^^ const o25 = merge(o24, { p26: 26 }); ->o25 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o24, { p26: 26 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o24, { p26: 26 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o24 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p26: 26 } : { p26: number; } > : ^^^^^^^^^^^^^^^^ >p26 : number @@ -421,14 +421,14 @@ const o25 = merge(o24, { p26: 26 }); > : ^^ const o26 = merge(o25, { p27: 27 }); ->o26 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o25, { p27: 27 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o25, { p27: 27 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o25 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p27: 27 } : { p27: number; } > : ^^^^^^^^^^^^^^^^ >p27 : number @@ -437,14 +437,14 @@ const o26 = merge(o25, { p27: 27 }); > : ^^ const o27 = merge(o26, { p28: 28 }); ->o27 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o26, { p28: 28 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o26, { p28: 28 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o26 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p28: 28 } : { p28: number; } > : ^^^^^^^^^^^^^^^^ >p28 : number @@ -453,14 +453,14 @@ const o27 = merge(o26, { p28: 28 }); > : ^^ const o28 = merge(o27, { p29: 29 }); ->o28 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o27, { p29: 29 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o27, { p29: 29 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o27 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p29: 29 } : { p29: number; } > : ^^^^^^^^^^^^^^^^ >p29 : number @@ -469,14 +469,14 @@ const o28 = merge(o27, { p29: 29 }); > : ^^ const o29 = merge(o28, { p30: 30 }); ->o29 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o28, { p30: 30 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o28, { p30: 30 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o28 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p30: 30 } : { p30: number; } > : ^^^^^^^^^^^^^^^^ >p30 : number @@ -485,14 +485,14 @@ const o29 = merge(o28, { p30: 30 }); > : ^^ const o30 = merge(o29, { p31: 31 }); ->o30 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o29, { p31: 31 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o29, { p31: 31 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o29 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p31: 31 } : { p31: number; } > : ^^^^^^^^^^^^^^^^ >p31 : number @@ -501,14 +501,14 @@ const o30 = merge(o29, { p31: 31 }); > : ^^ const o31 = merge(o30, { p32: 32 }); ->o31 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o30, { p32: 32 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o30, { p32: 32 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o30 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p32: 32 } : { p32: number; } > : ^^^^^^^^^^^^^^^^ >p32 : number @@ -517,14 +517,14 @@ const o31 = merge(o30, { p32: 32 }); > : ^^ const o32 = merge(o31, { p33: 33 }); ->o32 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o31, { p33: 33 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o31, { p33: 33 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o31 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p33: 33 } : { p33: number; } > : ^^^^^^^^^^^^^^^^ >p33 : number @@ -533,14 +533,14 @@ const o32 = merge(o31, { p33: 33 }); > : ^^ const o33 = merge(o32, { p34: 34 }); ->o33 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o32, { p34: 34 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o32, { p34: 34 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o32 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p34: 34 } : { p34: number; } > : ^^^^^^^^^^^^^^^^ >p34 : number @@ -549,14 +549,14 @@ const o33 = merge(o32, { p34: 34 }); > : ^^ const o34 = merge(o33, { p35: 35 }); ->o34 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o33, { p35: 35 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o33, { p35: 35 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o33 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p35: 35 } : { p35: number; } > : ^^^^^^^^^^^^^^^^ >p35 : number @@ -565,14 +565,14 @@ const o34 = merge(o33, { p35: 35 }); > : ^^ const o35 = merge(o34, { p36: 36 }); ->o35 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o34, { p36: 36 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o34, { p36: 36 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o34 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p36: 36 } : { p36: number; } > : ^^^^^^^^^^^^^^^^ >p36 : number @@ -581,14 +581,14 @@ const o35 = merge(o34, { p36: 36 }); > : ^^ const o36 = merge(o35, { p37: 37 }); ->o36 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o35, { p37: 37 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o35, { p37: 37 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o35 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p37: 37 } : { p37: number; } > : ^^^^^^^^^^^^^^^^ >p37 : number @@ -597,14 +597,14 @@ const o36 = merge(o35, { p37: 37 }); > : ^^ const o37 = merge(o36, { p38: 38 }); ->o37 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o36, { p38: 38 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o36, { p38: 38 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o36 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p38: 38 } : { p38: number; } > : ^^^^^^^^^^^^^^^^ >p38 : number @@ -613,14 +613,14 @@ const o37 = merge(o36, { p38: 38 }); > : ^^ const o38 = merge(o37, { p39: 39 }); ->o38 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o37, { p39: 39 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o37, { p39: 39 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o37 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p39: 39 } : { p39: number; } > : ^^^^^^^^^^^^^^^^ >p39 : number @@ -629,14 +629,14 @@ const o38 = merge(o37, { p39: 39 }); > : ^^ const o39 = merge(o38, { p40: 40 }); ->o39 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o38, { p40: 40 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o39 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o38, { p40: 40 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o38 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p40: 40 } : { p40: number; } > : ^^^^^^^^^^^^^^^^ >p40 : number @@ -645,14 +645,14 @@ const o39 = merge(o38, { p40: 40 }); > : ^^ const o40 = merge(o39, { p41: 41 }); ->o40 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o39, { p41: 41 }) : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o40 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o39, { p41: 41 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o39 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o39 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p41: 41 } : { p41: number; } > : ^^^^^^^^^^^^^^^^ >p41 : number @@ -661,14 +661,14 @@ const o40 = merge(o39, { p41: 41 }); > : ^^ const o41 = merge(o40, { p42: 42 }); ->o41 : any -> : ^^^ ->merge(o40, { p42: 42 }) : any -> : ^^^ +>o41 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o40, { p42: 42 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o40 : merge, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o40 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p42: 42 } : { p42: number; } > : ^^^^^^^^^^^^^^^^ >p42 : number @@ -677,14 +677,14 @@ const o41 = merge(o40, { p42: 42 }); > : ^^ const o42 = merge(o41, { p43: 43 }); ->o42 : merge -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o41, { p43: 43 }) : merge -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o41, { p43: 43 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o41 : any -> : ^^^ +>o41 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p43: 43 } : { p43: number; } > : ^^^^^^^^^^^^^^^^ >p43 : number @@ -693,14 +693,14 @@ const o42 = merge(o41, { p43: 43 }); > : ^^ const o43 = merge(o42, { p44: 44 }); ->o43 : merge, { p44: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o42, { p44: 44 }) : merge, { p44: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o42, { p44: 44 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o42 : merge -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p44: 44 } : { p44: number; } > : ^^^^^^^^^^^^^^^^ >p44 : number @@ -709,14 +709,14 @@ const o43 = merge(o42, { p44: 44 }); > : ^^ const o44 = merge(o43, { p45: 45 }); ->o44 : merge, { p44: number; }>, { p45: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o43, { p45: 45 }) : merge, { p44: number; }>, { p45: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o43, { p45: 45 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o43 : merge, { p44: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p45: 45 } : { p45: number; } > : ^^^^^^^^^^^^^^^^ >p45 : number @@ -725,14 +725,14 @@ const o44 = merge(o43, { p45: 45 }); > : ^^ const o45 = merge(o44, { p46: 46 }); ->o45 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o44, { p46: 46 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o44, { p46: 46 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o44 : merge, { p44: number; }>, { p45: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p46: 46 } : { p46: number; } > : ^^^^^^^^^^^^^^^^ >p46 : number @@ -741,14 +741,14 @@ const o45 = merge(o44, { p46: 46 }); > : ^^ const o46 = merge(o45, { p47: 47 }); ->o46 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o45, { p47: 47 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o45, { p47: 47 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o45 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p47: 47 } : { p47: number; } > : ^^^^^^^^^^^^^^^^ >p47 : number @@ -757,14 +757,14 @@ const o46 = merge(o45, { p47: 47 }); > : ^^ const o47 = merge(o46, { p48: 48 }); ->o47 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o46, { p48: 48 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o46, { p48: 48 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o46 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p48: 48 } : { p48: number; } > : ^^^^^^^^^^^^^^^^ >p48 : number @@ -773,14 +773,14 @@ const o47 = merge(o46, { p48: 48 }); > : ^^ const o48 = merge(o47, { p49: 49 }); ->o48 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o47, { p49: 49 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o47, { p49: 49 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o47 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p49: 49 } : { p49: number; } > : ^^^^^^^^^^^^^^^^ >p49 : number @@ -789,14 +789,14 @@ const o48 = merge(o47, { p49: 49 }); > : ^^ const o49 = merge(o48, { p50: 50 }); ->o49 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o48, { p50: 50 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o48, { p50: 50 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o48 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p50: 50 } : { p50: number; } > : ^^^^^^^^^^^^^^^^ >p50 : number @@ -805,14 +805,14 @@ const o49 = merge(o48, { p50: 50 }); > : ^^ const o50 = merge(o49, { p51: 51 }); ->o50 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge(o49, { p51: 51 }) : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o50 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge(o49, { p51: 51 }) : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >merge : (l: l, r: r) => merge > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ->o49 : merge, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p51: 51 } : { p51: number; } > : ^^^^^^^^^^^^^^^^ >p51 : number diff --git a/tests/baselines/reference/longObjectInstantiationChain2.errors.txt b/tests/baselines/reference/longObjectInstantiationChain2.errors.txt deleted file mode 100644 index c6d07b68ddc4d..0000000000000 --- a/tests/baselines/reference/longObjectInstantiationChain2.errors.txt +++ /dev/null @@ -1,73 +0,0 @@ -longObjectInstantiationChain2.ts(27,13): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain2.ts(28,13): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain2.ts(47,13): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain2.ts(48,13): error TS2589: Type instantiation is excessively deep and possibly infinite. - - -==== longObjectInstantiationChain2.ts (4 errors) ==== - type merge = Omit & props; - - type Type = { - merge: (r: r) => Type>; - }; - - declare const o1: Type<{ p1: 1 }>; - - const o2 = o1.merge({ p2: 2 }); - const o3 = o2.merge({ p3: 3 }); - const o4 = o3.merge({ p4: 4 }); - const o5 = o4.merge({ p5: 5 }); - const o6 = o5.merge({ p6: 6 }); - const o7 = o6.merge({ p7: 7 }); - const o8 = o7.merge({ p8: 8 }); - const o9 = o8.merge({ p9: 9 }); - const o10 = o9.merge({ p10: 10 }); - const o11 = o10.merge({ p11: 11 }); - const o12 = o11.merge({ p12: 12 }); - const o13 = o12.merge({ p13: 13 }); - const o14 = o13.merge({ p14: 14 }); - const o15 = o14.merge({ p15: 15 }); - const o16 = o15.merge({ p16: 16 }); - const o17 = o16.merge({ p17: 17 }); - const o18 = o17.merge({ p18: 18 }); - const o19 = o18.merge({ p19: 19 }); - const o20 = o19.merge({ p20: 20 }); - ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. - const o21 = o20.merge({ p21: 21 }); - ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. - const o22 = o21.merge({ p22: 22 }); - const o23 = o22.merge({ p23: 23 }); - const o24 = o23.merge({ p24: 24 }); - const o25 = o24.merge({ p25: 25 }); - const o26 = o25.merge({ p26: 26 }); - const o27 = o26.merge({ p27: 27 }); - const o28 = o27.merge({ p28: 28 }); - const o29 = o28.merge({ p29: 29 }); - const o30 = o29.merge({ p30: 30 }); - const o31 = o30.merge({ p31: 31 }); - const o32 = o31.merge({ p32: 32 }); - const o33 = o32.merge({ p33: 33 }); - const o34 = o33.merge({ p34: 34 }); - const o35 = o34.merge({ p35: 35 }); - const o36 = o35.merge({ p36: 36 }); - const o37 = o36.merge({ p37: 37 }); - const o38 = o37.merge({ p38: 38 }); - const o39 = o38.merge({ p39: 39 }); - const o40 = o39.merge({ p40: 40 }); - ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. - const o41 = o40.merge({ p41: 41 }); - ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. - const o42 = o41.merge({ p42: 42 }); - const o43 = o42.merge({ p43: 43 }); - const o44 = o43.merge({ p44: 44 }); - const o45 = o44.merge({ p45: 45 }); - const o46 = o45.merge({ p46: 46 }); - const o47 = o46.merge({ p47: 47 }); - const o48 = o47.merge({ p48: 48 }); - const o49 = o48.merge({ p49: 49 }); - const o50 = o49.merge({ p50: 50 }); - \ No newline at end of file diff --git a/tests/baselines/reference/longObjectInstantiationChain2.types b/tests/baselines/reference/longObjectInstantiationChain2.types index a8f99ae353972..ff1f087d04b88 100644 --- a/tests/baselines/reference/longObjectInstantiationChain2.types +++ b/tests/baselines/reference/longObjectInstantiationChain2.types @@ -1,9 +1,9 @@ //// [tests/cases/compiler/longObjectInstantiationChain2.ts] //// === Performance Stats === -Assignability cache: 50 -> 2,500 -Type Count: 2,500 -Instantiation count: 25,000,000 +Assignability cache: 50 -> 50,000 +Type Count: 2,500 -> 5,000 +Instantiation count: 10,000 === longObjectInstantiationChain2.ts === type merge = Omit & props; @@ -353,10 +353,10 @@ const o19 = o18.merge({ p19: 19 }); > : ^^ const o20 = o19.merge({ p20: 20 }); ->o20 : Type -> : ^^^^^^^^^ ->o19.merge({ p20: 20 }) : Type -> : ^^^^^^^^^ +>o20 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o19.merge({ p20: 20 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o19.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, r_1>> > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o19 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>> @@ -371,16 +371,16 @@ const o20 = o19.merge({ p20: 20 }); > : ^^ const o21 = o20.merge({ p21: 21 }); ->o21 : Type -> : ^^^^^^^^^ ->o20.merge({ p21: 21 }) : Type -> : ^^^^^^^^^ ->o20.merge : (r: r_1) => Type, any>, any>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o20 : Type -> : ^^^^^^^^^ ->merge : (r: r_1) => Type, any>, any>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o20.merge({ p21: 21 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o20.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o20 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p21: 21 } : { p21: number; } > : ^^^^^^^^^^^^^^^^ >p21 : number @@ -389,16 +389,16 @@ const o21 = o20.merge({ p21: 21 }); > : ^^ const o22 = o21.merge({ p22: 22 }); ->o22 : Type> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o21.merge({ p22: 22 }) : Type> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o21.merge : (r: r_1) => Type> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o21 : Type -> : ^^^^^^^^^ ->merge : (r: r_1) => Type> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21.merge({ p22: 22 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o21 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p22: 22 } : { p22: number; } > : ^^^^^^^^^^^^^^^^ >p22 : number @@ -407,16 +407,16 @@ const o22 = o21.merge({ p22: 22 }); > : ^^ const o23 = o22.merge({ p23: 23 }); ->o23 : Type, { p23: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o22.merge({ p23: 23 }) : Type, { p23: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o22.merge : (r: r_1) => Type, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o22 : Type> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22.merge({ p23: 23 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o22 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p23: 23 } : { p23: number; } > : ^^^^^^^^^^^^^^^^ >p23 : number @@ -425,16 +425,16 @@ const o23 = o22.merge({ p23: 23 }); > : ^^ const o24 = o23.merge({ p24: 24 }); ->o24 : Type, { p23: number; }>, { p24: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o23.merge({ p24: 24 }) : Type, { p23: number; }>, { p24: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o23.merge : (r: r_1) => Type, { p23: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o23 : Type, { p23: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23.merge({ p24: 24 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o23 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p24: 24 } : { p24: number; } > : ^^^^^^^^^^^^^^^^ >p24 : number @@ -443,16 +443,16 @@ const o24 = o23.merge({ p24: 24 }); > : ^^ const o25 = o24.merge({ p25: 25 }); ->o25 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o24.merge({ p25: 25 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o24.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o24 : Type, { p23: number; }>, { p24: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24.merge({ p25: 25 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o24 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p25: 25 } : { p25: number; } > : ^^^^^^^^^^^^^^^^ >p25 : number @@ -461,16 +461,16 @@ const o25 = o24.merge({ p25: 25 }); > : ^^ const o26 = o25.merge({ p26: 26 }); ->o26 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o25.merge({ p26: 26 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o25.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o25 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25.merge({ p26: 26 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p26: 26 } : { p26: number; } > : ^^^^^^^^^^^^^^^^ >p26 : number @@ -479,16 +479,16 @@ const o26 = o25.merge({ p26: 26 }); > : ^^ const o27 = o26.merge({ p27: 27 }); ->o27 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o26.merge({ p27: 27 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o26.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o26 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26.merge({ p27: 27 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o26 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p27: 27 } : { p27: number; } > : ^^^^^^^^^^^^^^^^ >p27 : number @@ -497,16 +497,16 @@ const o27 = o26.merge({ p27: 27 }); > : ^^ const o28 = o27.merge({ p28: 28 }); ->o28 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o27.merge({ p28: 28 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o27.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o27 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27.merge({ p28: 28 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o27 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p28: 28 } : { p28: number; } > : ^^^^^^^^^^^^^^^^ >p28 : number @@ -515,16 +515,16 @@ const o28 = o27.merge({ p28: 28 }); > : ^^ const o29 = o28.merge({ p29: 29 }); ->o29 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o28.merge({ p29: 29 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o28.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o28 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28.merge({ p29: 29 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o28 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p29: 29 } : { p29: number; } > : ^^^^^^^^^^^^^^^^ >p29 : number @@ -533,16 +533,16 @@ const o29 = o28.merge({ p29: 29 }); > : ^^ const o30 = o29.merge({ p30: 30 }); ->o30 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o29.merge({ p30: 30 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o29.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o29 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29.merge({ p30: 30 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o29 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p30: 30 } : { p30: number; } > : ^^^^^^^^^^^^^^^^ >p30 : number @@ -551,16 +551,16 @@ const o30 = o29.merge({ p30: 30 }); > : ^^ const o31 = o30.merge({ p31: 31 }); ->o31 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o30.merge({ p31: 31 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o30.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o30 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30.merge({ p31: 31 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p31: 31 } : { p31: number; } > : ^^^^^^^^^^^^^^^^ >p31 : number @@ -569,16 +569,16 @@ const o31 = o30.merge({ p31: 31 }); > : ^^ const o32 = o31.merge({ p32: 32 }); ->o32 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o31.merge({ p32: 32 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o31.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o31 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31.merge({ p32: 32 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o31 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p32: 32 } : { p32: number; } > : ^^^^^^^^^^^^^^^^ >p32 : number @@ -587,16 +587,16 @@ const o32 = o31.merge({ p32: 32 }); > : ^^ const o33 = o32.merge({ p33: 33 }); ->o33 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o32.merge({ p33: 33 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o32.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o32 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32.merge({ p33: 33 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o32 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p33: 33 } : { p33: number; } > : ^^^^^^^^^^^^^^^^ >p33 : number @@ -605,16 +605,16 @@ const o33 = o32.merge({ p33: 33 }); > : ^^ const o34 = o33.merge({ p34: 34 }); ->o34 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o33.merge({ p34: 34 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o33.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o33 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33.merge({ p34: 34 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o33 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p34: 34 } : { p34: number; } > : ^^^^^^^^^^^^^^^^ >p34 : number @@ -623,16 +623,16 @@ const o34 = o33.merge({ p34: 34 }); > : ^^ const o35 = o34.merge({ p35: 35 }); ->o35 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o34.merge({ p35: 35 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o34.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o34 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34.merge({ p35: 35 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o34 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p35: 35 } : { p35: number; } > : ^^^^^^^^^^^^^^^^ >p35 : number @@ -641,16 +641,16 @@ const o35 = o34.merge({ p35: 35 }); > : ^^ const o36 = o35.merge({ p36: 36 }); ->o36 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o35.merge({ p36: 36 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o35.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o35 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35.merge({ p36: 36 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o35 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p36: 36 } : { p36: number; } > : ^^^^^^^^^^^^^^^^ >p36 : number @@ -659,16 +659,16 @@ const o36 = o35.merge({ p36: 36 }); > : ^^ const o37 = o36.merge({ p37: 37 }); ->o37 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o36.merge({ p37: 37 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o36.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o36 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36.merge({ p37: 37 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o36 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p37: 37 } : { p37: number; } > : ^^^^^^^^^^^^^^^^ >p37 : number @@ -677,16 +677,16 @@ const o37 = o36.merge({ p37: 37 }); > : ^^ const o38 = o37.merge({ p38: 38 }); ->o38 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o37.merge({ p38: 38 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o37.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o37 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37.merge({ p38: 38 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o37 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p38: 38 } : { p38: number; } > : ^^^^^^^^^^^^^^^^ >p38 : number @@ -695,16 +695,16 @@ const o38 = o37.merge({ p38: 38 }); > : ^^ const o39 = o38.merge({ p39: 39 }); ->o39 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o38.merge({ p39: 39 }) : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o38.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o38 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o39 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38.merge({ p39: 39 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o38 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p39: 39 } : { p39: number; } > : ^^^^^^^^^^^^^^^^ >p39 : number @@ -713,16 +713,16 @@ const o39 = o38.merge({ p39: 39 }); > : ^^ const o40 = o39.merge({ p40: 40 }); ->o40 : Type> -> : ^^^^^^^^^^^^^^^^^^^^^ ->o39.merge({ p40: 40 }) : Type> -> : ^^^^^^^^^^^^^^^^^^^^^ ->o39.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o39 : Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o40 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o39.merge({ p40: 40 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o39.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o39 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p40: 40 } : { p40: number; } > : ^^^^^^^^^^^^^^^^ >p40 : number @@ -731,16 +731,16 @@ const o40 = o39.merge({ p40: 40 }); > : ^^ const o41 = o40.merge({ p41: 41 }); ->o41 : Type -> : ^^^^^^^^^ ->o40.merge({ p41: 41 }) : Type -> : ^^^^^^^^^ ->o40.merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o40 : Type> -> : ^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o41 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o40.merge({ p41: 41 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o40.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o40 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p41: 41 } : { p41: number; } > : ^^^^^^^^^^^^^^^^ >p41 : number @@ -749,16 +749,16 @@ const o41 = o40.merge({ p41: 41 }); > : ^^ const o42 = o41.merge({ p42: 42 }); ->o42 : Type> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o41.merge({ p42: 42 }) : Type> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o41.merge : (r: r_1) => Type> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o41 : Type -> : ^^^^^^^^^ ->merge : (r: r_1) => Type> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o41.merge({ p42: 42 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o41.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o41 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p42: 42 } : { p42: number; } > : ^^^^^^^^^^^^^^^^ >p42 : number @@ -767,16 +767,16 @@ const o42 = o41.merge({ p42: 42 }); > : ^^ const o43 = o42.merge({ p43: 43 }); ->o43 : Type, { p43: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o42.merge({ p43: 43 }) : Type, { p43: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o42.merge : (r: r_1) => Type, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o42 : Type> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42.merge({ p43: 43 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o42 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p43: 43 } : { p43: number; } > : ^^^^^^^^^^^^^^^^ >p43 : number @@ -785,16 +785,16 @@ const o43 = o42.merge({ p43: 43 }); > : ^^ const o44 = o43.merge({ p44: 44 }); ->o44 : Type, { p43: number; }>, { p44: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o43.merge({ p44: 44 }) : Type, { p43: number; }>, { p44: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o43.merge : (r: r_1) => Type, { p43: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o43 : Type, { p43: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p43: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43.merge({ p44: 44 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o43 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p44: 44 } : { p44: number; } > : ^^^^^^^^^^^^^^^^ >p44 : number @@ -803,16 +803,16 @@ const o44 = o43.merge({ p44: 44 }); > : ^^ const o45 = o44.merge({ p45: 45 }); ->o45 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o44.merge({ p45: 45 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o44.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o44 : Type, { p43: number; }>, { p44: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44.merge({ p45: 45 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o44 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p45: 45 } : { p45: number; } > : ^^^^^^^^^^^^^^^^ >p45 : number @@ -821,16 +821,16 @@ const o45 = o44.merge({ p45: 45 }); > : ^^ const o46 = o45.merge({ p46: 46 }); ->o46 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o45.merge({ p46: 46 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o45.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o45 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45.merge({ p46: 46 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o45 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p46: 46 } : { p46: number; } > : ^^^^^^^^^^^^^^^^ >p46 : number @@ -839,16 +839,16 @@ const o46 = o45.merge({ p46: 46 }); > : ^^ const o47 = o46.merge({ p47: 47 }); ->o47 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o46.merge({ p47: 47 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o46.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o46 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46.merge({ p47: 47 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o46 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p47: 47 } : { p47: number; } > : ^^^^^^^^^^^^^^^^ >p47 : number @@ -857,16 +857,16 @@ const o47 = o46.merge({ p47: 47 }); > : ^^ const o48 = o47.merge({ p48: 48 }); ->o48 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o47.merge({ p48: 48 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o47.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o47 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47.merge({ p48: 48 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o47 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p48: 48 } : { p48: number; } > : ^^^^^^^^^^^^^^^^ >p48 : number @@ -875,16 +875,16 @@ const o48 = o47.merge({ p48: 48 }); > : ^^ const o49 = o48.merge({ p49: 49 }); ->o49 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o48.merge({ p49: 49 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o48.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o48 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48.merge({ p49: 49 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o48 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p49: 49 } : { p49: number; } > : ^^^^^^^^^^^^^^^^ >p49 : number @@ -893,16 +893,16 @@ const o49 = o48.merge({ p49: 49 }); > : ^^ const o50 = o49.merge({ p50: 50 }); ->o50 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o49.merge({ p50: 50 }) : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o49.merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->o49 : Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->merge : (r: r_1) => Type, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, r_1>> -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o50 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49.merge({ p50: 50 }) : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49.merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o49 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>merge : (r: r_1) => Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, r_1>> +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ p50: 50 } : { p50: number; } > : ^^^^^^^^^^^^^^^^ >p50 : number diff --git a/tests/baselines/reference/mappedTypeRecursiveInference.types b/tests/baselines/reference/mappedTypeRecursiveInference.types index 37e7e92989853..6282ea2e35890 100644 --- a/tests/baselines/reference/mappedTypeRecursiveInference.types +++ b/tests/baselines/reference/mappedTypeRecursiveInference.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 25,000 -Instantiation count: 500,000 +Instantiation count: 250,000 Symbol count: 250,000 === mappedTypeRecursiveInference.ts === diff --git a/tests/baselines/reference/mappedTypeRelationships.errors.txt b/tests/baselines/reference/mappedTypeRelationships.errors.txt index 1918a9532f32d..c1c049840aac0 100644 --- a/tests/baselines/reference/mappedTypeRelationships.errors.txt +++ b/tests/baselines/reference/mappedTypeRelationships.errors.txt @@ -37,6 +37,8 @@ mappedTypeRelationships.ts(72,5): error TS2322: Type 'Partial' is not assigna 'T' could be instantiated with an arbitrary type which could be unrelated to 'Partial'. mappedTypeRelationships.ts(78,5): error TS2322: Type 'Partial' is not assignable to type 'Partial'. mappedTypeRelationships.ts(88,5): error TS2322: Type 'Readonly' is not assignable to type 'Readonly'. + Type 'Thing' is not assignable to type 'T'. + 'Thing' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Thing'. mappedTypeRelationships.ts(127,5): error TS2322: Type 'Partial' is not assignable to type 'Identity'. mappedTypeRelationships.ts(143,5): error TS2322: Type '{ [P in keyof T]: T[P]; }' is not assignable to type '{ [P in keyof T]: U[P]; }'. Type 'T[P]' is not assignable to type 'U[P]'. @@ -226,6 +228,8 @@ mappedTypeRelationships.ts(168,5): error TS2322: Type '{ [P in K]: T[P]; }' is n y = x; // Error ~ !!! error TS2322: Type 'Readonly' is not assignable to type 'Readonly'. +!!! error TS2322: Type 'Thing' is not assignable to type 'T'. +!!! error TS2322: 'Thing' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Thing'. } type Item = { diff --git a/tests/baselines/reference/mappedTypes5.errors.txt b/tests/baselines/reference/mappedTypes5.errors.txt index 72bcb85211f47..70071efa0acb7 100644 --- a/tests/baselines/reference/mappedTypes5.errors.txt +++ b/tests/baselines/reference/mappedTypes5.errors.txt @@ -1,6 +1,8 @@ mappedTypes5.ts(6,9): error TS2322: Type 'Partial' is not assignable to type 'Readonly'. mappedTypes5.ts(8,9): error TS2322: Type 'Partial>' is not assignable to type 'Readonly'. mappedTypes5.ts(9,9): error TS2322: Type 'Readonly>' is not assignable to type 'Readonly'. + Type 'Partial' is not assignable to type 'T'. + 'T' could be instantiated with an arbitrary type which could be unrelated to 'Partial'. ==== mappedTypes5.ts (3 errors) ==== @@ -19,6 +21,8 @@ mappedTypes5.ts(9,9): error TS2322: Type 'Readonly>' is not assignabl let b4: Readonly = rp; // Error ~~ !!! error TS2322: Type 'Readonly>' is not assignable to type 'Readonly'. +!!! error TS2322: Type 'Partial' is not assignable to type 'T'. +!!! error TS2322: 'T' could be instantiated with an arbitrary type which could be unrelated to 'Partial'. let c1: Partial> = p; let c2: Partial> = r; let c3: Partial> = pr; diff --git a/tests/baselines/reference/narrowingPastLastAssignment.types b/tests/baselines/reference/narrowingPastLastAssignment.types index f2c62a10d1381..e54baa2232474 100644 --- a/tests/baselines/reference/narrowingPastLastAssignment.types +++ b/tests/baselines/reference/narrowingPastLastAssignment.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 +Instantiation count: 1,000 === narrowingPastLastAssignment.ts === function action(f: Function) {} diff --git a/tests/baselines/reference/nongenericPartialInstantiationsRelatedInBothDirections.errors.txt b/tests/baselines/reference/nongenericPartialInstantiationsRelatedInBothDirections.errors.txt new file mode 100644 index 0000000000000..d2730e4add880 --- /dev/null +++ b/tests/baselines/reference/nongenericPartialInstantiationsRelatedInBothDirections.errors.txt @@ -0,0 +1,27 @@ +nongenericPartialInstantiationsRelatedInBothDirections.ts(11,1): error TS2322: Type 'ObjectContaining<{ a: number; foo: number; }>' is not assignable to type 'ObjectContaining'. + Type '{ a: number; foo: number; }' is missing the following properties from type 'Foo': b, bar +nongenericPartialInstantiationsRelatedInBothDirections.ts(12,1): error TS2322: Type 'ObjectContaining' is not assignable to type 'ObjectContaining<{ a: number; foo: number; }>'. + Property 'foo' is missing in type 'Foo' but required in type '{ a: number; foo: number; }'. + + +==== nongenericPartialInstantiationsRelatedInBothDirections.ts (2 errors) ==== + interface Foo { + a: number; + b: number; + bar: string; + } + interface ObjectContaining { + new (sample: Partial): Partial + } + declare let cafoo: ObjectContaining<{ a: number, foo: number }>; + declare let cfoo: ObjectContaining; + cfoo = cafoo; + ~~~~ +!!! error TS2322: Type 'ObjectContaining<{ a: number; foo: number; }>' is not assignable to type 'ObjectContaining'. +!!! error TS2322: Type '{ a: number; foo: number; }' is missing the following properties from type 'Foo': b, bar + cafoo = cfoo; + ~~~~~ +!!! error TS2322: Type 'ObjectContaining' is not assignable to type 'ObjectContaining<{ a: number; foo: number; }>'. +!!! error TS2322: Property 'foo' is missing in type 'Foo' but required in type '{ a: number; foo: number; }'. +!!! related TS2728 nongenericPartialInstantiationsRelatedInBothDirections.ts:9:50: 'foo' is declared here. + \ No newline at end of file diff --git a/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types b/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types index 61141eebd4c63..e138921e963b2 100644 --- a/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types +++ b/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 +Instantiation count: 1,000 === index.js === /** @type {Map>} */ diff --git a/tests/baselines/reference/promisePermutations.types b/tests/baselines/reference/promisePermutations.types index a752a677c0a4e..0c000ea24f39e 100644 --- a/tests/baselines/reference/promisePermutations.types +++ b/tests/baselines/reference/promisePermutations.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -> 2,500 -Instantiation count: 5,000 -> 10,000 +Instantiation count: 5,000 === promisePermutations.ts === interface Promise { diff --git a/tests/baselines/reference/promiseType.types b/tests/baselines/reference/promiseType.types index 4aec603e3f2a6..0230d5607d54f 100644 --- a/tests/baselines/reference/promiseType.types +++ b/tests/baselines/reference/promiseType.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/promiseType.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === promiseType.ts === declare var p: Promise; >p : Promise diff --git a/tests/baselines/reference/promiseTypeStrictNull.types b/tests/baselines/reference/promiseTypeStrictNull.types index dbc956fe6f8d7..be3d2748fda7c 100644 --- a/tests/baselines/reference/promiseTypeStrictNull.types +++ b/tests/baselines/reference/promiseTypeStrictNull.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/promiseTypeStrictNull.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === promiseTypeStrictNull.ts === declare var p: Promise; >p : Promise diff --git a/tests/baselines/reference/propTypeValidatorInference.types b/tests/baselines/reference/propTypeValidatorInference.types index 16d1e994330d4..0f8f83ce0da48 100644 --- a/tests/baselines/reference/propTypeValidatorInference.types +++ b/tests/baselines/reference/propTypeValidatorInference.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/propTypeValidatorInference.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === node_modules/prop-types/index.d.ts === export const nominalTypeHack: unique symbol; >nominalTypeHack : unique symbol diff --git a/tests/baselines/reference/ramdaToolsNoInfinite2.types b/tests/baselines/reference/ramdaToolsNoInfinite2.types index e4734af9f8f8c..b83caab51a301 100644 --- a/tests/baselines/reference/ramdaToolsNoInfinite2.types +++ b/tests/baselines/reference/ramdaToolsNoInfinite2.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 10,000 -Instantiation count: 25,000 +Instantiation count: 10,000 === ramdaToolsNoInfinite2.ts === declare module "Any/Kind" { diff --git a/tests/baselines/reference/reactDefaultPropsInferenceSuccess.types b/tests/baselines/reference/reactDefaultPropsInferenceSuccess.types index 12ab24b57a640..7af48418d3399 100644 --- a/tests/baselines/reference/reactDefaultPropsInferenceSuccess.types +++ b/tests/baselines/reference/reactDefaultPropsInferenceSuccess.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 10,000 Symbol count: 50,000 === reactDefaultPropsInferenceSuccess.tsx === diff --git a/tests/baselines/reference/reactHOCSpreadprops.types b/tests/baselines/reference/reactHOCSpreadprops.types index a7fb1094c1580..e5a1dd93517eb 100644 --- a/tests/baselines/reference/reactHOCSpreadprops.types +++ b/tests/baselines/reference/reactHOCSpreadprops.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === reactHOCSpreadprops.tsx === diff --git a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types index d1e78014fb51f..aecd1edf6a35e 100644 --- a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types +++ b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === reactReadonlyHOCAssignabilityReal.tsx === diff --git a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types index 486c717c81c2c..6395645608b6f 100644 --- a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types +++ b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/reactReduxLikeDeferredInferenceAllowsAssignment.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === reactReduxLikeDeferredInferenceAllowsAssignment.ts === declare class Component

{ >Component : Component

diff --git a/tests/baselines/reference/reactSFCAndFunctionResolvable.types b/tests/baselines/reference/reactSFCAndFunctionResolvable.types index d2cbbe7cdedab..a4abfecb17868 100644 --- a/tests/baselines/reference/reactSFCAndFunctionResolvable.types +++ b/tests/baselines/reference/reactSFCAndFunctionResolvable.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === reactSFCAndFunctionResolvable.tsx === diff --git a/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM.types b/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM.types index 1d378138c6ffa..cc453ef6d7bc4 100644 --- a/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM.types +++ b/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 10,000 Symbol count: 100,000 === reactTagNameComponentWithPropsNoOOM.tsx === diff --git a/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM2.types b/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM2.types index 4bc3a422cbb61..510ecde5c224c 100644 --- a/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM2.types +++ b/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM2.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 10,000 Symbol count: 100,000 === reactTagNameComponentWithPropsNoOOM2.tsx === diff --git a/tests/baselines/reference/requiredMappedTypeModifierTrumpsVariance.errors.txt b/tests/baselines/reference/requiredMappedTypeModifierTrumpsVariance.errors.txt index c836db4a49cfb..abdffa8249c00 100644 --- a/tests/baselines/reference/requiredMappedTypeModifierTrumpsVariance.errors.txt +++ b/tests/baselines/reference/requiredMappedTypeModifierTrumpsVariance.errors.txt @@ -2,17 +2,11 @@ requiredMappedTypeModifierTrumpsVariance.ts(5,1): error TS2741: Property 'a' is requiredMappedTypeModifierTrumpsVariance.ts(6,1): error TS2741: Property 'b' is missing in type 'Required<{ a?: 1; x: 1; }>' but required in type 'Required<{ b?: 1; x: 1; }>'. requiredMappedTypeModifierTrumpsVariance.ts(8,3): error TS2339: Property 'b' does not exist on type 'Required<{ a?: 1; x: 1; }>'. requiredMappedTypeModifierTrumpsVariance.ts(9,3): error TS2339: Property 'a' does not exist on type 'Required<{ b?: 1; x: 1; }>'. -requiredMappedTypeModifierTrumpsVariance.ts(18,1): error TS2322: Type 'Foo<{ b?: 1; x: 1; }>' is not assignable to type 'Foo<{ a?: 1; x: 1; }>'. - Types of property 'a' are incompatible. - Property 'a' is missing in type 'Required<{ b?: 1; x: 1; }>' but required in type 'Required<{ a?: 1; x: 1; }>'. -requiredMappedTypeModifierTrumpsVariance.ts(19,1): error TS2322: Type 'Foo<{ a?: 1; x: 1; }>' is not assignable to type 'Foo<{ b?: 1; x: 1; }>'. - Types of property 'a' are incompatible. - Property 'b' is missing in type 'Required<{ a?: 1; x: 1; }>' but required in type 'Required<{ b?: 1; x: 1; }>'. requiredMappedTypeModifierTrumpsVariance.ts(21,6): error TS2339: Property 'b' does not exist on type 'Required<{ a?: 1; x: 1; }>'. requiredMappedTypeModifierTrumpsVariance.ts(22,6): error TS2339: Property 'a' does not exist on type 'Required<{ b?: 1; x: 1; }>'. -==== requiredMappedTypeModifierTrumpsVariance.ts (8 errors) ==== +==== requiredMappedTypeModifierTrumpsVariance.ts (6 errors) ==== const a: Required<{ a?: 1; x: 1 }> = { a: 1, x: 1 }; const b: Required<{ b?: 1; x: 1 }> = { b: 1, x: 1 }; export let A = a; @@ -41,17 +35,7 @@ requiredMappedTypeModifierTrumpsVariance.ts(22,6): error TS2339: Property 'a' do export let AA = aa; export let BB = bb; AA = bb; // Should Error - ~~ -!!! error TS2322: Type 'Foo<{ b?: 1; x: 1; }>' is not assignable to type 'Foo<{ a?: 1; x: 1; }>'. -!!! error TS2322: Types of property 'a' are incompatible. -!!! error TS2322: Property 'a' is missing in type 'Required<{ b?: 1; x: 1; }>' but required in type 'Required<{ a?: 1; x: 1; }>'. -!!! related TS2728 requiredMappedTypeModifierTrumpsVariance.ts:14:17: 'a' is declared here. BB = aa; // Should Error - ~~ -!!! error TS2322: Type 'Foo<{ a?: 1; x: 1; }>' is not assignable to type 'Foo<{ b?: 1; x: 1; }>'. -!!! error TS2322: Types of property 'a' are incompatible. -!!! error TS2322: Property 'b' is missing in type 'Required<{ a?: 1; x: 1; }>' but required in type 'Required<{ b?: 1; x: 1; }>'. -!!! related TS2728 requiredMappedTypeModifierTrumpsVariance.ts:15:17: 'b' is declared here. aa.a.b; // Property 'b' does not exist on type 'Required<{ a?: 1; x: 1; }>'. ~ diff --git a/tests/baselines/reference/returnConditionalExpressionJSDocCast.types b/tests/baselines/reference/returnConditionalExpressionJSDocCast.types index 4b98f032cb8e9..afbd69e2a4616 100644 --- a/tests/baselines/reference/returnConditionalExpressionJSDocCast.types +++ b/tests/baselines/reference/returnConditionalExpressionJSDocCast.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 +Instantiation count: 1,000 === file.js === // Don't peek into conditional return expression if it's wrapped in a cast diff --git a/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types b/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types index c078dee14317f..76d245f035b72 100644 --- a/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types +++ b/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === returnTypePredicateIsInstantiateInContextOfTarget.tsx === diff --git a/tests/baselines/reference/spellingSuggestionJSXAttribute.types b/tests/baselines/reference/spellingSuggestionJSXAttribute.types index f49795d4f5934..1e2f7f07f369f 100644 --- a/tests/baselines/reference/spellingSuggestionJSXAttribute.types +++ b/tests/baselines/reference/spellingSuggestionJSXAttribute.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === spellingSuggestionJSXAttribute.tsx === diff --git a/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types b/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types index 9ab0659bad7a1..a93ca5db5364c 100644 --- a/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types +++ b/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 10,000 Type Count: 25,000 -Instantiation count: 250,000 +Instantiation count: 100,000 Symbol count: 100,000 === styledComponentsInstantiaionLimitNotReached.ts === diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.types b/tests/baselines/reference/substitutionTypePassedToExtends.types index 102d4d17d567f..a5d81c4699c7a 100644 --- a/tests/baselines/reference/substitutionTypePassedToExtends.types +++ b/tests/baselines/reference/substitutionTypePassedToExtends.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 500 -> 1,000 -Instantiation count: 100 -> 2,500 +Instantiation count: 100 -> 1,000 === substitutionTypePassedToExtends.ts === type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' diff --git a/tests/baselines/reference/templateLiteralTypes4.types b/tests/baselines/reference/templateLiteralTypes4.types index ef54a53c3efc2..52ef0fe198052 100644 --- a/tests/baselines/reference/templateLiteralTypes4.types +++ b/tests/baselines/reference/templateLiteralTypes4.types @@ -2,7 +2,6 @@ === Performance Stats === Assignability cache: 1,000 -Instantiation count: 1,000 === templateLiteralTypes4.ts === // infer from number diff --git a/tests/baselines/reference/tsxInvokeComponentType.types b/tests/baselines/reference/tsxInvokeComponentType.types index a48c21e2c7bd0..1f9582f22eddf 100644 --- a/tests/baselines/reference/tsxInvokeComponentType.types +++ b/tests/baselines/reference/tsxInvokeComponentType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === tsxInvokeComponentType.tsx === diff --git a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types index 2b7d4d8853f52..d12f1cec7408f 100644 --- a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types +++ b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === tsxNotUsingApparentTypeOfSFC.tsx === diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types index 9676d2331cd70..4bd638da804f2 100644 --- a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === tsxReactEmit8.tsx === diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types index 9676d2331cd70..4bd638da804f2 100644 --- a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === tsxReactEmit8.tsx === diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).types b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).types index 42e8b670c4453..c058341a25d4d 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).types +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === test.tsx === diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).types b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).types index 42e8b670c4453..c058341a25d4d 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).types +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === test.tsx === diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).types b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).types index 42e8b670c4453..c058341a25d4d 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).types +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === test.tsx === diff --git a/tests/baselines/reference/tsxReactPropsInferenceSucceedsOnIntersections.types b/tests/baselines/reference/tsxReactPropsInferenceSucceedsOnIntersections.types index 8c71a4cabf147..da8771efb5e62 100644 --- a/tests/baselines/reference/tsxReactPropsInferenceSucceedsOnIntersections.types +++ b/tests/baselines/reference/tsxReactPropsInferenceSucceedsOnIntersections.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 10,000 Symbol count: 50,000 === tsxReactPropsInferenceSucceedsOnIntersections.tsx === diff --git a/tests/baselines/reference/tsxStatelessComponentDefaultProps.types b/tests/baselines/reference/tsxStatelessComponentDefaultProps.types index 53f498c7d6cc2..b153a20ac8868 100644 --- a/tests/baselines/reference/tsxStatelessComponentDefaultProps.types +++ b/tests/baselines/reference/tsxStatelessComponentDefaultProps.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === tsxStatelessComponentDefaultProps.tsx === diff --git a/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types b/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types index 2bd0f0990b58c..37a2f7612b43d 100644 --- a/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types +++ b/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === tsxUnionMemberChecksFilterDataProps.tsx === diff --git a/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types b/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types index 94fdcef1a8b73..724ed66d6f82f 100644 --- a/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types +++ b/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 50,000 +Instantiation count: 10,000 Symbol count: 50,000 === typeInferenceWithExcessPropertiesJsx.tsx === diff --git a/tests/baselines/reference/valueOfTypedArray.types b/tests/baselines/reference/valueOfTypedArray.types index ab047aa7f9a9f..ab413fe6265c3 100644 --- a/tests/baselines/reference/valueOfTypedArray.types +++ b/tests/baselines/reference/valueOfTypedArray.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 +Instantiation count: 1,000 === valueOfTypedArray.ts === // All declarations should pass, as valueOf has been specialized for all TypedArrays diff --git a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.errors.txt b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.errors.txt new file mode 100644 index 0000000000000..6e4c336cece3c --- /dev/null +++ b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.errors.txt @@ -0,0 +1,37 @@ +varianceRepeatedlyPropegatesWithUnreliableFlag.ts(17,7): error TS2322: Type 'I' is not assignable to type 'I'. + Types of property 'fn' are incompatible. + Type '(p1: P1>, p2: P2>) => void' is not assignable to type '(p1: P1>, p2: P2>) => void'. + Types of parameters 'p1' and 'p1' are incompatible. + Type 'P1>' is not assignable to type 'P1>'. + Type 'Pick' is not assignable to type 'Pick'. + Type 'A' is not assignable to type 'A & B'. + Property 'b' is missing in type 'A' but required in type 'B'. + + +==== varianceRepeatedlyPropegatesWithUnreliableFlag.ts (1 errors) ==== + type A = { a: number }; + type B = { b: number }; + type X = ({ [K in keyof T]: T[K] } & Record)[keyof T]; + type P1 = { data: X }; + type P2 = { data: X }; + + interface I { + fn(p1: P1>, p2: P2>): void; + } + + const i: I = null as any; + const p2: P2 = null as any; + + // Commenting out the below line will remove the error on the `const _i: I = i;` + i.fn(null as any, p2); + + const _i: I = i; + ~~ +!!! error TS2322: Type 'I' is not assignable to type 'I'. +!!! error TS2322: Types of property 'fn' are incompatible. +!!! error TS2322: Type '(p1: P1>, p2: P2>) => void' is not assignable to type '(p1: P1>, p2: P2>) => void'. +!!! error TS2322: Types of parameters 'p1' and 'p1' are incompatible. +!!! error TS2322: Type 'P1>' is not assignable to type 'P1>'. +!!! error TS2322: Type 'Pick' is not assignable to type 'Pick'. +!!! error TS2322: Type 'A' is not assignable to type 'A & B'. +!!! error TS2322: Property 'b' is missing in type 'A' but required in type 'B'. \ No newline at end of file diff --git a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types index ea79a1365746a..71e88fd1c0f6f 100644 --- a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types +++ b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types @@ -43,11 +43,13 @@ const i: I = null as any; >i : I > : ^^^^^^^^ >null as any : any +> : ^^^ const p2: P2 = null as any; >p2 : P2 > : ^^^^^ >null as any : any +> : ^^^ // Commenting out the below line will remove the error on the `const _i: I = i;` i.fn(null as any, p2); @@ -60,6 +62,7 @@ i.fn(null as any, p2); >fn : (p1: P1>, p2: P2>) => void > : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >null as any : any +> : ^^^ >p2 : P2 > : ^^^^^ diff --git a/tests/baselines/reference/verifyDefaultLib_webworker.types b/tests/baselines/reference/verifyDefaultLib_webworker.types index 404fcdd51ab6d..0cacd87af41f9 100644 --- a/tests/baselines/reference/verifyDefaultLib_webworker.types +++ b/tests/baselines/reference/verifyDefaultLib_webworker.types @@ -2,7 +2,6 @@ === Performance Stats === Type Count: 5,000 -Instantiation count: 1,000 === verifyDefaultLib_webworker.ts === var x: Worker; From 6d4258bf0637cae6f5cc19a110118237fdbcb241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sat, 29 Mar 2025 21:09:57 +0100 Subject: [PATCH 03/12] disable cache on function mappers --- src/compiler/checker.ts | 5 +- src/compiler/core.ts | 6 ++ .../reference/circularBaseConstraint.types | 3 + .../deeplyNestedMappedTypes.errors.txt | 10 ++- .../reference/deeplyNestedMappedTypes.types | 2 +- ...nticalTypesNoDifferByCheckOrder.errors.txt | 67 ------------------- .../identicalTypesNoDifferByCheckOrder.types | 2 - ...upleArgsHasCorrectAssignability.errors.txt | 31 --------- .../baselines/reference/largeTupleTypes.types | 2 +- .../mappedTypeRelationships.errors.txt | 4 -- .../reference/mappedTypes5.errors.txt | 4 -- ...tiationsRelatedInBothDirections.errors.txt | 27 -------- .../propTypeValidatorInference.types | 3 + ...appedTypeModifierTrumpsVariance.errors.txt | 18 ++++- ...dlyPropegatesWithUnreliableFlag.errors.txt | 37 ---------- ...peatedlyPropegatesWithUnreliableFlag.types | 3 - 16 files changed, 39 insertions(+), 185 deletions(-) delete mode 100644 tests/baselines/reference/identicalTypesNoDifferByCheckOrder.errors.txt delete mode 100644 tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.errors.txt delete mode 100644 tests/baselines/reference/nongenericPartialInstantiationsRelatedInBothDirections.errors.txt delete mode 100644 tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.errors.txt diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5b0f2d21eff7b..b0b20696d0d9a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1133,6 +1133,7 @@ import { WideningContext, WithStatement, YieldExpression, + voidMap, } from "./_namespaces/ts.js"; import * as moduleSpecifiers from "./_namespaces/ts.moduleSpecifiers.js"; import * as performance from "./_namespaces/ts.performance.js"; @@ -19960,7 +19961,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } function makeFunctionTypeMapper(func: (t: Type) => Type, debugInfo: () => string): TypeMapper { - return Debug.attachDebugPrototypeIfDebug({ kind: TypeMapKind.Function, func, debugInfo: Debug.isDebugging ? debugInfo : undefined }); + const mapper = Debug.attachDebugPrototypeIfDebug({ kind: TypeMapKind.Function, func, debugInfo: Debug.isDebugging ? debugInfo : undefined }); + mapper.instantiations = voidMap; + return mapper; } function makeDeferredTypeMapper(sources: readonly TypeParameter[], targets: (() => Type)[]) { diff --git a/src/compiler/core.ts b/src/compiler/core.ts index ef83fefd533e0..306374dd93339 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -18,6 +18,12 @@ export const emptyArray: never[] = [] as never[]; /** @internal */ export const emptyMap: ReadonlyMap = new Map(); +/** @internal */ +export const voidMap: Map = new Map(); +voidMap.set = function () { + return this; +}; + /** @internal */ export function length(array: readonly any[] | undefined): number { return array !== undefined ? array.length : 0; diff --git a/tests/baselines/reference/circularBaseConstraint.types b/tests/baselines/reference/circularBaseConstraint.types index 359035e7f2696..cec18961daeaf 100644 --- a/tests/baselines/reference/circularBaseConstraint.types +++ b/tests/baselines/reference/circularBaseConstraint.types @@ -1,5 +1,8 @@ //// [tests/cases/compiler/circularBaseConstraint.ts] //// +=== Performance Stats === +Instantiation count: 2,500 + === circularBaseConstraint.ts === // Repro from #54610 diff --git a/tests/baselines/reference/deeplyNestedMappedTypes.errors.txt b/tests/baselines/reference/deeplyNestedMappedTypes.errors.txt index 7500e8b0a4017..d9cd2e20c31d8 100644 --- a/tests/baselines/reference/deeplyNestedMappedTypes.errors.txt +++ b/tests/baselines/reference/deeplyNestedMappedTypes.errors.txt @@ -2,9 +2,8 @@ deeplyNestedMappedTypes.ts(9,7): error TS2322: Type 'Id<{ x: { y: { z: { a: { b: The types of 'x.y.z.a.b.c' are incompatible between these types. Type 'number' is not assignable to type 'string'. deeplyNestedMappedTypes.ts(17,7): error TS2322: Type 'Id2<{ x: { y: { z: { a: { b: { c: number; }; }; }; }; }; }>' is not assignable to type 'Id2<{ x: { y: { z: { a: { b: { c: string; }; }; }; }; }; }>'. - Type '{ x: { y: { z: { a: { b: { c: number; }; }; }; }; }; }' is not assignable to type '{ x: { y: { z: { a: { b: { c: string; }; }; }; }; }; }'. - The types of 'x.y.z.a.b.c' are incompatible between these types. - Type 'number' is not assignable to type 'string'. + The types of 'x.y.z.a.b.c' are incompatible between these types. + Type 'number' is not assignable to type 'string'. deeplyNestedMappedTypes.ts(69,5): error TS2322: Type '{ level1: { level2: { foo: string; }; }; }[]' is not assignable to type '{ level1: { level2: { foo: string; bar: string; }; }; }[]'. Type '{ level1: { level2: { foo: string; }; }; }' is not assignable to type '{ level1: { level2: { foo: string; bar: string; }; }; }'. The types of 'level1.level2' are incompatible between these types. @@ -41,9 +40,8 @@ deeplyNestedMappedTypes.ts(77,5): error TS2322: Type '{ level1: { level2: { foo: const foo4: Foo4 = foo3; // Error expected ~~~~ !!! error TS2322: Type 'Id2<{ x: { y: { z: { a: { b: { c: number; }; }; }; }; }; }>' is not assignable to type 'Id2<{ x: { y: { z: { a: { b: { c: string; }; }; }; }; }; }>'. -!!! error TS2322: Type '{ x: { y: { z: { a: { b: { c: number; }; }; }; }; }; }' is not assignable to type '{ x: { y: { z: { a: { b: { c: string; }; }; }; }; }; }'. -!!! error TS2322: The types of 'x.y.z.a.b.c' are incompatible between these types. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: The types of 'x.y.z.a.b.c' are incompatible between these types. +!!! error TS2322: Type 'number' is not assignable to type 'string'. // Repro from issue linked in #55535 diff --git a/tests/baselines/reference/deeplyNestedMappedTypes.types b/tests/baselines/reference/deeplyNestedMappedTypes.types index a42afdfb68883..68a8048a65774 100644 --- a/tests/baselines/reference/deeplyNestedMappedTypes.types +++ b/tests/baselines/reference/deeplyNestedMappedTypes.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 2,500 +Instantiation count: 5,000 === deeplyNestedMappedTypes.ts === // Simplified repro from #55535 diff --git a/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.errors.txt b/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.errors.txt deleted file mode 100644 index 9e4e98bf411a3..0000000000000 --- a/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.errors.txt +++ /dev/null @@ -1,67 +0,0 @@ -identicalTypesNoDifferByCheckOrder.ts(32,30): error TS2322: Type 'FunctionComponent2' is not assignable to type 'FunctionComponent2'. - Type 'SomeProps' is not assignable to type 'SomePropsCloneX'. - Type 'SomeProps' is not assignable to type 'Required>'. - Types of property 'x' are incompatible. - Type 'string | undefined' is not assignable to type 'string'. - Type 'undefined' is not assignable to type 'string'. -identicalTypesNoDifferByCheckOrder.ts(36,30): error TS2322: Type 'FunctionComponent1' is not assignable to type 'FunctionComponent1'. - Type 'SomeProps' is not assignable to type 'SomePropsX'. - Type 'SomeProps' is not assignable to type 'Required>'. - Types of property 'x' are incompatible. - Type 'string | undefined' is not assignable to type 'string'. - Type 'undefined' is not assignable to type 'string'. - - -==== identicalTypesNoDifferByCheckOrder.ts (2 errors) ==== - interface SomeProps { - x?: string; - y?: number; - renderAs?: FunctionComponent1 - } - - type SomePropsX = Required> & Omit; - - interface SomePropsClone { - x?: string; - y?: number; - renderAs?: FunctionComponent2 - } - - type SomePropsCloneX = Required> & Omit; - - type Validator = {(): boolean, opt?: T}; - type WeakValidationMap = {[K in keyof T]?: null extends T[K] ? Validator : Validator}; - - interface FunctionComponent1

{ - (props: P & { children?: unknown }): void; - propTypes?: WeakValidationMap

; - } - - interface FunctionComponent2

{ - (props: P & { children?: unknown }): void; - propTypes?: WeakValidationMap

; - } - - function needsComponentOfSomeProps3(...x: SomePropsClone[]): void {} - const comp3: FunctionComponent2 = null as any; - needsComponentOfSomeProps3({ renderAs: comp3 }); - ~~~~~~~~ -!!! error TS2322: Type 'FunctionComponent2' is not assignable to type 'FunctionComponent2'. -!!! error TS2322: Type 'SomeProps' is not assignable to type 'SomePropsCloneX'. -!!! error TS2322: Type 'SomeProps' is not assignable to type 'Required>'. -!!! error TS2322: Types of property 'x' are incompatible. -!!! error TS2322: Type 'string | undefined' is not assignable to type 'string'. -!!! error TS2322: Type 'undefined' is not assignable to type 'string'. -!!! related TS6500 identicalTypesNoDifferByCheckOrder.ts:12:5: The expected type comes from property 'renderAs' which is declared here on type 'SomePropsClone' - - function needsComponentOfSomeProps2(...x: SomeProps[]): void {} - const comp2: FunctionComponent1 = null as any; - needsComponentOfSomeProps2({ renderAs: comp2 }); - ~~~~~~~~ -!!! error TS2322: Type 'FunctionComponent1' is not assignable to type 'FunctionComponent1'. -!!! error TS2322: Type 'SomeProps' is not assignable to type 'SomePropsX'. -!!! error TS2322: Type 'SomeProps' is not assignable to type 'Required>'. -!!! error TS2322: Types of property 'x' are incompatible. -!!! error TS2322: Type 'string | undefined' is not assignable to type 'string'. -!!! error TS2322: Type 'undefined' is not assignable to type 'string'. -!!! related TS6500 identicalTypesNoDifferByCheckOrder.ts:4:5: The expected type comes from property 'renderAs' which is declared here on type 'SomeProps' \ No newline at end of file diff --git a/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.types b/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.types index 066f6530f932c..4e74085412e49 100644 --- a/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.types +++ b/tests/baselines/reference/identicalTypesNoDifferByCheckOrder.types @@ -81,7 +81,6 @@ const comp3: FunctionComponent2 = null as any; >comp3 : FunctionComponent2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >null as any : any -> : ^^^ needsComponentOfSomeProps3({ renderAs: comp3 }); >needsComponentOfSomeProps3({ renderAs: comp3 }) : void @@ -105,7 +104,6 @@ const comp2: FunctionComponent1 = null as any; >comp2 : FunctionComponent1 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >null as any : any -> : ^^^ needsComponentOfSomeProps2({ renderAs: comp2 }); >needsComponentOfSomeProps2({ renderAs: comp2 }) : void diff --git a/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.errors.txt b/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.errors.txt deleted file mode 100644 index 02a963294101e..0000000000000 --- a/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.errors.txt +++ /dev/null @@ -1,31 +0,0 @@ -lambdaParameterWithTupleArgsHasCorrectAssignability.ts(17,14): error TS2345: Argument of type 'GenericClass<[str: string]>' is not assignable to parameter of type 'GenericClass<[string, boolean]>'. - Type '[string, boolean]' is not assignable to type '[str: string]'. - Source has 2 element(s) but target allows only 1. - - -==== lambdaParameterWithTupleArgsHasCorrectAssignability.ts (1 errors) ==== - type MyTupleItem = {}; - type MyTuple = [MyTupleItem, ...MyTupleItem[]]; - - type GenericFunction = (...fromArgs: T) => void; - - class GenericClass { - from: GenericFunction | undefined; - } - - function createClass(f: GenericFunction): GenericClass { - return new GenericClass(/* ... use f */); - } - - function consumeClass(c: GenericClass<[string, boolean]>) { } - - // should work - consumeClass(createClass(str => console.log(str.length))); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type 'GenericClass<[str: string]>' is not assignable to parameter of type 'GenericClass<[string, boolean]>'. -!!! error TS2345: Type '[string, boolean]' is not assignable to type '[str: string]'. -!!! error TS2345: Source has 2 element(s) but target allows only 1. - - // should work - consumeClass(createClass((str, _unused_num) => console.log(str.length))); - \ No newline at end of file diff --git a/tests/baselines/reference/largeTupleTypes.types b/tests/baselines/reference/largeTupleTypes.types index 9d0a43858a19a..a8826173d19fa 100644 --- a/tests/baselines/reference/largeTupleTypes.types +++ b/tests/baselines/reference/largeTupleTypes.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 1,000 Type Count: 25,000 -Instantiation count: 25,000 +Instantiation count: 50,000 Symbol count: 50,000 === largeTupleTypes.ts === diff --git a/tests/baselines/reference/mappedTypeRelationships.errors.txt b/tests/baselines/reference/mappedTypeRelationships.errors.txt index c1c049840aac0..1918a9532f32d 100644 --- a/tests/baselines/reference/mappedTypeRelationships.errors.txt +++ b/tests/baselines/reference/mappedTypeRelationships.errors.txt @@ -37,8 +37,6 @@ mappedTypeRelationships.ts(72,5): error TS2322: Type 'Partial' is not assigna 'T' could be instantiated with an arbitrary type which could be unrelated to 'Partial'. mappedTypeRelationships.ts(78,5): error TS2322: Type 'Partial' is not assignable to type 'Partial'. mappedTypeRelationships.ts(88,5): error TS2322: Type 'Readonly' is not assignable to type 'Readonly'. - Type 'Thing' is not assignable to type 'T'. - 'Thing' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Thing'. mappedTypeRelationships.ts(127,5): error TS2322: Type 'Partial' is not assignable to type 'Identity'. mappedTypeRelationships.ts(143,5): error TS2322: Type '{ [P in keyof T]: T[P]; }' is not assignable to type '{ [P in keyof T]: U[P]; }'. Type 'T[P]' is not assignable to type 'U[P]'. @@ -228,8 +226,6 @@ mappedTypeRelationships.ts(168,5): error TS2322: Type '{ [P in K]: T[P]; }' is n y = x; // Error ~ !!! error TS2322: Type 'Readonly' is not assignable to type 'Readonly'. -!!! error TS2322: Type 'Thing' is not assignable to type 'T'. -!!! error TS2322: 'Thing' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Thing'. } type Item = { diff --git a/tests/baselines/reference/mappedTypes5.errors.txt b/tests/baselines/reference/mappedTypes5.errors.txt index 70071efa0acb7..72bcb85211f47 100644 --- a/tests/baselines/reference/mappedTypes5.errors.txt +++ b/tests/baselines/reference/mappedTypes5.errors.txt @@ -1,8 +1,6 @@ mappedTypes5.ts(6,9): error TS2322: Type 'Partial' is not assignable to type 'Readonly'. mappedTypes5.ts(8,9): error TS2322: Type 'Partial>' is not assignable to type 'Readonly'. mappedTypes5.ts(9,9): error TS2322: Type 'Readonly>' is not assignable to type 'Readonly'. - Type 'Partial' is not assignable to type 'T'. - 'T' could be instantiated with an arbitrary type which could be unrelated to 'Partial'. ==== mappedTypes5.ts (3 errors) ==== @@ -21,8 +19,6 @@ mappedTypes5.ts(9,9): error TS2322: Type 'Readonly>' is not assignabl let b4: Readonly = rp; // Error ~~ !!! error TS2322: Type 'Readonly>' is not assignable to type 'Readonly'. -!!! error TS2322: Type 'Partial' is not assignable to type 'T'. -!!! error TS2322: 'T' could be instantiated with an arbitrary type which could be unrelated to 'Partial'. let c1: Partial> = p; let c2: Partial> = r; let c3: Partial> = pr; diff --git a/tests/baselines/reference/nongenericPartialInstantiationsRelatedInBothDirections.errors.txt b/tests/baselines/reference/nongenericPartialInstantiationsRelatedInBothDirections.errors.txt deleted file mode 100644 index d2730e4add880..0000000000000 --- a/tests/baselines/reference/nongenericPartialInstantiationsRelatedInBothDirections.errors.txt +++ /dev/null @@ -1,27 +0,0 @@ -nongenericPartialInstantiationsRelatedInBothDirections.ts(11,1): error TS2322: Type 'ObjectContaining<{ a: number; foo: number; }>' is not assignable to type 'ObjectContaining'. - Type '{ a: number; foo: number; }' is missing the following properties from type 'Foo': b, bar -nongenericPartialInstantiationsRelatedInBothDirections.ts(12,1): error TS2322: Type 'ObjectContaining' is not assignable to type 'ObjectContaining<{ a: number; foo: number; }>'. - Property 'foo' is missing in type 'Foo' but required in type '{ a: number; foo: number; }'. - - -==== nongenericPartialInstantiationsRelatedInBothDirections.ts (2 errors) ==== - interface Foo { - a: number; - b: number; - bar: string; - } - interface ObjectContaining { - new (sample: Partial): Partial - } - declare let cafoo: ObjectContaining<{ a: number, foo: number }>; - declare let cfoo: ObjectContaining; - cfoo = cafoo; - ~~~~ -!!! error TS2322: Type 'ObjectContaining<{ a: number; foo: number; }>' is not assignable to type 'ObjectContaining'. -!!! error TS2322: Type '{ a: number; foo: number; }' is missing the following properties from type 'Foo': b, bar - cafoo = cfoo; - ~~~~~ -!!! error TS2322: Type 'ObjectContaining' is not assignable to type 'ObjectContaining<{ a: number; foo: number; }>'. -!!! error TS2322: Property 'foo' is missing in type 'Foo' but required in type '{ a: number; foo: number; }'. -!!! related TS2728 nongenericPartialInstantiationsRelatedInBothDirections.ts:9:50: 'foo' is declared here. - \ No newline at end of file diff --git a/tests/baselines/reference/propTypeValidatorInference.types b/tests/baselines/reference/propTypeValidatorInference.types index 0f8f83ce0da48..4ba12bf39d3c2 100644 --- a/tests/baselines/reference/propTypeValidatorInference.types +++ b/tests/baselines/reference/propTypeValidatorInference.types @@ -1,5 +1,8 @@ //// [tests/cases/compiler/propTypeValidatorInference.ts] //// +=== Performance Stats === +Instantiation count: 1,000 + === node_modules/prop-types/index.d.ts === export const nominalTypeHack: unique symbol; >nominalTypeHack : unique symbol diff --git a/tests/baselines/reference/requiredMappedTypeModifierTrumpsVariance.errors.txt b/tests/baselines/reference/requiredMappedTypeModifierTrumpsVariance.errors.txt index abdffa8249c00..c836db4a49cfb 100644 --- a/tests/baselines/reference/requiredMappedTypeModifierTrumpsVariance.errors.txt +++ b/tests/baselines/reference/requiredMappedTypeModifierTrumpsVariance.errors.txt @@ -2,11 +2,17 @@ requiredMappedTypeModifierTrumpsVariance.ts(5,1): error TS2741: Property 'a' is requiredMappedTypeModifierTrumpsVariance.ts(6,1): error TS2741: Property 'b' is missing in type 'Required<{ a?: 1; x: 1; }>' but required in type 'Required<{ b?: 1; x: 1; }>'. requiredMappedTypeModifierTrumpsVariance.ts(8,3): error TS2339: Property 'b' does not exist on type 'Required<{ a?: 1; x: 1; }>'. requiredMappedTypeModifierTrumpsVariance.ts(9,3): error TS2339: Property 'a' does not exist on type 'Required<{ b?: 1; x: 1; }>'. +requiredMappedTypeModifierTrumpsVariance.ts(18,1): error TS2322: Type 'Foo<{ b?: 1; x: 1; }>' is not assignable to type 'Foo<{ a?: 1; x: 1; }>'. + Types of property 'a' are incompatible. + Property 'a' is missing in type 'Required<{ b?: 1; x: 1; }>' but required in type 'Required<{ a?: 1; x: 1; }>'. +requiredMappedTypeModifierTrumpsVariance.ts(19,1): error TS2322: Type 'Foo<{ a?: 1; x: 1; }>' is not assignable to type 'Foo<{ b?: 1; x: 1; }>'. + Types of property 'a' are incompatible. + Property 'b' is missing in type 'Required<{ a?: 1; x: 1; }>' but required in type 'Required<{ b?: 1; x: 1; }>'. requiredMappedTypeModifierTrumpsVariance.ts(21,6): error TS2339: Property 'b' does not exist on type 'Required<{ a?: 1; x: 1; }>'. requiredMappedTypeModifierTrumpsVariance.ts(22,6): error TS2339: Property 'a' does not exist on type 'Required<{ b?: 1; x: 1; }>'. -==== requiredMappedTypeModifierTrumpsVariance.ts (6 errors) ==== +==== requiredMappedTypeModifierTrumpsVariance.ts (8 errors) ==== const a: Required<{ a?: 1; x: 1 }> = { a: 1, x: 1 }; const b: Required<{ b?: 1; x: 1 }> = { b: 1, x: 1 }; export let A = a; @@ -35,7 +41,17 @@ requiredMappedTypeModifierTrumpsVariance.ts(22,6): error TS2339: Property 'a' do export let AA = aa; export let BB = bb; AA = bb; // Should Error + ~~ +!!! error TS2322: Type 'Foo<{ b?: 1; x: 1; }>' is not assignable to type 'Foo<{ a?: 1; x: 1; }>'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Property 'a' is missing in type 'Required<{ b?: 1; x: 1; }>' but required in type 'Required<{ a?: 1; x: 1; }>'. +!!! related TS2728 requiredMappedTypeModifierTrumpsVariance.ts:14:17: 'a' is declared here. BB = aa; // Should Error + ~~ +!!! error TS2322: Type 'Foo<{ a?: 1; x: 1; }>' is not assignable to type 'Foo<{ b?: 1; x: 1; }>'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Property 'b' is missing in type 'Required<{ a?: 1; x: 1; }>' but required in type 'Required<{ b?: 1; x: 1; }>'. +!!! related TS2728 requiredMappedTypeModifierTrumpsVariance.ts:15:17: 'b' is declared here. aa.a.b; // Property 'b' does not exist on type 'Required<{ a?: 1; x: 1; }>'. ~ diff --git a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.errors.txt b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.errors.txt deleted file mode 100644 index 6e4c336cece3c..0000000000000 --- a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.errors.txt +++ /dev/null @@ -1,37 +0,0 @@ -varianceRepeatedlyPropegatesWithUnreliableFlag.ts(17,7): error TS2322: Type 'I' is not assignable to type 'I'. - Types of property 'fn' are incompatible. - Type '(p1: P1>, p2: P2>) => void' is not assignable to type '(p1: P1>, p2: P2>) => void'. - Types of parameters 'p1' and 'p1' are incompatible. - Type 'P1>' is not assignable to type 'P1>'. - Type 'Pick' is not assignable to type 'Pick'. - Type 'A' is not assignable to type 'A & B'. - Property 'b' is missing in type 'A' but required in type 'B'. - - -==== varianceRepeatedlyPropegatesWithUnreliableFlag.ts (1 errors) ==== - type A = { a: number }; - type B = { b: number }; - type X = ({ [K in keyof T]: T[K] } & Record)[keyof T]; - type P1 = { data: X }; - type P2 = { data: X }; - - interface I { - fn(p1: P1>, p2: P2>): void; - } - - const i: I = null as any; - const p2: P2 = null as any; - - // Commenting out the below line will remove the error on the `const _i: I = i;` - i.fn(null as any, p2); - - const _i: I = i; - ~~ -!!! error TS2322: Type 'I' is not assignable to type 'I'. -!!! error TS2322: Types of property 'fn' are incompatible. -!!! error TS2322: Type '(p1: P1>, p2: P2>) => void' is not assignable to type '(p1: P1>, p2: P2>) => void'. -!!! error TS2322: Types of parameters 'p1' and 'p1' are incompatible. -!!! error TS2322: Type 'P1>' is not assignable to type 'P1>'. -!!! error TS2322: Type 'Pick' is not assignable to type 'Pick'. -!!! error TS2322: Type 'A' is not assignable to type 'A & B'. -!!! error TS2322: Property 'b' is missing in type 'A' but required in type 'B'. \ No newline at end of file diff --git a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types index 71e88fd1c0f6f..ea79a1365746a 100644 --- a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types +++ b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types @@ -43,13 +43,11 @@ const i: I = null as any; >i : I > : ^^^^^^^^ >null as any : any -> : ^^^ const p2: P2 = null as any; >p2 : P2 > : ^^^^^ >null as any : any -> : ^^^ // Commenting out the below line will remove the error on the `const _i: I = i;` i.fn(null as any, p2); @@ -62,7 +60,6 @@ i.fn(null as any, p2); >fn : (p1: P1>, p2: P2>) => void > : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >null as any : any -> : ^^^ >p2 : P2 > : ^^^^^ From f07db7281ce72fd0871def4dca29260fbf8a2310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sat, 29 Mar 2025 21:11:20 +0100 Subject: [PATCH 04/12] tweak cache key --- src/compiler/checker.ts | 6 +++--- src/compiler/types.ts | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b0b20696d0d9a..1c58c6dc6a4c3 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -20374,8 +20374,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { error(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite); return errorType; } - mapper.instantiations ??= new Map(); - const cached = mapper.instantiations.get(type.id); + const key = type.id + getAliasId(aliasSymbol, aliasTypeArguments); + const cached = (mapper.instantiations ??= new Map()).get(key); if (cached) { return cached; } @@ -20383,7 +20383,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { instantiationCount++; instantiationDepth++; const result = instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments); - mapper.instantiations.set(type.id, result); + mapper.instantiations.set(key, result); instantiationDepth--; return result; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 7b15d13740360..6a90ef2b92dff 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -7029,11 +7029,11 @@ export const enum TypeMapKind { /** @internal */ export type TypeMapper = - | { kind: TypeMapKind.Simple; source: Type; target: Type; instantiations?: Map; } - | { kind: TypeMapKind.Array; sources: readonly Type[]; targets: readonly Type[] | undefined; instantiations?: Map; } - | { kind: TypeMapKind.Deferred; sources: readonly Type[]; targets: (() => Type)[]; instantiations?: Map; } - | { kind: TypeMapKind.Function; func: (t: Type) => Type; debugInfo?: () => string; instantiations?: Map; } - | { kind: TypeMapKind.Composite | TypeMapKind.Merged; mapper1: TypeMapper; mapper2: TypeMapper; instantiations?: Map; }; + | { kind: TypeMapKind.Simple; source: Type; target: Type; instantiations?: Map; } + | { kind: TypeMapKind.Array; sources: readonly Type[]; targets: readonly Type[] | undefined; instantiations?: Map; } + | { kind: TypeMapKind.Deferred; sources: readonly Type[]; targets: (() => Type)[]; instantiations?: Map; } + | { kind: TypeMapKind.Function; func: (t: Type) => Type; debugInfo?: () => string; instantiations?: Map; } + | { kind: TypeMapKind.Composite | TypeMapKind.Merged; mapper1: TypeMapper; mapper2: TypeMapper; instantiations?: Map; }; // dprint-ignore export const enum InferencePriority { From e2e7091bc6a507cab194f6a928c5b08d8b89e886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sun, 30 Mar 2025 08:38:26 +0200 Subject: [PATCH 05/12] add sanity checks --- .../longObjectInstantiationChain1.errors.txt | 110 ++++ .../longObjectInstantiationChain1.symbols | 77 +++ .../longObjectInstantiationChain1.types | 138 +++- .../longObjectInstantiationChain2.errors.txt | 116 ++++ .../longObjectInstantiationChain2.symbols | 610 ++++++++++-------- .../longObjectInstantiationChain2.types | 202 +++++- .../compiler/longObjectInstantiationChain1.ts | 22 + .../compiler/longObjectInstantiationChain2.ts | 22 + 8 files changed, 1041 insertions(+), 256 deletions(-) create mode 100644 tests/baselines/reference/longObjectInstantiationChain1.errors.txt create mode 100644 tests/baselines/reference/longObjectInstantiationChain2.errors.txt diff --git a/tests/baselines/reference/longObjectInstantiationChain1.errors.txt b/tests/baselines/reference/longObjectInstantiationChain1.errors.txt new file mode 100644 index 0000000000000..2c04b08398d74 --- /dev/null +++ b/tests/baselines/reference/longObjectInstantiationChain1.errors.txt @@ -0,0 +1,110 @@ +longObjectInstantiationChain1.ts(57,4): error TS2339: Property 'p51' does not exist on type 'merge<{ p1: number; }, { p2: number; }>'. +longObjectInstantiationChain1.ts(62,4): error TS2339: Property 'p4' does not exist on type 'merge, { p3: number; }>'. +longObjectInstantiationChain1.ts(64,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain1.ts(65,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain1.ts(68,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain1.ts(70,5): error TS2339: Property 'p38' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. +longObjectInstantiationChain1.ts(71,5): error TS2339: Property 'p51' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. +longObjectInstantiationChain1.ts(73,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain1.ts(74,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain1.ts(75,1): error TS2589: Type instantiation is excessively deep and possibly infinite. + + +==== longObjectInstantiationChain1.ts (10 errors) ==== + export type merge = Omit & props; + + declare const merge: (l: l, r: r) => merge; + + const o1 = merge({ p1: 1 }, { p2: 2 }); + const o2 = merge(o1, { p3: 3 }); + const o3 = merge(o2, { p4: 4 }); + const o4 = merge(o3, { p5: 5 }); + const o5 = merge(o4, { p6: 6 }); + const o6 = merge(o5, { p7: 7 }); + const o7 = merge(o6, { p8: 8 }); + const o8 = merge(o7, { p9: 9 }); + const o9 = merge(o8, { p10: 10 }); + const o10 = merge(o9, { p11: 11 }); + const o11 = merge(o10, { p12: 12 }); + const o12 = merge(o11, { p13: 13 }); + const o13 = merge(o12, { p14: 14 }); + const o14 = merge(o13, { p15: 15 }); + const o15 = merge(o14, { p16: 16 }); + const o16 = merge(o15, { p17: 17 }); + const o17 = merge(o16, { p18: 18 }); + const o18 = merge(o17, { p19: 19 }); + const o19 = merge(o18, { p20: 20 }); + const o20 = merge(o19, { p21: 21 }); + const o21 = merge(o20, { p22: 22 }); + const o22 = merge(o21, { p23: 23 }); + const o23 = merge(o22, { p24: 24 }); + const o24 = merge(o23, { p25: 25 }); + const o25 = merge(o24, { p26: 26 }); + const o26 = merge(o25, { p27: 27 }); + const o27 = merge(o26, { p28: 28 }); + const o28 = merge(o27, { p29: 29 }); + const o29 = merge(o28, { p30: 30 }); + const o30 = merge(o29, { p31: 31 }); + const o31 = merge(o30, { p32: 32 }); + const o32 = merge(o31, { p33: 33 }); + const o33 = merge(o32, { p34: 34 }); + const o34 = merge(o33, { p35: 35 }); + const o35 = merge(o34, { p36: 36 }); + const o36 = merge(o35, { p37: 37 }); + const o37 = merge(o36, { p38: 38 }); + const o38 = merge(o37, { p39: 39 }); + const o39 = merge(o38, { p40: 40 }); + const o40 = merge(o39, { p41: 41 }); + const o41 = merge(o40, { p42: 42 }); + const o42 = merge(o41, { p43: 43 }); + const o43 = merge(o42, { p44: 44 }); + const o44 = merge(o43, { p45: 45 }); + const o45 = merge(o44, { p46: 46 }); + const o46 = merge(o45, { p47: 47 }); + const o47 = merge(o46, { p48: 48 }); + const o48 = merge(o47, { p49: 49 }); + const o49 = merge(o48, { p50: 50 }); + const o50 = merge(o49, { p51: 51 }); + + o1.p1; + o1.p51; // error + ~~~ +!!! error TS2339: Property 'p51' does not exist on type 'merge<{ p1: number; }, { p2: number; }>'. + + o2.p1; + o2.p2; + o2.p3; + o2.p4; // error + ~~ +!!! error TS2339: Property 'p4' does not exist on type 'merge, { p3: number; }>'. + + o25.p1; + ~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o25.p10; + ~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o25.p26; + + o30.p1; + ~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o30.p31; + o30.p38; // error + ~~~ +!!! error TS2339: Property 'p38' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. + o30.p51; // error + ~~~ +!!! error TS2339: Property 'p51' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. + + o50.p1; + ~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o50.p31; + ~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o50.p38; + ~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o50.p51; + \ No newline at end of file diff --git a/tests/baselines/reference/longObjectInstantiationChain1.symbols b/tests/baselines/reference/longObjectInstantiationChain1.symbols index 785567d5aa25b..22db3d57312d8 100644 --- a/tests/baselines/reference/longObjectInstantiationChain1.symbols +++ b/tests/baselines/reference/longObjectInstantiationChain1.symbols @@ -323,3 +323,80 @@ const o50 = merge(o49, { p51: 51 }); >o49 : Symbol(o49, Decl(longObjectInstantiationChain1.ts, 52, 5)) >p51 : Symbol(p51, Decl(longObjectInstantiationChain1.ts, 53, 24)) +o1.p1; +>o1.p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) +>o1 : Symbol(o1, Decl(longObjectInstantiationChain1.ts, 4, 5)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) + +o1.p51; // error +>o1 : Symbol(o1, Decl(longObjectInstantiationChain1.ts, 4, 5)) + +o2.p1; +>o2.p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain1.ts, 5, 5)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) + +o2.p2; +>o2.p2 : Symbol(p2, Decl(longObjectInstantiationChain1.ts, 4, 29)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain1.ts, 5, 5)) +>p2 : Symbol(p2, Decl(longObjectInstantiationChain1.ts, 4, 29)) + +o2.p3; +>o2.p3 : Symbol(p3, Decl(longObjectInstantiationChain1.ts, 5, 22)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain1.ts, 5, 5)) +>p3 : Symbol(p3, Decl(longObjectInstantiationChain1.ts, 5, 22)) + +o2.p4; // error +>o2 : Symbol(o2, Decl(longObjectInstantiationChain1.ts, 5, 5)) + +o25.p1; +>o25.p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain1.ts, 28, 5)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) + +o25.p10; +>o25.p10 : Symbol(p10, Decl(longObjectInstantiationChain1.ts, 12, 22)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain1.ts, 28, 5)) +>p10 : Symbol(p10, Decl(longObjectInstantiationChain1.ts, 12, 22)) + +o25.p26; +>o25.p26 : Symbol(p26, Decl(longObjectInstantiationChain1.ts, 28, 24)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain1.ts, 28, 5)) +>p26 : Symbol(p26, Decl(longObjectInstantiationChain1.ts, 28, 24)) + +o30.p1; +>o30.p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain1.ts, 33, 5)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) + +o30.p31; +>o30.p31 : Symbol(p31, Decl(longObjectInstantiationChain1.ts, 33, 24)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain1.ts, 33, 5)) +>p31 : Symbol(p31, Decl(longObjectInstantiationChain1.ts, 33, 24)) + +o30.p38; // error +>o30 : Symbol(o30, Decl(longObjectInstantiationChain1.ts, 33, 5)) + +o30.p51; // error +>o30 : Symbol(o30, Decl(longObjectInstantiationChain1.ts, 33, 5)) + +o50.p1; +>o50.p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain1.ts, 53, 5)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain1.ts, 4, 18)) + +o50.p31; +>o50.p31 : Symbol(p31, Decl(longObjectInstantiationChain1.ts, 33, 24)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain1.ts, 53, 5)) +>p31 : Symbol(p31, Decl(longObjectInstantiationChain1.ts, 33, 24)) + +o50.p38; +>o50.p38 : Symbol(p38, Decl(longObjectInstantiationChain1.ts, 40, 24)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain1.ts, 53, 5)) +>p38 : Symbol(p38, Decl(longObjectInstantiationChain1.ts, 40, 24)) + +o50.p51; +>o50.p51 : Symbol(p51, Decl(longObjectInstantiationChain1.ts, 53, 24)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain1.ts, 53, 5)) +>p51 : Symbol(p51, Decl(longObjectInstantiationChain1.ts, 53, 24)) + diff --git a/tests/baselines/reference/longObjectInstantiationChain1.types b/tests/baselines/reference/longObjectInstantiationChain1.types index a500bfbb2d471..c02fdff25a040 100644 --- a/tests/baselines/reference/longObjectInstantiationChain1.types +++ b/tests/baselines/reference/longObjectInstantiationChain1.types @@ -1,7 +1,7 @@ //// [tests/cases/compiler/longObjectInstantiationChain1.ts] //// === Performance Stats === -Instantiation count: 5,000 +Instantiation count: 25,000,000 === longObjectInstantiationChain1.ts === export type merge = Omit & props; @@ -820,3 +820,139 @@ const o50 = merge(o49, { p51: 51 }); >51 : 51 > : ^^ +o1.p1; +>o1.p1 : number +> : ^^^^^^ +>o1 : merge<{ p1: number; }, { p2: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p1 : number +> : ^^^^^^ + +o1.p51; // error +>o1.p51 : any +> : ^^^ +>o1 : merge<{ p1: number; }, { p2: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p51 : any +> : ^^^ + +o2.p1; +>o2.p1 : number +> : ^^^^^^ +>o2 : merge, { p3: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p1 : number +> : ^^^^^^ + +o2.p2; +>o2.p2 : number +> : ^^^^^^ +>o2 : merge, { p3: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p2 : number +> : ^^^^^^ + +o2.p3; +>o2.p3 : number +> : ^^^^^^ +>o2 : merge, { p3: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p3 : number +> : ^^^^^^ + +o2.p4; // error +>o2.p4 : any +> : ^^^ +>o2 : merge, { p3: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p4 : any +> : ^^^ + +o25.p1; +>o25.p1 : any +> : ^^^ +>o25 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p1 : any +> : ^^^ + +o25.p10; +>o25.p10 : any +> : ^^^ +>o25 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p10 : any +> : ^^^ + +o25.p26; +>o25.p26 : number +> : ^^^^^^ +>o25 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p26 : number +> : ^^^^^^ + +o30.p1; +>o30.p1 : any +> : ^^^ +>o30 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p1 : any +> : ^^^ + +o30.p31; +>o30.p31 : number +> : ^^^^^^ +>o30 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p31 : number +> : ^^^^^^ + +o30.p38; // error +>o30.p38 : any +> : ^^^ +>o30 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p38 : any +> : ^^^ + +o30.p51; // error +>o30.p51 : any +> : ^^^ +>o30 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p51 : any +> : ^^^ + +o50.p1; +>o50.p1 : any +> : ^^^ +>o50 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p1 : any +> : ^^^ + +o50.p31; +>o50.p31 : any +> : ^^^ +>o50 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p31 : any +> : ^^^ + +o50.p38; +>o50.p38 : any +> : ^^^ +>o50 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p38 : any +> : ^^^ + +o50.p51; +>o50.p51 : number +> : ^^^^^^ +>o50 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p51 : number +> : ^^^^^^ + diff --git a/tests/baselines/reference/longObjectInstantiationChain2.errors.txt b/tests/baselines/reference/longObjectInstantiationChain2.errors.txt new file mode 100644 index 0000000000000..f86a4e2604e35 --- /dev/null +++ b/tests/baselines/reference/longObjectInstantiationChain2.errors.txt @@ -0,0 +1,116 @@ +longObjectInstantiationChain2.ts(61,10): error TS2339: Property 'p51' does not exist on type '{ p1: 1; }'. +longObjectInstantiationChain2.ts(65,10): error TS2339: Property 'p3' does not exist on type 'merge<{ p1: 1; }, { p2: number; }>'. +longObjectInstantiationChain2.ts(67,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain2.ts(68,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain2.ts(71,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain2.ts(72,11): error TS2339: Property 'p31' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. +longObjectInstantiationChain2.ts(73,11): error TS2339: Property 'p38' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. +longObjectInstantiationChain2.ts(74,11): error TS2339: Property 'p50' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. +longObjectInstantiationChain2.ts(76,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain2.ts(77,1): error TS2589: Type instantiation is excessively deep and possibly infinite. +longObjectInstantiationChain2.ts(78,1): error TS2589: Type instantiation is excessively deep and possibly infinite. + + +==== longObjectInstantiationChain2.ts (11 errors) ==== + type merge = Omit & props; + + type Type = { + shape: t; + merge: (r: r) => Type>; + }; + + declare const o1: Type<{ p1: 1 }>; + + const o2 = o1.merge({ p2: 2 }); + const o3 = o2.merge({ p3: 3 }); + const o4 = o3.merge({ p4: 4 }); + const o5 = o4.merge({ p5: 5 }); + const o6 = o5.merge({ p6: 6 }); + const o7 = o6.merge({ p7: 7 }); + const o8 = o7.merge({ p8: 8 }); + const o9 = o8.merge({ p9: 9 }); + const o10 = o9.merge({ p10: 10 }); + const o11 = o10.merge({ p11: 11 }); + const o12 = o11.merge({ p12: 12 }); + const o13 = o12.merge({ p13: 13 }); + const o14 = o13.merge({ p14: 14 }); + const o15 = o14.merge({ p15: 15 }); + const o16 = o15.merge({ p16: 16 }); + const o17 = o16.merge({ p17: 17 }); + const o18 = o17.merge({ p18: 18 }); + const o19 = o18.merge({ p19: 19 }); + const o20 = o19.merge({ p20: 20 }); + const o21 = o20.merge({ p21: 21 }); + const o22 = o21.merge({ p22: 22 }); + const o23 = o22.merge({ p23: 23 }); + const o24 = o23.merge({ p24: 24 }); + const o25 = o24.merge({ p25: 25 }); + const o26 = o25.merge({ p26: 26 }); + const o27 = o26.merge({ p27: 27 }); + const o28 = o27.merge({ p28: 28 }); + const o29 = o28.merge({ p29: 29 }); + const o30 = o29.merge({ p30: 30 }); + const o31 = o30.merge({ p31: 31 }); + const o32 = o31.merge({ p32: 32 }); + const o33 = o32.merge({ p33: 33 }); + const o34 = o33.merge({ p34: 34 }); + const o35 = o34.merge({ p35: 35 }); + const o36 = o35.merge({ p36: 36 }); + const o37 = o36.merge({ p37: 37 }); + const o38 = o37.merge({ p38: 38 }); + const o39 = o38.merge({ p39: 39 }); + const o40 = o39.merge({ p40: 40 }); + const o41 = o40.merge({ p41: 41 }); + const o42 = o41.merge({ p42: 42 }); + const o43 = o42.merge({ p43: 43 }); + const o44 = o43.merge({ p44: 44 }); + const o45 = o44.merge({ p45: 45 }); + const o46 = o45.merge({ p46: 46 }); + const o47 = o46.merge({ p47: 47 }); + const o48 = o47.merge({ p48: 48 }); + const o49 = o48.merge({ p49: 49 }); + const o50 = o49.merge({ p50: 50 }); + + o1.shape.p1; + o1.shape.p51; // error + ~~~ +!!! error TS2339: Property 'p51' does not exist on type '{ p1: 1; }'. + + o2.shape.p1; + o2.shape.p2; + o2.shape.p3; // error + ~~ +!!! error TS2339: Property 'p3' does not exist on type 'merge<{ p1: 1; }, { p2: number; }>'. + + o25.shape.p1; + ~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o25.shape.p10; + ~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o25.shape.p25; + + o30.shape.p1; + ~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o30.shape.p31; + ~~~ +!!! error TS2339: Property 'p31' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. + o30.shape.p38; // error + ~~~ +!!! error TS2339: Property 'p38' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. + o30.shape.p50; // error + ~~~ +!!! error TS2339: Property 'p50' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. + + o50.shape.p1; + ~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o50.shape.p31; + ~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o50.shape.p38; + ~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. + o50.shape.p50; + \ No newline at end of file diff --git a/tests/baselines/reference/longObjectInstantiationChain2.symbols b/tests/baselines/reference/longObjectInstantiationChain2.symbols index 44d7480d90887..28f81cc1b7697 100644 --- a/tests/baselines/reference/longObjectInstantiationChain2.symbols +++ b/tests/baselines/reference/longObjectInstantiationChain2.symbols @@ -13,365 +13,471 @@ type merge = Omit & props; type Type = { >Type : Symbol(Type, Decl(longObjectInstantiationChain2.ts, 0, 71)) +>t : Symbol(t, Decl(longObjectInstantiationChain2.ts, 2, 10)) + + shape: t; +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) >t : Symbol(t, Decl(longObjectInstantiationChain2.ts, 2, 10)) merge: (r: r) => Type>; ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 3, 10), Decl(longObjectInstantiationChain2.ts, 3, 13)) ->r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 3, 10), Decl(longObjectInstantiationChain2.ts, 3, 13)) ->r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 3, 10), Decl(longObjectInstantiationChain2.ts, 3, 13)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 4, 10), Decl(longObjectInstantiationChain2.ts, 4, 13)) +>r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 4, 10), Decl(longObjectInstantiationChain2.ts, 4, 13)) +>r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 4, 10), Decl(longObjectInstantiationChain2.ts, 4, 13)) >Type : Symbol(Type, Decl(longObjectInstantiationChain2.ts, 0, 71)) >merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 0, 0)) >t : Symbol(t, Decl(longObjectInstantiationChain2.ts, 2, 10)) ->r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 3, 10), Decl(longObjectInstantiationChain2.ts, 3, 13)) +>r : Symbol(r, Decl(longObjectInstantiationChain2.ts, 4, 10), Decl(longObjectInstantiationChain2.ts, 4, 13)) }; declare const o1: Type<{ p1: 1 }>; ->o1 : Symbol(o1, Decl(longObjectInstantiationChain2.ts, 6, 13)) +>o1 : Symbol(o1, Decl(longObjectInstantiationChain2.ts, 7, 13)) >Type : Symbol(Type, Decl(longObjectInstantiationChain2.ts, 0, 71)) ->p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 6, 24)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) const o2 = o1.merge({ p2: 2 }); ->o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 8, 5)) ->o1.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o1 : Symbol(o1, Decl(longObjectInstantiationChain2.ts, 6, 13)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p2 : Symbol(p2, Decl(longObjectInstantiationChain2.ts, 8, 21)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 9, 5)) +>o1.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o1 : Symbol(o1, Decl(longObjectInstantiationChain2.ts, 7, 13)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p2 : Symbol(p2, Decl(longObjectInstantiationChain2.ts, 9, 21)) const o3 = o2.merge({ p3: 3 }); ->o3 : Symbol(o3, Decl(longObjectInstantiationChain2.ts, 9, 5)) ->o2.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 8, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p3 : Symbol(p3, Decl(longObjectInstantiationChain2.ts, 9, 21)) +>o3 : Symbol(o3, Decl(longObjectInstantiationChain2.ts, 10, 5)) +>o2.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 9, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p3 : Symbol(p3, Decl(longObjectInstantiationChain2.ts, 10, 21)) const o4 = o3.merge({ p4: 4 }); ->o4 : Symbol(o4, Decl(longObjectInstantiationChain2.ts, 10, 5)) ->o3.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o3 : Symbol(o3, Decl(longObjectInstantiationChain2.ts, 9, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p4 : Symbol(p4, Decl(longObjectInstantiationChain2.ts, 10, 21)) +>o4 : Symbol(o4, Decl(longObjectInstantiationChain2.ts, 11, 5)) +>o3.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o3 : Symbol(o3, Decl(longObjectInstantiationChain2.ts, 10, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p4 : Symbol(p4, Decl(longObjectInstantiationChain2.ts, 11, 21)) const o5 = o4.merge({ p5: 5 }); ->o5 : Symbol(o5, Decl(longObjectInstantiationChain2.ts, 11, 5)) ->o4.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o4 : Symbol(o4, Decl(longObjectInstantiationChain2.ts, 10, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p5 : Symbol(p5, Decl(longObjectInstantiationChain2.ts, 11, 21)) +>o5 : Symbol(o5, Decl(longObjectInstantiationChain2.ts, 12, 5)) +>o4.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o4 : Symbol(o4, Decl(longObjectInstantiationChain2.ts, 11, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p5 : Symbol(p5, Decl(longObjectInstantiationChain2.ts, 12, 21)) const o6 = o5.merge({ p6: 6 }); ->o6 : Symbol(o6, Decl(longObjectInstantiationChain2.ts, 12, 5)) ->o5.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o5 : Symbol(o5, Decl(longObjectInstantiationChain2.ts, 11, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p6 : Symbol(p6, Decl(longObjectInstantiationChain2.ts, 12, 21)) +>o6 : Symbol(o6, Decl(longObjectInstantiationChain2.ts, 13, 5)) +>o5.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o5 : Symbol(o5, Decl(longObjectInstantiationChain2.ts, 12, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p6 : Symbol(p6, Decl(longObjectInstantiationChain2.ts, 13, 21)) const o7 = o6.merge({ p7: 7 }); ->o7 : Symbol(o7, Decl(longObjectInstantiationChain2.ts, 13, 5)) ->o6.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o6 : Symbol(o6, Decl(longObjectInstantiationChain2.ts, 12, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p7 : Symbol(p7, Decl(longObjectInstantiationChain2.ts, 13, 21)) +>o7 : Symbol(o7, Decl(longObjectInstantiationChain2.ts, 14, 5)) +>o6.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o6 : Symbol(o6, Decl(longObjectInstantiationChain2.ts, 13, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p7 : Symbol(p7, Decl(longObjectInstantiationChain2.ts, 14, 21)) const o8 = o7.merge({ p8: 8 }); ->o8 : Symbol(o8, Decl(longObjectInstantiationChain2.ts, 14, 5)) ->o7.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o7 : Symbol(o7, Decl(longObjectInstantiationChain2.ts, 13, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p8 : Symbol(p8, Decl(longObjectInstantiationChain2.ts, 14, 21)) +>o8 : Symbol(o8, Decl(longObjectInstantiationChain2.ts, 15, 5)) +>o7.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o7 : Symbol(o7, Decl(longObjectInstantiationChain2.ts, 14, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p8 : Symbol(p8, Decl(longObjectInstantiationChain2.ts, 15, 21)) const o9 = o8.merge({ p9: 9 }); ->o9 : Symbol(o9, Decl(longObjectInstantiationChain2.ts, 15, 5)) ->o8.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o8 : Symbol(o8, Decl(longObjectInstantiationChain2.ts, 14, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p9 : Symbol(p9, Decl(longObjectInstantiationChain2.ts, 15, 21)) +>o9 : Symbol(o9, Decl(longObjectInstantiationChain2.ts, 16, 5)) +>o8.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o8 : Symbol(o8, Decl(longObjectInstantiationChain2.ts, 15, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p9 : Symbol(p9, Decl(longObjectInstantiationChain2.ts, 16, 21)) const o10 = o9.merge({ p10: 10 }); ->o10 : Symbol(o10, Decl(longObjectInstantiationChain2.ts, 16, 5)) ->o9.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o9 : Symbol(o9, Decl(longObjectInstantiationChain2.ts, 15, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p10 : Symbol(p10, Decl(longObjectInstantiationChain2.ts, 16, 22)) +>o10 : Symbol(o10, Decl(longObjectInstantiationChain2.ts, 17, 5)) +>o9.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o9 : Symbol(o9, Decl(longObjectInstantiationChain2.ts, 16, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p10 : Symbol(p10, Decl(longObjectInstantiationChain2.ts, 17, 22)) const o11 = o10.merge({ p11: 11 }); ->o11 : Symbol(o11, Decl(longObjectInstantiationChain2.ts, 17, 5)) ->o10.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o10 : Symbol(o10, Decl(longObjectInstantiationChain2.ts, 16, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p11 : Symbol(p11, Decl(longObjectInstantiationChain2.ts, 17, 23)) +>o11 : Symbol(o11, Decl(longObjectInstantiationChain2.ts, 18, 5)) +>o10.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o10 : Symbol(o10, Decl(longObjectInstantiationChain2.ts, 17, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p11 : Symbol(p11, Decl(longObjectInstantiationChain2.ts, 18, 23)) const o12 = o11.merge({ p12: 12 }); ->o12 : Symbol(o12, Decl(longObjectInstantiationChain2.ts, 18, 5)) ->o11.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o11 : Symbol(o11, Decl(longObjectInstantiationChain2.ts, 17, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p12 : Symbol(p12, Decl(longObjectInstantiationChain2.ts, 18, 23)) +>o12 : Symbol(o12, Decl(longObjectInstantiationChain2.ts, 19, 5)) +>o11.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o11 : Symbol(o11, Decl(longObjectInstantiationChain2.ts, 18, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p12 : Symbol(p12, Decl(longObjectInstantiationChain2.ts, 19, 23)) const o13 = o12.merge({ p13: 13 }); ->o13 : Symbol(o13, Decl(longObjectInstantiationChain2.ts, 19, 5)) ->o12.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o12 : Symbol(o12, Decl(longObjectInstantiationChain2.ts, 18, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p13 : Symbol(p13, Decl(longObjectInstantiationChain2.ts, 19, 23)) +>o13 : Symbol(o13, Decl(longObjectInstantiationChain2.ts, 20, 5)) +>o12.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o12 : Symbol(o12, Decl(longObjectInstantiationChain2.ts, 19, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p13 : Symbol(p13, Decl(longObjectInstantiationChain2.ts, 20, 23)) const o14 = o13.merge({ p14: 14 }); ->o14 : Symbol(o14, Decl(longObjectInstantiationChain2.ts, 20, 5)) ->o13.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o13 : Symbol(o13, Decl(longObjectInstantiationChain2.ts, 19, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p14 : Symbol(p14, Decl(longObjectInstantiationChain2.ts, 20, 23)) +>o14 : Symbol(o14, Decl(longObjectInstantiationChain2.ts, 21, 5)) +>o13.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o13 : Symbol(o13, Decl(longObjectInstantiationChain2.ts, 20, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p14 : Symbol(p14, Decl(longObjectInstantiationChain2.ts, 21, 23)) const o15 = o14.merge({ p15: 15 }); ->o15 : Symbol(o15, Decl(longObjectInstantiationChain2.ts, 21, 5)) ->o14.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o14 : Symbol(o14, Decl(longObjectInstantiationChain2.ts, 20, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p15 : Symbol(p15, Decl(longObjectInstantiationChain2.ts, 21, 23)) +>o15 : Symbol(o15, Decl(longObjectInstantiationChain2.ts, 22, 5)) +>o14.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o14 : Symbol(o14, Decl(longObjectInstantiationChain2.ts, 21, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p15 : Symbol(p15, Decl(longObjectInstantiationChain2.ts, 22, 23)) const o16 = o15.merge({ p16: 16 }); ->o16 : Symbol(o16, Decl(longObjectInstantiationChain2.ts, 22, 5)) ->o15.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o15 : Symbol(o15, Decl(longObjectInstantiationChain2.ts, 21, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p16 : Symbol(p16, Decl(longObjectInstantiationChain2.ts, 22, 23)) +>o16 : Symbol(o16, Decl(longObjectInstantiationChain2.ts, 23, 5)) +>o15.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o15 : Symbol(o15, Decl(longObjectInstantiationChain2.ts, 22, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p16 : Symbol(p16, Decl(longObjectInstantiationChain2.ts, 23, 23)) const o17 = o16.merge({ p17: 17 }); ->o17 : Symbol(o17, Decl(longObjectInstantiationChain2.ts, 23, 5)) ->o16.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o16 : Symbol(o16, Decl(longObjectInstantiationChain2.ts, 22, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p17 : Symbol(p17, Decl(longObjectInstantiationChain2.ts, 23, 23)) +>o17 : Symbol(o17, Decl(longObjectInstantiationChain2.ts, 24, 5)) +>o16.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o16 : Symbol(o16, Decl(longObjectInstantiationChain2.ts, 23, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p17 : Symbol(p17, Decl(longObjectInstantiationChain2.ts, 24, 23)) const o18 = o17.merge({ p18: 18 }); ->o18 : Symbol(o18, Decl(longObjectInstantiationChain2.ts, 24, 5)) ->o17.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o17 : Symbol(o17, Decl(longObjectInstantiationChain2.ts, 23, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p18 : Symbol(p18, Decl(longObjectInstantiationChain2.ts, 24, 23)) +>o18 : Symbol(o18, Decl(longObjectInstantiationChain2.ts, 25, 5)) +>o17.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o17 : Symbol(o17, Decl(longObjectInstantiationChain2.ts, 24, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p18 : Symbol(p18, Decl(longObjectInstantiationChain2.ts, 25, 23)) const o19 = o18.merge({ p19: 19 }); ->o19 : Symbol(o19, Decl(longObjectInstantiationChain2.ts, 25, 5)) ->o18.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o18 : Symbol(o18, Decl(longObjectInstantiationChain2.ts, 24, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p19 : Symbol(p19, Decl(longObjectInstantiationChain2.ts, 25, 23)) +>o19 : Symbol(o19, Decl(longObjectInstantiationChain2.ts, 26, 5)) +>o18.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o18 : Symbol(o18, Decl(longObjectInstantiationChain2.ts, 25, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p19 : Symbol(p19, Decl(longObjectInstantiationChain2.ts, 26, 23)) const o20 = o19.merge({ p20: 20 }); ->o20 : Symbol(o20, Decl(longObjectInstantiationChain2.ts, 26, 5)) ->o19.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o19 : Symbol(o19, Decl(longObjectInstantiationChain2.ts, 25, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p20 : Symbol(p20, Decl(longObjectInstantiationChain2.ts, 26, 23)) +>o20 : Symbol(o20, Decl(longObjectInstantiationChain2.ts, 27, 5)) +>o19.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o19 : Symbol(o19, Decl(longObjectInstantiationChain2.ts, 26, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p20 : Symbol(p20, Decl(longObjectInstantiationChain2.ts, 27, 23)) const o21 = o20.merge({ p21: 21 }); ->o21 : Symbol(o21, Decl(longObjectInstantiationChain2.ts, 27, 5)) ->o20.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o20 : Symbol(o20, Decl(longObjectInstantiationChain2.ts, 26, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p21 : Symbol(p21, Decl(longObjectInstantiationChain2.ts, 27, 23)) +>o21 : Symbol(o21, Decl(longObjectInstantiationChain2.ts, 28, 5)) +>o20.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o20 : Symbol(o20, Decl(longObjectInstantiationChain2.ts, 27, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p21 : Symbol(p21, Decl(longObjectInstantiationChain2.ts, 28, 23)) const o22 = o21.merge({ p22: 22 }); ->o22 : Symbol(o22, Decl(longObjectInstantiationChain2.ts, 28, 5)) ->o21.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o21 : Symbol(o21, Decl(longObjectInstantiationChain2.ts, 27, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p22 : Symbol(p22, Decl(longObjectInstantiationChain2.ts, 28, 23)) +>o22 : Symbol(o22, Decl(longObjectInstantiationChain2.ts, 29, 5)) +>o21.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o21 : Symbol(o21, Decl(longObjectInstantiationChain2.ts, 28, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p22 : Symbol(p22, Decl(longObjectInstantiationChain2.ts, 29, 23)) const o23 = o22.merge({ p23: 23 }); ->o23 : Symbol(o23, Decl(longObjectInstantiationChain2.ts, 29, 5)) ->o22.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o22 : Symbol(o22, Decl(longObjectInstantiationChain2.ts, 28, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p23 : Symbol(p23, Decl(longObjectInstantiationChain2.ts, 29, 23)) +>o23 : Symbol(o23, Decl(longObjectInstantiationChain2.ts, 30, 5)) +>o22.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o22 : Symbol(o22, Decl(longObjectInstantiationChain2.ts, 29, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p23 : Symbol(p23, Decl(longObjectInstantiationChain2.ts, 30, 23)) const o24 = o23.merge({ p24: 24 }); ->o24 : Symbol(o24, Decl(longObjectInstantiationChain2.ts, 30, 5)) ->o23.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o23 : Symbol(o23, Decl(longObjectInstantiationChain2.ts, 29, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p24 : Symbol(p24, Decl(longObjectInstantiationChain2.ts, 30, 23)) +>o24 : Symbol(o24, Decl(longObjectInstantiationChain2.ts, 31, 5)) +>o23.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o23 : Symbol(o23, Decl(longObjectInstantiationChain2.ts, 30, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p24 : Symbol(p24, Decl(longObjectInstantiationChain2.ts, 31, 23)) const o25 = o24.merge({ p25: 25 }); ->o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 31, 5)) ->o24.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o24 : Symbol(o24, Decl(longObjectInstantiationChain2.ts, 30, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p25 : Symbol(p25, Decl(longObjectInstantiationChain2.ts, 31, 23)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 32, 5)) +>o24.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o24 : Symbol(o24, Decl(longObjectInstantiationChain2.ts, 31, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p25 : Symbol(p25, Decl(longObjectInstantiationChain2.ts, 32, 23)) const o26 = o25.merge({ p26: 26 }); ->o26 : Symbol(o26, Decl(longObjectInstantiationChain2.ts, 32, 5)) ->o25.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 31, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p26 : Symbol(p26, Decl(longObjectInstantiationChain2.ts, 32, 23)) +>o26 : Symbol(o26, Decl(longObjectInstantiationChain2.ts, 33, 5)) +>o25.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 32, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p26 : Symbol(p26, Decl(longObjectInstantiationChain2.ts, 33, 23)) const o27 = o26.merge({ p27: 27 }); ->o27 : Symbol(o27, Decl(longObjectInstantiationChain2.ts, 33, 5)) ->o26.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o26 : Symbol(o26, Decl(longObjectInstantiationChain2.ts, 32, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p27 : Symbol(p27, Decl(longObjectInstantiationChain2.ts, 33, 23)) +>o27 : Symbol(o27, Decl(longObjectInstantiationChain2.ts, 34, 5)) +>o26.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o26 : Symbol(o26, Decl(longObjectInstantiationChain2.ts, 33, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p27 : Symbol(p27, Decl(longObjectInstantiationChain2.ts, 34, 23)) const o28 = o27.merge({ p28: 28 }); ->o28 : Symbol(o28, Decl(longObjectInstantiationChain2.ts, 34, 5)) ->o27.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o27 : Symbol(o27, Decl(longObjectInstantiationChain2.ts, 33, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p28 : Symbol(p28, Decl(longObjectInstantiationChain2.ts, 34, 23)) +>o28 : Symbol(o28, Decl(longObjectInstantiationChain2.ts, 35, 5)) +>o27.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o27 : Symbol(o27, Decl(longObjectInstantiationChain2.ts, 34, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p28 : Symbol(p28, Decl(longObjectInstantiationChain2.ts, 35, 23)) const o29 = o28.merge({ p29: 29 }); ->o29 : Symbol(o29, Decl(longObjectInstantiationChain2.ts, 35, 5)) ->o28.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o28 : Symbol(o28, Decl(longObjectInstantiationChain2.ts, 34, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p29 : Symbol(p29, Decl(longObjectInstantiationChain2.ts, 35, 23)) +>o29 : Symbol(o29, Decl(longObjectInstantiationChain2.ts, 36, 5)) +>o28.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o28 : Symbol(o28, Decl(longObjectInstantiationChain2.ts, 35, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p29 : Symbol(p29, Decl(longObjectInstantiationChain2.ts, 36, 23)) const o30 = o29.merge({ p30: 30 }); ->o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 36, 5)) ->o29.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o29 : Symbol(o29, Decl(longObjectInstantiationChain2.ts, 35, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p30 : Symbol(p30, Decl(longObjectInstantiationChain2.ts, 36, 23)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 37, 5)) +>o29.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o29 : Symbol(o29, Decl(longObjectInstantiationChain2.ts, 36, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p30 : Symbol(p30, Decl(longObjectInstantiationChain2.ts, 37, 23)) const o31 = o30.merge({ p31: 31 }); ->o31 : Symbol(o31, Decl(longObjectInstantiationChain2.ts, 37, 5)) ->o30.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 36, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p31 : Symbol(p31, Decl(longObjectInstantiationChain2.ts, 37, 23)) +>o31 : Symbol(o31, Decl(longObjectInstantiationChain2.ts, 38, 5)) +>o30.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 37, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p31 : Symbol(p31, Decl(longObjectInstantiationChain2.ts, 38, 23)) const o32 = o31.merge({ p32: 32 }); ->o32 : Symbol(o32, Decl(longObjectInstantiationChain2.ts, 38, 5)) ->o31.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o31 : Symbol(o31, Decl(longObjectInstantiationChain2.ts, 37, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p32 : Symbol(p32, Decl(longObjectInstantiationChain2.ts, 38, 23)) +>o32 : Symbol(o32, Decl(longObjectInstantiationChain2.ts, 39, 5)) +>o31.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o31 : Symbol(o31, Decl(longObjectInstantiationChain2.ts, 38, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p32 : Symbol(p32, Decl(longObjectInstantiationChain2.ts, 39, 23)) const o33 = o32.merge({ p33: 33 }); ->o33 : Symbol(o33, Decl(longObjectInstantiationChain2.ts, 39, 5)) ->o32.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o32 : Symbol(o32, Decl(longObjectInstantiationChain2.ts, 38, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p33 : Symbol(p33, Decl(longObjectInstantiationChain2.ts, 39, 23)) +>o33 : Symbol(o33, Decl(longObjectInstantiationChain2.ts, 40, 5)) +>o32.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o32 : Symbol(o32, Decl(longObjectInstantiationChain2.ts, 39, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p33 : Symbol(p33, Decl(longObjectInstantiationChain2.ts, 40, 23)) const o34 = o33.merge({ p34: 34 }); ->o34 : Symbol(o34, Decl(longObjectInstantiationChain2.ts, 40, 5)) ->o33.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o33 : Symbol(o33, Decl(longObjectInstantiationChain2.ts, 39, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p34 : Symbol(p34, Decl(longObjectInstantiationChain2.ts, 40, 23)) +>o34 : Symbol(o34, Decl(longObjectInstantiationChain2.ts, 41, 5)) +>o33.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o33 : Symbol(o33, Decl(longObjectInstantiationChain2.ts, 40, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p34 : Symbol(p34, Decl(longObjectInstantiationChain2.ts, 41, 23)) const o35 = o34.merge({ p35: 35 }); ->o35 : Symbol(o35, Decl(longObjectInstantiationChain2.ts, 41, 5)) ->o34.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o34 : Symbol(o34, Decl(longObjectInstantiationChain2.ts, 40, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p35 : Symbol(p35, Decl(longObjectInstantiationChain2.ts, 41, 23)) +>o35 : Symbol(o35, Decl(longObjectInstantiationChain2.ts, 42, 5)) +>o34.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o34 : Symbol(o34, Decl(longObjectInstantiationChain2.ts, 41, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p35 : Symbol(p35, Decl(longObjectInstantiationChain2.ts, 42, 23)) const o36 = o35.merge({ p36: 36 }); ->o36 : Symbol(o36, Decl(longObjectInstantiationChain2.ts, 42, 5)) ->o35.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o35 : Symbol(o35, Decl(longObjectInstantiationChain2.ts, 41, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p36 : Symbol(p36, Decl(longObjectInstantiationChain2.ts, 42, 23)) +>o36 : Symbol(o36, Decl(longObjectInstantiationChain2.ts, 43, 5)) +>o35.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o35 : Symbol(o35, Decl(longObjectInstantiationChain2.ts, 42, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p36 : Symbol(p36, Decl(longObjectInstantiationChain2.ts, 43, 23)) const o37 = o36.merge({ p37: 37 }); ->o37 : Symbol(o37, Decl(longObjectInstantiationChain2.ts, 43, 5)) ->o36.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o36 : Symbol(o36, Decl(longObjectInstantiationChain2.ts, 42, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p37 : Symbol(p37, Decl(longObjectInstantiationChain2.ts, 43, 23)) +>o37 : Symbol(o37, Decl(longObjectInstantiationChain2.ts, 44, 5)) +>o36.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o36 : Symbol(o36, Decl(longObjectInstantiationChain2.ts, 43, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p37 : Symbol(p37, Decl(longObjectInstantiationChain2.ts, 44, 23)) const o38 = o37.merge({ p38: 38 }); ->o38 : Symbol(o38, Decl(longObjectInstantiationChain2.ts, 44, 5)) ->o37.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o37 : Symbol(o37, Decl(longObjectInstantiationChain2.ts, 43, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p38 : Symbol(p38, Decl(longObjectInstantiationChain2.ts, 44, 23)) +>o38 : Symbol(o38, Decl(longObjectInstantiationChain2.ts, 45, 5)) +>o37.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o37 : Symbol(o37, Decl(longObjectInstantiationChain2.ts, 44, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p38 : Symbol(p38, Decl(longObjectInstantiationChain2.ts, 45, 23)) const o39 = o38.merge({ p39: 39 }); ->o39 : Symbol(o39, Decl(longObjectInstantiationChain2.ts, 45, 5)) ->o38.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o38 : Symbol(o38, Decl(longObjectInstantiationChain2.ts, 44, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p39 : Symbol(p39, Decl(longObjectInstantiationChain2.ts, 45, 23)) +>o39 : Symbol(o39, Decl(longObjectInstantiationChain2.ts, 46, 5)) +>o38.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o38 : Symbol(o38, Decl(longObjectInstantiationChain2.ts, 45, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p39 : Symbol(p39, Decl(longObjectInstantiationChain2.ts, 46, 23)) const o40 = o39.merge({ p40: 40 }); ->o40 : Symbol(o40, Decl(longObjectInstantiationChain2.ts, 46, 5)) ->o39.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o39 : Symbol(o39, Decl(longObjectInstantiationChain2.ts, 45, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p40 : Symbol(p40, Decl(longObjectInstantiationChain2.ts, 46, 23)) +>o40 : Symbol(o40, Decl(longObjectInstantiationChain2.ts, 47, 5)) +>o39.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o39 : Symbol(o39, Decl(longObjectInstantiationChain2.ts, 46, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p40 : Symbol(p40, Decl(longObjectInstantiationChain2.ts, 47, 23)) const o41 = o40.merge({ p41: 41 }); ->o41 : Symbol(o41, Decl(longObjectInstantiationChain2.ts, 47, 5)) ->o40.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o40 : Symbol(o40, Decl(longObjectInstantiationChain2.ts, 46, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p41 : Symbol(p41, Decl(longObjectInstantiationChain2.ts, 47, 23)) +>o41 : Symbol(o41, Decl(longObjectInstantiationChain2.ts, 48, 5)) +>o40.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o40 : Symbol(o40, Decl(longObjectInstantiationChain2.ts, 47, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p41 : Symbol(p41, Decl(longObjectInstantiationChain2.ts, 48, 23)) const o42 = o41.merge({ p42: 42 }); ->o42 : Symbol(o42, Decl(longObjectInstantiationChain2.ts, 48, 5)) ->o41.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o41 : Symbol(o41, Decl(longObjectInstantiationChain2.ts, 47, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p42 : Symbol(p42, Decl(longObjectInstantiationChain2.ts, 48, 23)) +>o42 : Symbol(o42, Decl(longObjectInstantiationChain2.ts, 49, 5)) +>o41.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o41 : Symbol(o41, Decl(longObjectInstantiationChain2.ts, 48, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p42 : Symbol(p42, Decl(longObjectInstantiationChain2.ts, 49, 23)) const o43 = o42.merge({ p43: 43 }); ->o43 : Symbol(o43, Decl(longObjectInstantiationChain2.ts, 49, 5)) ->o42.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o42 : Symbol(o42, Decl(longObjectInstantiationChain2.ts, 48, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p43 : Symbol(p43, Decl(longObjectInstantiationChain2.ts, 49, 23)) +>o43 : Symbol(o43, Decl(longObjectInstantiationChain2.ts, 50, 5)) +>o42.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o42 : Symbol(o42, Decl(longObjectInstantiationChain2.ts, 49, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p43 : Symbol(p43, Decl(longObjectInstantiationChain2.ts, 50, 23)) const o44 = o43.merge({ p44: 44 }); ->o44 : Symbol(o44, Decl(longObjectInstantiationChain2.ts, 50, 5)) ->o43.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o43 : Symbol(o43, Decl(longObjectInstantiationChain2.ts, 49, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p44 : Symbol(p44, Decl(longObjectInstantiationChain2.ts, 50, 23)) +>o44 : Symbol(o44, Decl(longObjectInstantiationChain2.ts, 51, 5)) +>o43.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o43 : Symbol(o43, Decl(longObjectInstantiationChain2.ts, 50, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p44 : Symbol(p44, Decl(longObjectInstantiationChain2.ts, 51, 23)) const o45 = o44.merge({ p45: 45 }); ->o45 : Symbol(o45, Decl(longObjectInstantiationChain2.ts, 51, 5)) ->o44.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o44 : Symbol(o44, Decl(longObjectInstantiationChain2.ts, 50, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p45 : Symbol(p45, Decl(longObjectInstantiationChain2.ts, 51, 23)) +>o45 : Symbol(o45, Decl(longObjectInstantiationChain2.ts, 52, 5)) +>o44.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o44 : Symbol(o44, Decl(longObjectInstantiationChain2.ts, 51, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p45 : Symbol(p45, Decl(longObjectInstantiationChain2.ts, 52, 23)) const o46 = o45.merge({ p46: 46 }); ->o46 : Symbol(o46, Decl(longObjectInstantiationChain2.ts, 52, 5)) ->o45.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o45 : Symbol(o45, Decl(longObjectInstantiationChain2.ts, 51, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p46 : Symbol(p46, Decl(longObjectInstantiationChain2.ts, 52, 23)) +>o46 : Symbol(o46, Decl(longObjectInstantiationChain2.ts, 53, 5)) +>o45.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o45 : Symbol(o45, Decl(longObjectInstantiationChain2.ts, 52, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p46 : Symbol(p46, Decl(longObjectInstantiationChain2.ts, 53, 23)) const o47 = o46.merge({ p47: 47 }); ->o47 : Symbol(o47, Decl(longObjectInstantiationChain2.ts, 53, 5)) ->o46.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o46 : Symbol(o46, Decl(longObjectInstantiationChain2.ts, 52, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p47 : Symbol(p47, Decl(longObjectInstantiationChain2.ts, 53, 23)) +>o47 : Symbol(o47, Decl(longObjectInstantiationChain2.ts, 54, 5)) +>o46.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o46 : Symbol(o46, Decl(longObjectInstantiationChain2.ts, 53, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p47 : Symbol(p47, Decl(longObjectInstantiationChain2.ts, 54, 23)) const o48 = o47.merge({ p48: 48 }); ->o48 : Symbol(o48, Decl(longObjectInstantiationChain2.ts, 54, 5)) ->o47.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o47 : Symbol(o47, Decl(longObjectInstantiationChain2.ts, 53, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p48 : Symbol(p48, Decl(longObjectInstantiationChain2.ts, 54, 23)) +>o48 : Symbol(o48, Decl(longObjectInstantiationChain2.ts, 55, 5)) +>o47.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o47 : Symbol(o47, Decl(longObjectInstantiationChain2.ts, 54, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p48 : Symbol(p48, Decl(longObjectInstantiationChain2.ts, 55, 23)) const o49 = o48.merge({ p49: 49 }); ->o49 : Symbol(o49, Decl(longObjectInstantiationChain2.ts, 55, 5)) ->o48.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o48 : Symbol(o48, Decl(longObjectInstantiationChain2.ts, 54, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p49 : Symbol(p49, Decl(longObjectInstantiationChain2.ts, 55, 23)) +>o49 : Symbol(o49, Decl(longObjectInstantiationChain2.ts, 56, 5)) +>o48.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o48 : Symbol(o48, Decl(longObjectInstantiationChain2.ts, 55, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p49 : Symbol(p49, Decl(longObjectInstantiationChain2.ts, 56, 23)) const o50 = o49.merge({ p50: 50 }); ->o50 : Symbol(o50, Decl(longObjectInstantiationChain2.ts, 56, 5)) ->o49.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->o49 : Symbol(o49, Decl(longObjectInstantiationChain2.ts, 55, 5)) ->merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 2, 16)) ->p50 : Symbol(p50, Decl(longObjectInstantiationChain2.ts, 56, 23)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain2.ts, 57, 5)) +>o49.merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>o49 : Symbol(o49, Decl(longObjectInstantiationChain2.ts, 56, 5)) +>merge : Symbol(merge, Decl(longObjectInstantiationChain2.ts, 3, 11)) +>p50 : Symbol(p50, Decl(longObjectInstantiationChain2.ts, 57, 23)) + +o1.shape.p1; +>o1.shape.p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) +>o1.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o1 : Symbol(o1, Decl(longObjectInstantiationChain2.ts, 7, 13)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) + +o1.shape.p51; // error +>o1.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o1 : Symbol(o1, Decl(longObjectInstantiationChain2.ts, 7, 13)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) + +o2.shape.p1; +>o2.shape.p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) +>o2.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 9, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) + +o2.shape.p2; +>o2.shape.p2 : Symbol(p2, Decl(longObjectInstantiationChain2.ts, 9, 21)) +>o2.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 9, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p2 : Symbol(p2, Decl(longObjectInstantiationChain2.ts, 9, 21)) + +o2.shape.p3; // error +>o2.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o2 : Symbol(o2, Decl(longObjectInstantiationChain2.ts, 9, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) + +o25.shape.p1; +>o25.shape.p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) +>o25.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 32, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) + +o25.shape.p10; +>o25.shape.p10 : Symbol(p10, Decl(longObjectInstantiationChain2.ts, 17, 22)) +>o25.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 32, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p10 : Symbol(p10, Decl(longObjectInstantiationChain2.ts, 17, 22)) + +o25.shape.p25; +>o25.shape.p25 : Symbol(p25, Decl(longObjectInstantiationChain2.ts, 32, 23)) +>o25.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o25 : Symbol(o25, Decl(longObjectInstantiationChain2.ts, 32, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p25 : Symbol(p25, Decl(longObjectInstantiationChain2.ts, 32, 23)) + +o30.shape.p1; +>o30.shape.p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) +>o30.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 37, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) + +o30.shape.p31; +>o30.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 37, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) + +o30.shape.p38; // error +>o30.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 37, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) + +o30.shape.p50; // error +>o30.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o30 : Symbol(o30, Decl(longObjectInstantiationChain2.ts, 37, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) + +o50.shape.p1; +>o50.shape.p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) +>o50.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain2.ts, 57, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p1 : Symbol(p1, Decl(longObjectInstantiationChain2.ts, 7, 24)) + +o50.shape.p31; +>o50.shape.p31 : Symbol(p31, Decl(longObjectInstantiationChain2.ts, 38, 23)) +>o50.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain2.ts, 57, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p31 : Symbol(p31, Decl(longObjectInstantiationChain2.ts, 38, 23)) + +o50.shape.p38; +>o50.shape.p38 : Symbol(p38, Decl(longObjectInstantiationChain2.ts, 45, 23)) +>o50.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain2.ts, 57, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p38 : Symbol(p38, Decl(longObjectInstantiationChain2.ts, 45, 23)) + +o50.shape.p50; +>o50.shape.p50 : Symbol(p50, Decl(longObjectInstantiationChain2.ts, 57, 23)) +>o50.shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>o50 : Symbol(o50, Decl(longObjectInstantiationChain2.ts, 57, 5)) +>shape : Symbol(shape, Decl(longObjectInstantiationChain2.ts, 2, 16)) +>p50 : Symbol(p50, Decl(longObjectInstantiationChain2.ts, 57, 23)) diff --git a/tests/baselines/reference/longObjectInstantiationChain2.types b/tests/baselines/reference/longObjectInstantiationChain2.types index ff1f087d04b88..8c617f8e1c67d 100644 --- a/tests/baselines/reference/longObjectInstantiationChain2.types +++ b/tests/baselines/reference/longObjectInstantiationChain2.types @@ -1,9 +1,9 @@ //// [tests/cases/compiler/longObjectInstantiationChain2.ts] //// === Performance Stats === -Assignability cache: 50 -> 50,000 -Type Count: 2,500 -> 5,000 -Instantiation count: 10,000 +Assignability cache: 100 -> 50,000 +Type Count: 5,000 +Instantiation count: 25,000,000 === longObjectInstantiationChain2.ts === type merge = Omit & props; @@ -14,6 +14,10 @@ type Type = { >Type : Type > : ^^^^^^^ + shape: t; +>shape : t +> : ^ + merge: (r: r) => Type>; >merge : (r: r) => Type> > : ^ ^^ ^^ ^^^^^ @@ -910,3 +914,195 @@ const o50 = o49.merge({ p50: 50 }); >50 : 50 > : ^^ +o1.shape.p1; +>o1.shape.p1 : 1 +> : ^ +>o1.shape : { p1: 1; } +> : ^^^^^^ ^^^ +>o1 : Type<{ p1: 1; }> +> : ^^^^^^^^^^^ ^^^^ +>shape : { p1: 1; } +> : ^^^^^^ ^^^ +>p1 : 1 +> : ^ + +o1.shape.p51; // error +>o1.shape.p51 : any +> : ^^^ +>o1.shape : { p1: 1; } +> : ^^^^^^ ^^^ +>o1 : Type<{ p1: 1; }> +> : ^^^^^^^^^^^ ^^^^ +>shape : { p1: 1; } +> : ^^^^^^ ^^^ +>p51 : any +> : ^^^ + +o2.shape.p1; +>o2.shape.p1 : 1 +> : ^ +>o2.shape : merge<{ p1: 1; }, { p2: number; }> +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +>o2 : Type> +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge<{ p1: 1; }, { p2: number; }> +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +>p1 : 1 +> : ^ + +o2.shape.p2; +>o2.shape.p2 : number +> : ^^^^^^ +>o2.shape : merge<{ p1: 1; }, { p2: number; }> +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +>o2 : Type> +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge<{ p1: 1; }, { p2: number; }> +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +>p2 : number +> : ^^^^^^ + +o2.shape.p3; // error +>o2.shape.p3 : any +> : ^^^ +>o2.shape : merge<{ p1: 1; }, { p2: number; }> +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +>o2 : Type> +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge<{ p1: 1; }, { p2: number; }> +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +>p3 : any +> : ^^^ + +o25.shape.p1; +>o25.shape.p1 : any +> : ^^^ +>o25.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p1 : any +> : ^^^ + +o25.shape.p10; +>o25.shape.p10 : any +> : ^^^ +>o25.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p10 : any +> : ^^^ + +o25.shape.p25; +>o25.shape.p25 : number +> : ^^^^^^ +>o25.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o25 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p25 : number +> : ^^^^^^ + +o30.shape.p1; +>o30.shape.p1 : any +> : ^^^ +>o30.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p1 : any +> : ^^^ + +o30.shape.p31; +>o30.shape.p31 : any +> : ^^^ +>o30.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p31 : any +> : ^^^ + +o30.shape.p38; // error +>o30.shape.p38 : any +> : ^^^ +>o30.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p38 : any +> : ^^^ + +o30.shape.p50; // error +>o30.shape.p50 : any +> : ^^^ +>o30.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o30 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p50 : any +> : ^^^ + +o50.shape.p1; +>o50.shape.p1 : any +> : ^^^ +>o50.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o50 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p1 : any +> : ^^^ + +o50.shape.p31; +>o50.shape.p31 : any +> : ^^^ +>o50.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o50 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p31 : any +> : ^^^ + +o50.shape.p38; +>o50.shape.p38 : any +> : ^^^ +>o50.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o50 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p38 : any +> : ^^^ + +o50.shape.p50; +>o50.shape.p50 : number +> : ^^^^^^ +>o50.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>o50 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>p50 : number +> : ^^^^^^ + diff --git a/tests/cases/compiler/longObjectInstantiationChain1.ts b/tests/cases/compiler/longObjectInstantiationChain1.ts index 98fe03b13d351..166de13a3a959 100644 --- a/tests/cases/compiler/longObjectInstantiationChain1.ts +++ b/tests/cases/compiler/longObjectInstantiationChain1.ts @@ -55,3 +55,25 @@ const o47 = merge(o46, { p48: 48 }); const o48 = merge(o47, { p49: 49 }); const o49 = merge(o48, { p50: 50 }); const o50 = merge(o49, { p51: 51 }); + +o1.p1; +o1.p51; // error + +o2.p1; +o2.p2; +o2.p3; +o2.p4; // error + +o25.p1; +o25.p10; +o25.p26; + +o30.p1; +o30.p31; +o30.p38; // error +o30.p51; // error + +o50.p1; +o50.p31; +o50.p38; +o50.p51; diff --git a/tests/cases/compiler/longObjectInstantiationChain2.ts b/tests/cases/compiler/longObjectInstantiationChain2.ts index 7a5c13ac40ac5..5b99f2017ca28 100644 --- a/tests/cases/compiler/longObjectInstantiationChain2.ts +++ b/tests/cases/compiler/longObjectInstantiationChain2.ts @@ -4,6 +4,7 @@ type merge = Omit & props; type Type = { + shape: t; merge: (r: r) => Type>; }; @@ -58,3 +59,24 @@ const o47 = o46.merge({ p47: 47 }); const o48 = o47.merge({ p48: 48 }); const o49 = o48.merge({ p49: 49 }); const o50 = o49.merge({ p50: 50 }); + +o1.shape.p1; +o1.shape.p51; // error + +o2.shape.p1; +o2.shape.p2; +o2.shape.p3; // error + +o25.shape.p1; +o25.shape.p10; +o25.shape.p25; + +o30.shape.p1; +o30.shape.p31; +o30.shape.p38; // error +o30.shape.p50; // error + +o50.shape.p1; +o50.shape.p31; +o50.shape.p38; +o50.shape.p50; From b0f5c703072ab9ea97d73176f379014e2e28048d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 1 Apr 2025 09:51:17 +0200 Subject: [PATCH 06/12] only disable cache on certain `makeFunctionTypeMapper`s --- src/compiler/checker.ts | 7 +-- .../baselines/reference/largeTupleTypes.types | 2 +- .../longObjectInstantiationChain1.errors.txt | 20 +------ .../longObjectInstantiationChain1.types | 50 +++++++++--------- .../longObjectInstantiationChain2.errors.txt | 20 +------ .../longObjectInstantiationChain2.types | 52 +++++++++---------- .../propTypeValidatorInference.types | 3 -- 7 files changed, 58 insertions(+), 96 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1c58c6dc6a4c3..5f6cac0ea7ff9 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2101,6 +2101,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { var numericStringType = getTemplateLiteralType(["", ""], [numberType]); // The `${number}` type var restrictiveMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? getRestrictiveTypeParameter(t as TypeParameter) : t, () => "(restrictive mapper)"); + restrictiveMapper.instantiations = voidMap; var permissiveMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? wildcardType : t, () => "(permissive mapper)"); var uniqueLiteralType = createIntrinsicType(TypeFlags.Never, "never", /*objectFlags*/ undefined, "unique literal"); // `uniqueLiteralType` is a special `never` flagged by union reduction to behave as a literal var uniqueLiteralMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? uniqueLiteralType : t, () => "(unique literal mapper)"); // replace all type parameters with the unique literal type (disregarding constraints) @@ -2111,12 +2112,14 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } return t; }, () => "(unmeasurable reporter)"); + reportUnreliableMapper.instantiations = voidMap; var reportUnmeasurableMapper = makeFunctionTypeMapper(t => { if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) { outofbandVarianceMarkerHandler(/*onlyUnreliable*/ false); } return t; }, () => "(unreliable reporter)"); + reportUnmeasurableMapper.instantiations = voidMap; var emptyObjectType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray); var emptyJsxObjectType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray); @@ -19961,9 +19964,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } function makeFunctionTypeMapper(func: (t: Type) => Type, debugInfo: () => string): TypeMapper { - const mapper = Debug.attachDebugPrototypeIfDebug({ kind: TypeMapKind.Function, func, debugInfo: Debug.isDebugging ? debugInfo : undefined }); - mapper.instantiations = voidMap; - return mapper; + return Debug.attachDebugPrototypeIfDebug({ kind: TypeMapKind.Function, func, debugInfo: Debug.isDebugging ? debugInfo : undefined }); } function makeDeferredTypeMapper(sources: readonly TypeParameter[], targets: (() => Type)[]) { diff --git a/tests/baselines/reference/largeTupleTypes.types b/tests/baselines/reference/largeTupleTypes.types index a8826173d19fa..9d0a43858a19a 100644 --- a/tests/baselines/reference/largeTupleTypes.types +++ b/tests/baselines/reference/largeTupleTypes.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 1,000 Type Count: 25,000 -Instantiation count: 50,000 +Instantiation count: 25,000 Symbol count: 50,000 === largeTupleTypes.ts === diff --git a/tests/baselines/reference/longObjectInstantiationChain1.errors.txt b/tests/baselines/reference/longObjectInstantiationChain1.errors.txt index 2c04b08398d74..678f6cf4c2f40 100644 --- a/tests/baselines/reference/longObjectInstantiationChain1.errors.txt +++ b/tests/baselines/reference/longObjectInstantiationChain1.errors.txt @@ -1,16 +1,10 @@ longObjectInstantiationChain1.ts(57,4): error TS2339: Property 'p51' does not exist on type 'merge<{ p1: number; }, { p2: number; }>'. longObjectInstantiationChain1.ts(62,4): error TS2339: Property 'p4' does not exist on type 'merge, { p3: number; }>'. -longObjectInstantiationChain1.ts(64,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain1.ts(65,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain1.ts(68,1): error TS2589: Type instantiation is excessively deep and possibly infinite. longObjectInstantiationChain1.ts(70,5): error TS2339: Property 'p38' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. longObjectInstantiationChain1.ts(71,5): error TS2339: Property 'p51' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. -longObjectInstantiationChain1.ts(73,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain1.ts(74,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain1.ts(75,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -==== longObjectInstantiationChain1.ts (10 errors) ==== +==== longObjectInstantiationChain1.ts (4 errors) ==== export type merge = Omit & props; declare const merge: (l: l, r: r) => merge; @@ -79,16 +73,10 @@ longObjectInstantiationChain1.ts(75,1): error TS2589: Type instantiation is exce !!! error TS2339: Property 'p4' does not exist on type 'merge, { p3: number; }>'. o25.p1; - ~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o25.p10; - ~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o25.p26; o30.p1; - ~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o30.p31; o30.p38; // error ~~~ @@ -98,13 +86,7 @@ longObjectInstantiationChain1.ts(75,1): error TS2589: Type instantiation is exce !!! error TS2339: Property 'p51' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. o50.p1; - ~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o50.p31; - ~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o50.p38; - ~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o50.p51; \ No newline at end of file diff --git a/tests/baselines/reference/longObjectInstantiationChain1.types b/tests/baselines/reference/longObjectInstantiationChain1.types index c02fdff25a040..ca702b9dd48d0 100644 --- a/tests/baselines/reference/longObjectInstantiationChain1.types +++ b/tests/baselines/reference/longObjectInstantiationChain1.types @@ -1,7 +1,7 @@ //// [tests/cases/compiler/longObjectInstantiationChain1.ts] //// === Performance Stats === -Instantiation count: 25,000,000 +Instantiation count: 5,000 === longObjectInstantiationChain1.ts === export type merge = Omit & props; @@ -869,20 +869,20 @@ o2.p4; // error > : ^^^ o25.p1; ->o25.p1 : any -> : ^^^ +>o25.p1 : number +> : ^^^^^^ >o25 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p1 : any -> : ^^^ +>p1 : number +> : ^^^^^^ o25.p10; ->o25.p10 : any -> : ^^^ +>o25.p10 : number +> : ^^^^^^ >o25 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p10 : any -> : ^^^ +>p10 : number +> : ^^^^^^ o25.p26; >o25.p26 : number @@ -893,12 +893,12 @@ o25.p26; > : ^^^^^^ o30.p1; ->o30.p1 : any -> : ^^^ +>o30.p1 : number +> : ^^^^^^ >o30 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p1 : any -> : ^^^ +>p1 : number +> : ^^^^^^ o30.p31; >o30.p31 : number @@ -925,28 +925,28 @@ o30.p51; // error > : ^^^ o50.p1; ->o50.p1 : any -> : ^^^ +>o50.p1 : number +> : ^^^^^^ >o50 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p1 : any -> : ^^^ +>p1 : number +> : ^^^^^^ o50.p31; ->o50.p31 : any -> : ^^^ +>o50.p31 : number +> : ^^^^^^ >o50 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p31 : any -> : ^^^ +>p31 : number +> : ^^^^^^ o50.p38; ->o50.p38 : any -> : ^^^ +>o50.p38 : number +> : ^^^^^^ >o50 : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>, { p51: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p38 : any -> : ^^^ +>p38 : number +> : ^^^^^^ o50.p51; >o50.p51 : number diff --git a/tests/baselines/reference/longObjectInstantiationChain2.errors.txt b/tests/baselines/reference/longObjectInstantiationChain2.errors.txt index f86a4e2604e35..5373dee6b7d1d 100644 --- a/tests/baselines/reference/longObjectInstantiationChain2.errors.txt +++ b/tests/baselines/reference/longObjectInstantiationChain2.errors.txt @@ -1,17 +1,11 @@ longObjectInstantiationChain2.ts(61,10): error TS2339: Property 'p51' does not exist on type '{ p1: 1; }'. longObjectInstantiationChain2.ts(65,10): error TS2339: Property 'p3' does not exist on type 'merge<{ p1: 1; }, { p2: number; }>'. -longObjectInstantiationChain2.ts(67,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain2.ts(68,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain2.ts(71,1): error TS2589: Type instantiation is excessively deep and possibly infinite. longObjectInstantiationChain2.ts(72,11): error TS2339: Property 'p31' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. longObjectInstantiationChain2.ts(73,11): error TS2339: Property 'p38' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. longObjectInstantiationChain2.ts(74,11): error TS2339: Property 'p50' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. -longObjectInstantiationChain2.ts(76,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain2.ts(77,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -longObjectInstantiationChain2.ts(78,1): error TS2589: Type instantiation is excessively deep and possibly infinite. -==== longObjectInstantiationChain2.ts (11 errors) ==== +==== longObjectInstantiationChain2.ts (5 errors) ==== type merge = Omit & props; type Type = { @@ -83,16 +77,10 @@ longObjectInstantiationChain2.ts(78,1): error TS2589: Type instantiation is exce !!! error TS2339: Property 'p3' does not exist on type 'merge<{ p1: 1; }, { p2: number; }>'. o25.shape.p1; - ~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o25.shape.p10; - ~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o25.shape.p25; o30.shape.p1; - ~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o30.shape.p31; ~~~ !!! error TS2339: Property 'p31' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. @@ -104,13 +92,7 @@ longObjectInstantiationChain2.ts(78,1): error TS2589: Type instantiation is exce !!! error TS2339: Property 'p50' does not exist on type 'merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>'. o50.shape.p1; - ~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o50.shape.p31; - ~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o50.shape.p38; - ~~~~~~~~~~~~~ -!!! error TS2589: Type instantiation is excessively deep and possibly infinite. o50.shape.p50; \ No newline at end of file diff --git a/tests/baselines/reference/longObjectInstantiationChain2.types b/tests/baselines/reference/longObjectInstantiationChain2.types index 8c617f8e1c67d..e05f1adc0f663 100644 --- a/tests/baselines/reference/longObjectInstantiationChain2.types +++ b/tests/baselines/reference/longObjectInstantiationChain2.types @@ -2,8 +2,8 @@ === Performance Stats === Assignability cache: 100 -> 50,000 -Type Count: 5,000 -Instantiation count: 25,000,000 +Type Count: 2,500 -> 5,000 +Instantiation count: 10,000 === longObjectInstantiationChain2.ts === type merge = Omit & props; @@ -975,28 +975,28 @@ o2.shape.p3; // error > : ^^^ o25.shape.p1; ->o25.shape.p1 : any -> : ^^^ +>o25.shape.p1 : 1 +> : ^ >o25.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o25 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p1 : any -> : ^^^ +>p1 : 1 +> : ^ o25.shape.p10; ->o25.shape.p10 : any -> : ^^^ +>o25.shape.p10 : number +> : ^^^^^^ >o25.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o25 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p10 : any -> : ^^^ +>p10 : number +> : ^^^^^^ o25.shape.p25; >o25.shape.p25 : number @@ -1011,16 +1011,16 @@ o25.shape.p25; > : ^^^^^^ o30.shape.p1; ->o30.shape.p1 : any -> : ^^^ +>o30.shape.p1 : 1 +> : ^ >o30.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o30 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p1 : any -> : ^^^ +>p1 : 1 +> : ^ o30.shape.p31; >o30.shape.p31 : any @@ -1059,40 +1059,40 @@ o30.shape.p50; // error > : ^^^ o50.shape.p1; ->o50.shape.p1 : any -> : ^^^ +>o50.shape.p1 : 1 +> : ^ >o50.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o50 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p1 : any -> : ^^^ +>p1 : 1 +> : ^ o50.shape.p31; ->o50.shape.p31 : any -> : ^^^ +>o50.shape.p31 : number +> : ^^^^^^ >o50.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o50 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p31 : any -> : ^^^ +>p31 : number +> : ^^^^^^ o50.shape.p38; ->o50.shape.p38 : any -> : ^^^ +>o50.shape.p38 : number +> : ^^^^^^ >o50.shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o50 : Type, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >shape : merge, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>, { p32: number; }>, { p33: number; }>, { p34: number; }>, { p35: number; }>, { p36: number; }>, { p37: number; }>, { p38: number; }>, { p39: number; }>, { p40: number; }>, { p41: number; }>, { p42: number; }>, { p43: number; }>, { p44: number; }>, { p45: number; }>, { p46: number; }>, { p47: number; }>, { p48: number; }>, { p49: number; }>, { p50: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->p38 : any -> : ^^^ +>p38 : number +> : ^^^^^^ o50.shape.p50; >o50.shape.p50 : number diff --git a/tests/baselines/reference/propTypeValidatorInference.types b/tests/baselines/reference/propTypeValidatorInference.types index 4ba12bf39d3c2..0f8f83ce0da48 100644 --- a/tests/baselines/reference/propTypeValidatorInference.types +++ b/tests/baselines/reference/propTypeValidatorInference.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/propTypeValidatorInference.ts] //// -=== Performance Stats === -Instantiation count: 1,000 - === node_modules/prop-types/index.d.ts === export const nominalTypeHack: unique symbol; >nominalTypeHack : unique symbol From 31925e795543bd175bf7672b30393bfdc40d259d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 1 Apr 2025 10:05:09 +0200 Subject: [PATCH 07/12] fmt --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5f6cac0ea7ff9..33677b40963ef 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1124,6 +1124,7 @@ import { Visitor, VisitResult, VoidExpression, + voidMap, walkUpBindingElementsAndPatterns, walkUpOuterExpressions, walkUpParenthesizedExpressions, @@ -1133,7 +1134,6 @@ import { WideningContext, WithStatement, YieldExpression, - voidMap, } from "./_namespaces/ts.js"; import * as moduleSpecifiers from "./_namespaces/ts.moduleSpecifiers.js"; import * as performance from "./_namespaces/ts.performance.js"; From a040139f517987ce2b8020143f8679405cead9b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 1 Apr 2025 23:15:32 +0200 Subject: [PATCH 08/12] fix an instance of reusing bad cached value --- src/compiler/checker.ts | 6 +- ...meterAndSelfReferentialConstraint1.symbols | 98 +++++++++++++++++++ ...rameterAndSelfReferentialConstraint1.types | 93 ++++++++++++++++++ ...lParameterAndSelfReferentialConstraint1.ts | 33 +++++++ 4 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/contextualParameterAndSelfReferentialConstraint1.symbols create mode 100644 tests/baselines/reference/contextualParameterAndSelfReferentialConstraint1.types create mode 100644 tests/cases/compiler/contextualParameterAndSelfReferentialConstraint1.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 33677b40963ef..9a56e365818d0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -20384,7 +20384,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { instantiationCount++; instantiationDepth++; const result = instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments); - mapper.instantiations.set(key, result); + mapper.instantiations?.set(key, result); instantiationDepth--; return result; } @@ -26958,6 +26958,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { if (!inferredType || !context.compareTypes(inferredType, getTypeWithThisArgument(instantiatedConstraint, inferredType))) { // If the fallback type satisfies the constraint, we pick it. Otherwise, we pick the constraint. inference.inferredType = fallbackType && context.compareTypes(fallbackType, getTypeWithThisArgument(instantiatedConstraint, fallbackType)) ? fallbackType : instantiatedConstraint; + // instantiating the constraint could reenter this function if the type parameter's constraint depends on that parameter + // in such a case the reentering call just returns the preemptively set `.inferredType` + // but given the `.inferredType` gets changed changed above, the cached instantiations have to be cleared because they were cached for the wrong type + context.nonFixingMapper.instantiations = undefined; } } } diff --git a/tests/baselines/reference/contextualParameterAndSelfReferentialConstraint1.symbols b/tests/baselines/reference/contextualParameterAndSelfReferentialConstraint1.symbols new file mode 100644 index 0000000000000..d2d55e372e97a --- /dev/null +++ b/tests/baselines/reference/contextualParameterAndSelfReferentialConstraint1.symbols @@ -0,0 +1,98 @@ +//// [tests/cases/compiler/contextualParameterAndSelfReferentialConstraint1.ts] //// + +=== contextualParameterAndSelfReferentialConstraint1.ts === +type NoExcessProperties = T & { +>NoExcessProperties : Symbol(NoExcessProperties, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 0, 0)) +>T : Symbol(T, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 0, 24)) +>U : Symbol(U, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 0, 26)) +>T : Symbol(T, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 0, 24)) + + readonly [K in Exclude]: never; +>K : Symbol(K, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 1, 12)) +>Exclude : Symbol(Exclude, Decl(lib.es5.d.ts, --, --)) +>U : Symbol(U, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 0, 26)) +>T : Symbol(T, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 0, 24)) + +}; + +interface Effect { +>Effect : Symbol(Effect, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 2, 2)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 4, 17)) + + readonly EffectTypeId: { +>EffectTypeId : Symbol(Effect.EffectTypeId, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 4, 25)) + + readonly _A: (_: never) => A; +>_A : Symbol(_A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 5, 26)) +>_ : Symbol(_, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 6, 18)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 4, 17)) + + }; +} + +declare function pipe(a: A, ab: (a: A) => B): B; +>pipe : Symbol(pipe, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 8, 1)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 22)) +>B : Symbol(B, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 24)) +>a : Symbol(a, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 28)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 22)) +>ab : Symbol(ab, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 33)) +>a : Symbol(a, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 39)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 22)) +>B : Symbol(B, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 24)) +>B : Symbol(B, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 24)) + +interface RepeatOptions { +>RepeatOptions : Symbol(RepeatOptions, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 54)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 12, 24)) + + until?: (_: A) => boolean; +>until : Symbol(RepeatOptions.until, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 12, 28)) +>_ : Symbol(_, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 13, 11)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 12, 24)) +} + +declare const repeat: { +>repeat : Symbol(repeat, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 16, 13)) + + , O>, A>( +>O : Symbol(O, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 17, 3)) +>NoExcessProperties : Symbol(NoExcessProperties, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 0, 0)) +>RepeatOptions : Symbol(RepeatOptions, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 10, 54)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 17, 53)) +>O : Symbol(O, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 17, 3)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 17, 53)) + + options: O, +>options : Symbol(options, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 17, 57)) +>O : Symbol(O, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 17, 3)) + + ): (self: Effect) => Effect; +>self : Symbol(self, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 19, 6)) +>Effect : Symbol(Effect, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 2, 2)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 17, 53)) +>Effect : Symbol(Effect, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 2, 2)) +>A : Symbol(A, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 17, 53)) + +}; + +pipe( +>pipe : Symbol(pipe, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 8, 1)) + + {} as Effect, +>Effect : Symbol(Effect, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 2, 2)) + + repeat({ +>repeat : Symbol(repeat, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 16, 13)) + + until: (x) => { +>until : Symbol(until, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 24, 10)) +>x : Symbol(x, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 25, 12)) + + return x; // boolean +>x : Symbol(x, Decl(contextualParameterAndSelfReferentialConstraint1.ts, 25, 12)) + + }, + }), +); + diff --git a/tests/baselines/reference/contextualParameterAndSelfReferentialConstraint1.types b/tests/baselines/reference/contextualParameterAndSelfReferentialConstraint1.types new file mode 100644 index 0000000000000..cb1b2d25d7883 --- /dev/null +++ b/tests/baselines/reference/contextualParameterAndSelfReferentialConstraint1.types @@ -0,0 +1,93 @@ +//// [tests/cases/compiler/contextualParameterAndSelfReferentialConstraint1.ts] //// + +=== contextualParameterAndSelfReferentialConstraint1.ts === +type NoExcessProperties = T & { +>NoExcessProperties : NoExcessProperties +> : ^^^^^^^^^^^^^^^^^^^^^^^^ + + readonly [K in Exclude]: never; +}; + +interface Effect { + readonly EffectTypeId: { +>EffectTypeId : { readonly _A: (_: never) => A; } +> : ^^^^^^^^^^^^^^^ ^^^ + + readonly _A: (_: never) => A; +>_A : (_: never) => A +> : ^ ^^ ^^^^^ +>_ : never +> : ^^^^^ + + }; +} + +declare function pipe(a: A, ab: (a: A) => B): B; +>pipe : (a: A, ab: (a: A) => B) => B +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>a : A +> : ^ +>ab : (a: A) => B +> : ^ ^^ ^^^^^ +>a : A +> : ^ + +interface RepeatOptions { + until?: (_: A) => boolean; +>until : ((_: A) => boolean) | undefined +> : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +>_ : A +> : ^ +} + +declare const repeat: { +>repeat : , O>, A>(options: O) => (self: Effect) => Effect +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ + + , O>, A>( + options: O, +>options : O +> : ^ + + ): (self: Effect) => Effect; +>self : Effect +> : ^^^^^^^^^ + +}; + +pipe( +>pipe( {} as Effect, repeat({ until: (x) => { return x; // boolean }, }),) : Effect +> : ^^^^^^^^^^^^^^^ +>pipe : (a: A, ab: (a: A) => B) => B +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ + + {} as Effect, +>{} as Effect : Effect +> : ^^^^^^^^^^^^^^^ +>{} : {} +> : ^^ + + repeat({ +>repeat({ until: (x) => { return x; // boolean }, }) : (self: Effect) => Effect +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>repeat : , O>, A>(options: O) => (self: Effect) => Effect +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>{ until: (x) => { return x; // boolean }, } : { until: (x: boolean) => boolean; } +> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ + + until: (x) => { +>until : (x: boolean) => boolean +> : ^ ^^^^^^^^^^^^^^^^^^^^^ +>(x) => { return x; // boolean } : (x: boolean) => boolean +> : ^ ^^^^^^^^^^^^^^^^^^^^^ +>x : boolean +> : ^^^^^^^ + + return x; // boolean +>x : boolean +> : ^^^^^^^ + + }, + }), +); + diff --git a/tests/cases/compiler/contextualParameterAndSelfReferentialConstraint1.ts b/tests/cases/compiler/contextualParameterAndSelfReferentialConstraint1.ts new file mode 100644 index 0000000000000..f1e42bcbd2e1d --- /dev/null +++ b/tests/cases/compiler/contextualParameterAndSelfReferentialConstraint1.ts @@ -0,0 +1,33 @@ +// @strict: true +// @noEmit: true + +type NoExcessProperties = T & { + readonly [K in Exclude]: never; +}; + +interface Effect { + readonly EffectTypeId: { + readonly _A: (_: never) => A; + }; +} + +declare function pipe(a: A, ab: (a: A) => B): B; + +interface RepeatOptions { + until?: (_: A) => boolean; +} + +declare const repeat: { + , O>, A>( + options: O, + ): (self: Effect) => Effect; +}; + +pipe( + {} as Effect, + repeat({ + until: (x) => { + return x; // boolean + }, + }), +); From 22520da1d051220f289e20aeb9bb558864a58ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Fri, 4 Apr 2025 14:11:59 +0200 Subject: [PATCH 09/12] relax `restrictiveMapper` caching restriction --- src/compiler/checker.ts | 1 - tests/baselines/reference/circularBaseConstraint.types | 3 --- 2 files changed, 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 9a56e365818d0..b1e16d711d88d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2101,7 +2101,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { var numericStringType = getTemplateLiteralType(["", ""], [numberType]); // The `${number}` type var restrictiveMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? getRestrictiveTypeParameter(t as TypeParameter) : t, () => "(restrictive mapper)"); - restrictiveMapper.instantiations = voidMap; var permissiveMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? wildcardType : t, () => "(permissive mapper)"); var uniqueLiteralType = createIntrinsicType(TypeFlags.Never, "never", /*objectFlags*/ undefined, "unique literal"); // `uniqueLiteralType` is a special `never` flagged by union reduction to behave as a literal var uniqueLiteralMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? uniqueLiteralType : t, () => "(unique literal mapper)"); // replace all type parameters with the unique literal type (disregarding constraints) diff --git a/tests/baselines/reference/circularBaseConstraint.types b/tests/baselines/reference/circularBaseConstraint.types index cec18961daeaf..359035e7f2696 100644 --- a/tests/baselines/reference/circularBaseConstraint.types +++ b/tests/baselines/reference/circularBaseConstraint.types @@ -1,8 +1,5 @@ //// [tests/cases/compiler/circularBaseConstraint.ts] //// -=== Performance Stats === -Instantiation count: 2,500 - === circularBaseConstraint.ts === // Repro from #54610 From 051c8bd26cf8422c99f78995f946e61d3489205e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Fri, 4 Apr 2025 14:25:15 +0200 Subject: [PATCH 10/12] replace `voidMap` with `emptyMap` --- src/compiler/checker.ts | 23 +++++++++++++++-------- src/compiler/core.ts | 8 +------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b1e16d711d88d..d8daf97e85507 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -164,6 +164,7 @@ import { EmitResolver, EmitTextWriter, emptyArray, + emptyMap, EntityName, EntityNameExpression, EntityNameOrEntityNameExpression, @@ -1124,7 +1125,6 @@ import { Visitor, VisitResult, VoidExpression, - voidMap, walkUpBindingElementsAndPatterns, walkUpOuterExpressions, walkUpParenthesizedExpressions, @@ -2111,14 +2111,14 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } return t; }, () => "(unmeasurable reporter)"); - reportUnreliableMapper.instantiations = voidMap; + reportUnreliableMapper.instantiations = emptyMap; var reportUnmeasurableMapper = makeFunctionTypeMapper(t => { if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) { outofbandVarianceMarkerHandler(/*onlyUnreliable*/ false); } return t; }, () => "(unreliable reporter)"); - reportUnmeasurableMapper.instantiations = voidMap; + reportUnmeasurableMapper.instantiations = emptyMap; var emptyObjectType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray); var emptyJsxObjectType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray); @@ -20374,16 +20374,23 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { error(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite); return errorType; } - const key = type.id + getAliasId(aliasSymbol, aliasTypeArguments); - const cached = (mapper.instantiations ??= new Map()).get(key); - if (cached) { - return cached; + let key: string + if (mapper.instantiations !== emptyMap) { + key = type.id + getAliasId(aliasSymbol, aliasTypeArguments); + const cached = (mapper.instantiations ??= new Map()).get(key); + if (cached) { + return cached; + } } totalInstantiationCount++; instantiationCount++; instantiationDepth++; const result = instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments); - mapper.instantiations?.set(key, result); + if (mapper.instantiations !== emptyMap) { + // volatile caches (like on `nonFixingMapper`) could have been cleared by the above `instantiateTypeWorker` + // if so, we don't want to cache the result as it likely won't be valid anymore anyway + mapper.instantiations?.set(key!, result); + } instantiationDepth--; return result; } diff --git a/src/compiler/core.ts b/src/compiler/core.ts index 306374dd93339..a46b4c171b7ed 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -16,13 +16,7 @@ import { /** @internal */ export const emptyArray: never[] = [] as never[]; /** @internal */ -export const emptyMap: ReadonlyMap = new Map(); - -/** @internal */ -export const voidMap: Map = new Map(); -voidMap.set = function () { - return this; -}; +export const emptyMap: Map = new Map(); /** @internal */ export function length(array: readonly any[] | undefined): number { From a6a728f0a510cf63adc92ad9a28e942e22155e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Fri, 4 Apr 2025 14:30:24 +0200 Subject: [PATCH 11/12] fmt --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index d8daf97e85507..65d64637e1784 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -20374,7 +20374,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { error(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite); return errorType; } - let key: string + let key: string; if (mapper.instantiations !== emptyMap) { key = type.id + getAliasId(aliasSymbol, aliasTypeArguments); const cached = (mapper.instantiations ??= new Map()).get(key); From 82666d1a152a26a5ac32187489a4a57dbdb7bbed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sat, 5 Apr 2025 16:03:36 +0200 Subject: [PATCH 12/12] Cache repeated mapper instantiations only within a single instantiation call --- src/compiler/checker.ts | 62 ++++++++++++++----- src/compiler/core.ts | 2 +- src/compiler/types.ts | 10 +-- .../reference/callsOnComplexSignatures.types | 2 +- .../checkJsxChildrenCanBeTupleType.types | 2 +- .../checkJsxChildrenProperty16.types | 2 +- ...onSFXContextualTypeInferredCorrectly.types | 2 +- ...onRegularTypeFetchingSpeedReasonable.types | 2 +- ...rianceBigArrayConstraintsPerformance.types | 2 +- .../contextuallyTypedJsxAttribute2.types | 2 +- .../contextuallyTypedJsxChildren.types | 2 +- .../reference/controlFlowOptionalChain3.types | 2 +- ...itRecursiveConditionalAliasPreserved.types | 2 +- ...tedIndexTypesNoConstraintElaboration.types | 2 +- .../esNextWeakRefs_IterableWeakMap.types | 2 +- .../excessiveStackDepthFlatArray.types | 1 + .../reference/genericFunctionInference1.types | 2 +- ...nferenceDefaultTypeParameterJsxReact.types | 2 +- ...larationOutputGetsTruncatedWithError.types | 2 +- .../reference/ignoredJsxAttributes.types | 2 +- tests/baselines/reference/importTag24.types | 2 +- .../reference/infiniteConstraints.types | 3 + .../intraExpressionInferencesJsx.types | 2 +- ...clarationsNonIdentifierInferredNames.types | 2 +- .../jsDeclarationsReactComponents.types | 2 +- .../jsxCallElaborationCheckNoCrash1.types | 2 +- ...xChildrenIndividualErrorElaborations.types | 2 +- ...omplexSignatureHasApplicabilityError.types | 1 + ...clarationsWithEsModuleInteropNoCrash.types | 2 +- .../baselines/reference/jsxElementType.types | 2 +- .../reference/jsxElementTypeLiteral.types | 2 +- .../jsxElementTypeLiteralWithGeneric.types | 2 +- ...pressionNotCountedAsChild(jsx=react).types | 2 +- ...sionNotCountedAsChild(jsx=react-jsx).types | 2 +- ...nNotCountedAsChild(jsx=react-jsxdev).types | 2 +- .../jsxExcessPropsAndAssignability.types | 2 +- .../jsxFragmentFactoryNoUnusedLocals.types | 2 +- ...WithSpreadingResultOfGenericFunction.types | 2 +- ...ImportForSideEffectsNonExtantNoError.types | 2 +- .../jsxIntrinsicElementsCompatability.types | 2 +- ...xIntrinsicElementsTypeArgumentErrors.types | 2 +- .../reference/jsxIntrinsicUnions.types | 2 +- ...sErrorWhenTagExpectsTooManyArguments.types | 2 +- ...sCjsTransformChildren(jsx=react-jsx).types | 2 +- ...sTransformChildren(jsx=react-jsxdev).types | 2 +- ...TransformCustomImport(jsx=react-jsx).types | 2 +- ...nsformCustomImport(jsx=react-jsxdev).types | 2 +- ...ormCustomImportPragma(jsx=react-jsx).types | 2 +- ...CustomImportPragma(jsx=react-jsxdev).types | 2 +- ...xsCjsTransformKeyProp(jsx=react-jsx).types | 2 +- ...jsTransformKeyProp(jsx=react-jsxdev).types | 2 +- ...rmKeyPropCustomImport(jsx=react-jsx).types | 2 +- ...eyPropCustomImport(jsx=react-jsxdev).types | 2 +- ...ropCustomImportPragma(jsx=react-jsx).types | 2 +- ...CustomImportPragma(jsx=react-jsxdev).types | 2 +- ...estedSelfClosingChild(jsx=react-jsx).types | 2 +- ...edSelfClosingChild(jsx=react-jsxdev).types | 2 +- ...sformSubstitutesNames(jsx=react-jsx).types | 2 +- ...rmSubstitutesNames(jsx=react-jsxdev).types | 2 +- ...stitutesNamesFragment(jsx=react-jsx).types | 2 +- ...tutesNamesFragment(jsx=react-jsxdev).types | 2 +- ...tComparedToNonMatchingIndexSignature.types | 2 +- .../reference/jsxPartialSpread.types | 2 +- .../jsxRuntimePragma(jsx=preserve).types | 2 +- .../jsxRuntimePragma(jsx=react).types | 2 +- .../jsxRuntimePragma(jsx=react-jsx).types | 2 +- .../jsxRuntimePragma(jsx=react-jsxdev).types | 2 +- .../baselines/reference/largeTupleTypes.types | 2 +- .../longObjectInstantiationChain1.types | 2 +- .../longObjectInstantiationChain2.types | 2 +- .../narrowingPastLastAssignment.types | 2 +- ...enthesizedJSDocCastAtReturnStatement.types | 2 +- tests/baselines/reference/promiseType.types | 3 + .../reference/promiseTypeStrictNull.types | 3 + .../propTypeValidatorInference.types | 3 + .../reference/ramdaToolsNoInfinite2.types | 2 +- .../reactDefaultPropsInferenceSuccess.types | 2 +- .../reference/reactHOCSpreadprops.types | 2 +- .../reactReadonlyHOCAssignabilityReal.types | 2 +- ...ikeDeferredInferenceAllowsAssignment.types | 3 + .../reactSFCAndFunctionResolvable.types | 2 +- .../reactTagNameComponentWithPropsNoOOM.types | 2 +- ...reactTagNameComponentWithPropsNoOOM2.types | 2 +- ...returnConditionalExpressionJSDocCast.types | 2 +- ...dicateIsInstantiateInContextOfTarget.types | 2 +- .../spellingSuggestionJSXAttribute.types | 2 +- ...omponentsInstantiaionLimitNotReached.types | 2 +- .../substitutionTypePassedToExtends.types | 2 +- .../reference/templateLiteralTypes4.types | 1 + .../reference/tsxInvokeComponentType.types | 2 +- .../tsxNotUsingApparentTypeOfSFC.types | 2 +- .../tsxReactEmit8(jsx=react-jsx).types | 2 +- .../tsxReactEmit8(jsx=react-jsxdev).types | 2 +- ...ctEmitSpreadAttribute(target=es2015).types | 2 +- ...ctEmitSpreadAttribute(target=es2018).types | 2 +- ...ctEmitSpreadAttribute(target=esnext).types | 2 +- ...ropsInferenceSucceedsOnIntersections.types | 2 +- .../tsxStatelessComponentDefaultProps.types | 2 +- .../tsxUnionMemberChecksFilterDataProps.types | 2 +- ...typeInferenceWithExcessPropertiesJsx.types | 2 +- .../reference/valueOfTypedArray.types | 2 +- .../verifyDefaultLib_webworker.types | 1 + 102 files changed, 161 insertions(+), 112 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 65d64637e1784..bcb04f5be3afe 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -164,7 +164,6 @@ import { EmitResolver, EmitTextWriter, emptyArray, - emptyMap, EntityName, EntityNameExpression, EntityNameOrEntityNameExpression, @@ -2111,14 +2110,12 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } return t; }, () => "(unmeasurable reporter)"); - reportUnreliableMapper.instantiations = emptyMap; var reportUnmeasurableMapper = makeFunctionTypeMapper(t => { if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) { outofbandVarianceMarkerHandler(/*onlyUnreliable*/ false); } return t; }, () => "(unreliable reporter)"); - reportUnmeasurableMapper.instantiations = emptyMap; var emptyObjectType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray); var emptyJsxObjectType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray); @@ -2319,6 +2316,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { var inferenceContexts: (InferenceContext | undefined)[] = []; var inferenceContextCount = 0; + var activeTypeMappers: TypeMapper[] = []; + var activeTypeMappersCaches: Map[] = []; + var activeTypeMappersCount = 0; + var emptyStringType = getStringLiteralType(""); var zeroType = getNumberLiteralType(0); var zeroBigIntType = getBigIntLiteralType({ negative: false, base10Value: "0" }); @@ -20374,22 +20375,25 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { error(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite); return errorType; } - let key: string; - if (mapper.instantiations !== emptyMap) { - key = type.id + getAliasId(aliasSymbol, aliasTypeArguments); - const cached = (mapper.instantiations ??= new Map()).get(key); - if (cached) { - return cached; - } + const index = findActiveMapper(mapper); + if (index === -1) { + pushActiveMapper(mapper); + } + const key = type.id + getAliasId(aliasSymbol, aliasTypeArguments); + const mapperCache = activeTypeMappersCaches[index !== -1 ? index : activeTypeMappersCount - 1]; + const cached = mapperCache.get(key); + if (cached) { + return cached; } totalInstantiationCount++; instantiationCount++; instantiationDepth++; const result = instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments); - if (mapper.instantiations !== emptyMap) { - // volatile caches (like on `nonFixingMapper`) could have been cleared by the above `instantiateTypeWorker` - // if so, we don't want to cache the result as it likely won't be valid anymore anyway - mapper.instantiations?.set(key!, result); + if (index === -1) { + popActiveMapper(); + } + else { + mapperCache.set(key, result); } instantiationDepth--; return result; @@ -25594,7 +25598,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { function clearCachedInferences(context: InferenceContext | undefined, inferences: InferenceInfo[]) { if (context) { - context.nonFixingMapper.instantiations = undefined; + clearActiveMapperCache(context.nonFixingMapper); } for (const inference of inferences) { if (!inference.isFixed) { @@ -26967,7 +26971,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // instantiating the constraint could reenter this function if the type parameter's constraint depends on that parameter // in such a case the reentering call just returns the preemptively set `.inferredType` // but given the `.inferredType` gets changed changed above, the cached instantiations have to be cleared because they were cached for the wrong type - context.nonFixingMapper.instantiations = undefined; + clearActiveMapperCache(context.nonFixingMapper); } } } @@ -32186,6 +32190,32 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } } + function pushActiveMapper(mapper: TypeMapper) { + activeTypeMappers[activeTypeMappersCount] = mapper; + activeTypeMappersCaches[activeTypeMappersCount] = new Map(); + activeTypeMappersCount++; + } + + function popActiveMapper() { + activeTypeMappersCount--; + } + + function findActiveMapper(mapper: TypeMapper) { + for (let i = activeTypeMappersCount - 1; i >= 0; i--) { + if (mapper === activeTypeMappers[i]) { + return i; + } + } + return -1; + } + + function clearActiveMapperCache(mapper: TypeMapper) { + const index = findActiveMapper(mapper); + if (index !== -1) { + activeTypeMappersCaches[index] = new Map(); + } + } + function getContextualImportAttributeType(node: ImportAttribute) { return getTypeOfPropertyOfContextualType(getGlobalImportAttributesType(/*reportErrors*/ false), getNameFromImportAttribute(node)); } diff --git a/src/compiler/core.ts b/src/compiler/core.ts index a46b4c171b7ed..ef83fefd533e0 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -16,7 +16,7 @@ import { /** @internal */ export const emptyArray: never[] = [] as never[]; /** @internal */ -export const emptyMap: Map = new Map(); +export const emptyMap: ReadonlyMap = new Map(); /** @internal */ export function length(array: readonly any[] | undefined): number { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 6a90ef2b92dff..342c0f2af7146 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -7029,11 +7029,11 @@ export const enum TypeMapKind { /** @internal */ export type TypeMapper = - | { kind: TypeMapKind.Simple; source: Type; target: Type; instantiations?: Map; } - | { kind: TypeMapKind.Array; sources: readonly Type[]; targets: readonly Type[] | undefined; instantiations?: Map; } - | { kind: TypeMapKind.Deferred; sources: readonly Type[]; targets: (() => Type)[]; instantiations?: Map; } - | { kind: TypeMapKind.Function; func: (t: Type) => Type; debugInfo?: () => string; instantiations?: Map; } - | { kind: TypeMapKind.Composite | TypeMapKind.Merged; mapper1: TypeMapper; mapper2: TypeMapper; instantiations?: Map; }; + | { kind: TypeMapKind.Simple; source: Type; target: Type; } + | { kind: TypeMapKind.Array; sources: readonly Type[]; targets: readonly Type[] | undefined; } + | { kind: TypeMapKind.Deferred; sources: readonly Type[]; targets: (() => Type)[]; } + | { kind: TypeMapKind.Function; func: (t: Type) => Type; debugInfo?: () => string; } + | { kind: TypeMapKind.Composite | TypeMapKind.Merged; mapper1: TypeMapper; mapper2: TypeMapper; }; // dprint-ignore export const enum InferencePriority { diff --git a/tests/baselines/reference/callsOnComplexSignatures.types b/tests/baselines/reference/callsOnComplexSignatures.types index f7ac9f28b9a64..bc52fb5e7bc03 100644 --- a/tests/baselines/reference/callsOnComplexSignatures.types +++ b/tests/baselines/reference/callsOnComplexSignatures.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === callsOnComplexSignatures.tsx === diff --git a/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types b/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types index 3f6427d8bf2b9..825cc5ae57c09 100644 --- a/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types +++ b/tests/baselines/reference/checkJsxChildrenCanBeTupleType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === checkJsxChildrenCanBeTupleType.tsx === diff --git a/tests/baselines/reference/checkJsxChildrenProperty16.types b/tests/baselines/reference/checkJsxChildrenProperty16.types index 0a696e6d43e27..e1148ac2824a2 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty16.types +++ b/tests/baselines/reference/checkJsxChildrenProperty16.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === checkJsxChildrenProperty16.tsx === diff --git a/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types b/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types index 2d4895f84b33a..bbfd4ab9eb6e4 100644 --- a/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types +++ b/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === checkJsxUnionSFXContextualTypeInferredCorrectly.tsx === diff --git a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types index 29a1582d72c36..fb3f341bac093 100644 --- a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types +++ b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types @@ -4,7 +4,7 @@ Strict subtype cache: 2,500 Assignability cache: 10,000 Type Count: 10,000 -Instantiation count: 25,000 +Instantiation count: 50,000 === conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.ts === type BigUnion = diff --git a/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types b/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types index 3f96c7626a6d4..d1cc488621671 100644 --- a/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types +++ b/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 1,000 Type Count: 5,000 -Instantiation count: 5,000 +Instantiation count: 50,000 Symbol count: 50,000 === conditionalTypeVarianceBigArrayConstraintsPerformance.ts === diff --git a/tests/baselines/reference/contextuallyTypedJsxAttribute2.types b/tests/baselines/reference/contextuallyTypedJsxAttribute2.types index 31908e787abdb..119033445a3af 100644 --- a/tests/baselines/reference/contextuallyTypedJsxAttribute2.types +++ b/tests/baselines/reference/contextuallyTypedJsxAttribute2.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 250,000 Symbol count: 100,000 === contextuallyTypedJsxAttribute2.tsx === diff --git a/tests/baselines/reference/contextuallyTypedJsxChildren.types b/tests/baselines/reference/contextuallyTypedJsxChildren.types index d16ae87036819..a2a38b1e2739f 100644 --- a/tests/baselines/reference/contextuallyTypedJsxChildren.types +++ b/tests/baselines/reference/contextuallyTypedJsxChildren.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === contextuallyTypedJsxChildren.tsx === diff --git a/tests/baselines/reference/controlFlowOptionalChain3.types b/tests/baselines/reference/controlFlowOptionalChain3.types index 53a89c7615f50..2d66db40f61a1 100644 --- a/tests/baselines/reference/controlFlowOptionalChain3.types +++ b/tests/baselines/reference/controlFlowOptionalChain3.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === controlFlowOptionalChain3.tsx === diff --git a/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types b/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types index 02b6e03c9615f..5974792bc2252 100644 --- a/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types +++ b/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 25,000 +Instantiation count: 50,000 Symbol count: 50,000 === input.d.ts === diff --git a/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types b/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types index 170bc9d59e14a..78a347d545fe1 100644 --- a/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types +++ b/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 25,000 +Instantiation count: 100,000 Symbol count: 100,000 === errorInfoForRelatedIndexTypesNoConstraintElaboration.ts === diff --git a/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types b/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types index 86df81cd4d746..b409385e2c46e 100644 --- a/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types +++ b/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 1,000 +Instantiation count: 2,500 === esNextWeakRefs_IterableWeakMap.ts === /** `static #cleanup` */ diff --git a/tests/baselines/reference/excessiveStackDepthFlatArray.types b/tests/baselines/reference/excessiveStackDepthFlatArray.types index 992494727bd71..8e23bf6fd8588 100644 --- a/tests/baselines/reference/excessiveStackDepthFlatArray.types +++ b/tests/baselines/reference/excessiveStackDepthFlatArray.types @@ -2,6 +2,7 @@ === Performance Stats === Type Count: 1,000 +Instantiation count: 1,000 === index.tsx === interface MiddlewareArray extends Array {} diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index 83666b82e0859..7275fd51f97be 100644 --- a/tests/baselines/reference/genericFunctionInference1.types +++ b/tests/baselines/reference/genericFunctionInference1.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 1,000 -> 2,500 +Instantiation count: 2,500 === genericFunctionInference1.ts === declare function pipe(ab: (...args: A) => B): (...args: A) => B; diff --git a/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types b/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types index 3eab3b4a72749..59a4dafcda412 100644 --- a/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types +++ b/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 10,000 -Instantiation count: 100,000 +Instantiation count: 250,000 Symbol count: 100,000 === genericInferenceDefaultTypeParameterJsxReact.tsx === diff --git a/tests/baselines/reference/hugeDeclarationOutputGetsTruncatedWithError.types b/tests/baselines/reference/hugeDeclarationOutputGetsTruncatedWithError.types index 671aa9bfe997c..e6226dafefb4d 100644 --- a/tests/baselines/reference/hugeDeclarationOutputGetsTruncatedWithError.types +++ b/tests/baselines/reference/hugeDeclarationOutputGetsTruncatedWithError.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 100,000 -Instantiation count: 250,000 +Instantiation count: 500,000 Symbol count: 100,000 === hugeDeclarationOutputGetsTruncatedWithError.ts === diff --git a/tests/baselines/reference/ignoredJsxAttributes.types b/tests/baselines/reference/ignoredJsxAttributes.types index 02aa7fcf15375..b9196a0531fd7 100644 --- a/tests/baselines/reference/ignoredJsxAttributes.types +++ b/tests/baselines/reference/ignoredJsxAttributes.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === ignoredJsxAttributes.tsx === diff --git a/tests/baselines/reference/importTag24.types b/tests/baselines/reference/importTag24.types index cb2eebeb53a55..1a4387b3d0ca8 100644 --- a/tests/baselines/reference/importTag24.types +++ b/tests/baselines/reference/importTag24.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 1,000 +Instantiation count: 2,500 === types.d.ts === export type Foo = string; diff --git a/tests/baselines/reference/infiniteConstraints.types b/tests/baselines/reference/infiniteConstraints.types index c07c34920405c..db1a3468d2e26 100644 --- a/tests/baselines/reference/infiniteConstraints.types +++ b/tests/baselines/reference/infiniteConstraints.types @@ -1,5 +1,8 @@ //// [tests/cases/compiler/infiniteConstraints.ts] //// +=== Performance Stats === +Instantiation count: 2,500 + === infiniteConstraints.ts === // Both of the following types trigger the recursion limiter in getImmediateBaseConstraint diff --git a/tests/baselines/reference/intraExpressionInferencesJsx.types b/tests/baselines/reference/intraExpressionInferencesJsx.types index 371a67557c23c..54aaf495a218e 100644 --- a/tests/baselines/reference/intraExpressionInferencesJsx.types +++ b/tests/baselines/reference/intraExpressionInferencesJsx.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === intraExpressionInferencesJsx.tsx === diff --git a/tests/baselines/reference/jsDeclarationsNonIdentifierInferredNames.types b/tests/baselines/reference/jsDeclarationsNonIdentifierInferredNames.types index 75a1df0d58356..d652dd0f576f9 100644 --- a/tests/baselines/reference/jsDeclarationsNonIdentifierInferredNames.types +++ b/tests/baselines/reference/jsDeclarationsNonIdentifierInferredNames.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsDeclarationsNonIdentifierInferredNames.jsx === diff --git a/tests/baselines/reference/jsDeclarationsReactComponents.types b/tests/baselines/reference/jsDeclarationsReactComponents.types index 20d40297ecfc3..032c6c27741e8 100644 --- a/tests/baselines/reference/jsDeclarationsReactComponents.types +++ b/tests/baselines/reference/jsDeclarationsReactComponents.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsDeclarationsReactComponents1.jsx === diff --git a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types index 855e01d79c6b0..03a1aaae84634 100644 --- a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types +++ b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxCallElaborationCheckNoCrash1.tsx === diff --git a/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types b/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types index 0c951c4df0468..8312a7a092076 100644 --- a/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types +++ b/tests/baselines/reference/jsxChildrenIndividualErrorElaborations.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === index.tsx === diff --git a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types index 37a370e59cafe..278f90f5983ff 100644 --- a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types +++ b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types @@ -2,6 +2,7 @@ === Performance Stats === Type Count: 1,000 +Instantiation count: 1,000 -> 2,500 === jsxComplexSignatureHasApplicabilityError.tsx === /// diff --git a/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types b/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types index fcd872a6045e1..55409b984919e 100644 --- a/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types +++ b/tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxDeclarationsWithEsModuleInteropNoCrash.jsx === diff --git a/tests/baselines/reference/jsxElementType.types b/tests/baselines/reference/jsxElementType.types index 2d94eed321aee..60977590ce45b 100644 --- a/tests/baselines/reference/jsxElementType.types +++ b/tests/baselines/reference/jsxElementType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxElementType.tsx === diff --git a/tests/baselines/reference/jsxElementTypeLiteral.types b/tests/baselines/reference/jsxElementTypeLiteral.types index 3ef1e1aa72cbb..981b155ba228c 100644 --- a/tests/baselines/reference/jsxElementTypeLiteral.types +++ b/tests/baselines/reference/jsxElementTypeLiteral.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxElementTypeLiteral.tsx === diff --git a/tests/baselines/reference/jsxElementTypeLiteralWithGeneric.types b/tests/baselines/reference/jsxElementTypeLiteralWithGeneric.types index e669d3c955cb0..af89fe8197892 100644 --- a/tests/baselines/reference/jsxElementTypeLiteralWithGeneric.types +++ b/tests/baselines/reference/jsxElementTypeLiteralWithGeneric.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxElementTypeLiteralWithGeneric.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types index a29df6de72928..550daa56cc0b8 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types index a29df6de72928..550daa56cc0b8 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types index a29df6de72928..550daa56cc0b8 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxEmptyExpressionNotCountedAsChild.tsx === diff --git a/tests/baselines/reference/jsxExcessPropsAndAssignability.types b/tests/baselines/reference/jsxExcessPropsAndAssignability.types index 0bfba68466c39..82aaa30d94f51 100644 --- a/tests/baselines/reference/jsxExcessPropsAndAssignability.types +++ b/tests/baselines/reference/jsxExcessPropsAndAssignability.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxExcessPropsAndAssignability.tsx === diff --git a/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types b/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types index ef15959c95fd1..3953193d3d6d8 100644 --- a/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types +++ b/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxFragmentFactoryNoUnusedLocals.tsx === diff --git a/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types b/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types index 60460bb3093f7..25ba4b3d7a941 100644 --- a/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types +++ b/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx === diff --git a/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.types b/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.types index af8b17ce1224b..022f947027285 100644 --- a/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.types +++ b/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxImportForSideEffectsNonExtantNoError.tsx === diff --git a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types index 9166712e3d927..95c1f25caba6c 100644 --- a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types +++ b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 100,000 Symbol count: 50,000 === jsxIntrinsicElementsCompatability.tsx === diff --git a/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.types b/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.types index 4bdf7d5379136..abe3344d40c30 100644 --- a/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.types +++ b/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxIntrinsicElementsTypeArgumentErrors.tsx === diff --git a/tests/baselines/reference/jsxIntrinsicUnions.types b/tests/baselines/reference/jsxIntrinsicUnions.types index 10a99c1d5e36d..b30ebee352b3b 100644 --- a/tests/baselines/reference/jsxIntrinsicUnions.types +++ b/tests/baselines/reference/jsxIntrinsicUnions.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxIntrinsicUnions.tsx === diff --git a/tests/baselines/reference/jsxIssuesErrorWhenTagExpectsTooManyArguments.types b/tests/baselines/reference/jsxIssuesErrorWhenTagExpectsTooManyArguments.types index 652eed2109219..1ffb2dcf957e8 100644 --- a/tests/baselines/reference/jsxIssuesErrorWhenTagExpectsTooManyArguments.types +++ b/tests/baselines/reference/jsxIssuesErrorWhenTagExpectsTooManyArguments.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxIssuesErrorWhenTagExpectsTooManyArguments.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types index 862980832c05c..4907628b6bd66 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformChildren.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types index 862980832c05c..4907628b6bd66 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformChildren.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types index a9de52f2118fe..aa13660ad9ba4 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types index a9de52f2118fe..aa13660ad9ba4 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types index 3e4c618f417b4..b550f712f194e 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types index 3e4c618f417b4..b550f712f194e 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types index 64b0922cb76ea..d618a1ab5ff52 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyProp.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types index 64b0922cb76ea..d618a1ab5ff52 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyProp.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types index 351fd96aec7aa..13d8d36838f06 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyPropCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types index 351fd96aec7aa..13d8d36838f06 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformKeyPropCustomImport.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types index 15a40c06fc4ff..fd465b18bbf10 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types index 15a40c06fc4ff..fd465b18bbf10 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === react.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types index 9c13993196124..7371ffcc13937 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformNestedSelfClosingChild.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types index 9c13993196124..7371ffcc13937 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformNestedSelfClosingChild.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types index 7dfd23cb9c9dc..94b681fd44460 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNames.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types index 7dfd23cb9c9dc..94b681fd44460 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNames.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types index a9f14256ab96d..6d67486907b93 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNamesFragment.tsx === diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types index a9f14256ab96d..6d67486907b93 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxJsxsCjsTransformSubstitutesNamesFragment.tsx === diff --git a/tests/baselines/reference/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.types b/tests/baselines/reference/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.types index 16cc40ca075b1..25c5c3da11f9c 100644 --- a/tests/baselines/reference/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.types +++ b/tests/baselines/reference/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxNamespacedNameNotComparedToNonMatchingIndexSignature.tsx === diff --git a/tests/baselines/reference/jsxPartialSpread.types b/tests/baselines/reference/jsxPartialSpread.types index 739947eae2327..0f63055beb46c 100644 --- a/tests/baselines/reference/jsxPartialSpread.types +++ b/tests/baselines/reference/jsxPartialSpread.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === jsxPartialSpread.tsx === diff --git a/tests/baselines/reference/jsxRuntimePragma(jsx=preserve).types b/tests/baselines/reference/jsxRuntimePragma(jsx=preserve).types index df6693ef87b04..87eb419fb5327 100644 --- a/tests/baselines/reference/jsxRuntimePragma(jsx=preserve).types +++ b/tests/baselines/reference/jsxRuntimePragma(jsx=preserve).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === one.tsx === diff --git a/tests/baselines/reference/jsxRuntimePragma(jsx=react).types b/tests/baselines/reference/jsxRuntimePragma(jsx=react).types index df6693ef87b04..87eb419fb5327 100644 --- a/tests/baselines/reference/jsxRuntimePragma(jsx=react).types +++ b/tests/baselines/reference/jsxRuntimePragma(jsx=react).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === one.tsx === diff --git a/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsx).types b/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsx).types index df6693ef87b04..87eb419fb5327 100644 --- a/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsx).types +++ b/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === one.tsx === diff --git a/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsxdev).types b/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsxdev).types index df6693ef87b04..87eb419fb5327 100644 --- a/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsxdev).types +++ b/tests/baselines/reference/jsxRuntimePragma(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === one.tsx === diff --git a/tests/baselines/reference/largeTupleTypes.types b/tests/baselines/reference/largeTupleTypes.types index 9d0a43858a19a..a8826173d19fa 100644 --- a/tests/baselines/reference/largeTupleTypes.types +++ b/tests/baselines/reference/largeTupleTypes.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 1,000 Type Count: 25,000 -Instantiation count: 25,000 +Instantiation count: 50,000 Symbol count: 50,000 === largeTupleTypes.ts === diff --git a/tests/baselines/reference/longObjectInstantiationChain1.types b/tests/baselines/reference/longObjectInstantiationChain1.types index ca702b9dd48d0..b4308351c266f 100644 --- a/tests/baselines/reference/longObjectInstantiationChain1.types +++ b/tests/baselines/reference/longObjectInstantiationChain1.types @@ -1,7 +1,7 @@ //// [tests/cases/compiler/longObjectInstantiationChain1.ts] //// === Performance Stats === -Instantiation count: 5,000 +Instantiation count: 10,000 === longObjectInstantiationChain1.ts === export type merge = Omit & props; diff --git a/tests/baselines/reference/longObjectInstantiationChain2.types b/tests/baselines/reference/longObjectInstantiationChain2.types index e05f1adc0f663..e3e2a7a2fbc2c 100644 --- a/tests/baselines/reference/longObjectInstantiationChain2.types +++ b/tests/baselines/reference/longObjectInstantiationChain2.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 100 -> 50,000 Type Count: 2,500 -> 5,000 -Instantiation count: 10,000 +Instantiation count: 25,000 === longObjectInstantiationChain2.ts === type merge = Omit & props; diff --git a/tests/baselines/reference/narrowingPastLastAssignment.types b/tests/baselines/reference/narrowingPastLastAssignment.types index e54baa2232474..f2c62a10d1381 100644 --- a/tests/baselines/reference/narrowingPastLastAssignment.types +++ b/tests/baselines/reference/narrowingPastLastAssignment.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 1,000 +Instantiation count: 2,500 === narrowingPastLastAssignment.ts === function action(f: Function) {} diff --git a/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types b/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types index e138921e963b2..61141eebd4c63 100644 --- a/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types +++ b/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 1,000 +Instantiation count: 2,500 === index.js === /** @type {Map>} */ diff --git a/tests/baselines/reference/promiseType.types b/tests/baselines/reference/promiseType.types index 0230d5607d54f..4aec603e3f2a6 100644 --- a/tests/baselines/reference/promiseType.types +++ b/tests/baselines/reference/promiseType.types @@ -1,5 +1,8 @@ //// [tests/cases/compiler/promiseType.ts] //// +=== Performance Stats === +Instantiation count: 2,500 + === promiseType.ts === declare var p: Promise; >p : Promise diff --git a/tests/baselines/reference/promiseTypeStrictNull.types b/tests/baselines/reference/promiseTypeStrictNull.types index be3d2748fda7c..dbc956fe6f8d7 100644 --- a/tests/baselines/reference/promiseTypeStrictNull.types +++ b/tests/baselines/reference/promiseTypeStrictNull.types @@ -1,5 +1,8 @@ //// [tests/cases/compiler/promiseTypeStrictNull.ts] //// +=== Performance Stats === +Instantiation count: 2,500 + === promiseTypeStrictNull.ts === declare var p: Promise; >p : Promise diff --git a/tests/baselines/reference/propTypeValidatorInference.types b/tests/baselines/reference/propTypeValidatorInference.types index 0f8f83ce0da48..4ba12bf39d3c2 100644 --- a/tests/baselines/reference/propTypeValidatorInference.types +++ b/tests/baselines/reference/propTypeValidatorInference.types @@ -1,5 +1,8 @@ //// [tests/cases/compiler/propTypeValidatorInference.ts] //// +=== Performance Stats === +Instantiation count: 1,000 + === node_modules/prop-types/index.d.ts === export const nominalTypeHack: unique symbol; >nominalTypeHack : unique symbol diff --git a/tests/baselines/reference/ramdaToolsNoInfinite2.types b/tests/baselines/reference/ramdaToolsNoInfinite2.types index b83caab51a301..e4734af9f8f8c 100644 --- a/tests/baselines/reference/ramdaToolsNoInfinite2.types +++ b/tests/baselines/reference/ramdaToolsNoInfinite2.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 25,000 === ramdaToolsNoInfinite2.ts === declare module "Any/Kind" { diff --git a/tests/baselines/reference/reactDefaultPropsInferenceSuccess.types b/tests/baselines/reference/reactDefaultPropsInferenceSuccess.types index 7af48418d3399..12ab24b57a640 100644 --- a/tests/baselines/reference/reactDefaultPropsInferenceSuccess.types +++ b/tests/baselines/reference/reactDefaultPropsInferenceSuccess.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 100,000 Symbol count: 50,000 === reactDefaultPropsInferenceSuccess.tsx === diff --git a/tests/baselines/reference/reactHOCSpreadprops.types b/tests/baselines/reference/reactHOCSpreadprops.types index e5a1dd93517eb..a7fb1094c1580 100644 --- a/tests/baselines/reference/reactHOCSpreadprops.types +++ b/tests/baselines/reference/reactHOCSpreadprops.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === reactHOCSpreadprops.tsx === diff --git a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types index aecd1edf6a35e..d1e78014fb51f 100644 --- a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types +++ b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === reactReadonlyHOCAssignabilityReal.tsx === diff --git a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types index 6395645608b6f..dd1ed8bb05ec4 100644 --- a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types +++ b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types @@ -1,5 +1,8 @@ //// [tests/cases/compiler/reactReduxLikeDeferredInferenceAllowsAssignment.ts] //// +=== Performance Stats === +Instantiation count: 1,000 + === reactReduxLikeDeferredInferenceAllowsAssignment.ts === declare class Component

{ >Component : Component

diff --git a/tests/baselines/reference/reactSFCAndFunctionResolvable.types b/tests/baselines/reference/reactSFCAndFunctionResolvable.types index a4abfecb17868..d2cbbe7cdedab 100644 --- a/tests/baselines/reference/reactSFCAndFunctionResolvable.types +++ b/tests/baselines/reference/reactSFCAndFunctionResolvable.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === reactSFCAndFunctionResolvable.tsx === diff --git a/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM.types b/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM.types index cc453ef6d7bc4..1d378138c6ffa 100644 --- a/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM.types +++ b/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 100,000 Symbol count: 100,000 === reactTagNameComponentWithPropsNoOOM.tsx === diff --git a/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM2.types b/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM2.types index 510ecde5c224c..4bc3a422cbb61 100644 --- a/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM2.types +++ b/tests/baselines/reference/reactTagNameComponentWithPropsNoOOM2.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 5,000 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 100,000 Symbol count: 100,000 === reactTagNameComponentWithPropsNoOOM2.tsx === diff --git a/tests/baselines/reference/returnConditionalExpressionJSDocCast.types b/tests/baselines/reference/returnConditionalExpressionJSDocCast.types index afbd69e2a4616..4b98f032cb8e9 100644 --- a/tests/baselines/reference/returnConditionalExpressionJSDocCast.types +++ b/tests/baselines/reference/returnConditionalExpressionJSDocCast.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 1,000 +Instantiation count: 2,500 === file.js === // Don't peek into conditional return expression if it's wrapped in a cast diff --git a/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types b/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types index 76d245f035b72..c078dee14317f 100644 --- a/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types +++ b/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === returnTypePredicateIsInstantiateInContextOfTarget.tsx === diff --git a/tests/baselines/reference/spellingSuggestionJSXAttribute.types b/tests/baselines/reference/spellingSuggestionJSXAttribute.types index 1e2f7f07f369f..f49795d4f5934 100644 --- a/tests/baselines/reference/spellingSuggestionJSXAttribute.types +++ b/tests/baselines/reference/spellingSuggestionJSXAttribute.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === spellingSuggestionJSXAttribute.tsx === diff --git a/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types b/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types index a93ca5db5364c..9ab0659bad7a1 100644 --- a/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types +++ b/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 10,000 Type Count: 25,000 -Instantiation count: 100,000 +Instantiation count: 250,000 Symbol count: 100,000 === styledComponentsInstantiaionLimitNotReached.ts === diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.types b/tests/baselines/reference/substitutionTypePassedToExtends.types index a5d81c4699c7a..102d4d17d567f 100644 --- a/tests/baselines/reference/substitutionTypePassedToExtends.types +++ b/tests/baselines/reference/substitutionTypePassedToExtends.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 500 -> 1,000 -Instantiation count: 100 -> 1,000 +Instantiation count: 100 -> 2,500 === substitutionTypePassedToExtends.ts === type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' diff --git a/tests/baselines/reference/templateLiteralTypes4.types b/tests/baselines/reference/templateLiteralTypes4.types index 52ef0fe198052..ef54a53c3efc2 100644 --- a/tests/baselines/reference/templateLiteralTypes4.types +++ b/tests/baselines/reference/templateLiteralTypes4.types @@ -2,6 +2,7 @@ === Performance Stats === Assignability cache: 1,000 +Instantiation count: 1,000 === templateLiteralTypes4.ts === // infer from number diff --git a/tests/baselines/reference/tsxInvokeComponentType.types b/tests/baselines/reference/tsxInvokeComponentType.types index 1f9582f22eddf..a48c21e2c7bd0 100644 --- a/tests/baselines/reference/tsxInvokeComponentType.types +++ b/tests/baselines/reference/tsxInvokeComponentType.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxInvokeComponentType.tsx === diff --git a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types index d12f1cec7408f..2b7d4d8853f52 100644 --- a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types +++ b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxNotUsingApparentTypeOfSFC.tsx === diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types index 4bd638da804f2..9676d2331cd70 100644 --- a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxReactEmit8.tsx === diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types index 4bd638da804f2..9676d2331cd70 100644 --- a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxReactEmit8.tsx === diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).types b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).types index c058341a25d4d..42e8b670c4453 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).types +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === test.tsx === diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).types b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).types index c058341a25d4d..42e8b670c4453 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).types +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === test.tsx === diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).types b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).types index c058341a25d4d..42e8b670c4453 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).types +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === test.tsx === diff --git a/tests/baselines/reference/tsxReactPropsInferenceSucceedsOnIntersections.types b/tests/baselines/reference/tsxReactPropsInferenceSucceedsOnIntersections.types index da8771efb5e62..8c71a4cabf147 100644 --- a/tests/baselines/reference/tsxReactPropsInferenceSucceedsOnIntersections.types +++ b/tests/baselines/reference/tsxReactPropsInferenceSucceedsOnIntersections.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 100,000 Symbol count: 50,000 === tsxReactPropsInferenceSucceedsOnIntersections.tsx === diff --git a/tests/baselines/reference/tsxStatelessComponentDefaultProps.types b/tests/baselines/reference/tsxStatelessComponentDefaultProps.types index b153a20ac8868..53f498c7d6cc2 100644 --- a/tests/baselines/reference/tsxStatelessComponentDefaultProps.types +++ b/tests/baselines/reference/tsxStatelessComponentDefaultProps.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxStatelessComponentDefaultProps.tsx === diff --git a/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types b/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types index 37a2f7612b43d..2bd0f0990b58c 100644 --- a/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types +++ b/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 5,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === tsxUnionMemberChecksFilterDataProps.tsx === diff --git a/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types b/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types index 724ed66d6f82f..94fdcef1a8b73 100644 --- a/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types +++ b/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types @@ -3,7 +3,7 @@ === Performance Stats === Assignability cache: 2,500 Type Count: 10,000 -Instantiation count: 10,000 +Instantiation count: 50,000 Symbol count: 50,000 === typeInferenceWithExcessPropertiesJsx.tsx === diff --git a/tests/baselines/reference/valueOfTypedArray.types b/tests/baselines/reference/valueOfTypedArray.types index ab413fe6265c3..ab047aa7f9a9f 100644 --- a/tests/baselines/reference/valueOfTypedArray.types +++ b/tests/baselines/reference/valueOfTypedArray.types @@ -2,7 +2,7 @@ === Performance Stats === Type Count: 1,000 -Instantiation count: 1,000 +Instantiation count: 2,500 === valueOfTypedArray.ts === // All declarations should pass, as valueOf has been specialized for all TypedArrays diff --git a/tests/baselines/reference/verifyDefaultLib_webworker.types b/tests/baselines/reference/verifyDefaultLib_webworker.types index 0cacd87af41f9..404fcdd51ab6d 100644 --- a/tests/baselines/reference/verifyDefaultLib_webworker.types +++ b/tests/baselines/reference/verifyDefaultLib_webworker.types @@ -2,6 +2,7 @@ === Performance Stats === Type Count: 5,000 +Instantiation count: 1,000 === verifyDefaultLib_webworker.ts === var x: Worker;