From 78a99241d87efca3e48ba52a9799f8fdf941d618 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Wed, 1 Apr 2020 19:50:21 -0700 Subject: [PATCH] Reuse input type nodes when serializing signature parameter and return types (#37444) * Accept change * Accept the huge set of ever so slightly changed baselines * Update return type logic to only reuse nodes if original nodes share scope with current node, like property types, only reuse nodes if symbols referened are acessible, reuse nodes for property signatures, too * Only reuse nodes when a context is provided (otherwise identifier printback may fail) * Only track symbol if symbol is found and no error is recorded * Fix type parameter reuse lookup * Forbid cjs module.exports references in retained nodes * Adjust check for cjs export references to not include bad module type in output * Add symbol to all identifiers we see in existing nodes for quickinfo * Accept fourslash baseline updates * Accept slightly updated baseline post-merge * Do not copy original nodes for error types, replace empty type references with any --- src/compiler/checker.ts | 374 ++++++++++-------- src/compiler/utilities.ts | 7 +- .../baselines/reference/1.0lib-noErrors.types | 2 +- ...leTypesInNestedMemberTypeAnnotations.types | 2 +- ...onAndModuleWithSameNameAndCommonRoot.types | 2 +- ...leWithSameNameAndDifferentCommonRoot.types | 2 +- ...ithExportedAndNonExportedImportAlias.types | 2 +- .../reference/TypeGuardWithEnumUnion.types | 4 +- .../reference/aliasUsageInObjectLiteral.types | 2 +- tests/baselines/reference/ambientErrors.types | 2 +- .../anyAssignabilityInInheritance.types | 2 +- .../argumentExpressionContextualTyping.types | 2 +- tests/baselines/reference/arrayConcat3.types | 2 +- tests/baselines/reference/arrayFlatMap.types | 4 +- ...ayLiteralWithMultipleBestCommonTypes.types | 16 +- .../reference/arraySigChecking.types | 2 +- .../reference/assignmentCompatBug5.types | 2 +- ...nmentCompatFunctionsWithOptionalArgs.types | 2 +- .../reference/assignmentCompatOnNew.types | 2 +- .../assignmentCompatWithCallSignatures3.types | 16 +- .../assignmentCompatWithCallSignatures4.types | 12 +- ...gnmentCompatWithConstructSignatures3.types | 16 +- ...gnmentCompatWithConstructSignatures4.types | 12 +- ...signmentCompatWithDiscriminatedUnion.types | 2 +- .../assignmentCompatWithObjectMembers.types | 8 +- ...assignmentGenericLookupTypeNarrowing.types | 2 +- ...assignmentToParenthesizedIdentifiers.types | 2 +- ...ncFunctionReturnExpressionErrorSpans.types | 4 +- .../reference/asyncFunctionReturnType.types | 12 +- .../reference/awaitUnionPromise.types | 6 +- .../reference/bivariantInferences.types | 2 +- .../reference/bluebirdStaticThis.types | 8 +- .../reference/booleanLiteralTypes1.types | 12 +- .../reference/booleanLiteralTypes2.types | 12 +- tests/baselines/reference/callChain.2.types | 4 +- tests/baselines/reference/callChain.3.types | 2 +- tests/baselines/reference/callChain.types | 6 +- tests/baselines/reference/callOverload.types | 2 +- ...SignatureAssignabilityInInheritance2.types | 16 +- ...SignatureAssignabilityInInheritance3.types | 12 +- ...SignatureAssignabilityInInheritance5.types | 16 +- ...SignatureAssignabilityInInheritance6.types | 4 +- .../callSignatureFunctionOverload.types | 4 +- .../reference/callWithMissingVoid.types | 2 +- .../baselines/reference/callWithSpread2.types | 2 +- .../callbackArgsDifferByOptionality.types | 4 +- .../reference/callbackCrossModule.types | 2 +- .../reference/callsOnComplexSignatures.types | 16 +- .../capturedParametersInInitializers1.types | 6 +- ...nedSpecializationToObjectTypeLiteral.types | 2 +- .../checkJsTypeDefNoUnusedLocalMarked.types | 2 +- ...OnVariableDeclaredFunctionExpression.types | 6 +- .../reference/checkJsdocParamTag1.types | 2 +- .../reference/checkJsdocReturnTag1.types | 2 +- ...heckJsxSubtleSkipContextSensitiveBug.types | 2 +- ...onSFXContextualTypeInferredCorrectly.types | 2 +- .../reference/checkObjectDefineProperty.types | 4 +- ...eckSwitchStatementIfCaseTypeIsString.types | 2 +- .../classCanExtendConstructorFunction.types | 16 +- .../classExtendsInterfaceInExpression.types | 2 +- .../classTypeParametersInStatics.types | 2 +- .../reference/commentOnAmbientfunction.types | 2 +- .../reference/commonTypeIntersection.types | 8 +- .../complexRecursiveCollections.types | 230 +++++------ ...essKeyofReliesOnKeyofNeverUpperBound.types | 2 +- ...ndexesOfIntersectionsAreInferencable.types | 2 +- .../reference/complicatedPrivacy.types | 4 +- .../computedPropertiesInDestructuring1.types | 10 +- ...mputedPropertiesInDestructuring1_ES6.types | 10 +- ...nditionalOperatorWithoutIdenticalBCT.types | 2 +- .../conditionalTypeDoesntSpinForever.types | 8 +- .../reference/conditionalTypes1.types | 8 +- .../reference/conditionalTypes2.types | 10 +- .../conditionalTypesSimplifyWhenTrivial.types | 4 +- ...sistentAliasVsNonAliasRecordBehavior.types | 16 +- tests/baselines/reference/constEnum3.types | 2 +- tests/baselines/reference/constEnums.types | 2 +- .../reference/constantOverloadFunction.types | 6 +- ...nstantOverloadFunctionNoSubtypeError.types | 6 +- ...SignatureAssignabilityInInheritance2.types | 16 +- ...SignatureAssignabilityInInheritance3.types | 12 +- ...SignatureAssignabilityInInheritance5.types | 16 +- ...SignatureAssignabilityInInheritance6.types | 4 +- .../reference/constructorAsType.types | 4 +- .../contextSensitiveReturnTypeInference.types | 2 +- .../reference/contextualTypeFromJSDoc.types | 2 +- ...ntextualTypeOfIndexedAccessParameter.types | 2 +- .../contextualTypedSpecialAssignment.types | 2 +- .../reference/contextualTyping25.types | 2 +- .../reference/contextualTyping26.types | 2 +- .../reference/contextualTyping27.types | 2 +- .../contextualTypingOfOptionalMembers.types | 2 +- ...uallyTypedParametersWithInitializers.types | 4 +- ...TypedStringLiteralsInJsxAttributes01.types | 4 +- .../contravariantInferenceAndTypeGuard.types | 4 +- .../reference/controlFlowDeleteOperator.types | 2 +- .../reference/controlFlowOptionalChain.types | 6 +- .../reference/customAsyncIterator.types | 2 +- ...licGenericTypeInstantiationInference.types | 2 +- .../declFileForInterfaceWithRestParams.types | 6 +- .../reference/declFileGenericType.types | 6 +- .../reference/declFileGenericType2.types | 2 +- .../declFilePrivateMethodOverloads.types | 4 +- .../reference/declFileTypeofFunction.types | 8 +- ...larationEmitBundleWithAmbientReferences.js | 4 +- ...ationEmitBundleWithAmbientReferences.types | 4 +- .../declarationEmitDestructuring1.types | 4 +- ...OptionalBindingParametersInOverloads.types | 2 +- ...cturingWithOptionalBindingParameters.types | 2 +- .../declarationEmitNestedGenerics.js | 2 +- .../declarationEmitNestedGenerics.types | 4 +- .../declarationEmitOptionalMethod.js | 4 +- .../declarationEmitOptionalMethod.types | 4 +- ...arationEmitTypeAliasWithTypeParameters1.js | 2 +- ...tionEmitTypeAliasWithTypeParameters1.types | 4 +- ...arationEmitTypeAliasWithTypeParameters2.js | 2 +- ...tionEmitTypeAliasWithTypeParameters2.types | 4 +- .../reference/declarationMapsMultifile.types | 2 +- .../reference/declarationMapsOutFile.types | 2 +- .../reference/declarationMapsOutFile2.types | 2 +- .../declarationMapsWithSourceMap.types | 2 +- .../declarationNoDanglingGenerics.types | 2 +- ...clarationsForFileShadowingGlobalNoError.js | 3 +- ...rationsForFileShadowingGlobalNoError.types | 2 +- ...arationsForInferredTypeFromOtherFile.types | 2 +- ...InternalTypesProduceUniqueTypeParams.types | 2 +- .../decoratorsOnComputedProperties.types | 2 +- ...ertyCheckingWhenTargetIsIntersection.types | 4 +- .../deeplyNestedAssignabilityIssue.types | 4 +- .../reference/deeplyNestedCheck.types | 2 +- ...defaultDeclarationEmitNamedCorrectly.types | 4 +- ...eclarationEmitShadowedNamedCorrectly.types | 4 +- .../deferredLookupTypeResolution.types | 2 +- .../deferredLookupTypeResolution2.types | 8 +- tests/baselines/reference/deleteChain.types | 16 +- ...erivedClassOverridesProtectedMembers.types | 16 +- ...rivedClassOverridesProtectedMembers2.types | 16 +- ...rivedClassOverridesProtectedMembers3.types | 16 +- .../derivedClassOverridesPublicMembers.types | 16 +- ...InterfaceIncompatibleWithBaseIndexer.types | 2 +- ...HiddenBaseCallViaSuperPropertyAccess.types | 4 +- .../destructureOptionalParameter.types | 2 +- .../destructuredDeclarationEmit.types | 2 +- .../reference/destructuringControlFlow.types | 4 +- ...estructuringParameterDeclaration1ES5.types | 14 +- ...ringParameterDeclaration1ES5iterable.types | 14 +- ...estructuringParameterDeclaration1ES6.types | 14 +- .../destructuringParameterDeclaration2.types | 2 +- ...estructuringParameterDeclaration3ES5.types | 4 +- ...ringParameterDeclaration3ES5iterable.types | 4 +- ...estructuringParameterDeclaration3ES6.types | 4 +- .../destructuringParameterDeclaration4.types | 2 +- .../destructuringParameterDeclaration5.types | 6 +- .../destructuringParameterDeclaration8.types | 4 +- ...yAssignmentNameIsNotAssignmentTarget.types | 2 +- ...ionsForExpressionsWhichCouldBeCalled.types | 2 +- .../differentTypesWithSameName.types | 2 +- ...riminableUnionWithIntersectedMembers.types | 4 +- .../reference/discriminantPropertyCheck.types | 4 +- .../discriminantsAndPrimitives.types | 8 +- .../reference/discriminatedUnionTypes2.types | 18 +- .../reference/doNotInferUnrelatedTypes.types | 2 +- .../elaboratedErrorsOnNullableTargets01.types | 4 +- .../reference/elementAccessChain.2.types | 4 +- .../reference/elementAccessChain.types | 14 +- ...ypeOfIndexSignatureContainingObject1.types | 4 +- ...ypeOfIndexSignatureContainingObject2.types | 4 +- .../enumAssignabilityInInheritance.types | 2 +- .../reference/enumLiteralTypes1.types | 8 +- .../reference/enumLiteralTypes2.types | 12 +- .../reference/enumLiteralTypes3.types | 18 +- tests/baselines/reference/enumTag.types | 2 +- .../reference/equalityStrictNulls.types | 2 +- ...nionVsObjectShouldDeeplyDisambiguate.types | 2 +- .../reference/errorTypesAsTypeArguments.types | 2 +- .../errorsInGenericTypeReference.types | 10 +- ...ertyCheckWithNestedArrayIntersection.types | 4 +- .../excessPropertyCheckWithUnions.types | 2 +- .../expandoFunctionContextualTypesJs.types | 4 +- ...signmentMembersVisibleInAugmentation.types | 4 +- .../reference/exportNestedNamespaces.types | 2 +- tests/baselines/reference/extendArray.types | 4 +- .../reference/externModuleClobber.types | 2 +- tests/baselines/reference/for-of29.types | 4 +- .../reference/functionAssignment.types | 2 +- .../functionExpressionContextualTyping3.types | 2 +- .../reference/functionOverloadErrors.types | 2 +- .../reference/functionOverloads14.types | 4 +- .../reference/functionOverloads15.types | 4 +- .../reference/functionOverloads16.types | 4 +- .../reference/functionOverloads17.types | 2 +- .../reference/functionOverloads18.types | 2 +- .../reference/functionOverloads19.types | 4 +- .../reference/functionOverloads20.types | 4 +- .../reference/functionOverloads21.types | 4 +- .../reference/functionOverloads22.types | 4 +- .../reference/functionOverloads34.types | 4 +- .../reference/functionOverloads35.types | 4 +- .../reference/functionOverloads36.types | 4 +- .../reference/functionOverloads37.types | 4 +- .../reference/functionOverloads38.types | 4 +- .../reference/functionOverloads39.types | 4 +- .../reference/functionOverloads40.types | 4 +- .../reference/functionOverloads41.types | 4 +- .../reference/functionOverloads42.types | 4 +- .../reference/functionOverloads43.types | 4 +- .../reference/functionOverloads44.types | 8 +- .../reference/functionOverloads45.types | 8 +- .../reference/functionReturnTypeQuery.types | 4 +- ...issingReturnStatementsAndExpressions.types | 6 +- .../reference/generatedContextualTyping.types | 102 ++--- .../generatorReturnExpressionIsChecked.types | 2 +- .../reference/generatorTypeCheck1.types | 2 +- .../reference/generatorTypeCheck62.types | 4 +- .../reference/generatorTypeCheck63.types | 4 +- .../genericArrayPropertyAssignment.types | 2 +- .../genericArrayWithoutTypeAnnotation.types | 2 +- ...nericAssignmentCompatWithInterfaces1.types | 2 +- ...ricCallWithGenericSignatureArguments.types | 8 +- .../genericCallWithObjectLiteralArgs.types | 2 +- ...nericCallWithObjectLiteralArguments1.types | 2 +- .../genericCallWithObjectTypeArgs2.types | 4 +- ...allWithObjectTypeArgsAndConstraints2.types | 2 +- ...allWithObjectTypeArgsAndConstraints3.types | 2 +- ...hOverloadedConstructorTypedArguments.types | 2 +- ...OverloadedConstructorTypedArguments2.types | 2 +- ...WithOverloadedFunctionTypedArguments.types | 2 +- ...ithOverloadedFunctionTypedArguments2.types | 2 +- ...icClassWithStaticsUsingTypeArguments.types | 2 +- .../reference/genericFunctionInference1.types | 4 +- ...ericFunctionsWithOptionalParameters1.types | 2 +- ...ericFunctionsWithOptionalParameters2.types | 2 +- ...stantiationEquivalentToObjectLiteral.types | 2 +- .../reference/genericRestParameters2.types | 2 +- .../reference/genericRestTypes.types | 2 +- .../genericSpecializationToTypeLiteral1.types | 2 +- tests/baselines/reference/generics2.types | 2 +- .../reference/generics2NoError.types | 2 +- .../genericsWithoutTypeParameters1.types | 2 +- ...cMappedTypeIntersectionAssignability.types | 2 +- .../reference/illegalGenericWrapping1.types | 2 +- ...yFunctionInvocationWithAnyArguements.types | 2 +- .../reference/implicitConstParameters.types | 2 +- .../reference/inKeywordTypeguard.types | 2 +- .../inOperatorWithValidOperands.types | 2 +- .../reference/incompatibleTypes.types | 14 +- .../independentPropertyVariance.types | 2 +- ...fNestedSimplifiedSubstituteUnwrapped.types | 2 +- .../indexedAccessTypeConstraints.types | 2 +- .../indirectTypeParameterReferences.types | 2 +- .../reference/inferFromBindingPattern.types | 2 +- ...inferFromGenericFunctionReturnTypes3.types | 10 +- ...erParameterWithMethodCallInitializer.types | 2 +- tests/baselines/reference/inferTypes1.types | 8 +- .../baselines/reference/inferenceLimit.types | 2 +- .../baselines/reference/inferingFromAny.types | 4 +- .../inferrenceInfiniteLoopWithSubtyping.types | 10 +- .../reference/infiniteConstraints.types | 4 +- .../infinitelyGenerativeInheritance1.types | 4 +- ...arameterBeforeNonoptionalNotOptional.types | 4 +- ...lineJsxFactoryDeclarationsLocalTypes.types | 8 +- .../reference/instanceOfAssignability.types | 4 +- .../instanceofWithPrimitiveUnion.types | 4 +- .../reference/interfaceImplementation7.types | 6 +- .../interfacePropertiesWithSameName1.types | 6 +- .../interfacePropertiesWithSameName2.types | 10 +- ...nOfTypeVariableHasApparentSignatures.types | 2 +- .../reference/intersectionReduction.types | 18 +- .../intersectionReductionStrict.types | 16 +- .../intersectionTypeInference1.types | 6 +- .../intersectionTypeInference2.types | 4 +- .../reference/intersectionTypeMembers.types | 8 +- .../intersectionWithUnionConstraint.types | 4 +- .../invariantGenericErrorElaboration.types | 2 +- tests/baselines/reference/ipromise2.types | 8 +- tests/baselines/reference/ipromise4.types | 8 +- .../reference/iteratorSpreadInCall5.types | 2 +- .../reference/iteratorSpreadInCall6.types | 2 +- .../reference/jsDeclarationsEnumTag.js | 2 +- .../reference/jsDeclarationsEnumTag.types | 2 +- ...DeclarationsExportDefinePropertyEmit.types | 4 +- ...tionsFunctionClassesCjsExportAssignment.js | 22 +- ...nsFunctionClassesCjsExportAssignment.types | 8 +- .../reference/jsDeclarationsFunctions.types | 4 +- .../jsDeclarationsFunctionsCjs.types | 4 +- .../jsDeclarationsReactComponents.js | 2 +- .../jsDeclarationsReactComponents.types | 4 +- .../reference/jsDeclarationsTypeAliases.js | 4 +- .../reference/jsDeclarationsTypeAliases.types | 2 +- .../jsDeclarationsTypedefAndImportTypes.js | 2 +- ...tionsTypedefPropertyAndExportAssignment.js | 22 +- .../jsDeclarationsUniqueSymbolUsage.js | 31 ++ .../jsDeclarationsUniqueSymbolUsage.symbols | 21 + .../jsDeclarationsUniqueSymbolUsage.types | 23 ++ .../reference/jsEnumCrossFileExport.types | 2 +- .../reference/jsEnumTagOnObjectFrozen.types | 4 +- ...ileCompilationRestParamJsDocFunction.types | 2 +- .../jsdocArrayObjectPromiseImplicitAny.types | 6 +- ...jsdocArrayObjectPromiseNoImplicitAny.types | 4 +- .../jsdocClassMissingTypeArguments.types | 2 +- ...sdocConstructorFunctionTypeReference.types | 4 +- .../jsdocDisallowedInTypescript.types | 4 +- .../reference/jsdocFunctionType.types | 4 +- ...jsdocImportTypeReferenceToClassAlias.types | 2 +- ...cImportTypeReferenceToCommonjsModule.types | 2 +- .../jsdocImportTypeReferenceToESModule.types | 2 +- .../reference/jsdocIndexSignature.types | 2 +- tests/baselines/reference/jsdocLiteral.types | 2 +- .../baselines/reference/jsdocParamTag2.types | 18 +- .../reference/jsdocParamTagTypeLiteral.types | 10 +- .../jsdocParseBackquotedParamName.types | 2 +- .../jsdocParseDotDotDotInJSDocFunction.types | 2 +- .../reference/jsdocParseStarEquals.types | 2 +- .../jsdocPostfixEqualsAddsOptionality.types | 2 +- .../reference/jsdocPrefixPostfixParsing.types | 2 +- .../reference/jsdocRestParameter_es6.types | 2 +- .../baselines/reference/jsdocReturnTag1.types | 2 +- .../reference/jsdocTemplateClass.types | 2 +- .../jsdocTemplateConstructorFunction2.types | 4 +- .../reference/jsdocTemplateTag.types | 4 +- ...jsdocTypeGenericInstantiationAttempt.types | 2 +- ...ocTypeNongenericInstantiationAttempt.types | 2 +- .../reference/jsdocTypeReferenceToValue.types | 2 +- .../jsxCallbackWithDestructuring.types | 2 +- ...omplexSignatureHasApplicabilityError.types | 2 +- .../reference/jsxEmitWithAttributes.types | 2 +- .../jsxFactoryAndReactNamespace.types | 2 +- .../reference/jsxFactoryIdentifier.types | 2 +- ...xFactoryNotIdentifierOrQualifiedName.types | 2 +- ...FactoryNotIdentifierOrQualifiedName2.types | 2 +- .../reference/jsxFactoryQualifiedName.types | 2 +- .../reference/keyofAndIndexedAccess.types | 16 +- .../reference/keyofAndIndexedAccess2.types | 16 +- .../keyofAndIndexedAccessErrors.types | 2 +- .../reference/limitDeepInstantiations.types | 2 +- .../reference/literalTypeWidening.types | 2 +- tests/baselines/reference/literalTypes1.types | 2 +- tests/baselines/reference/literalTypes3.types | 2 +- .../reference/mappedTypeConstraints.types | 10 +- .../reference/mappedTypeInferenceErrors.types | 2 +- .../memberFunctionsWithPrivateOverloads.types | 8 +- .../memberFunctionsWithPublicOverloads.types | 8 +- ...rFunctionsWithPublicPrivateOverloads.types | 10 +- .../reference/mixinAccessModifiers.types | 6 +- .../moduleAliasAsFunctionArgument.types | 2 +- ...mentationDuringSyntheticDefaultCheck.types | 2 +- .../moduleExportNestedNamespaces.types | 2 +- .../baselines/reference/multiLineErrors.types | 2 +- .../reference/narrowByEquality.types | 2 +- ...narrowExceptionVariableInCatchClause.types | 2 +- .../reference/narrowingByTypeofInSwitch.types | 6 +- .../narrowingConstrainedTypeVariable.types | 4 +- ...rbyIdenticalGenericLambdasAssignable.types | 6 +- .../nestedTypeVariableInfersLiteral.types | 6 +- .../reference/neverReturningFunctions1.types | 2 +- ...AnyDestructuringParameterDeclaration.types | 4 +- .../reference/noUnusedLocals_writeOnly.types | 2 +- .../reference/nonInstantiatedModule.types | 4 +- .../reference/numberVsBigIntOperations.types | 4 +- .../reference/numericLiteralTypes1.types | 10 +- .../reference/numericLiteralTypes2.types | 10 +- .../reference/numericLiteralTypes3.types | 14 +- .../objectLitTargetTypeCallSite.types | 2 +- .../objectLiteralContextualTyping.types | 2 +- ...LiteralShorthandPropertiesAssignment.types | 4 +- ...eralShorthandPropertiesAssignmentES6.types | 4 +- ...alShorthandPropertiesAssignmentError.types | 4 +- ...AssignmentErrorFromMissingIdentifier.types | 4 +- ...lShorthandPropertiesFunctionArgument.types | 2 +- ...ShorthandPropertiesFunctionArgument2.types | 2 +- tests/baselines/reference/objectRest.types | 8 +- .../reference/objectRestAssignment.types | 4 +- .../reference/objectRestNegative.types | 2 +- .../reference/objectRestParameter.types | 10 +- .../reference/objectRestParameterES5.types | 10 +- tests/baselines/reference/objectSpread.types | 14 +- .../reference/objectSpreadStrictNull.types | 2 +- .../reference/objectTypesIdentity.types | 18 +- .../reference/objectTypesIdentity2.types | 10 +- ...bjectTypesIdentityWithCallSignatures.types | 18 +- ...jectTypesIdentityWithCallSignatures2.types | 18 +- ...jectTypesIdentityWithCallSignatures3.types | 8 +- ...thCallSignaturesDifferingParamCounts.types | 18 +- ...hCallSignaturesDifferingParamCounts2.types | 8 +- ...ntityWithCallSignaturesWithOverloads.types | 18 +- ...TypesIdentityWithConstructSignatures.types | 10 +- ...ypesIdentityWithConstructSignatures2.types | 16 +- ...structSignaturesDifferingParamCounts.types | 16 +- ...pesIdentityWithGenericCallSignatures.types | 18 +- ...esIdentityWithGenericCallSignatures2.types | 18 +- ...CallSignaturesDifferingByConstraints.types | 32 +- ...allSignaturesDifferingByConstraints2.types | 32 +- ...allSignaturesDifferingByConstraints3.types | 18 +- ...cCallSignaturesDifferingByReturnType.types | 18 +- ...CallSignaturesDifferingByReturnType2.types | 18 +- ...gnaturesDifferingTypeParameterCounts.types | 18 +- ...naturesDifferingTypeParameterCounts2.types | 8 +- ...ignaturesDifferingTypeParameterNames.types | 18 +- ...hGenericCallSignaturesOptionalParams.types | 18 +- ...GenericCallSignaturesOptionalParams2.types | 18 +- ...GenericCallSignaturesOptionalParams3.types | 18 +- ...ructSignaturesDifferingByConstraints.types | 28 +- ...uctSignaturesDifferingByConstraints2.types | 28 +- ...uctSignaturesDifferingByConstraints3.types | 16 +- ...tructSignaturesDifferingByReturnType.types | 20 +- ...ructSignaturesDifferingByReturnType2.types | 16 +- ...gnaturesDifferingTypeParameterCounts.types | 16 +- ...ignaturesDifferingTypeParameterNames.types | 16 +- ...ricConstructSignaturesOptionalParams.types | 16 +- ...icConstructSignaturesOptionalParams2.types | 16 +- ...icConstructSignaturesOptionalParams3.types | 16 +- ...ectTypesIdentityWithNumericIndexers1.types | 18 +- ...ectTypesIdentityWithNumericIndexers2.types | 18 +- ...ectTypesIdentityWithNumericIndexers3.types | 18 +- .../objectTypesIdentityWithOptionality.types | 12 +- .../objectTypesIdentityWithPrivates.types | 18 +- .../objectTypesIdentityWithPublics.types | 18 +- ...bjectTypesIdentityWithStringIndexers.types | 18 +- ...jectTypesIdentityWithStringIndexers2.types | 18 +- .../observableInferenceCanBeMade.types | 2 +- .../reference/omitTypeHelperModifiers01.types | 2 +- .../reference/omitTypeTestErrors01.types | 4 +- .../baselines/reference/omitTypeTests01.types | 4 +- .../operationsAvailableOnPromisedType.types | 2 +- .../optionalBindingParameters2.types | 2 +- ...ptionalBindingParametersInOverloads2.types | 2 +- .../reference/optionalChainingInference.types | 6 +- ...ameterInDestructuringWithInitializer.types | 14 +- .../reference/optionalPropertiesTest.types | 2 +- .../overloadOnConstAsTypeAnnotation.types | 4 +- .../overloadOnConstConstraintChecks1.types | 12 +- .../overloadOnConstConstraintChecks2.types | 4 +- .../overloadOnConstConstraintChecks3.types | 4 +- .../overloadOnConstConstraintChecks4.types | 4 +- .../overloadOnConstDuplicateOverloads1.types | 8 +- ...InBaseWithBadImplementationInDerived.types | 8 +- .../overloadOnConstInCallback1.types | 4 +- ...ObjectLiteralImplementingAnInterface.types | 12 +- .../overloadOnConstInheritance1.types | 4 +- .../overloadOnConstInheritance2.types | 4 +- .../overloadOnConstInheritance3.types | 4 +- .../overloadOnConstInheritance4.types | 10 +- .../overloadOnConstNoAnyImplementation.types | 10 +- ...loadOnConstNoAnyImplementation2.errors.txt | 4 +- .../overloadOnConstNoAnyImplementation2.types | 12 +- ...loadOnConstNoNonSpecializedSignature.types | 2 +- ...verloadOnConstNoStringImplementation.types | 10 +- ...dOnConstNoStringImplementation2.errors.txt | 4 +- ...erloadOnConstNoStringImplementation2.types | 12 +- .../reference/overloadResolutionTest1.types | 12 +- ...structorFixesInferencesAppropriately.types | 2 +- .../reference/overloadingOnConstants1.types | 6 +- ...erloadingOnConstantsInImplementation.types | 4 +- .../overloadsWithProvisionalErrors.types | 4 +- ...paramTagNestedWithoutTopLevelObject3.types | 2 +- .../parameterDestructuringObjectLiteral.types | 4 +- .../parameterNamesInTypeParameterList.types | 4 +- tests/baselines/reference/parseBigInt.types | 4 +- .../parserOverloadOnConstants1.types | 6 +- .../reference/parserRealSource14.types | 6 +- .../reference/parserRealSource7.types | 2 +- .../reference/parserRealSource9.types | 2 +- .../parserShorthandPropertyAssignment1.types | 2 +- .../parserUnterminatedGeneric1.types | 2 +- .../parserUnterminatedGeneric2.types | 2 +- tests/baselines/reference/parserharness.types | 32 +- .../reference/primtiveTypesAreIdentical.types | 4 +- .../privacyFunctionParameterDeclFile.types | 40 +- .../privacyFunctionReturnTypeDeclFile.types | 40 +- .../privateNameAndPropertySignature.types | 4 +- .../reference/privateNamesUnique-2.types | 2 +- .../reference/promisePermutations.types | 4 +- .../reference/promisePermutations2.types | 4 +- .../reference/promisePermutations3.types | 4 +- .../reference/propertyAccessChain.2.types | 4 +- .../reference/propertyAccessChain.types | 14 +- ...tyAssignmentMergeWithInterfaceMethod.types | 10 +- .../reference/ramdaToolsNoInfinite.types | 8 +- .../reference/reactHOCSpreadprops.types | 2 +- .../reactReadonlyHOCAssignabilityReal.types | 2 +- ...ikeDeferredInferenceAllowsAssignment.types | 6 +- ...tTransitiveImportHasValidDeclaration.types | 2 +- ...ssignmentInSubclassOfClassExpression.types | 2 +- .../readonlyTupleAndArrayElaboration.types | 2 +- .../recursiveClassReferenceTest.types | 8 +- .../reference/recursiveFunctionTypes.types | 16 +- .../reference/recursiveTypeReferences1.types | 6 +- .../reference/recursiveTypesWithTypeof.types | 32 +- .../recursiveUnionTypeInference.types | 2 +- ...sDeclarationWhenInBaseTypeResolution.types | 80 ++-- ...stParametersWithArrayTypeAnnotations.types | 36 +- .../reference/returnTagTypeGuard.types | 2 +- .../returnTypeParameterWithModules.types | 2 +- .../reference/returnTypeTypeArguments.types | 2 +- ...reverseMappedPartiallyInferableTypes.types | 2 +- ...irectedDeepObjectLiteralElaborations.types | 4 +- ...pecializedOverloadWithRestParameters.types | 4 +- ...edSignatureAsCallbackParameter1.errors.txt | 4 +- ...ializedSignatureAsCallbackParameter1.types | 2 +- ...sNotSubtypeOfNonSpecializedSignature.types | 26 +- ...reIsSubtypeOfNonSpecializedSignature.types | 26 +- ...ramsFromGeneratorMakesRequiredParams.types | 2 +- .../reference/spreadOverwritesProperty.types | 6 +- .../spreadOverwritesPropertyStrict.types | 10 +- tests/baselines/reference/spreadUnion3.types | 2 +- .../reference/spyComparisonChecking.types | 4 +- .../reference/staticInheritance.types | 2 +- ...staticMethodReferencingTypeArgument1.types | 2 +- .../reference/strictFunctionTypes1.types | 4 +- .../strictTypeofUnionNarrowing.types | 6 +- .../reference/stringEnumLiteralTypes1.types | 8 +- .../reference/stringEnumLiteralTypes2.types | 8 +- .../reference/stringEnumLiteralTypes3.types | 18 +- .../reference/stringLiteralType.types | 2 +- .../stringLiteralTypeIsSubtypeOfString.types | 32 +- .../stringLiteralTypesAsTags03.types | 4 +- ...teralTypesInImplementationSignatures.types | 36 +- ...eralTypesInImplementationSignatures2.types | 18 +- .../stringLiteralTypesOverloads01.types | 8 +- .../stringLiteralTypesOverloads02.types | 8 +- .../subclassThisTypeAssignable.types | 2 +- .../subtypingWithCallSignatures2.types | 74 ++-- .../subtypingWithCallSignatures3.types | 34 +- .../subtypingWithCallSignaturesA.types | 2 +- ...lSignaturesWithSpecializedSignatures.types | 6 +- .../subtypingWithConstructSignatures2.types | 60 +-- .../subtypingWithConstructSignatures3.types | 24 +- .../subtypingWithConstructSignatures5.types | 16 +- .../subtypingWithConstructSignatures6.types | 4 +- ...tSignaturesWithSpecializedSignatures.types | 6 +- .../switchCaseCircularRefeference.types | 2 +- .../reference/symbolProperty21.types | 2 +- .../reference/symbolProperty35.types | 4 +- .../reference/symbolProperty41.types | 4 +- ...ingsWithManyCallAndMemberExpressions.types | 2 +- ...sWithManyCallAndMemberExpressionsES6.types | 2 +- .../reference/targetTypeVoidFunc.types | 2 +- ...ionalOnMethodReturnOfGenericInstance.types | 2 +- .../reference/thisTypeInFunctions.types | 38 +- .../thisTypeInFunctionsNegative.types | 38 +- .../reference/thisTypeSyntacticContext.types | 6 +- ...rojects-and-concatenates-them-correctly.js | 6 +- ...based-projects-and-emits-them-correctly.js | 9 +- ...rojects-and-concatenates-them-correctly.js | 8 +- ...rojects-and-concatenates-them-correctly.js | 8 +- ...uteQuickinfoTypesSameAsObjectLiteral.types | 4 +- .../reference/tsxSfcReturnNull.types | 2 +- .../tsxSfcReturnNullStrictNullChecks.types | 2 +- ...sxSfcReturnUndefinedStrictNullChecks.types | 2 +- .../reference/tsxSpreadChildren.types | 2 +- .../tsxSpreadChildrenInvalidType.types | 2 +- ...xStatelessFunctionComponentOverload1.types | 20 +- ...xStatelessFunctionComponentOverload2.types | 2 +- ...xStatelessFunctionComponentOverload3.types | 8 +- ...xStatelessFunctionComponentOverload4.types | 12 +- .../tsxStatelessFunctionComponents1.types | 4 +- .../tsxStatelessFunctionComponents2.types | 2 +- ...FunctionComponentsWithTypeArguments1.types | 2 +- ...FunctionComponentsWithTypeArguments2.types | 4 +- ...FunctionComponentsWithTypeArguments3.types | 4 +- ...FunctionComponentsWithTypeArguments4.types | 4 +- ...FunctionComponentsWithTypeArguments5.types | 4 +- ...ArgumentPartialDefinitionStillErrors.types | 2 +- tests/baselines/reference/tsxTypeErrors.types | 2 +- .../reference/tsxUnionElementType1.types | 4 +- .../reference/tsxUnionElementType2.types | 4 +- .../reference/tsxUnionElementType5.types | 2 +- .../reference/tsxUnionElementType6.types | 2 +- .../tsxUnionMemberChecksFilterDataProps.types | 4 +- tests/baselines/reference/typeAliases.types | 8 +- .../reference/typeArgInference.types | 4 +- .../typeArgumentInferenceOrdering.types | 2 +- .../typeFromPropertyAssignment35.types | 2 +- .../typeFromPropertyAssignment6.types | 2 +- .../typeGuardConstructorClassAndNumber.types | 2 +- .../reference/typeGuardFunctionErrors.types | 2 +- ...dNarrowsIndexedAccessOfKnownProperty.types | 6 +- ...ypeGuardNarrowsPrimitiveIntersection.types | 2 +- .../typeGuardOfFormTypeOfFunction.types | 6 +- .../typeGuardOfFromPropNameInUnionType.types | 2 +- .../reference/typeGuardTypeOfUndefined.types | 16 +- .../reference/typeGuardsDefeat.types | 6 +- .../typeGuardsInConditionalExpression.types | 24 +- .../typeGuardsInFunctionAndModuleBlock.types | 10 +- .../reference/typeGuardsInIfStatement.types | 24 +- ...GuardsInRightOperandOfAndAndOperator.types | 14 +- ...peGuardsInRightOperandOfOrOrOperator.types | 14 +- .../reference/typeGuardsOnClassProperty.types | 2 +- .../reference/typeInferenceLiteralUnion.types | 2 +- tests/baselines/reference/typeName1.types | 2 +- ...terExtendsUnionConstraintDistributed.types | 4 +- .../typeParametersInStaticMethods.types | 4 +- .../typePredicateStructuralMatch.types | 8 +- .../reference/typePredicatesInUnion2.types | 2 +- .../reference/typeReferenceDirectives13.types | 2 +- .../reference/typedefTagWrapping.types | 12 +- .../types.asyncGenerators.es2018.1.types | 20 +- .../types.asyncGenerators.es2018.2.types | 14 +- .../typesWithSpecializedCallSignatures.types | 14 +- ...esWithSpecializedConstructSignatures.types | 2 +- .../reference/umd-augmentation-1.types | 2 +- .../reference/umd-augmentation-2.types | 2 +- .../reference/umd-augmentation-3.types | 2 +- .../reference/umd-augmentation-4.types | 2 +- .../reference/undeclaredModuleError.types | 4 +- .../undefinedArgumentInference.types | 2 +- .../reference/undefinedTypeArgument2.types | 2 +- .../unionAndIntersectionInference1.types | 4 +- .../unionAndIntersectionInference2.types | 4 +- .../unionAndIntersectionInference3.types | 6 +- ...heckNoApparentPropTypeMismatchErrors.types | 4 +- ...nionOfFunctionAndSignatureIsCallable.types | 2 +- .../reference/unionTypeReduction2.types | 6 +- .../unionTypeWithIndexAndTuple.types | 2 +- ...onTypeWithRecursiveSubtypeReduction3.types | 4 +- tests/baselines/reference/uniqueSymbols.types | 36 +- .../reference/uniqueSymbolsDeclarations.types | 18 +- .../uniqueSymbolsDeclarationsErrors.types | 18 +- .../reference/uniqueSymbolsErrors.types | 40 +- tests/baselines/reference/unknownType2.types | 2 +- .../unusedParameterUsedInTypeOf.types | 2 +- .../reference/varArgParamTypeCheck.types | 2 +- .../reference/varRequireFromJavascript.types | 2 +- .../reference/varRequireFromTypescript.types | 2 +- tests/baselines/reference/vardecl.types | 14 +- tests/baselines/reference/variance.types | 2 +- .../vueLikeDataAndPropsInference.types | 6 +- .../vueLikeDataAndPropsInference2.types | 6 +- tests/baselines/reference/weakType.types | 4 +- tests/baselines/reference/widenToAny1.types | 2 +- tests/baselines/reference/widenedTypes.types | 2 +- .../jsDeclarationsUniqueSymbolUsage.ts | 19 + .../fourslash/codeFixChangeJSDocSyntax15.ts | 3 +- .../fourslash/completionForStringLiteral4.ts | 2 +- .../fourslash/quickInfoForOverloadOnConst1.ts | 8 +- .../fourslash/server/jsdocCallbackTag.ts | 4 +- 636 files changed, 2621 insertions(+), 2467 deletions(-) create mode 100644 tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.js create mode 100644 tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.symbols create mode 100644 tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.types create mode 100644 tests/cases/conformance/jsdoc/declarations/jsDeclarationsUniqueSymbolUsage.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 8271e252304..4ddec362457 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4694,7 +4694,7 @@ namespace ts { propertyTypeNode = createElidedInformationPlaceholder(context); } else { - propertyTypeNode = propertyType ? typeToTypeNodeHelper(propertyType, context) : createKeywordTypeNode(SyntaxKind.AnyKeyword); + propertyTypeNode = propertyType ? serializeTypeForDeclaration(context, propertyType, propertySymbol, saveEnclosingDeclaration) : createKeywordTypeNode(SyntaxKind.AnyKeyword); } context.flags = savedFlags; @@ -4789,7 +4789,7 @@ namespace ts { typeNode); } - function signatureToSignatureDeclarationHelper(signature: Signature, kind: SyntaxKind, context: NodeBuilderContext): SignatureDeclaration { + function signatureToSignatureDeclarationHelper(signature: Signature, kind: SyntaxKind, context: NodeBuilderContext, privateSymbolVisitor?: (s: Symbol) => void, bundledImports?: boolean): SignatureDeclaration { const suppressAny = context.flags & NodeBuilderFlags.SuppressAnyReturnType; if (suppressAny) context.flags &= ~NodeBuilderFlags.SuppressAnyReturnType; // suppress only toplevel `any`s let typeParameters: TypeParameterDeclaration[] | undefined; @@ -4801,7 +4801,7 @@ namespace ts { typeParameters = signature.typeParameters && signature.typeParameters.map(parameter => typeParameterToDeclaration(parameter, context)); } - const parameters = getExpandedParameters(signature).map(parameter => symbolToParameterDeclaration(parameter, context, kind === SyntaxKind.Constructor)); + const parameters = getExpandedParameters(signature).map(parameter => symbolToParameterDeclaration(parameter, context, kind === SyntaxKind.Constructor, privateSymbolVisitor, bundledImports)); if (signature.thisParameter) { const thisParameter = symbolToParameterDeclaration(signature.thisParameter, context); parameters.unshift(thisParameter); @@ -4822,7 +4822,7 @@ namespace ts { else { const returnType = getReturnTypeOfSignature(signature); if (returnType && !(suppressAny && isTypeAny(returnType))) { - returnTypeNode = typeToTypeNodeHelper(returnType, context); + returnTypeNode = serializeReturnTypeForSignature(context, returnType, signature, privateSymbolVisitor, bundledImports); } else if (!suppressAny) { returnTypeNode = createKeywordTypeNode(SyntaxKind.AnyKeyword); @@ -4847,7 +4847,7 @@ namespace ts { return typeParameterToDeclarationWithConstraint(type, context, constraintNode); } - function symbolToParameterDeclaration(parameterSymbol: Symbol, context: NodeBuilderContext, preserveModifierFlags?: boolean): ParameterDeclaration { + function symbolToParameterDeclaration(parameterSymbol: Symbol, context: NodeBuilderContext, preserveModifierFlags?: boolean, privateSymbolVisitor?: (s: Symbol) => void, bundledImports?: boolean): ParameterDeclaration { let parameterDeclaration: ParameterDeclaration | JSDocParameterTag | undefined = getDeclarationOfKind(parameterSymbol, SyntaxKind.Parameter); if (!parameterDeclaration && !isTransientSymbol(parameterSymbol)) { parameterDeclaration = getDeclarationOfKind(parameterSymbol, SyntaxKind.JSDocParameterTag); @@ -4857,7 +4857,7 @@ namespace ts { if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) { parameterType = getOptionalType(parameterType); } - const parameterTypeNode = typeToTypeNodeHelper(parameterType, context); + const parameterTypeNode = serializeTypeForDeclaration(context, parameterType, parameterSymbol, context.enclosingDeclaration, privateSymbolVisitor, bundledImports); const modifiers = !(context.flags & NodeBuilderFlags.OmitParameterModifiers) && preserveModifierFlags && parameterDeclaration && parameterDeclaration.modifiers ? parameterDeclaration.modifiers.map(getSynthesizedClone) : undefined; const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & CheckFlags.RestParameter; @@ -5192,8 +5192,15 @@ namespace ts { } } - function typeParameterShadowsNameInScope(escapedName: __String, context: NodeBuilderContext) { - return !!resolveName(context.enclosingDeclaration, escapedName, SymbolFlags.Type, /*nameNotFoundArg*/ undefined, escapedName, /*isUse*/ false); + function typeParameterShadowsNameInScope(escapedName: __String, context: NodeBuilderContext, type: TypeParameter) { + const result = resolveName(context.enclosingDeclaration, escapedName, SymbolFlags.Type, /*nameNotFoundArg*/ undefined, escapedName, /*isUse*/ false); + if (result) { + if (result.flags & SymbolFlags.TypeParameter && result === type.symbol) { + return false; + } + return true; + } + return false; } function typeParameterToName(type: TypeParameter, context: NodeBuilderContext) { @@ -5211,7 +5218,7 @@ namespace ts { const rawtext = result.escapedText as string; let i = 0; let text = rawtext; - while ((context.typeParameterNamesByText && context.typeParameterNamesByText.get(text)) || typeParameterShadowsNameInScope(text as __String, context)) { + while ((context.typeParameterNamesByText && context.typeParameterNamesByText.get(text)) || typeParameterShadowsNameInScope(text as __String, context, type)) { i++; text = `${rawtext}_${i}`; } @@ -5381,6 +5388,195 @@ namespace ts { return initial; } + + function getDeclarationWithTypeAnnotation(symbol: Symbol, enclosingDeclaration: Node | undefined) { + return symbol.declarations && find(symbol.declarations, s => !!getEffectiveTypeAnnotationNode(s) && (!enclosingDeclaration || !!findAncestor(s, n => n === enclosingDeclaration))); + } + + /** + * Unlike `typeToTypeNodeHelper`, this handles setting up the `AllowUniqueESSymbolType` flag + * so a `unique symbol` is returned when appropriate for the input symbol, rather than `typeof sym` + */ + function serializeTypeForDeclaration(context: NodeBuilderContext, type: Type, symbol: Symbol, enclosingDeclaration: Node | undefined, includePrivateSymbol?: (s: Symbol) => void, bundled?: boolean) { + if (type !== errorType && enclosingDeclaration) { + const declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration); + if (declWithExistingAnnotation && !isFunctionLikeDeclaration(declWithExistingAnnotation)) { + // try to reuse the existing annotation + const existing = getEffectiveTypeAnnotationNode(declWithExistingAnnotation)!; + if (getTypeFromTypeNode(existing) === type) { + const result = serializeExistingTypeNode(context, existing, includePrivateSymbol, bundled); + if (result) { + return result; + } + } + } + } + const oldFlags = context.flags; + if (type.flags & TypeFlags.UniqueESSymbol && + type.symbol === symbol) { + context.flags |= NodeBuilderFlags.AllowUniqueESSymbolType; + } + const result = typeToTypeNodeHelper(type, context); + context.flags = oldFlags; + return result; + } + + function serializeReturnTypeForSignature(context: NodeBuilderContext, type: Type, signature: Signature, includePrivateSymbol?: (s: Symbol) => void, bundled?: boolean) { + if (type !== errorType && context.enclosingDeclaration) { + const annotation = signature.declaration && getEffectiveReturnTypeNode(signature.declaration); + if (!!findAncestor(annotation, n => n === context.enclosingDeclaration) && annotation && getTypeFromTypeNode(annotation) === type) { + const result = serializeExistingTypeNode(context, annotation, includePrivateSymbol, bundled); + if (result) { + return result; + } + } + } + return typeToTypeNodeHelper(type, context); + } + + function serializeExistingTypeNode(context: NodeBuilderContext, existing: TypeNode, includePrivateSymbol?: (s: Symbol) => void, bundled?: boolean) { + if (cancellationToken && cancellationToken.throwIfCancellationRequested) { + cancellationToken.throwIfCancellationRequested(); + } + let hadError = false; + const transformed = visitNode(existing, visitExistingNodeTreeSymbols); + if (hadError) { + return undefined; + } + return transformed === existing ? getMutableClone(existing) : transformed; + + function visitExistingNodeTreeSymbols(node: T): Node { + // We don't _actually_ support jsdoc namepath types, emit `any` instead + if (isJSDocAllType(node) || node.kind === SyntaxKind.JSDocNamepathType) { + return createKeywordTypeNode(SyntaxKind.AnyKeyword); + } + if (isJSDocUnknownType(node)) { + return createKeywordTypeNode(SyntaxKind.UnknownKeyword); + } + if (isJSDocNullableType(node)) { + return createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols), createKeywordTypeNode(SyntaxKind.NullKeyword)]); + } + if (isJSDocOptionalType(node)) { + return createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols), createKeywordTypeNode(SyntaxKind.UndefinedKeyword)]); + } + if (isJSDocNonNullableType(node)) { + return visitNode(node.type, visitExistingNodeTreeSymbols); + } + if (isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === "") { + return setOriginalNode(createKeywordTypeNode(SyntaxKind.AnyKeyword), node); + } + if ((isExpressionWithTypeArguments(node) || isTypeReferenceNode(node)) && isJSDocIndexSignature(node)) { + return createTypeLiteralNode([createIndexSignature( + /*decorators*/ undefined, + /*modifiers*/ undefined, + [createParameter( + /*decorators*/ undefined, + /*modifiers*/ undefined, + /*dotdotdotToken*/ undefined, + "x", + /*questionToken*/ undefined, + visitNode(node.typeArguments![0], visitExistingNodeTreeSymbols) + )], + visitNode(node.typeArguments![1], visitExistingNodeTreeSymbols) + )]); + } + if (isJSDocFunctionType(node)) { + if (isJSDocConstructSignature(node)) { + let newTypeNode: TypeNode | undefined; + return createConstructorTypeNode( + visitNodes(node.typeParameters, visitExistingNodeTreeSymbols), + mapDefined(node.parameters, (p, i) => p.name && isIdentifier(p.name) && p.name.escapedText === "new" ? (newTypeNode = p.type, undefined) : createParameter( + /*decorators*/ undefined, + /*modifiers*/ undefined, + p.dotDotDotToken, + p.name || p.dotDotDotToken ? `args` : `arg${i}`, + p.questionToken, + visitNode(p.type, visitExistingNodeTreeSymbols), + /*initializer*/ undefined + )), + visitNode(newTypeNode || node.type, visitExistingNodeTreeSymbols) + ); + } + else { + return createFunctionTypeNode( + visitNodes(node.typeParameters, visitExistingNodeTreeSymbols), + map(node.parameters, (p, i) => createParameter( + /*decorators*/ undefined, + /*modifiers*/ undefined, + p.dotDotDotToken, + p.name || p.dotDotDotToken ? `args` : `arg${i}`, + p.questionToken, + visitNode(p.type, visitExistingNodeTreeSymbols), + /*initializer*/ undefined + )), + visitNode(node.type, visitExistingNodeTreeSymbols) + ); + } + } + if (isLiteralImportTypeNode(node)) { + return updateImportTypeNode( + node, + updateLiteralTypeNode(node.argument, rewriteModuleSpecifier(node, node.argument.literal)), + node.qualifier, + visitNodes(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode), + node.isTypeOf + ); + } + + if (isEntityName(node) || isEntityNameExpression(node)) { + const leftmost = getFirstIdentifier(node); + if (isInJSFile(node) && (isExportsIdentifier(leftmost) || isModuleExportsAccessExpression(leftmost.parent) || (isQualifiedName(leftmost.parent) && isModuleIdentifier(leftmost.parent.left) && isExportsIdentifier(leftmost.parent.right)))) { + hadError = true; + return node; + } + const sym = resolveEntityName(leftmost, SymbolFlags.All, /*ignoreErrors*/ true, /*dontResolveALias*/ true); + if (sym) { + if (isSymbolAccessible(sym, context.enclosingDeclaration, SymbolFlags.All, /*shouldComputeAliasesToMakeVisible*/ false).accessibility !== SymbolAccessibility.Accessible) { + hadError = true; + } + else { + context.tracker?.trackSymbol?.(sym, context.enclosingDeclaration, SymbolFlags.All); + includePrivateSymbol?.(sym); + } + if (isIdentifier(node)) { + const name = sym.flags & SymbolFlags.TypeParameter ? typeParameterToName(getDeclaredTypeOfSymbol(sym), context) : getMutableClone(node); + name.symbol = sym; // for quickinfo, which uses identifier symbol information + return setEmitFlags(setOriginalNode(name, node), EmitFlags.NoAsciiEscaping); + } + } + } + + return visitEachChild(node, visitExistingNodeTreeSymbols, nullTransformationContext); + + function rewriteModuleSpecifier(parent: ImportTypeNode, lit: StringLiteral) { + if (bundled) { + if (context.tracker && context.tracker.moduleResolverHost) { + const targetFile = getExternalModuleFileFromDeclaration(parent); + if (targetFile) { + const getCanonicalFileName = createGetCanonicalFileName(!!host.useCaseSensitiveFileNames); + const resolverHost = { + getCanonicalFileName, + getCurrentDirectory: () => context.tracker.moduleResolverHost!.getCurrentDirectory(), + getCommonSourceDirectory: () => context.tracker.moduleResolverHost!.getCommonSourceDirectory() + }; + const newName = getResolvedExternalModuleName(resolverHost, targetFile); + return createLiteral(newName); + } + } + } + else { + if (context.tracker && context.tracker.trackExternalModuleSymbolOfImportTypeNode) { + const moduleSym = resolveExternalModuleNameWorker(lit, lit, /*moduleNotFoundError*/ undefined); + if (moduleSym) { + context.tracker.trackExternalModuleSymbolOfImportTypeNode(moduleSym); + } + } + } + return lit; + } + } + } + function symbolTableToDeclarationStatements(symbolTable: SymbolTable, context: NodeBuilderContext, bundled?: boolean): Statement[] { const serializePropertySymbolForClass = makeSerializePropertySymbol(createProperty, SyntaxKind.MethodDeclaration, /*useAcessors*/ true); const serializePropertySymbolForInterfaceWorker = makeSerializePropertySymbol((_decorators, mods, name, question, type, initializer) => createPropertySignature(mods, name, question, type, initializer), SyntaxKind.MethodSignature, /*useAcessors*/ false); @@ -5859,7 +6055,7 @@ namespace ts { textRange = textRange.parent.parent; } const statement = setTextRange(createVariableStatement(/*modifiers*/ undefined, createVariableDeclarationList([ - createVariableDeclaration(name, serializeTypeForDeclaration(type, symbol)) + createVariableDeclaration(name, serializeTypeForDeclaration(context, type, symbol, enclosingDeclaration, includePrivateSymbol, bundled)) ], flags)), textRange); addResult(statement, name !== localName ? modifierFlags & ~ModifierFlags.Export : modifierFlags); if (name !== localName && !isPrivate) { @@ -5901,7 +6097,7 @@ namespace ts { const signatures = getSignaturesOfType(type, SignatureKind.Call); for (const sig of signatures) { // Each overload becomes a separate function declaration, in order - const decl = signatureToSignatureDeclarationHelper(sig, SyntaxKind.FunctionDeclaration, context) as FunctionDeclaration; + const decl = signatureToSignatureDeclarationHelper(sig, SyntaxKind.FunctionDeclaration, context, includePrivateSymbol, bundled) as FunctionDeclaration; decl.name = createIdentifier(localName); addResult(setTextRange(decl, sig.declaration), modifierFlags); } @@ -6216,7 +6412,7 @@ namespace ts { } else { const statement = createVariableStatement(/*modifiers*/ undefined, createVariableDeclarationList([ - createVariableDeclaration(varName, serializeTypeForDeclaration(typeToSerialize, symbol)) + createVariableDeclaration(varName, serializeTypeForDeclaration(context, typeToSerialize, symbol, enclosingDeclaration, includePrivateSymbol, bundled)) ], NodeFlags.Const)); addResult(statement, name === varName ? ModifierFlags.Export : ModifierFlags.None); } @@ -6244,7 +6440,7 @@ namespace ts { !getIndexInfoOfType(typeToSerialize, IndexKind.Number) && !!(length(getPropertiesOfType(typeToSerialize)) || length(getSignaturesOfType(typeToSerialize, SignatureKind.Call))) && !length(getSignaturesOfType(typeToSerialize, SignatureKind.Construct)) && // TODO: could probably serialize as function + ns + class, now that that's OK - !getDeclarationWithTypeAnnotation(hostSymbol) && + !getDeclarationWithTypeAnnotation(hostSymbol, enclosingDeclaration) && !(typeToSerialize.symbol && some(typeToSerialize.symbol.declarations, d => getSourceFileOfNode(d) !== ctxSrc)) && !some(getPropertiesOfType(typeToSerialize), p => isLateBoundName(p.escapedName)) && !some(getPropertiesOfType(typeToSerialize), p => some(p.declarations, d => getSourceFileOfNode(d) !== ctxSrc)) && @@ -6305,7 +6501,7 @@ namespace ts { /*dotDotDotToken*/ undefined, "arg", /*questionToken*/ undefined, - isPrivate ? undefined : serializeTypeForDeclaration(getTypeOfSymbol(p), p) + isPrivate ? undefined : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled) )], /*body*/ undefined ), find(p.declarations, isSetAccessor) || firstPropertyLikeDecl)); @@ -6317,7 +6513,7 @@ namespace ts { createModifiersFromModifierFlags(flag), name, [], - isPrivate ? undefined : serializeTypeForDeclaration(getTypeOfSymbol(p), p), + isPrivate ? undefined : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled), /*body*/ undefined ), find(p.declarations, isGetAccessor) || firstPropertyLikeDecl)); } @@ -6331,7 +6527,7 @@ namespace ts { createModifiersFromModifierFlags((isReadonlySymbol(p) ? ModifierFlags.Readonly : 0) | flag), name, p.flags & SymbolFlags.Optional ? createToken(SyntaxKind.QuestionToken) : undefined, - isPrivate ? undefined : serializeTypeForDeclaration(getTypeOfSymbol(p), p), + isPrivate ? undefined : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled), // TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357 // interface members can't have initializers, however class members _can_ /*initializer*/ undefined @@ -6375,152 +6571,6 @@ namespace ts { return serializePropertySymbolForInterfaceWorker(p, /*isStatic*/ false, baseType); } - function getDeclarationWithTypeAnnotation(symbol: Symbol) { - return symbol.declarations && find(symbol.declarations, s => !!getEffectiveTypeAnnotationNode(s) && !!findAncestor(s, n => n === enclosingDeclaration)); - } - - /** - * Unlike `typeToTypeNodeHelper`, this handles setting up the `AllowUniqueESSymbolType` flag - * so a `unique symbol` is returned when appropriate for the input symbol, rather than `typeof sym` - */ - function serializeTypeForDeclaration(type: Type, symbol: Symbol) { - const declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol); - if (declWithExistingAnnotation && !isFunctionLikeDeclaration(declWithExistingAnnotation)) { - // try to reuse the existing annotation - const existing = getEffectiveTypeAnnotationNode(declWithExistingAnnotation)!; - const transformed = visitNode(existing, visitExistingNodeTreeSymbols); - return transformed === existing ? getMutableClone(existing) : transformed; - } - const oldFlags = context.flags; - if (type.flags & TypeFlags.UniqueESSymbol && - type.symbol === symbol) { - context.flags |= NodeBuilderFlags.AllowUniqueESSymbolType; - } - const result = typeToTypeNodeHelper(type, context); - context.flags = oldFlags; - return result; - - function visitExistingNodeTreeSymbols(node: T): Node { - // We don't _actually_ support jsdoc namepath types, emit `any` instead - if (isJSDocAllType(node) || node.kind === SyntaxKind.JSDocNamepathType) { - return createKeywordTypeNode(SyntaxKind.AnyKeyword); - } - if (isJSDocUnknownType(node)) { - return createKeywordTypeNode(SyntaxKind.UnknownKeyword); - } - if (isJSDocNullableType(node)) { - return createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols), createKeywordTypeNode(SyntaxKind.NullKeyword)]); - } - if (isJSDocOptionalType(node)) { - return createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols), createKeywordTypeNode(SyntaxKind.UndefinedKeyword)]); - } - if (isJSDocNonNullableType(node)) { - return visitNode(node.type, visitExistingNodeTreeSymbols); - } - if ((isExpressionWithTypeArguments(node) || isTypeReferenceNode(node)) && isJSDocIndexSignature(node)) { - return createTypeLiteralNode([createIndexSignature( - /*decorators*/ undefined, - /*modifiers*/ undefined, - [createParameter( - /*decorators*/ undefined, - /*modifiers*/ undefined, - /*dotdotdotToken*/ undefined, - "x", - /*questionToken*/ undefined, - visitNode(node.typeArguments![0], visitExistingNodeTreeSymbols) - )], - visitNode(node.typeArguments![1], visitExistingNodeTreeSymbols) - )]); - } - if (isJSDocFunctionType(node)) { - if (isJSDocConstructSignature(node)) { - let newTypeNode: TypeNode | undefined; - return createConstructorTypeNode( - visitNodes(node.typeParameters, visitExistingNodeTreeSymbols), - mapDefined(node.parameters, (p, i) => p.name && isIdentifier(p.name) && p.name.escapedText === "new" ? (newTypeNode = p.type, undefined) : createParameter( - /*decorators*/ undefined, - /*modifiers*/ undefined, - p.dotDotDotToken, - p.name || p.dotDotDotToken ? `args` : `arg${i}`, - p.questionToken, - visitNode(p.type, visitExistingNodeTreeSymbols), - /*initializer*/ undefined - )), - visitNode(newTypeNode || node.type, visitExistingNodeTreeSymbols) - ); - } - else { - return createFunctionTypeNode( - visitNodes(node.typeParameters, visitExistingNodeTreeSymbols), - map(node.parameters, (p, i) => createParameter( - /*decorators*/ undefined, - /*modifiers*/ undefined, - p.dotDotDotToken, - p.name || p.dotDotDotToken ? `args` : `arg${i}`, - p.questionToken, - visitNode(p.type, visitExistingNodeTreeSymbols), - /*initializer*/ undefined - )), - visitNode(node.type, visitExistingNodeTreeSymbols) - ); - } - } - if (isLiteralImportTypeNode(node)) { - return updateImportTypeNode( - node, - updateLiteralTypeNode(node.argument, rewriteModuleSpecifier(node, node.argument.literal)), - node.qualifier, - visitNodes(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode), - node.isTypeOf - ); - } - - if (isEntityName(node) || isEntityNameExpression(node)) { - const leftmost = getFirstIdentifier(node); - const sym = resolveEntityName(leftmost, SymbolFlags.All, /*ignoreErrors*/ true, /*dontResolveALias*/ true); - if (sym) { - includePrivateSymbol(sym); - if (isIdentifier(node) && sym.flags & SymbolFlags.TypeParameter) { - const name = typeParameterToName(getDeclaredTypeOfSymbol(sym), context); - if (idText(name) !== idText(node)) { - return name; - } - return node; - } - } - } - - return visitEachChild(node, visitExistingNodeTreeSymbols, nullTransformationContext); - } - - function rewriteModuleSpecifier(parent: ImportTypeNode, lit: StringLiteral) { - if (bundled) { - if (context.tracker && context.tracker.moduleResolverHost) { - const targetFile = getExternalModuleFileFromDeclaration(parent); - if (targetFile) { - const getCanonicalFileName = createGetCanonicalFileName(!!host.useCaseSensitiveFileNames); - const resolverHost = { - getCanonicalFileName, - getCurrentDirectory: () => context.tracker.moduleResolverHost!.getCurrentDirectory(), - getCommonSourceDirectory: () => context.tracker.moduleResolverHost!.getCommonSourceDirectory() - }; - const newName = getResolvedExternalModuleName(resolverHost, targetFile); - return createLiteral(newName); - } - } - } - else { - if (context.tracker && context.tracker.trackExternalModuleSymbolOfImportTypeNode) { - const moduleSym = resolveExternalModuleNameWorker(lit, lit, /*moduleNotFoundError*/ undefined); - if (moduleSym) { - context.tracker.trackExternalModuleSymbolOfImportTypeNode(moduleSym); - } - } - } - return lit; - } - } - function serializeSignatures(kind: SignatureKind, input: Type, baseType: Type | undefined, outputKind: SyntaxKind) { const signatures = getSignaturesOfType(input, kind); if (kind === SignatureKind.Construct) { diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 2c6f8b70a34..3431ae10db6 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -2114,10 +2114,13 @@ namespace ts { return isIdentifier(node) && node.escapedText === "exports"; } + export function isModuleIdentifier(node: Node) { + return isIdentifier(node) && node.escapedText === "module"; + } + export function isModuleExportsAccessExpression(node: Node): node is LiteralLikeElementAccessExpression & { expression: Identifier } { return (isPropertyAccessExpression(node) || isLiteralLikeElementAccess(node)) - && isIdentifier(node.expression) - && node.expression.escapedText === "module" + && isModuleIdentifier(node.expression) && getElementOrPropertyAccessName(node) === "exports"; } diff --git a/tests/baselines/reference/1.0lib-noErrors.types b/tests/baselines/reference/1.0lib-noErrors.types index 91e5fdc7b73..7d3633e01a8 100644 --- a/tests/baselines/reference/1.0lib-noErrors.types +++ b/tests/baselines/reference/1.0lib-noErrors.types @@ -1884,7 +1884,7 @@ interface Array { >n : number } declare var Array: { ->Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: any[]; } +>Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: Array; } new (arrayLength?: number): any[]; >arrayLength : number diff --git a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.types b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.types index e3286a644c5..80b2496f2d8 100644 --- a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.types +++ b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.types @@ -11,7 +11,7 @@ module A { } export var UnitSquare : { ->UnitSquare : { top: { left: Point; right: Point; }; bottom: { left: Point; right: Point; }; } +>UnitSquare : { top: { left: Point; right: Point;}; bottom: { left: Point; right: Point;}; } top: { left: Point, right: Point }, >top : { left: Point; right: Point; } diff --git a/tests/baselines/reference/FunctionAndModuleWithSameNameAndCommonRoot.types b/tests/baselines/reference/FunctionAndModuleWithSameNameAndCommonRoot.types index a38a459f9e5..898039eb6cb 100644 --- a/tests/baselines/reference/FunctionAndModuleWithSameNameAndCommonRoot.types +++ b/tests/baselines/reference/FunctionAndModuleWithSameNameAndCommonRoot.types @@ -33,7 +33,7 @@ module A { === tests/cases/conformance/internalModules/DeclarationMerging/test.ts === var fn: () => { x: number; y: number }; ->fn : () => { x: number; y: number; } +>fn : () => { x: number; y: number;} >x : number >y : number diff --git a/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.types b/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.types index f070f422a52..c0c50ee3caa 100644 --- a/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.types +++ b/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.types @@ -33,7 +33,7 @@ module B { === tests/cases/conformance/internalModules/DeclarationMerging/test.ts === var fn: () => { x: number; y: number }; ->fn : () => { x: number; y: number; } +>fn : () => { x: number; y: number;} >x : number >y : number diff --git a/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.types b/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.types index f6edef1fb91..34afcbe4c17 100644 --- a/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.types +++ b/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.types @@ -82,7 +82,7 @@ var p = Geometry.Origin; >Origin : A.Point var line: { start: { x: number; y: number }; end: { x: number; y: number; } }; ->line : { start: { x: number; y: number; }; end: { x: number; y: number; }; } +>line : { start: { x: number; y: number;}; end: { x: number; y: number;}; } >start : { x: number; y: number; } >x : number >y : number diff --git a/tests/baselines/reference/TypeGuardWithEnumUnion.types b/tests/baselines/reference/TypeGuardWithEnumUnion.types index a568034f8b8..5f1c81cb80c 100644 --- a/tests/baselines/reference/TypeGuardWithEnumUnion.types +++ b/tests/baselines/reference/TypeGuardWithEnumUnion.types @@ -6,7 +6,7 @@ enum Color { R, G, B } >B : Color.B function f1(x: Color | string) { ->f1 : (x: string | Color) => void +>f1 : (x: Color | string) => void >x : string | Color if (typeof x === "number") { @@ -33,7 +33,7 @@ function f1(x: Color | string) { } function f2(x: Color | string | string[]) { ->f2 : (x: string | Color | string[]) => void +>f2 : (x: Color | string | string[]) => void >x : string | Color | string[] if (typeof x === "object") { diff --git a/tests/baselines/reference/aliasUsageInObjectLiteral.types b/tests/baselines/reference/aliasUsageInObjectLiteral.types index d729e2b2536..40d4de4b747 100644 --- a/tests/baselines/reference/aliasUsageInObjectLiteral.types +++ b/tests/baselines/reference/aliasUsageInObjectLiteral.types @@ -28,7 +28,7 @@ var b: { x: IHasVisualizationModel } = { x: moduleA }; >moduleA : typeof moduleA var c: { y: { z: IHasVisualizationModel } } = { y: { z: moduleA } }; ->c : { y: { z: IHasVisualizationModel; }; } +>c : { y: { z: IHasVisualizationModel;}; } >y : { z: IHasVisualizationModel; } >z : IHasVisualizationModel >{ y: { z: moduleA } } : { y: { z: typeof moduleA; }; } diff --git a/tests/baselines/reference/ambientErrors.types b/tests/baselines/reference/ambientErrors.types index a1d33d29eeb..24aebd357ac 100644 --- a/tests/baselines/reference/ambientErrors.types +++ b/tests/baselines/reference/ambientErrors.types @@ -10,7 +10,7 @@ declare function fn(x: number): string; >x : number declare function fn(x: 'foo'): number; ->fn : { (x: number): string; (x: "foo"): number; } +>fn : { (x: number): string; (x: 'foo'): number; } >x : "foo" // Ambient functions with duplicate signatures diff --git a/tests/baselines/reference/anyAssignabilityInInheritance.types b/tests/baselines/reference/anyAssignabilityInInheritance.types index 7afcf99fb2c..4f9e8fdc9c9 100644 --- a/tests/baselines/reference/anyAssignabilityInInheritance.types +++ b/tests/baselines/reference/anyAssignabilityInInheritance.types @@ -83,7 +83,7 @@ var r3 = foo3(a); // any >a : any declare function foo7(x: { bar: number }): { bar: number }; ->foo7 : { (x: { bar: number; }): { bar: number; }; (x: any): any; } +>foo7 : { (x: { bar: number;}): { bar: number;}; (x: any): any; } >x : { bar: number; } >bar : number >bar : number diff --git a/tests/baselines/reference/argumentExpressionContextualTyping.types b/tests/baselines/reference/argumentExpressionContextualTyping.types index a67b0b5e609..f5a6af52502 100644 --- a/tests/baselines/reference/argumentExpressionContextualTyping.types +++ b/tests/baselines/reference/argumentExpressionContextualTyping.types @@ -45,7 +45,7 @@ var o = { x: ["string", 1], y: { c: true, d: "world", e: 3 } }; >3 : 3 var o1: { x: [string, number], y: { c: boolean, d: string, e: number } } = { x: ["string", 1], y: { c: true, d: "world", e: 3 } }; ->o1 : { x: [string, number]; y: { c: boolean; d: string; e: number; }; } +>o1 : { x: [string, number]; y: { c: boolean; d: string; e: number;}; } >x : [string, number] >y : { c: boolean; d: string; e: number; } >c : boolean diff --git a/tests/baselines/reference/arrayConcat3.types b/tests/baselines/reference/arrayConcat3.types index 8bfe636a971..287ee432e70 100644 --- a/tests/baselines/reference/arrayConcat3.types +++ b/tests/baselines/reference/arrayConcat3.types @@ -5,7 +5,7 @@ type Fn = (subj: U) => U >subj : U function doStuff(a: Array>, b: Array>) { ->doStuff : (a: Fn[], b: Fn[]) => void +>doStuff : (a: Array>, b: Array>) => void >a : Fn[] >b : Fn[] diff --git a/tests/baselines/reference/arrayFlatMap.types b/tests/baselines/reference/arrayFlatMap.types index 631ae04ef98..0e36141f64b 100644 --- a/tests/baselines/reference/arrayFlatMap.types +++ b/tests/baselines/reference/arrayFlatMap.types @@ -12,7 +12,7 @@ array.flatMap((): ReadonlyArray => []); // ok >array.flatMap : (callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This) => U[] >array : number[] >flatMap : (callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This) => U[] ->(): ReadonlyArray => [] : () => readonly number[] +>(): ReadonlyArray => [] : () => ReadonlyArray >[] : undefined[] readonlyArray.flatMap((): ReadonlyArray => []); // ok @@ -20,6 +20,6 @@ readonlyArray.flatMap((): ReadonlyArray => []); // ok >readonlyArray.flatMap : (callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This) => U[] >readonlyArray : readonly number[] >flatMap : (callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This) => U[] ->(): ReadonlyArray => [] : () => readonly number[] +>(): ReadonlyArray => [] : () => ReadonlyArray >[] : undefined[] diff --git a/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.types b/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.types index 25c1878cd5a..a7553fd5cd5 100644 --- a/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.types +++ b/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.types @@ -56,28 +56,28 @@ var es = [(x: string) => 2, (x: Object) => 1]; // { (x:string) => number }[] >1 : 1 var fs = [(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2]; // (a: { x: number; y?: number }) => number[] ->fs : (((a: { x: number; y?: number; }) => number) | ((b: { x: number; z?: number; }) => number))[] ->[(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2] : (((a: { x: number; y?: number; }) => number) | ((b: { x: number; z?: number; }) => number))[] ->(a: { x: number; y?: number }) => 1 : (a: { x: number; y?: number; }) => number +>fs : (((a: { x: number; y?: number;}) => number) | ((b: { x: number; z?: number;}) => number))[] +>[(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2] : (((a: { x: number; y?: number;}) => number) | ((b: { x: number; z?: number;}) => number))[] +>(a: { x: number; y?: number }) => 1 : (a: { x: number; y?: number;}) => number >a : { x: number; y?: number; } >x : number >y : number >1 : 1 ->(b: { x: number; z?: number }) => 2 : (b: { x: number; z?: number; }) => number +>(b: { x: number; z?: number }) => 2 : (b: { x: number; z?: number;}) => number >b : { x: number; z?: number; } >x : number >z : number >2 : 2 var gs = [(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1]; // (b: { x: number; z?: number }) => number[] ->gs : (((b: { x: number; z?: number; }) => number) | ((a: { x: number; y?: number; }) => number))[] ->[(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1] : (((b: { x: number; z?: number; }) => number) | ((a: { x: number; y?: number; }) => number))[] ->(b: { x: number; z?: number }) => 2 : (b: { x: number; z?: number; }) => number +>gs : (((b: { x: number; z?: number;}) => number) | ((a: { x: number; y?: number;}) => number))[] +>[(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1] : (((b: { x: number; z?: number;}) => number) | ((a: { x: number; y?: number;}) => number))[] +>(b: { x: number; z?: number }) => 2 : (b: { x: number; z?: number;}) => number >b : { x: number; z?: number; } >x : number >z : number >2 : 2 ->(a: { x: number; y?: number }) => 1 : (a: { x: number; y?: number; }) => number +>(a: { x: number; y?: number }) => 1 : (a: { x: number; y?: number;}) => number >a : { x: number; y?: number; } >x : number >y : number diff --git a/tests/baselines/reference/arraySigChecking.types b/tests/baselines/reference/arraySigChecking.types index bfd8b878bca..bbde4920731 100644 --- a/tests/baselines/reference/arraySigChecking.types +++ b/tests/baselines/reference/arraySigChecking.types @@ -50,7 +50,7 @@ myArray = [[1, 2]]; >2 : 2 function isEmpty(l: { length: number }) { ->isEmpty : (l: { length: number; }) => boolean +>isEmpty : (l: { length: number;}) => boolean >l : { length: number; } >length : number diff --git a/tests/baselines/reference/assignmentCompatBug5.types b/tests/baselines/reference/assignmentCompatBug5.types index 2b8358bb27f..8aadcc369d8 100644 --- a/tests/baselines/reference/assignmentCompatBug5.types +++ b/tests/baselines/reference/assignmentCompatBug5.types @@ -1,6 +1,6 @@ === tests/cases/compiler/assignmentCompatBug5.ts === function foo1(x: { a: number; }) { } ->foo1 : (x: { a: number; }) => void +>foo1 : (x: { a: number;}) => void >x : { a: number; } >a : number diff --git a/tests/baselines/reference/assignmentCompatFunctionsWithOptionalArgs.types b/tests/baselines/reference/assignmentCompatFunctionsWithOptionalArgs.types index 1f1beea0b38..8cb4327d16b 100644 --- a/tests/baselines/reference/assignmentCompatFunctionsWithOptionalArgs.types +++ b/tests/baselines/reference/assignmentCompatFunctionsWithOptionalArgs.types @@ -1,6 +1,6 @@ === tests/cases/compiler/assignmentCompatFunctionsWithOptionalArgs.ts === function foo(x: { id: number; name?: string; }): void; ->foo : (x: { id: number; name?: string; }) => void +>foo : (x: { id: number; name?: string;}) => void >x : { id: number; name?: string; } >id : number >name : string diff --git a/tests/baselines/reference/assignmentCompatOnNew.types b/tests/baselines/reference/assignmentCompatOnNew.types index a2c9500044a..1c443eb8d0d 100644 --- a/tests/baselines/reference/assignmentCompatOnNew.types +++ b/tests/baselines/reference/assignmentCompatOnNew.types @@ -3,7 +3,7 @@ class Foo{}; >Foo : Foo function bar(x: {new(): Foo;}){} ->bar : (x: new () => Foo) => void +>bar : (x: { new (): Foo;}) => void >x : new () => Foo bar(Foo); // Error, but should be allowed diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types index 1301a2e2829..e904fd31412 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types @@ -74,7 +74,7 @@ var a10: (...x: Derived[]) => Derived; >x : Derived[] var a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -82,17 +82,17 @@ var a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; >bar : string var a12: (x: Array, y: Array) => Array; ->a12 : (x: Base[], y: Derived2[]) => Derived[] +>a12 : (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] var a13: (x: Array, y: Array) => Array; ->a13 : (x: Base[], y: Derived[]) => Derived[] +>a13 : (x: Array, y: Array) => Array >x : Base[] >y : Derived[] var a14: (x: { a: string; b: number }) => Object; ->a14 : (x: { a: string; b: number; }) => Object +>a14 : (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -274,10 +274,10 @@ b8 = a8; // ok >a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived var b9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; ->b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -323,7 +323,7 @@ b11 = a11; // ok >a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base var b12: >(x: Array, y: T) => Array; ->b12 : (x: Base[], y: T) => Derived[] +>b12 : (x: Array, y: T) => Array >x : Base[] >y : T @@ -338,7 +338,7 @@ b12 = a12; // ok >a12 : (x: Base[], y: Derived2[]) => Derived[] var b13: >(x: Array, y: T) => T; ->b13 : (x: Base[], y: T) => T +>b13 : (x: Array, y: T) => T >x : Base[] >y : T diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures4.types b/tests/baselines/reference/assignmentCompatWithCallSignatures4.types index 351de0be4b9..ccbcb3ccfd9 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures4.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures4.types @@ -50,7 +50,7 @@ module Errors { >x : Base[] var a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -58,7 +58,7 @@ module Errors { >bar : string var a12: (x: Array, y: Array) => Array; ->a12 : (x: Base[], y: Derived2[]) => Derived[] +>a12 : (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] @@ -73,7 +73,7 @@ module Errors { }; var a15: (x: { a: string; b: number }) => number; ->a15 : (x: { a: string; b: number; }) => number +>a15 : (x: { a: string; b: number;}) => number >x : { a: string; b: number; } >a : string >b : number @@ -158,10 +158,10 @@ module Errors { >a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived2 var b8: (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; ->b8 : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U +>b8 : (x: (arg: T) => U, y: (arg2: { foo: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: number; }) => U +>y : (arg2: { foo: number;}) => U >arg2 : { foo: number; } >foo : number >r : T @@ -207,7 +207,7 @@ module Errors { >a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base var b12: >(x: Array, y: Array) => T; ->b12 : (x: Base[], y: Base[]) => T +>b12 : (x: Array, y: Array) => T >x : Base[] >y : Base[] diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types index ead3b46ea33..4be1347fca3 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types @@ -74,7 +74,7 @@ var a10: new (...x: Derived[]) => Derived; >x : Derived[] var a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -82,17 +82,17 @@ var a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; >bar : string var a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[] +>a12 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] var a13: new (x: Array, y: Array) => Array; ->a13 : new (x: Base[], y: Derived[]) => Derived[] +>a13 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived[] var a14: new (x: { a: string; b: number }) => Object; ->a14 : new (x: { a: string; b: number; }) => Object +>a14 : new (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -274,10 +274,10 @@ b8 = a8; // ok >a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived var b9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; ->b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -323,7 +323,7 @@ b11 = a11; // ok >a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base var b12: new >(x: Array, y: T) => Array; ->b12 : new (x: Base[], y: T) => Derived[] +>b12 : new (x: Array, y: T) => Array >x : Base[] >y : T @@ -338,7 +338,7 @@ b12 = a12; // ok >a12 : new (x: Base[], y: Derived2[]) => Derived[] var b13: new >(x: Array, y: T) => T; ->b13 : new (x: Base[], y: T) => T +>b13 : new (x: Array, y: T) => T >x : Base[] >y : T diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types index beba928bd18..a13015a3083 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types @@ -50,7 +50,7 @@ module Errors { >x : Base[] var a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -58,7 +58,7 @@ module Errors { >bar : string var a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[] +>a12 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] @@ -73,7 +73,7 @@ module Errors { }; var a15: new (x: { a: string; b: number }) => number; ->a15 : new (x: { a: string; b: number; }) => number +>a15 : new (x: { a: string; b: number;}) => number >x : { a: string; b: number; } >a : string >b : number @@ -158,10 +158,10 @@ module Errors { >a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived2 var b8: new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; ->b8 : new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U +>b8 : new (x: (arg: T) => U, y: (arg2: { foo: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: number; }) => U +>y : (arg2: { foo: number;}) => U >arg2 : { foo: number; } >foo : number >r : T @@ -207,7 +207,7 @@ module Errors { >a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base var b12: new >(x: Array, y: Array) => T; ->b12 : new (x: Base[], y: Base[]) => T +>b12 : new (x: Array, y: Array) => T >x : Base[] >y : Base[] diff --git a/tests/baselines/reference/assignmentCompatWithDiscriminatedUnion.types b/tests/baselines/reference/assignmentCompatWithDiscriminatedUnion.types index 76bdb2716d2..cde58aeb490 100644 --- a/tests/baselines/reference/assignmentCompatWithDiscriminatedUnion.types +++ b/tests/baselines/reference/assignmentCompatWithDiscriminatedUnion.types @@ -299,7 +299,7 @@ namespace GH30170 { >val : Blue | Yellow function drawWithColor(currentColor: 'blue' | 'yellow' | undefined) { ->drawWithColor : (currentColor: "blue" | "yellow") => void +>drawWithColor : (currentColor: 'blue' | 'yellow' | undefined) => void >currentColor : "blue" | "yellow" return draw({ color: currentColor }); diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers.types b/tests/baselines/reference/assignmentCompatWithObjectMembers.types index 539fe1ed809..3b69e52fdf9 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembers.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers.types @@ -177,13 +177,13 @@ module ObjectTypes { >t2 : T2 var a: { foo: typeof a; } ->a : { foo: any; } ->foo : { foo: any; } +>a : { foo: typeof a; } +>foo : { foo: typeof a; } >a : { foo: any; } var b: { foo: typeof b; } ->b : { foo: any; } ->foo : { foo: any; } +>b : { foo: typeof b; } +>foo : { foo: typeof b; } >b : { foo: any; } var a2 = { foo: a2 }; diff --git a/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types b/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types index 5de987b283c..59f340d1ed8 100644 --- a/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types +++ b/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types @@ -12,7 +12,7 @@ let mappedObject: {[K in "foo"]: null | {x: string}} = {foo: {x: "hello"}}; >"hello" : "hello" declare function foo(x: T): null | T; ->foo : (x: T) => T +>foo : (x: T) => null | T >x : T >null : null diff --git a/tests/baselines/reference/assignmentToParenthesizedIdentifiers.types b/tests/baselines/reference/assignmentToParenthesizedIdentifiers.types index 98083655144..80fe9f32b5a 100644 --- a/tests/baselines/reference/assignmentToParenthesizedIdentifiers.types +++ b/tests/baselines/reference/assignmentToParenthesizedIdentifiers.types @@ -184,7 +184,7 @@ fn = () => 3; // Bug 823548: Should be error (fn is not a reference) >3 : 3 function fn2(x: number, y: { t: number }) { ->fn2 : (x: number, y: { t: number; }) => void +>fn2 : (x: number, y: { t: number;}) => void >x : number >y : { t: number; } >t : number diff --git a/tests/baselines/reference/asyncFunctionReturnExpressionErrorSpans.types b/tests/baselines/reference/asyncFunctionReturnExpressionErrorSpans.types index 63dd0aa3b1b..e381651ad9d 100644 --- a/tests/baselines/reference/asyncFunctionReturnExpressionErrorSpans.types +++ b/tests/baselines/reference/asyncFunctionReturnExpressionErrorSpans.types @@ -1,10 +1,10 @@ === tests/cases/compiler/asyncFunctionReturnExpressionErrorSpans.ts === interface Foo { bar: { ->bar : { baz: { inner: { thing: string; }; }; } +>bar : { baz: { inner: { thing: string; };}; } baz: { ->baz : { inner: { thing: string; }; } +>baz : { inner: { thing: string;}; } inner: { >inner : { thing: string; } diff --git a/tests/baselines/reference/asyncFunctionReturnType.types b/tests/baselines/reference/asyncFunctionReturnType.types index d2cb63e0a35..9ce665ca870 100644 --- a/tests/baselines/reference/asyncFunctionReturnType.types +++ b/tests/baselines/reference/asyncFunctionReturnType.types @@ -29,7 +29,7 @@ interface Obj { } async function fIndexedTypeForStringProp(obj: Obj): Promise { ->fIndexedTypeForStringProp : (obj: Obj) => Promise +>fIndexedTypeForStringProp : (obj: Obj) => Promise >obj : Obj return obj.stringProp; @@ -39,7 +39,7 @@ async function fIndexedTypeForStringProp(obj: Obj): Promise { } async function fIndexedTypeForPromiseOfStringProp(obj: Obj): Promise { ->fIndexedTypeForPromiseOfStringProp : (obj: Obj) => Promise +>fIndexedTypeForPromiseOfStringProp : (obj: Obj) => Promise >obj : Obj return Promise.resolve(obj.stringProp); @@ -53,7 +53,7 @@ async function fIndexedTypeForPromiseOfStringProp(obj: Obj): Promise { ->fIndexedTypeForExplicitPromiseOfStringProp : (obj: Obj) => Promise +>fIndexedTypeForExplicitPromiseOfStringProp : (obj: Obj) => Promise >obj : Obj return Promise.resolve(obj.stringProp); @@ -67,7 +67,7 @@ async function fIndexedTypeForExplicitPromiseOfStringProp(obj: Obj): Promise { ->fIndexedTypeForAnyProp : (obj: Obj) => Promise +>fIndexedTypeForAnyProp : (obj: Obj) => Promise >obj : Obj return obj.anyProp; @@ -77,7 +77,7 @@ async function fIndexedTypeForAnyProp(obj: Obj): Promise { } async function fIndexedTypeForPromiseOfAnyProp(obj: Obj): Promise { ->fIndexedTypeForPromiseOfAnyProp : (obj: Obj) => Promise +>fIndexedTypeForPromiseOfAnyProp : (obj: Obj) => Promise >obj : Obj return Promise.resolve(obj.anyProp); @@ -91,7 +91,7 @@ async function fIndexedTypeForPromiseOfAnyProp(obj: Obj): Promise { ->fIndexedTypeForExplicitPromiseOfAnyProp : (obj: Obj) => Promise +>fIndexedTypeForExplicitPromiseOfAnyProp : (obj: Obj) => Promise >obj : Obj return Promise.resolve(obj.anyProp); diff --git a/tests/baselines/reference/awaitUnionPromise.types b/tests/baselines/reference/awaitUnionPromise.types index 792be1d7e4e..c05fd46a4ff 100644 --- a/tests/baselines/reference/awaitUnionPromise.types +++ b/tests/baselines/reference/awaitUnionPromise.types @@ -7,16 +7,16 @@ class AsyncEnumeratorDone { }; interface IAsyncEnumerator { next1(): Promise; ->next1 : () => Promise +>next1 : () => Promise next2(): Promise | Promise; >next2 : () => Promise | Promise next3(): Promise; ->next3 : () => Promise<{} | T> +>next3 : () => Promise next4(): Promise; ->next4 : () => Promise +>next4 : () => Promise >x : string } diff --git a/tests/baselines/reference/bivariantInferences.types b/tests/baselines/reference/bivariantInferences.types index 940b5a27536..ac987cbddac 100644 --- a/tests/baselines/reference/bivariantInferences.types +++ b/tests/baselines/reference/bivariantInferences.types @@ -3,7 +3,7 @@ interface Array { equalsShallow(this: ReadonlyArray, other: ReadonlyArray): boolean; ->equalsShallow : (this: readonly T[], other: readonly T[]) => boolean +>equalsShallow : (this: ReadonlyArray, other: ReadonlyArray) => boolean >this : readonly T[] >other : readonly T[] } diff --git a/tests/baselines/reference/bluebirdStaticThis.types b/tests/baselines/reference/bluebirdStaticThis.types index 7708a733c59..5f3bfcb50b4 100644 --- a/tests/baselines/reference/bluebirdStaticThis.types +++ b/tests/baselines/reference/bluebirdStaticThis.types @@ -221,7 +221,7 @@ export declare class Promise implements Promise.Thenable { >object : Object static settle(dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; ->settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } +>settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[]> @@ -230,7 +230,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static settle(dit: typeof Promise, values: Promise.Thenable): Promise[]>; ->settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } +>settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -238,7 +238,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static settle(dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; ->settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } +>settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -246,7 +246,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static settle(dit: typeof Promise, values: R[]): Promise[]>; ->settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } +>settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise[]>; } >dit : typeof Promise >Promise : typeof Promise >values : R[] diff --git a/tests/baselines/reference/booleanLiteralTypes1.types b/tests/baselines/reference/booleanLiteralTypes1.types index c50ee4ab0ad..ec78a92a97a 100644 --- a/tests/baselines/reference/booleanLiteralTypes1.types +++ b/tests/baselines/reference/booleanLiteralTypes1.types @@ -30,7 +30,7 @@ function f1() { } function f2(a: true | false, b: boolean) { ->f2 : (a: boolean, b: boolean) => void +>f2 : (a: true | false, b: boolean) => void >a : boolean >true : true >false : false @@ -48,7 +48,7 @@ function f2(a: true | false, b: boolean) { } function f3(a: true | false, b: true | false) { ->f3 : (a: boolean, b: boolean) => void +>f3 : (a: true | false, b: true | false) => void >a : boolean >true : true >false : false @@ -164,7 +164,7 @@ function assertNever(x: never): never { } function f10(x: true | false) { ->f10 : (x: boolean) => "true" | "false" +>f10 : (x: true | false) => "true" | "false" >x : boolean >true : true >false : false @@ -183,7 +183,7 @@ function f10(x: true | false) { } function f11(x: true | false) { ->f11 : (x: boolean) => "true" | "false" +>f11 : (x: true | false) => "true" | "false" >x : boolean >true : true >false : false @@ -206,7 +206,7 @@ function f11(x: true | false) { } function f12(x: true | false) { ->f12 : (x: boolean) => void +>f12 : (x: true | false) => void >x : boolean >true : true >false : false @@ -224,7 +224,7 @@ function f12(x: true | false) { } function f13(x: true | false) { ->f13 : (x: boolean) => void +>f13 : (x: true | false) => void >x : boolean >true : true >false : false diff --git a/tests/baselines/reference/booleanLiteralTypes2.types b/tests/baselines/reference/booleanLiteralTypes2.types index 15c8f1e9c53..0d073250619 100644 --- a/tests/baselines/reference/booleanLiteralTypes2.types +++ b/tests/baselines/reference/booleanLiteralTypes2.types @@ -30,7 +30,7 @@ function f1() { } function f2(a: true | false, b: boolean) { ->f2 : (a: boolean, b: boolean) => void +>f2 : (a: true | false, b: boolean) => void >a : boolean >true : true >false : false @@ -48,7 +48,7 @@ function f2(a: true | false, b: boolean) { } function f3(a: true | false, b: true | false) { ->f3 : (a: boolean, b: boolean) => void +>f3 : (a: true | false, b: true | false) => void >a : boolean >true : true >false : false @@ -164,7 +164,7 @@ function assertNever(x: never): never { } function f10(x: true | false) { ->f10 : (x: boolean) => "true" | "false" +>f10 : (x: true | false) => "true" | "false" >x : boolean >true : true >false : false @@ -183,7 +183,7 @@ function f10(x: true | false) { } function f11(x: true | false) { ->f11 : (x: boolean) => "true" | "false" +>f11 : (x: true | false) => "true" | "false" >x : boolean >true : true >false : false @@ -206,7 +206,7 @@ function f11(x: true | false) { } function f12(x: true | false) { ->f12 : (x: boolean) => void +>f12 : (x: true | false) => void >x : boolean >true : true >false : false @@ -224,7 +224,7 @@ function f12(x: true | false) { } function f13(x: true | false) { ->f13 : (x: boolean) => void +>f13 : (x: true | false) => void >x : boolean >true : true >false : false diff --git a/tests/baselines/reference/callChain.2.types b/tests/baselines/reference/callChain.2.types index 53ea569cf8e..a0a4973799f 100644 --- a/tests/baselines/reference/callChain.2.types +++ b/tests/baselines/reference/callChain.2.types @@ -17,8 +17,8 @@ o2?.b(); >b : () => number declare const o3: { b: (() => { c: string }) | undefined }; ->o3 : { b: () => { c: string; }; } ->b : () => { c: string; } +>o3 : { b: (() => { c: string;}) | undefined; } +>b : () => { c: string;} >c : string o3.b?.().c; diff --git a/tests/baselines/reference/callChain.3.types b/tests/baselines/reference/callChain.3.types index 118c6c7b1c0..c4afc572abf 100644 --- a/tests/baselines/reference/callChain.3.types +++ b/tests/baselines/reference/callChain.3.types @@ -4,7 +4,7 @@ declare function absorb(): T; declare const a: { m?(obj: {x: T}): T } | undefined; >a : { m?(obj: { x: T; }): T; } | undefined ->m : ((obj: { x: T; }) => T) | undefined +>m : ((obj: { x: T;}) => T) | undefined >obj : { x: T; } >x : T diff --git a/tests/baselines/reference/callChain.types b/tests/baselines/reference/callChain.types index 2318a95456e..ea4700aa957 100644 --- a/tests/baselines/reference/callChain.types +++ b/tests/baselines/reference/callChain.types @@ -106,8 +106,8 @@ o2?.["b"](1, ...[2, 3], 4); >4 : 4 declare const o3: { b: ((...args: any[]) => { c: string }) | undefined }; ->o3 : { b: ((...args: any[]) => { c: string; }) | undefined; } ->b : ((...args: any[]) => { c: string; }) | undefined +>o3 : { b: ((...args: any[]) => { c: string;}) | undefined; } +>b : ((...args: any[]) => { c: string;}) | undefined >args : any[] >c : string @@ -257,7 +257,7 @@ const v: number | undefined = o4?.(incr); // GH#33744 declare const o5: () => undefined | (() => void); ->o5 : () => (() => void) | undefined +>o5 : () => undefined | (() => void) o5()?.(); >o5()?.() : void | undefined diff --git a/tests/baselines/reference/callOverload.types b/tests/baselines/reference/callOverload.types index bd39c0e0dc4..534fde28956 100644 --- a/tests/baselines/reference/callOverload.types +++ b/tests/baselines/reference/callOverload.types @@ -9,7 +9,7 @@ declare function takeTwo(x: any, y: any): void; >y : any declare function withRest(a: any, ...args: Array): void; ->withRest : (a: any, ...args: any[]) => void +>withRest : (a: any, ...args: Array) => void >a : any >args : any[] diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types index 065d0027ed3..c961027b1d4 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types @@ -76,7 +76,7 @@ interface A { // T >x : Derived[] a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -84,17 +84,17 @@ interface A { // T >bar : string a12: (x: Array, y: Array) => Array; ->a12 : (x: Base[], y: Derived2[]) => Derived[] +>a12 : (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] a13: (x: Array, y: Array) => Array; ->a13 : (x: Base[], y: Derived[]) => Derived[] +>a13 : (x: Array, y: Array) => Array >x : Base[] >y : Derived[] a14: (x: { a: string; b: number }) => Object; ->a14 : (x: { a: string; b: number; }) => Object +>a14 : (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -202,10 +202,10 @@ interface I extends A { >r : T a9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -221,12 +221,12 @@ interface I extends A { >y : T a12: >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : (x: Base[], y: T) => Derived[] +>a12 : (x: Array, y: T) => Array >x : Base[] >y : T a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : (x: Base[], y: T) => T +>a13 : (x: Array, y: T) => T >x : Base[] >y : T diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types index 70229e8867a..a78f9502184 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types @@ -50,7 +50,7 @@ module Errors { >x : Base[] a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -58,7 +58,7 @@ module Errors { >bar : string a12: (x: Array, y: Array) => Array; ->a12 : (x: Base[], y: Derived2[]) => Derived[] +>a12 : (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] @@ -73,7 +73,7 @@ module Errors { }; a15: (x: { a: string; b: number }) => number; ->a15 : (x: { a: string; b: number; }) => number +>a15 : (x: { a: string; b: number;}) => number >x : { a: string; b: number; } >a : string >b : number @@ -152,10 +152,10 @@ module Errors { interface I4 extends A { a8: (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; // error, type mismatch ->a8 : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U +>a8 : (x: (arg: T) => U, y: (arg2: { foo: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: number; }) => U +>y : (arg2: { foo: number;}) => U >arg2 : { foo: number; } >foo : number >r : T @@ -176,7 +176,7 @@ module Errors { interface I4E extends A { a12: >(x: Array, y: Array) => T; // valid, no inferences for T, defaults to Array ->a12 : (x: Base[], y: Base[]) => T +>a12 : (x: Array, y: Array) => T >x : Base[] >y : Base[] } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types index 3f892ff0b17..3cb20bb2506 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types @@ -77,7 +77,7 @@ interface A { // T >x : Derived[] a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -85,17 +85,17 @@ interface A { // T >bar : string a12: (x: Array, y: Array) => Array; ->a12 : (x: Base[], y: Derived2[]) => Derived[] +>a12 : (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] a13: (x: Array, y: Array) => Array; ->a13 : (x: Base[], y: Derived[]) => Derived[] +>a13 : (x: Array, y: Array) => Array >x : Base[] >y : Derived[] a14: (x: { a: string; b: number }) => Object; ->a14 : (x: { a: string; b: number; }) => Object +>a14 : (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -152,10 +152,10 @@ interface I extends B { >r : T a9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -171,12 +171,12 @@ interface I extends B { >y : T a12: >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : (x: Base[], y: T) => Derived[] +>a12 : (x: Array, y: T) => Array >x : Base[] >y : T a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : (x: Base[], y: T) => T +>a13 : (x: Array, y: T) => T >x : Base[] >y : T diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types index 8e893aba48a..20558c30ecf 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types @@ -107,7 +107,7 @@ interface I5 extends A { interface I7 extends A { a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->a11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>a11 : (x: { foo: T;}, y: { foo: U; bar: U; }) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -117,7 +117,7 @@ interface I7 extends A { interface I9 extends A { a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[] +>a16 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/callSignatureFunctionOverload.types b/tests/baselines/reference/callSignatureFunctionOverload.types index d5897c01494..43ab4eb4931 100644 --- a/tests/baselines/reference/callSignatureFunctionOverload.types +++ b/tests/baselines/reference/callSignatureFunctionOverload.types @@ -1,6 +1,6 @@ === tests/cases/compiler/callSignatureFunctionOverload.ts === var foo: { ->foo : { (name: string): string; (name: "order"): string; (name: "content"): string; (name: "done"): string; } +>foo : { (name: string): string; (name: 'order'): string; (name: 'content'): string; (name: 'done'): string; } (name: string): string; >name : string @@ -16,7 +16,7 @@ var foo: { } var foo2: { ->foo2 : { (name: string): string; (name: "order"): string; (name: "order"): string; (name: "done"): string; } +>foo2 : { (name: string): string; (name: 'order'): string; (name: 'order'): string; (name: 'done'): string; } (name: string): string; >name : string diff --git a/tests/baselines/reference/callWithMissingVoid.types b/tests/baselines/reference/callWithMissingVoid.types index 6f9638daae5..64c3977b14f 100644 --- a/tests/baselines/reference/callWithMissingVoid.types +++ b/tests/baselines/reference/callWithMissingVoid.types @@ -188,7 +188,7 @@ b(4); // not ok >4 : 4 function c(x: number | void, y: void, z: void | string | number): void { ->c : (x: number | void, y: void, z: string | number | void) => void +>c : (x: number | void, y: void, z: void | string | number) => void >x : number | void >y : void >z : string | number | void diff --git a/tests/baselines/reference/callWithSpread2.types b/tests/baselines/reference/callWithSpread2.types index 3f0197a8691..7933a3f6da4 100644 --- a/tests/baselines/reference/callWithSpread2.types +++ b/tests/baselines/reference/callWithSpread2.types @@ -5,7 +5,7 @@ declare function all(a?: number, b?: number): void; >b : number declare function weird(a?: number | string, b?: number | string): void; ->weird : (a?: string | number, b?: string | number) => void +>weird : (a?: number | string, b?: number | string) => void >a : string | number >b : string | number diff --git a/tests/baselines/reference/callbackArgsDifferByOptionality.types b/tests/baselines/reference/callbackArgsDifferByOptionality.types index d54360c0656..095cb67cded 100644 --- a/tests/baselines/reference/callbackArgsDifferByOptionality.types +++ b/tests/baselines/reference/callbackArgsDifferByOptionality.types @@ -1,7 +1,7 @@ === tests/cases/compiler/callbackArgsDifferByOptionality.ts === function x3(callback: (x?: 'hi') => number); ->x3 : { (callback: (x?: "hi") => number): any; (callback: (x: string) => number): any; } ->callback : (x?: "hi") => number +>x3 : { (callback: (x?: 'hi') => number): any; (callback: (x: string) => number): any; } +>callback : (x?: 'hi') => number >x : "hi" function x3(callback: (x: string) => number); diff --git a/tests/baselines/reference/callbackCrossModule.types b/tests/baselines/reference/callbackCrossModule.types index 0697454cf29..27e28e7ae09 100644 --- a/tests/baselines/reference/callbackCrossModule.types +++ b/tests/baselines/reference/callbackCrossModule.types @@ -24,7 +24,7 @@ function C() { === tests/cases/conformance/jsdoc/use.js === /** @param {import('./mod1').Con} k */ function f(k) { ->f : (k: import("tests/cases/conformance/jsdoc/mod1").Con) => any +>f : (k: import('./mod1').Con) => any >k : import("tests/cases/conformance/jsdoc/mod1").Con if (1 === 2 - 1) { diff --git a/tests/baselines/reference/callsOnComplexSignatures.types b/tests/baselines/reference/callsOnComplexSignatures.types index 9ca788c28cb..cd07db256bc 100644 --- a/tests/baselines/reference/callsOnComplexSignatures.types +++ b/tests/baselines/reference/callsOnComplexSignatures.types @@ -110,17 +110,17 @@ function test3(items: string[] | number[]) { } function test4( ->test4 : (arg1: ((...objs: { x: number; }[]) => number) | ((...objs: { y: number; }[]) => number), arg2: ((a: { x: number; }, b: object) => number) | ((a: object, b: { x: number; }) => number), arg3: ((a: { x: number; }, ...objs: { y: number; }[]) => number) | ((...objs: { x: number; }[]) => number), arg4: ((a?: { x: number; } | undefined, b?: { x: number; } | undefined) => number) | ((a?: { y: number; } | undefined) => number), arg5: ((a?: { x: number; } | undefined, ...b: { x: number; }[]) => number) | ((a?: { y: number; } | undefined) => number), arg6: ((a?: { x: number; } | undefined, b?: { x: number; } | undefined) => number) | ((...a: { y: number; }[]) => number)) => void +>test4 : (arg1: ((...objs: { x: number;}[]) => number) | ((...objs: { y: number;}[]) => number), arg2: ((a: { x: number;}, b: object) => number) | ((a: object, b: { x: number;}) => number), arg3: ((a: { x: number;}, ...objs: { y: number;}[]) => number) | ((...objs: { x: number;}[]) => number), arg4: ((a?: { x: number; } | undefined, b?: { x: number; } | undefined) => number) | ((a?: { y: number; } | undefined) => number), arg5: ((a?: { x: number; } | undefined, ...b: { x: number;}[]) => number) | ((a?: { y: number; } | undefined) => number), arg6: ((a?: { x: number; } | undefined, b?: { x: number; } | undefined) => number) | ((...a: { y: number;}[]) => number)) => void arg1: ((...objs: {x: number}[]) => number) | ((...objs: {y: number}[]) => number), ->arg1 : ((...objs: { x: number; }[]) => number) | ((...objs: { y: number; }[]) => number) +>arg1 : ((...objs: { x: number;}[]) => number) | ((...objs: { y: number;}[]) => number) >objs : { x: number; }[] >x : number >objs : { y: number; }[] >y : number arg2: ((a: {x: number}, b: object) => number) | ((a: object, b: {x: number}) => number), ->arg2 : ((a: { x: number; }, b: object) => number) | ((a: object, b: { x: number; }) => number) +>arg2 : ((a: { x: number;}, b: object) => number) | ((a: object, b: { x: number;}) => number) >a : { x: number; } >x : number >b : object @@ -129,7 +129,7 @@ function test4( >x : number arg3: ((a: {x: number}, ...objs: {y: number}[]) => number) | ((...objs: {x: number}[]) => number), ->arg3 : ((a: { x: number; }, ...objs: { y: number; }[]) => number) | ((...objs: { x: number; }[]) => number) +>arg3 : ((a: { x: number;}, ...objs: { y: number;}[]) => number) | ((...objs: { x: number;}[]) => number) >a : { x: number; } >x : number >objs : { y: number; }[] @@ -147,7 +147,7 @@ function test4( >y : number arg5: ((a?: {x: number}, ...b: {x: number}[]) => number) | ((a?: {y: number}) => number), ->arg5 : ((a?: { x: number; } | undefined, ...b: { x: number; }[]) => number) | ((a?: { y: number; } | undefined) => number) +>arg5 : ((a?: { x: number; } | undefined, ...b: { x: number;}[]) => number) | ((a?: { y: number; } | undefined) => number) >a : { x: number; } | undefined >x : number >b : { x: number; }[] @@ -156,7 +156,7 @@ function test4( >y : number arg6: ((a?: {x: number}, b?: {x: number}) => number) | ((...a: {y: number}[]) => number), ->arg6 : ((a?: { x: number; } | undefined, b?: { x: number; } | undefined) => number) | ((...a: { y: number; }[]) => number) +>arg6 : ((a?: { x: number; } | undefined, b?: { x: number; } | undefined) => number) | ((...a: { y: number;}[]) => number) >a : { x: number; } | undefined >x : number >b : { x: number; } | undefined @@ -358,8 +358,8 @@ function test5() { // Union of all intrinsics and components of `any` function App(props: { component:React.ReactType }) { ->App : (props: { component: React.ReactType; }) => JSX.Element ->props : { component: React.ReactType; } +>App : (props: { component: React.ReactType;}) => JSX.Element +>props : { component: React.ReactType; } >component : React.ReactType >React : any diff --git a/tests/baselines/reference/capturedParametersInInitializers1.types b/tests/baselines/reference/capturedParametersInInitializers1.types index aa0df80902e..02f0bb13a90 100644 --- a/tests/baselines/reference/capturedParametersInInitializers1.types +++ b/tests/baselines/reference/capturedParametersInInitializers1.types @@ -18,9 +18,9 @@ function foo1(y = class {c = x}, x = 1) { // ok - used in file function foo2(y = function(x: typeof z) {}, z = 1) { ->foo2 : (y?: (x: number) => void, z?: number) => void ->y : (x: number) => void ->function(x: typeof z) {} : (x: number) => void +>foo2 : (y?: (x: typeof z) => void, z?: number) => void +>y : (x: typeof z) => void +>function(x: typeof z) {} : (x: typeof z) => void >x : number >z : number >z : number diff --git a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types index d1b81857925..c6956f6373e 100644 --- a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types +++ b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types @@ -16,7 +16,7 @@ interface Sequence { >value : T groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: T[]; }>; ->groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: T[]; }> +>groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: T[];}> >keySelector : (value: T) => K >value : T >key : K diff --git a/tests/baselines/reference/checkJsTypeDefNoUnusedLocalMarked.types b/tests/baselines/reference/checkJsTypeDefNoUnusedLocalMarked.types index 6112b35cf3b..b2e3b7dc44a 100644 --- a/tests/baselines/reference/checkJsTypeDefNoUnusedLocalMarked.types +++ b/tests/baselines/reference/checkJsTypeDefNoUnusedLocalMarked.types @@ -22,7 +22,7 @@ export = Foo; /** @typedef {(foo: Foo) => string} FooFun */ module.exports = /** @type {FooFun} */(void 0); ->module.exports = /** @type {FooFun} */(void 0) : (foo: typeof import("tests/cases/compiler/file")) => string +>module.exports = /** @type {FooFun} */(void 0) : (foo: Foo) => string >module.exports : (foo: typeof import("tests/cases/compiler/file")) => string >module : { "\"tests/cases/compiler/something\"": (foo: typeof import("tests/cases/compiler/file")) => string; } >exports : (foo: typeof import("tests/cases/compiler/file")) => string diff --git a/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.types b/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.types index fcb3c344ca9..dff46106072 100644 --- a/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.types +++ b/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.types @@ -5,9 +5,9 @@ * @param {string} [s] */ var x = function foo(n, s) {} ->x : (n?: number, s?: string) => void ->function foo(n, s) {} : (n?: number, s?: string) => void ->foo : (n?: number, s?: string) => void +>x : (n?: number | undefined, s?: string) => void +>function foo(n, s) {} : (n?: number | undefined, s?: string) => void +>foo : (n?: number | undefined, s?: string) => void >n : number >s : string diff --git a/tests/baselines/reference/checkJsdocParamTag1.types b/tests/baselines/reference/checkJsdocParamTag1.types index 5b24c3d8887..da4397da94c 100644 --- a/tests/baselines/reference/checkJsdocParamTag1.types +++ b/tests/baselines/reference/checkJsdocParamTag1.types @@ -5,7 +5,7 @@ * @param {string} [s] */ function foo(n, s) {} ->foo : (n?: number, s?: string) => void +>foo : (n?: number | undefined, s?: string) => void >n : number >s : string diff --git a/tests/baselines/reference/checkJsdocReturnTag1.types b/tests/baselines/reference/checkJsdocReturnTag1.types index 04a2df87c01..919b0294122 100644 --- a/tests/baselines/reference/checkJsdocReturnTag1.types +++ b/tests/baselines/reference/checkJsdocReturnTag1.types @@ -14,7 +14,7 @@ function f() { * @returns {string=} This comment is not currently exposed */ function f1() { ->f1 : () => string +>f1 : () => string | undefined return "hello world"; >"hello world" : "hello world" diff --git a/tests/baselines/reference/checkJsxSubtleSkipContextSensitiveBug.types b/tests/baselines/reference/checkJsxSubtleSkipContextSensitiveBug.types index da2947255e6..253c94d57a5 100644 --- a/tests/baselines/reference/checkJsxSubtleSkipContextSensitiveBug.types +++ b/tests/baselines/reference/checkJsxSubtleSkipContextSensitiveBug.types @@ -28,7 +28,7 @@ class AsyncLoader extends React.Component> { } async function load(): Promise<{ success: true } | ErrorResult> { ->load : () => Promise +>load : () => Promise<{ success: true;} | ErrorResult> >success : true >true : true diff --git a/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types b/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types index ef77f4e022f..31755a9b0ee 100644 --- a/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types +++ b/tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.types @@ -31,7 +31,7 @@ interface PM { } export function ComponentWithUnion(props: PM | PS) { ->ComponentWithUnion : (props: PS | PM) => JSX.Element +>ComponentWithUnion : (props: PM | PS) => JSX.Element >props : PS | PM return

; diff --git a/tests/baselines/reference/checkObjectDefineProperty.types b/tests/baselines/reference/checkObjectDefineProperty.types index 6f5646b57b5..e129624a581 100644 --- a/tests/baselines/reference/checkObjectDefineProperty.types +++ b/tests/baselines/reference/checkObjectDefineProperty.types @@ -177,7 +177,7 @@ Object.defineProperty(x, "zipStr", { * @param {{name: string}} named */ function takeName(named) { return named.name; } ->takeName : (named: { name: string; }) => string +>takeName : (named: { name: string;}) => string >named : { name: string; } >named.name : string >named : { name: string; } @@ -231,7 +231,7 @@ const expected = /** @type {{name: string, readonly middleInit: string, readonly * @param {typeof needsExemplar} b */ function match(a, b) {} ->match : (a: () => typeof x, b: (_?: typeof x) => undefined) => void +>match : (a: typeof returnExemplar, b: typeof needsExemplar) => void >a : () => typeof x >b : (_?: typeof x) => undefined diff --git a/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.types b/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.types index 9b536be294d..225de65d66a 100644 --- a/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.types +++ b/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.types @@ -7,7 +7,7 @@ class A { >A : A doIt(x: Array): void { ->doIt : (x: string[]) => void +>doIt : (x: Array) => void >x : string[] x.forEach((v) => { diff --git a/tests/baselines/reference/classCanExtendConstructorFunction.types b/tests/baselines/reference/classCanExtendConstructorFunction.types index b7a379caf11..c7a6770563a 100644 --- a/tests/baselines/reference/classCanExtendConstructorFunction.types +++ b/tests/baselines/reference/classCanExtendConstructorFunction.types @@ -16,11 +16,11 @@ function Wagon(numberOxen) { } /** @param {Wagon[]=} wagons */ Wagon.circle = function (wagons) { ->Wagon.circle = function (wagons) { return wagons ? wagons.length : 3.14;} : (wagons?: Wagon[]) => number ->Wagon.circle : (wagons?: Wagon[]) => number +>Wagon.circle = function (wagons) { return wagons ? wagons.length : 3.14;} : (wagons?: Wagon[] | undefined) => number +>Wagon.circle : (wagons?: Wagon[] | undefined) => number >Wagon : typeof Wagon >circle : (wagons?: Wagon[]) => number ->function (wagons) { return wagons ? wagons.length : 3.14;} : (wagons?: Wagon[]) => number +>function (wagons) { return wagons ? wagons.length : 3.14;} : (wagons?: Wagon[] | undefined) => number >wagons : Wagon[] return wagons ? wagons.length : 3.14; @@ -33,24 +33,24 @@ Wagon.circle = function (wagons) { } /** @param {*[]=} supplies - *[]= is my favourite type */ Wagon.prototype.load = function (supplies) { ->Wagon.prototype.load = function (supplies) {} : (supplies?: any[]) => void +>Wagon.prototype.load = function (supplies) {} : (supplies?: any[] | undefined) => void >Wagon.prototype.load : any >Wagon.prototype : any >Wagon : typeof Wagon >prototype : any >load : any ->function (supplies) {} : (supplies?: any[]) => void +>function (supplies) {} : (supplies?: any[] | undefined) => void >supplies : any[] } /** @param {*[]=} supplies - Yep, still a great type */ Wagon.prototype.weight = supplies => supplies ? supplies.length : -1 ->Wagon.prototype.weight = supplies => supplies ? supplies.length : -1 : (supplies?: any[]) => number +>Wagon.prototype.weight = supplies => supplies ? supplies.length : -1 : (supplies?: any[] | undefined) => number >Wagon.prototype.weight : any >Wagon.prototype : any >Wagon : typeof Wagon >prototype : any >weight : any ->supplies => supplies ? supplies.length : -1 : (supplies?: any[]) => number +>supplies => supplies ? supplies.length : -1 : (supplies?: any[] | undefined) => number >supplies : any[] >supplies ? supplies.length : -1 : number >supplies : any[] @@ -102,7 +102,7 @@ class Sql extends Wagon { * This is not assignable, so should have a type error */ load(files, format) { ->load : (files: string[], format: "csv" | "json" | "xmlolololol") => void +>load : (files: Array, format: "csv" | "json" | "xmlolololol") => void >files : string[] >format : "csv" | "json" | "xmlolololol" diff --git a/tests/baselines/reference/classExtendsInterfaceInExpression.types b/tests/baselines/reference/classExtendsInterfaceInExpression.types index 12c7ce1e0b6..453cf5edec7 100644 --- a/tests/baselines/reference/classExtendsInterfaceInExpression.types +++ b/tests/baselines/reference/classExtendsInterfaceInExpression.types @@ -2,7 +2,7 @@ interface A {} function factory(a: any): {new(): Object} { ->factory : (a: any) => new () => Object +>factory : (a: any) => { new (): Object;} >a : any return null; diff --git a/tests/baselines/reference/classTypeParametersInStatics.types b/tests/baselines/reference/classTypeParametersInStatics.types index 535dfde2294..4f7b990044e 100644 --- a/tests/baselines/reference/classTypeParametersInStatics.types +++ b/tests/baselines/reference/classTypeParametersInStatics.types @@ -19,7 +19,7 @@ module Editor { } public static MakeHead(): List { // should error ->MakeHead : () => List +>MakeHead : () => List var entry: List = new List(true, null); >entry : List diff --git a/tests/baselines/reference/commentOnAmbientfunction.types b/tests/baselines/reference/commentOnAmbientfunction.types index 3347a55bf68..4d6e641dbfa 100644 --- a/tests/baselines/reference/commentOnAmbientfunction.types +++ b/tests/baselines/reference/commentOnAmbientfunction.types @@ -1,7 +1,7 @@ === tests/cases/compiler/b.ts === /// declare function foobar(a: typeof foo): typeof bar; ->foobar : (a: () => any) => () => any +>foobar : (a: typeof foo) => typeof bar >a : () => any >foo : () => any >bar : () => any diff --git a/tests/baselines/reference/commonTypeIntersection.types b/tests/baselines/reference/commonTypeIntersection.types index aa14b244bb0..f1bd05d0225 100644 --- a/tests/baselines/reference/commonTypeIntersection.types +++ b/tests/baselines/reference/commonTypeIntersection.types @@ -1,21 +1,21 @@ === tests/cases/conformance/types/intersection/commonTypeIntersection.ts === declare let x1: { __typename?: 'TypeTwo' } & { a: boolean }; ->x1 : { __typename?: "TypeTwo"; } & { a: boolean; } +>x1 : { __typename?: 'TypeTwo'; } & { a: boolean; } >__typename : "TypeTwo" >a : boolean let y1: { __typename?: 'TypeOne' } & { a: boolean} = x1; // should error here ->y1 : { __typename?: "TypeOne"; } & { a: boolean; } +>y1 : { __typename?: 'TypeOne'; } & { a: boolean; } >__typename : "TypeOne" >a : boolean >x1 : { __typename?: "TypeTwo"; } & { a: boolean; } declare let x2: { __typename?: 'TypeTwo' } & string; ->x2 : { __typename?: "TypeTwo"; } & string +>x2 : { __typename?: 'TypeTwo'; } & string >__typename : "TypeTwo" let y2: { __typename?: 'TypeOne' } & string = x2; // should error here ->y2 : { __typename?: "TypeOne"; } & string +>y2 : { __typename?: 'TypeOne'; } & string >__typename : "TypeOne" >x2 : { __typename?: "TypeTwo"; } & string diff --git a/tests/baselines/reference/complexRecursiveCollections.types b/tests/baselines/reference/complexRecursiveCollections.types index feaff620486..783bc32015a 100644 --- a/tests/baselines/reference/complexRecursiveCollections.types +++ b/tests/baselines/reference/complexRecursiveCollections.types @@ -85,9 +85,9 @@ declare module Immutable { >Immutable : typeof Immutable export function fromJS(jsValue: any, reviver?: (key: string | number, sequence: Collection.Keyed | Collection.Indexed, path?: Array) => any): any; ->fromJS : (jsValue: any, reviver?: (key: string | number, sequence: Collection.Keyed | Collection.Indexed, path?: (string | number)[]) => any) => any +>fromJS : (jsValue: any, reviver?: (key: string | number, sequence: Collection.Keyed | Collection.Indexed, path?: Array) => any) => any >jsValue : any ->reviver : (key: string | number, sequence: Collection.Keyed | Collection.Indexed, path?: (string | number)[]) => any +>reviver : (key: string | number, sequence: Collection.Keyed | Collection.Indexed, path?: Array) => any >key : string | number >sequence : Collection.Keyed | Collection.Indexed >Collection : any @@ -151,7 +151,7 @@ declare module Immutable { >maybeList : any function of(...values: Array): List; ->of : (...values: T[]) => List +>of : (...values: Array) => List >values : T[] } export function List(): List; @@ -190,14 +190,14 @@ declare module Immutable { >clear : () => List push(...values: Array): List; ->push : (...values: T[]) => List +>push : (...values: Array) => List >values : T[] pop(): List; >pop : () => List unshift(...values: Array): List; ->unshift : (...values: T[]) => List +>unshift : (...values: Array) => List >values : T[] shift(): List; @@ -222,12 +222,12 @@ declare module Immutable { >value : this merge(...collections: Array | Array>): this; ->merge : (...collections: (Collection.Indexed | T[])[]) => this +>merge : (...collections: Array | Array>) => this >collections : (Collection.Indexed | T[])[] >Collection : any mergeWith(merger: (oldVal: T, newVal: T, key: number) => T, ...collections: Array | Array>): this; ->mergeWith : (merger: (oldVal: T, newVal: T, key: number) => T, ...collections: (Collection.Indexed | T[])[]) => this +>mergeWith : (merger: (oldVal: T, newVal: T, key: number) => T, ...collections: Array | Array>) => this >merger : (oldVal: T, newVal: T, key: number) => T >oldVal : T >newVal : T @@ -236,12 +236,12 @@ declare module Immutable { >Collection : any mergeDeep(...collections: Array | Array>): this; ->mergeDeep : (...collections: (Collection.Indexed | T[])[]) => this +>mergeDeep : (...collections: Array | Array>) => this >collections : (Collection.Indexed | T[])[] >Collection : any mergeDeepWith(merger: (oldVal: T, newVal: T, key: number) => T, ...collections: Array | Array>): this; ->mergeDeepWith : (merger: (oldVal: T, newVal: T, key: number) => T, ...collections: (Collection.Indexed | T[])[]) => this +>mergeDeepWith : (merger: (oldVal: T, newVal: T, key: number) => T, ...collections: Array | Array>) => this >merger : (oldVal: T, newVal: T, key: number) => T >oldVal : T >newVal : T @@ -281,12 +281,12 @@ declare module Immutable { >value : any mergeIn(keyPath: Iterable, ...collections: Array): this; ->mergeIn : (keyPath: Iterable, ...collections: any[]) => this +>mergeIn : (keyPath: Iterable, ...collections: Array) => this >keyPath : Iterable >collections : any[] mergeDeepIn(keyPath: Iterable, ...collections: Array): this; ->mergeDeepIn : (keyPath: Iterable, ...collections: any[]) => this +>mergeDeepIn : (keyPath: Iterable, ...collections: Array) => this >keyPath : Iterable >collections : any[] @@ -304,7 +304,7 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): List; ->concat : (...valuesOrCollections: (C | Iterable)[]) => List +>concat : (...valuesOrCollections: Array | C>) => List >valuesOrCollections : (C | Iterable)[] map(mapper: (value: T, key: number, iter: this) => M, context?: any): List; @@ -347,7 +347,7 @@ declare module Immutable { >maybeMap : any function of(...keyValues: Array): Map; ->of : (...keyValues: any[]) => Map +>of : (...keyValues: Array) => Map >keyValues : any[] } export function Map(collection: Iterable<[K, V]>): Map; @@ -471,12 +471,12 @@ declare module Immutable { >value : any mergeIn(keyPath: Iterable, ...collections: Array): this; ->mergeIn : (keyPath: Iterable, ...collections: any[]) => this +>mergeIn : (keyPath: Iterable, ...collections: Array) => this >keyPath : Iterable >collections : any[] mergeDeepIn(keyPath: Iterable, ...collections: Array): this; ->mergeDeepIn : (keyPath: Iterable, ...collections: any[]) => this +>mergeDeepIn : (keyPath: Iterable, ...collections: Array) => this >keyPath : Iterable >collections : any[] @@ -494,11 +494,11 @@ declare module Immutable { // Sequence algorithms concat(...collections: Array>): Map; ->concat : { (...collections: Iterable<[KC, VC]>[]): Map; (...collections: { [key: string]: C; }[]): Map; } +>concat : { (...collections: Array>): Map; (...collections: { [key: string]: C; }[]): Map; } >collections : Iterable<[KC, VC]>[] concat(...collections: Array<{[key: string]: C}>): Map; ->concat : { (...collections: Iterable<[KC, VC]>[]): Map; (...collections: { [key: string]: C; }[]): Map; } +>concat : { (...collections: Iterable<[KC, VC]>[]): Map; (...collections: { [key: string]: C; }[]): Map; } >collections : { [key: string]: C; }[] >key : string @@ -579,11 +579,11 @@ declare module Immutable { export interface OrderedMap extends Map { // Sequence algorithms concat(...collections: Array>): OrderedMap; ->concat : { (...collections: Iterable<[KC, VC]>[]): OrderedMap; (...collections: { [key: string]: C; }[]): OrderedMap; } +>concat : { (...collections: Array>): OrderedMap; (...collections: { [key: string]: C; }[]): OrderedMap; } >collections : Iterable<[KC, VC]>[] concat(...collections: Array<{[key: string]: C}>): OrderedMap; ->concat : { (...collections: Iterable<[KC, VC]>[]): OrderedMap; (...collections: { [key: string]: C; }[]): OrderedMap; } +>concat : { (...collections: Iterable<[KC, VC]>[]): OrderedMap; (...collections: { [key: string]: C; }[]): OrderedMap; } >collections : { [key: string]: C; }[] >key : string @@ -643,7 +643,7 @@ declare module Immutable { >maybeSet : any function of(...values: Array): Set; ->of : (...values: T[]) => Set +>of : (...values: Array) => Set >values : T[] function fromKeys(iter: Collection): Set; @@ -693,19 +693,19 @@ declare module Immutable { >clear : () => this union(...collections: Array | Array>): this; ->union : (...collections: (Collection | T[])[]) => this +>union : (...collections: Array | Array>) => this >collections : (Collection | T[])[] merge(...collections: Array | Array>): this; ->merge : (...collections: (Collection | T[])[]) => this +>merge : (...collections: Array | Array>) => this >collections : (Collection | T[])[] intersect(...collections: Array | Array>): this; ->intersect : (...collections: (Collection | T[])[]) => this +>intersect : (...collections: Array | Array>) => this >collections : (Collection | T[])[] subtract(...collections: Array | Array>): this; ->subtract : (...collections: (Collection | T[])[]) => this +>subtract : (...collections: Array | Array>) => this >collections : (Collection | T[])[] // Transient changes @@ -722,7 +722,7 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): Set; ->concat : (...valuesOrCollections: (C | Iterable)[]) => Set +>concat : (...valuesOrCollections: Array | C>) => Set >valuesOrCollections : (C | Iterable)[] map(mapper: (value: T, key: never, iter: this) => M, context?: any): Set; @@ -765,7 +765,7 @@ declare module Immutable { >maybeOrderedSet : any function of(...values: Array): OrderedSet; ->of : (...values: T[]) => OrderedSet +>of : (...values: Array) => OrderedSet >values : T[] function fromKeys(iter: Collection): OrderedSet; @@ -790,7 +790,7 @@ declare module Immutable { export interface OrderedSet extends Set { // Sequence algorithms concat(...valuesOrCollections: Array | C>): OrderedSet; ->concat : (...valuesOrCollections: (C | Iterable)[]) => OrderedSet +>concat : (...valuesOrCollections: Array | C>) => OrderedSet >valuesOrCollections : (C | Iterable)[] map(mapper: (value: T, key: never, iter: this) => M, context?: any): OrderedSet; @@ -826,7 +826,7 @@ declare module Immutable { >context : any zip(...collections: Array>): OrderedSet; ->zip : (...collections: Collection[]) => OrderedSet +>zip : (...collections: Array>) => OrderedSet >collections : Collection[] zipWith(zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): OrderedSet; @@ -846,8 +846,8 @@ declare module Immutable { >thirdCollection : Collection zipWith(zipper: (...any: Array) => Z, ...collections: Array>): OrderedSet; ->zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: any[]) => Z, ...collections: Collection[]): OrderedSet; } ->zipper : (...any: any[]) => Z +>zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: Array) => Z, ...collections: Array>): OrderedSet; } +>zipper : (...any: Array) => Z >any : any[] >collections : Collection[] } @@ -859,7 +859,7 @@ declare module Immutable { >maybeStack : any function of(...values: Array): Stack; ->of : (...values: T[]) => Stack +>of : (...values: Array) => Stack >values : T[] } export function Stack(): Stack; @@ -877,14 +877,14 @@ declare module Immutable { // Reading values peek(): T | undefined; ->peek : () => T +>peek : () => T | undefined // Persistent changes clear(): Stack; >clear : () => Stack unshift(...values: Array): Stack; ->unshift : (...values: T[]) => Stack +>unshift : (...values: Array) => Stack >values : T[] unshiftAll(iter: Iterable): Stack; @@ -895,7 +895,7 @@ declare module Immutable { >shift : () => Stack push(...values: Array): Stack; ->push : (...values: T[]) => Stack +>push : (...values: Array) => Stack >values : T[] pushAll(iter: Iterable): Stack; @@ -919,7 +919,7 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): Stack; ->concat : (...valuesOrCollections: (C | Iterable)[]) => Stack +>concat : (...valuesOrCollections: Array | C>) => Stack >valuesOrCollections : (C | Iterable)[] map(mapper: (value: T, key: number, iter: this) => M, context?: any): Stack; @@ -1029,15 +1029,15 @@ declare module Immutable { >value : T[K] merge(...collections: Array | Iterable<[string, any]>>): this; ->merge : (...collections: (Iterable<[string, any]> | Partial)[]) => this +>merge : (...collections: Array | Iterable<[string, any]>>) => this >collections : (Iterable<[string, any]> | Partial)[] mergeDeep(...collections: Array | Iterable<[string, any]>>): this; ->mergeDeep : (...collections: (Iterable<[string, any]> | Partial)[]) => this +>mergeDeep : (...collections: Array | Iterable<[string, any]>>) => this >collections : (Iterable<[string, any]> | Partial)[] mergeWith(merger: (oldVal: any, newVal: any, key: keyof T) => any, ...collections: Array | Iterable<[string, any]>>): this; ->mergeWith : (merger: (oldVal: any, newVal: any, key: keyof T) => any, ...collections: (Iterable<[string, any]> | Partial)[]) => this +>mergeWith : (merger: (oldVal: any, newVal: any, key: keyof T) => any, ...collections: Array | Iterable<[string, any]>>) => this >merger : (oldVal: any, newVal: any, key: keyof T) => any >oldVal : any >newVal : any @@ -1045,7 +1045,7 @@ declare module Immutable { >collections : (Iterable<[string, any]> | Partial)[] mergeDeepWith(merger: (oldVal: any, newVal: any, key: any) => any, ...collections: Array | Iterable<[string, any]>>): this; ->mergeDeepWith : (merger: (oldVal: any, newVal: any, key: any) => any, ...collections: (Iterable<[string, any]> | Partial)[]) => this +>mergeDeepWith : (merger: (oldVal: any, newVal: any, key: any) => any, ...collections: Array | Iterable<[string, any]>>) => this >merger : (oldVal: any, newVal: any, key: any) => any >oldVal : any >newVal : any @@ -1076,12 +1076,12 @@ declare module Immutable { >value : any mergeIn(keyPath: Iterable, ...collections: Array): this; ->mergeIn : (keyPath: Iterable, ...collections: any[]) => this +>mergeIn : (keyPath: Iterable, ...collections: Array) => this >keyPath : Iterable >collections : any[] mergeDeepIn(keyPath: Iterable, ...collections: Array): this; ->mergeDeepIn : (keyPath: Iterable, ...collections: any[]) => this +>mergeDeepIn : (keyPath: Iterable, ...collections: Array) => this >keyPath : Iterable >collections : any[] @@ -1143,28 +1143,28 @@ declare module Immutable { >Seq : any function of(...values: Array): Seq.Indexed; ->of : (...values: T[]) => Indexed +>of : (...values: Array) => Seq.Indexed >values : T[] >Seq : any export module Keyed {} export function Keyed(collection: Iterable<[K, V]>): Seq.Keyed; ->Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Keyed; (): Keyed; (): Keyed; } +>Keyed : { (collection: Iterable<[K, V]>): Seq.Keyed; (obj: { [key: string]: V; }): Keyed; (): Keyed; (): Keyed; } >collection : Iterable<[K, V]> >Seq : any export function Keyed(obj: {[key: string]: V}): Seq.Keyed; ->Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Keyed; (): Keyed; (): Keyed; } +>Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Seq.Keyed; (): Keyed; (): Keyed; } >obj : { [key: string]: V; } >key : string >Seq : any export function Keyed(): Seq.Keyed; ->Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Keyed; (): Keyed; (): Keyed; } +>Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Keyed; (): Seq.Keyed; (): Keyed; } >Seq : any export function Keyed(): Seq.Keyed; ->Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Keyed; (): Keyed; (): Keyed; } +>Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Keyed; (): Keyed; (): Seq.Keyed; } >Seq : any export interface Keyed extends Seq, Collection.Keyed { @@ -1181,18 +1181,18 @@ declare module Immutable { >toSeq : () => this concat(...collections: Array>): Seq.Keyed; ->concat : { (...collections: Iterable<[KC, VC]>[]): Keyed; (...collections: { [key: string]: C; }[]): Keyed; } +>concat : { (...collections: Array>): Seq.Keyed; (...collections: { [key: string]: C; }[]): Keyed; } >collections : Iterable<[KC, VC]>[] >Seq : any concat(...collections: Array<{[key: string]: C}>): Seq.Keyed; ->concat : { (...collections: Iterable<[KC, VC]>[]): Keyed; (...collections: { [key: string]: C; }[]): Keyed; } +>concat : { (...collections: Iterable<[KC, VC]>[]): Keyed; (...collections: { [key: string]: C; }[]): Seq.Keyed; } >collections : { [key: string]: C; }[] >key : string >Seq : any map(mapper: (value: V, key: K, iter: this) => M, context?: any): Seq.Keyed; ->map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Keyed +>map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Seq.Keyed >mapper : (value: V, key: K, iter: this) => M >value : V >key : K @@ -1201,7 +1201,7 @@ declare module Immutable { >Seq : any mapKeys(mapper: (key: K, value: V, iter: this) => M, context?: any): Seq.Keyed; ->mapKeys : (mapper: (key: K, value: V, iter: this) => M, context?: any) => Keyed +>mapKeys : (mapper: (key: K, value: V, iter: this) => M, context?: any) => Seq.Keyed >mapper : (key: K, value: V, iter: this) => M >key : K >value : V @@ -1210,7 +1210,7 @@ declare module Immutable { >Seq : any mapEntries(mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any): Seq.Keyed; ->mapEntries : (mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any) => Keyed +>mapEntries : (mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any) => Seq.Keyed >mapper : (entry: [K, V], index: number, iter: this) => [KM, VM] >entry : [K, V] >index : number @@ -1219,7 +1219,7 @@ declare module Immutable { >Seq : any flatMap(mapper: (value: V, key: K, iter: this) => Iterable, context?: any): Seq.Keyed; ->flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Keyed +>flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Seq.Keyed >mapper : (value: V, key: K, iter: this) => Iterable >value : V >key : K @@ -1228,7 +1228,7 @@ declare module Immutable { >Seq : any filter(predicate: (value: V, key: K, iter: this) => value is F, context?: any): Seq.Keyed; ->filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } +>filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Seq.Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } >predicate : (value: V, key: K, iter: this) => value is F >value : V >key : K @@ -1248,7 +1248,7 @@ declare module Immutable { >Indexed : typeof Indexed function of(...values: Array): Seq.Indexed; ->of : (...values: T[]) => Indexed +>of : (...values: Array) => Seq.Indexed >values : T[] >Seq : any } @@ -1269,21 +1269,21 @@ declare module Immutable { >Collection : typeof Collection toJS(): Array; ->toJS : () => any[] +>toJS : () => Array toJSON(): Array; ->toJSON : () => T[] +>toJSON : () => Array toSeq(): this; >toSeq : () => this concat(...valuesOrCollections: Array | C>): Seq.Indexed; ->concat : (...valuesOrCollections: (C | Iterable)[]) => Indexed +>concat : (...valuesOrCollections: Array | C>) => Seq.Indexed >valuesOrCollections : (C | Iterable)[] >Seq : any map(mapper: (value: T, key: number, iter: this) => M, context?: any): Seq.Indexed; ->map : (mapper: (value: T, key: number, iter: this) => M, context?: any) => Indexed +>map : (mapper: (value: T, key: number, iter: this) => M, context?: any) => Seq.Indexed >mapper : (value: T, key: number, iter: this) => M >value : T >key : number @@ -1292,7 +1292,7 @@ declare module Immutable { >Seq : any flatMap(mapper: (value: T, key: number, iter: this) => Iterable, context?: any): Seq.Indexed; ->flatMap : (mapper: (value: T, key: number, iter: this) => Iterable, context?: any) => Indexed +>flatMap : (mapper: (value: T, key: number, iter: this) => Iterable, context?: any) => Seq.Indexed >mapper : (value: T, key: number, iter: this) => Iterable >value : T >key : number @@ -1301,7 +1301,7 @@ declare module Immutable { >Seq : any filter(predicate: (value: T, index: number, iter: this) => value is F, context?: any): Seq.Indexed; ->filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } +>filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Seq.Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } >predicate : (value: T, index: number, iter: this) => value is F >value : T >index : number @@ -1321,7 +1321,7 @@ declare module Immutable { >Set : typeof Set function of(...values: Array): Seq.Set; ->of : (...values: T[]) => Set +>of : (...values: Array) => Seq.Set >values : T[] >Seq : any } @@ -1342,21 +1342,21 @@ declare module Immutable { >Collection : typeof Collection toJS(): Array; ->toJS : () => any[] +>toJS : () => Array toJSON(): Array; ->toJSON : () => T[] +>toJSON : () => Array toSeq(): this; >toSeq : () => this concat(...valuesOrCollections: Array | C>): Seq.Set; ->concat : (...valuesOrCollections: (C | Iterable)[]) => Set +>concat : (...valuesOrCollections: Array | C>) => Seq.Set >valuesOrCollections : (C | Iterable)[] >Seq : any map(mapper: (value: T, key: never, iter: this) => M, context?: any): Seq.Set; ->map : (mapper: (value: T, key: never, iter: this) => M, context?: any) => Set +>map : (mapper: (value: T, key: never, iter: this) => M, context?: any) => Seq.Set >mapper : (value: T, key: never, iter: this) => M >value : T >key : never @@ -1365,7 +1365,7 @@ declare module Immutable { >Seq : any flatMap(mapper: (value: T, key: never, iter: this) => Iterable, context?: any): Seq.Set; ->flatMap : (mapper: (value: T, key: never, iter: this) => Iterable, context?: any) => Set +>flatMap : (mapper: (value: T, key: never, iter: this) => Iterable, context?: any) => Seq.Set >mapper : (value: T, key: never, iter: this) => Iterable >value : T >key : never @@ -1374,7 +1374,7 @@ declare module Immutable { >Seq : any filter(predicate: (value: T, key: never, iter: this) => value is F, context?: any): Seq.Set; ->filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } +>filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Seq.Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } >predicate : (value: T, key: never, iter: this) => value is F >value : T >key : never @@ -1493,12 +1493,12 @@ declare module Immutable { export module Keyed {} export function Keyed(collection: Iterable<[K, V]>): Collection.Keyed; ->Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Keyed; } +>Keyed : { (collection: Iterable<[K, V]>): Collection.Keyed; (obj: { [key: string]: V; }): Keyed; } >collection : Iterable<[K, V]> >Collection : any export function Keyed(obj: {[key: string]: V}): Collection.Keyed; ->Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Keyed; } +>Keyed : { (collection: Iterable<[K, V]>): Keyed; (obj: { [key: string]: V; }): Collection.Keyed; } >obj : { [key: string]: V; } >key : string >Collection : any @@ -1520,18 +1520,18 @@ declare module Immutable { >flip : () => this concat(...collections: Array>): Collection.Keyed; ->concat : { (...collections: Iterable<[KC, VC]>[]): Keyed; (...collections: { [key: string]: C; }[]): Keyed; } +>concat : { (...collections: Array>): Collection.Keyed; (...collections: { [key: string]: C; }[]): Keyed; } >collections : Iterable<[KC, VC]>[] >Collection : any concat(...collections: Array<{[key: string]: C}>): Collection.Keyed; ->concat : { (...collections: Iterable<[KC, VC]>[]): Keyed; (...collections: { [key: string]: C; }[]): Keyed; } +>concat : { (...collections: Iterable<[KC, VC]>[]): Keyed; (...collections: { [key: string]: C; }[]): Collection.Keyed; } >collections : { [key: string]: C; }[] >key : string >Collection : any map(mapper: (value: V, key: K, iter: this) => M, context?: any): Collection.Keyed; ->map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Keyed +>map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Collection.Keyed >mapper : (value: V, key: K, iter: this) => M >value : V >key : K @@ -1540,7 +1540,7 @@ declare module Immutable { >Collection : any mapKeys(mapper: (key: K, value: V, iter: this) => M, context?: any): Collection.Keyed; ->mapKeys : (mapper: (key: K, value: V, iter: this) => M, context?: any) => Keyed +>mapKeys : (mapper: (key: K, value: V, iter: this) => M, context?: any) => Collection.Keyed >mapper : (key: K, value: V, iter: this) => M >key : K >value : V @@ -1549,7 +1549,7 @@ declare module Immutable { >Collection : any mapEntries(mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any): Collection.Keyed; ->mapEntries : (mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any) => Keyed +>mapEntries : (mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any) => Collection.Keyed >mapper : (entry: [K, V], index: number, iter: this) => [KM, VM] >entry : [K, V] >index : number @@ -1558,7 +1558,7 @@ declare module Immutable { >Collection : any flatMap(mapper: (value: V, key: K, iter: this) => Iterable, context?: any): Collection.Keyed; ->flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Keyed +>flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Collection.Keyed >mapper : (value: V, key: K, iter: this) => Iterable >value : V >key : K @@ -1567,7 +1567,7 @@ declare module Immutable { >Collection : any filter(predicate: (value: V, key: K, iter: this) => value is F, context?: any): Collection.Keyed; ->filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } +>filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Collection.Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } >predicate : (value: V, key: K, iter: this) => value is F >value : V >key : K @@ -1591,16 +1591,16 @@ declare module Immutable { } export module Indexed {} export function Indexed(collection: Iterable): Collection.Indexed; ->Indexed : (collection: Iterable) => Indexed +>Indexed : (collection: Iterable) => Collection.Indexed >collection : Iterable >Collection : any export interface Indexed extends Collection { toJS(): Array; ->toJS : () => any[] +>toJS : () => Array toJSON(): Array; ->toJSON : () => T[] +>toJSON : () => Array // Reading values get(index: number, notSetValue: NSV): T | NSV; @@ -1609,7 +1609,7 @@ declare module Immutable { >notSetValue : NSV get(index: number): T | undefined; ->get : { (index: number, notSetValue: NSV): T | NSV; (index: number): T; } +>get : { (index: number, notSetValue: NSV): T | NSV; (index: number): T | undefined; } >index : number // Conversion to Seq @@ -1627,22 +1627,22 @@ declare module Immutable { >separator : T interleave(...collections: Array>): this; ->interleave : (...collections: Collection[]) => this +>interleave : (...collections: Array>) => this >collections : Collection[] splice(index: number, removeNum: number, ...values: Array): this; ->splice : (index: number, removeNum: number, ...values: T[]) => this +>splice : (index: number, removeNum: number, ...values: Array) => this >index : number >removeNum : number >values : T[] zip(...collections: Array>): Collection.Indexed; ->zip : (...collections: Collection[]) => Indexed +>zip : (...collections: Array>) => Collection.Indexed >collections : Collection[] >Collection : any zipWith(zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Collection.Indexed; ->zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Indexed; (zipper: (...any: any[]) => Z, ...collections: Collection[]): Indexed; } +>zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Collection.Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Indexed; (zipper: (...any: any[]) => Z, ...collections: Collection[]): Indexed; } >zipper : (value: T, otherValue: U) => Z >value : T >otherValue : U @@ -1650,7 +1650,7 @@ declare module Immutable { >Collection : any zipWith(zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; ->zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Indexed; (zipper: (...any: any[]) => Z, ...collections: Collection[]): Indexed; } +>zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; (zipper: (...any: any[]) => Z, ...collections: Collection[]): Indexed; } >zipper : (value: T, otherValue: U, thirdValue: V) => Z >value : T >otherValue : U @@ -1660,8 +1660,8 @@ declare module Immutable { >Collection : any zipWith(zipper: (...any: Array) => Z, ...collections: Array>): Collection.Indexed; ->zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Indexed; (zipper: (...any: any[]) => Z, ...collections: Collection[]): Indexed; } ->zipper : (...any: any[]) => Z +>zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Indexed; (zipper: (...any: Array) => Z, ...collections: Array>): Collection.Indexed; } +>zipper : (...any: Array) => Z >any : any[] >collections : Collection[] >Collection : any @@ -1693,12 +1693,12 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): Collection.Indexed; ->concat : (...valuesOrCollections: (C | Iterable)[]) => Indexed +>concat : (...valuesOrCollections: Array | C>) => Collection.Indexed >valuesOrCollections : (C | Iterable)[] >Collection : any map(mapper: (value: T, key: number, iter: this) => M, context?: any): Collection.Indexed; ->map : (mapper: (value: T, key: number, iter: this) => M, context?: any) => Indexed +>map : (mapper: (value: T, key: number, iter: this) => M, context?: any) => Collection.Indexed >mapper : (value: T, key: number, iter: this) => M >value : T >key : number @@ -1707,7 +1707,7 @@ declare module Immutable { >Collection : any flatMap(mapper: (value: T, key: number, iter: this) => Iterable, context?: any): Collection.Indexed; ->flatMap : (mapper: (value: T, key: number, iter: this) => Iterable, context?: any) => Indexed +>flatMap : (mapper: (value: T, key: number, iter: this) => Iterable, context?: any) => Collection.Indexed >mapper : (value: T, key: number, iter: this) => Iterable >value : T >key : number @@ -1716,7 +1716,7 @@ declare module Immutable { >Collection : any filter(predicate: (value: T, index: number, iter: this) => value is F, context?: any): Collection.Indexed; ->filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } +>filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Collection.Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } >predicate : (value: T, index: number, iter: this) => value is F >value : T >index : number @@ -1740,16 +1740,16 @@ declare module Immutable { } export module Set {} export function Set(collection: Iterable): Collection.Set; ->Set : (collection: Iterable) => Set +>Set : (collection: Iterable) => Collection.Set >collection : Iterable >Collection : any export interface Set extends Collection { toJS(): Array; ->toJS : () => any[] +>toJS : () => Array toJSON(): Array; ->toJSON : () => T[] +>toJSON : () => Array toSeq(): Seq.Set; >toSeq : () => Seq.Set @@ -1757,12 +1757,12 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): Collection.Set; ->concat : (...valuesOrCollections: (C | Iterable)[]) => Set +>concat : (...valuesOrCollections: Array | C>) => Collection.Set >valuesOrCollections : (C | Iterable)[] >Collection : any map(mapper: (value: T, key: never, iter: this) => M, context?: any): Collection.Set; ->map : (mapper: (value: T, key: never, iter: this) => M, context?: any) => Set +>map : (mapper: (value: T, key: never, iter: this) => M, context?: any) => Collection.Set >mapper : (value: T, key: never, iter: this) => M >value : T >key : never @@ -1771,7 +1771,7 @@ declare module Immutable { >Collection : any flatMap(mapper: (value: T, key: never, iter: this) => Iterable, context?: any): Collection.Set; ->flatMap : (mapper: (value: T, key: never, iter: this) => Iterable, context?: any) => Set +>flatMap : (mapper: (value: T, key: never, iter: this) => Iterable, context?: any) => Collection.Set >mapper : (value: T, key: never, iter: this) => Iterable >value : T >key : never @@ -1780,7 +1780,7 @@ declare module Immutable { >Collection : any filter(predicate: (value: T, key: never, iter: this) => value is F, context?: any): Collection.Set; ->filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } +>filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Collection.Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } >predicate : (value: T, key: never, iter: this) => value is F >value : T >key : never @@ -1834,7 +1834,7 @@ declare module Immutable { >notSetValue : NSV get(key: K): V | undefined; ->get : { (key: K, notSetValue: NSV): V | NSV; (key: K): V; } +>get : { (key: K, notSetValue: NSV): V | NSV; (key: K): V | undefined; } >key : K has(key: K): boolean; @@ -1850,10 +1850,10 @@ declare module Immutable { >value : V first(): V | undefined; ->first : () => V +>first : () => V | undefined last(): V | undefined; ->last : () => V +>last : () => V | undefined // Reading deep values getIn(searchKeyPath: Iterable, notSetValue?: any): any; @@ -1881,7 +1881,7 @@ declare module Immutable { >key : string toArray(): Array; ->toArray : () => V[] +>toArray : () => Array toObject(): { [key: string]: V }; >toObject : () => { [key: string]: V; } @@ -2077,7 +2077,7 @@ declare module Immutable { // Combination concat(...valuesOrCollections: Array): Collection; ->concat : (...valuesOrCollections: any[]) => Collection +>concat : (...valuesOrCollections: Array) => Collection >valuesOrCollections : any[] flatten(depth?: number): Collection; @@ -2177,7 +2177,7 @@ declare module Immutable { // Search for value find(predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V): V | undefined; ->find : (predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V) => V +>find : (predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V) => V | undefined >predicate : (value: V, key: K, iter: this) => boolean >value : V >key : K @@ -2186,7 +2186,7 @@ declare module Immutable { >notSetValue : V findLast(predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V): V | undefined; ->findLast : (predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V) => V +>findLast : (predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V) => V | undefined >predicate : (value: V, key: K, iter: this) => boolean >value : V >key : K @@ -2195,7 +2195,7 @@ declare module Immutable { >notSetValue : V findEntry(predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V): [K, V] | undefined; ->findEntry : (predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V) => [K, V] +>findEntry : (predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V) => [K, V] | undefined >predicate : (value: V, key: K, iter: this) => boolean >value : V >key : K @@ -2204,7 +2204,7 @@ declare module Immutable { >notSetValue : V findLastEntry(predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V): [K, V] | undefined; ->findLastEntry : (predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V) => [K, V] +>findLastEntry : (predicate: (value: V, key: K, iter: this) => boolean, context?: any, notSetValue?: V) => [K, V] | undefined >predicate : (value: V, key: K, iter: this) => boolean >value : V >key : K @@ -2213,7 +2213,7 @@ declare module Immutable { >notSetValue : V findKey(predicate: (value: V, key: K, iter: this) => boolean, context?: any): K | undefined; ->findKey : (predicate: (value: V, key: K, iter: this) => boolean, context?: any) => K +>findKey : (predicate: (value: V, key: K, iter: this) => boolean, context?: any) => K | undefined >predicate : (value: V, key: K, iter: this) => boolean >value : V >key : K @@ -2221,7 +2221,7 @@ declare module Immutable { >context : any findLastKey(predicate: (value: V, key: K, iter: this) => boolean, context?: any): K | undefined; ->findLastKey : (predicate: (value: V, key: K, iter: this) => boolean, context?: any) => K +>findLastKey : (predicate: (value: V, key: K, iter: this) => boolean, context?: any) => K | undefined >predicate : (value: V, key: K, iter: this) => boolean >value : V >key : K @@ -2229,21 +2229,21 @@ declare module Immutable { >context : any keyOf(searchValue: V): K | undefined; ->keyOf : (searchValue: V) => K +>keyOf : (searchValue: V) => K | undefined >searchValue : V lastKeyOf(searchValue: V): K | undefined; ->lastKeyOf : (searchValue: V) => K +>lastKeyOf : (searchValue: V) => K | undefined >searchValue : V max(comparator?: (valueA: V, valueB: V) => number): V | undefined; ->max : (comparator?: (valueA: V, valueB: V) => number) => V +>max : (comparator?: (valueA: V, valueB: V) => number) => V | undefined >comparator : (valueA: V, valueB: V) => number >valueA : V >valueB : V maxBy(comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number): V | undefined; ->maxBy : (comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number) => V +>maxBy : (comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number) => V | undefined >comparatorValueMapper : (value: V, key: K, iter: this) => C >value : V >key : K @@ -2253,13 +2253,13 @@ declare module Immutable { >valueB : C min(comparator?: (valueA: V, valueB: V) => number): V | undefined; ->min : (comparator?: (valueA: V, valueB: V) => number) => V +>min : (comparator?: (valueA: V, valueB: V) => number) => V | undefined >comparator : (valueA: V, valueB: V) => number >valueA : V >valueB : V minBy(comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number): V | undefined; ->minBy : (comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number) => V +>minBy : (comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number) => V | undefined >comparatorValueMapper : (value: V, key: K, iter: this) => C >value : V >key : K diff --git a/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types b/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types index 9447ce3d531..bf0370dd54f 100644 --- a/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types +++ b/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types @@ -53,7 +53,7 @@ export type NewChannel = Pick & export function makeNewChannel(type: T): NewChannel> { ->makeNewChannel : (type: T) => NewChannel | ChannelOfType> +>makeNewChannel : (type: T) => NewChannel> >type : T const localChannelId = `blahblahblah`; diff --git a/tests/baselines/reference/complicatedIndexesOfIntersectionsAreInferencable.types b/tests/baselines/reference/complicatedIndexesOfIntersectionsAreInferencable.types index 55d6368e292..c10b5aa4f8e 100644 --- a/tests/baselines/reference/complicatedIndexesOfIntersectionsAreInferencable.types +++ b/tests/baselines/reference/complicatedIndexesOfIntersectionsAreInferencable.types @@ -12,7 +12,7 @@ interface FormikConfig { } declare function Func( ->Func : (x: string extends keyof ExtraProps | "validate" | "initialValues" ? Readonly & ExtraProps> : Pick & ExtraProps>, Exclude | "validate" | "initialValues"> & Partial & ExtraProps>, "validateOnChange" | Extract>>) => void +>Func : (x: (string extends "validate" | "initialValues" | keyof ExtraProps ? Readonly & ExtraProps> : Pick & ExtraProps>, "validate" | "initialValues" | Exclude> & Partial & ExtraProps>, "validateOnChange" | Extract>>)) => void x: (string extends "validate" | "initialValues" | keyof ExtraProps >x : string extends keyof ExtraProps | "validate" | "initialValues" ? Readonly & ExtraProps> : Pick & ExtraProps>, Exclude | "validate" | "initialValues"> & Partial & ExtraProps>, "validateOnChange" | Extract>> diff --git a/tests/baselines/reference/complicatedPrivacy.types b/tests/baselines/reference/complicatedPrivacy.types index 1349c88bf7d..c0b39f0ca88 100644 --- a/tests/baselines/reference/complicatedPrivacy.types +++ b/tests/baselines/reference/complicatedPrivacy.types @@ -43,7 +43,7 @@ module m1 { } export function f2(arg1: { x?: C1, y: number }) { ->f2 : (arg1: { x?: C1; y: number; }) => void +>f2 : (arg1: { x?: C1; y: number;}) => void >arg1 : { x?: C1; y: number; } >x : C1 >y : number @@ -61,7 +61,7 @@ module m1 { } export function f4(arg1: ->f4 : (arg1: {}) => void +>f4 : (arg1: { [number]: C1;}) => void >arg1 : {} { [number]: C1; // Used to be indexer, now it is a computed property diff --git a/tests/baselines/reference/computedPropertiesInDestructuring1.types b/tests/baselines/reference/computedPropertiesInDestructuring1.types index 5e5405d1ae8..008ef712203 100644 --- a/tests/baselines/reference/computedPropertiesInDestructuring1.types +++ b/tests/baselines/reference/computedPropertiesInDestructuring1.types @@ -49,32 +49,32 @@ let [{[foo2()]: bar5}] = [{bar: "bar"}]; >"bar" : "bar" function f1({["bar"]: x}: { bar: number }) {} ->f1 : ({ ["bar"]: x }: { bar: number; }) => void +>f1 : ({ ["bar"]: x }: { bar: number;}) => void >"bar" : "bar" >x : number >bar : number function f2({[foo]: x}: { bar: number }) {} ->f2 : ({ [foo]: x }: { bar: number; }) => void +>f2 : ({ [foo]: x }: { bar: number;}) => void >foo : string >x : any >bar : number function f3({[foo2()]: x}: { bar: number }) {} ->f3 : ({ [foo2()]: x }: { bar: number; }) => void +>f3 : ({ [foo2()]: x }: { bar: number;}) => void >foo2() : string >foo2 : () => string >x : any >bar : number function f4([{[foo]: x}]: [{ bar: number }]) {} ->f4 : ([{ [foo]: x }]: [{ bar: number; }]) => void +>f4 : ([{ [foo]: x }]: [{ bar: number;}]) => void >foo : string >x : any >bar : number function f5([{[foo2()]: x}]: [{ bar: number }]) {} ->f5 : ([{ [foo2()]: x }]: [{ bar: number; }]) => void +>f5 : ([{ [foo2()]: x }]: [{ bar: number;}]) => void >foo2() : string >foo2 : () => string >x : any diff --git a/tests/baselines/reference/computedPropertiesInDestructuring1_ES6.types b/tests/baselines/reference/computedPropertiesInDestructuring1_ES6.types index 9efcf7beaf3..e91f37c3df8 100644 --- a/tests/baselines/reference/computedPropertiesInDestructuring1_ES6.types +++ b/tests/baselines/reference/computedPropertiesInDestructuring1_ES6.types @@ -56,32 +56,32 @@ let [{[foo2()]: bar5}] = [{bar: "bar"}]; >"bar" : "bar" function f1({["bar"]: x}: { bar: number }) {} ->f1 : ({ ["bar"]: x }: { bar: number; }) => void +>f1 : ({ ["bar"]: x }: { bar: number;}) => void >"bar" : "bar" >x : number >bar : number function f2({[foo]: x}: { bar: number }) {} ->f2 : ({ [foo]: x }: { bar: number; }) => void +>f2 : ({ [foo]: x }: { bar: number;}) => void >foo : string >x : any >bar : number function f3({[foo2()]: x}: { bar: number }) {} ->f3 : ({ [foo2()]: x }: { bar: number; }) => void +>f3 : ({ [foo2()]: x }: { bar: number;}) => void >foo2() : string >foo2 : () => string >x : any >bar : number function f4([{[foo]: x}]: [{ bar: number }]) {} ->f4 : ([{ [foo]: x }]: [{ bar: number; }]) => void +>f4 : ([{ [foo]: x }]: [{ bar: number;}]) => void >foo : string >x : any >bar : number function f5([{[foo2()]: x}]: [{ bar: number }]) {} ->f5 : ([{ [foo2()]: x }]: [{ bar: number; }]) => void +>f5 : ([{ [foo2()]: x }]: [{ bar: number;}]) => void >foo2() : string >foo2 : () => string >x : any diff --git a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.types b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.types index d00eb5f77b9..8d9861dfb92 100644 --- a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.types +++ b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.types @@ -110,7 +110,7 @@ var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX >propertyX2 : string var result61: (t: X) => number| string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; ->result61 : (t: X) => string | number +>result61 : (t: X) => number | string >t : X >true ? (m) => m.propertyX1 : (n) => n.propertyX2 : ((m: X) => number) | ((n: X) => string) >true : true diff --git a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types index 3109b19bacf..e60be08b85d 100644 --- a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types +++ b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types @@ -90,12 +90,12 @@ export enum PubSubRecordIsStoredInRedisAsA { >storedAs : any storedAsJsonEncodedRedisString: () => BuildPubSubRecordType; ->storedAsJsonEncodedRedisString : () => BuildPubSubRecordType +>storedAsJsonEncodedRedisString : () => BuildPubSubRecordType >storedAs : PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString >PubSubRecordIsStoredInRedisAsA : any storedRedisHash: () => BuildPubSubRecordType; ->storedRedisHash : () => BuildPubSubRecordType +>storedRedisHash : () => BuildPubSubRecordType >storedAs : PubSubRecordIsStoredInRedisAsA.redisHash >PubSubRecordIsStoredInRedisAsA : any } @@ -286,12 +286,12 @@ export enum PubSubRecordIsStoredInRedisAsA { >maxMsToWaitBeforePublishing : any maxMsToWaitBeforePublishing: (t: number) => BuildPubSubRecordType, ->maxMsToWaitBeforePublishing : (t: number) => BuildPubSubRecordType +>maxMsToWaitBeforePublishing : (t: number) => BuildPubSubRecordType >t : number >maxMsToWaitBeforePublishing : number neverDelayPublishing: () => BuildPubSubRecordType, ->neverDelayPublishing : () => BuildPubSubRecordType +>neverDelayPublishing : () => BuildPubSubRecordType >maxMsToWaitBeforePublishing : 0 } diff --git a/tests/baselines/reference/conditionalTypes1.types b/tests/baselines/reference/conditionalTypes1.types index 2d5af28ca5e..905318e626d 100644 --- a/tests/baselines/reference/conditionalTypes1.types +++ b/tests/baselines/reference/conditionalTypes1.types @@ -135,7 +135,7 @@ type T15 = Extract; // never >q : "a" declare function f5(p: K): Extract; ->f5 : (p: K) => Extract +>f5 : (p: K) => Extract >p : K >k : K @@ -245,7 +245,7 @@ type T31 = NonFunctionProperties; >T31 : Pick function f7(x: T, y: FunctionProperties, z: NonFunctionProperties) { ->f7 : (x: T, y: Pick, z: Pick) => void +>f7 : (x: T, y: FunctionProperties, z: NonFunctionProperties) => void >x : T >y : Pick >z : Pick @@ -282,7 +282,7 @@ function f7(x: T, y: FunctionProperties, z: NonFunctionProperties) { } function f8(x: keyof T, y: FunctionPropertyNames, z: NonFunctionPropertyNames) { ->f8 : (x: keyof T, y: { [K in keyof T]: T[K] extends Function ? K : never; }[keyof T], z: { [K in keyof T]: T[K] extends Function ? never : K; }[keyof T]) => void +>f8 : (x: keyof T, y: FunctionPropertyNames, z: NonFunctionPropertyNames) => void >x : keyof T >y : { [K in keyof T]: T[K] extends Function ? K : never; }[keyof T] >z : { [K in keyof T]: T[K] extends Function ? never : K; }[keyof T] @@ -334,7 +334,7 @@ type DeepReadonlyObject = { }; function f10(part: DeepReadonly) { ->f10 : (part: DeepReadonlyObject) => void +>f10 : (part: DeepReadonly) => void >part : DeepReadonlyObject let name: string = part.name; diff --git a/tests/baselines/reference/conditionalTypes2.types b/tests/baselines/reference/conditionalTypes2.types index f23d61aa885..3493d805b31 100644 --- a/tests/baselines/reference/conditionalTypes2.types +++ b/tests/baselines/reference/conditionalTypes2.types @@ -149,13 +149,13 @@ type Bar = { bar: string }; >bar : string declare function fooBar(x: { foo: string, bar: string }): void; ->fooBar : (x: { foo: string; bar: string; }) => void +>fooBar : (x: { foo: string; bar: string;}) => void >x : { foo: string; bar: string; } >foo : string >bar : string declare function fooBat(x: { foo: string, bat: string }): void; ->fooBat : (x: { foo: string; bat: string; }) => void +>fooBat : (x: { foo: string; bat: string;}) => void >x : { foo: string; bat: string; } >foo : string >bat : string @@ -449,7 +449,7 @@ const w: What = { a: 4 }; // Repro from #33568 declare function save(_response: IRootResponse): void; ->save : (_response: IResponse) => void +>save : (_response: IRootResponse) => void >_response : IResponse exportCommand(save); @@ -488,7 +488,7 @@ declare type IResponse = { >IResponse : IResponse sendValue(name: keyof GetAllPropertiesOfType): void; ->sendValue : (name: { [PropertyName in Extract]: Required[PropertyName] extends string ? PropertyName : never; }[Extract]) => void +>sendValue : (name: keyof GetAllPropertiesOfType) => void >name : { [PropertyName in Extract]: Required[PropertyName] extends string ? PropertyName : never; }[Extract] }; @@ -509,7 +509,7 @@ declare type GetAllPropertiesOfType = Pick< // Repro from #33568 declare function ff(x: Foo3): void; ->ff : (x: { x: string; }) => void +>ff : (x: Foo3) => void >x : { x: string; } declare function gg(f: (x: Foo3) => void): void; diff --git a/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types b/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types index 27ac357703a..9aa70c92212 100644 --- a/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types +++ b/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types @@ -67,7 +67,7 @@ const fn5 = ( >params : Pick> function fn6(x: ExcludeWithDefault) { ->fn6 : (x: ExcludeWithDefault) => void +>fn6 : (x: ExcludeWithDefault) => void >x : ExcludeWithDefault var y: T = x; @@ -91,7 +91,7 @@ const fn7 = ( >params : Pick> function fn8(x: ExtractWithDefault) { ->fn8 : (x: ExtractWithDefault) => void +>fn8 : (x: ExtractWithDefault) => void >x : ExtractWithDefault var y: T = x; diff --git a/tests/baselines/reference/consistentAliasVsNonAliasRecordBehavior.types b/tests/baselines/reference/consistentAliasVsNonAliasRecordBehavior.types index b37089039e1..a0e03b1de32 100644 --- a/tests/baselines/reference/consistentAliasVsNonAliasRecordBehavior.types +++ b/tests/baselines/reference/consistentAliasVsNonAliasRecordBehavior.types @@ -10,7 +10,7 @@ type Record2 = { }; function defaultRecord(x: Record<'a', string>, y: Record) { ->defaultRecord : (x: Record<"a", string>, y: Record) => void +>defaultRecord : (x: Record<'a', string>, y: Record) => void >x : Record<"a", string> >y : Record @@ -21,7 +21,7 @@ function defaultRecord(x: Record<'a', string>, y: Record) { } function customRecord(x: Record2<'a', string>, y: Record2) { ->customRecord : (x: Record2<"a", string>, y: Record2) => void +>customRecord : (x: Record2<'a', string>, y: Record2) => void >x : Record2<"a", string> >y : Record2 @@ -32,7 +32,7 @@ function customRecord(x: Record2<'a', string>, y: Record2) { } function mixed1(x: Record2<'a', string>, y: Record) { ->mixed1 : (x: Record2<"a", string>, y: Record) => void +>mixed1 : (x: Record2<'a', string>, y: Record) => void >x : Record2<"a", string> >y : Record @@ -43,7 +43,7 @@ function mixed1(x: Record2<'a', string>, y: Record) { } function mixed2(x: Record<'a', string>, y: Record2) { ->mixed2 : (x: Record<"a", string>, y: Record2) => void +>mixed2 : (x: Record<'a', string>, y: Record2) => void >x : Record<"a", string> >y : Record2 @@ -54,7 +54,7 @@ function mixed2(x: Record<'a', string>, y: Record2) { } function defaultRecord2(x: Record<'a', T>, y: Record) { ->defaultRecord2 : (x: Record<"a", T>, y: Record) => void +>defaultRecord2 : (x: Record<'a', T>, y: Record) => void >x : Record<"a", T> >y : Record @@ -65,7 +65,7 @@ function defaultRecord2(x: Record<'a', T>, y: Record) { } function customRecord2(x: Record2<'a', T>, y: Record2) { ->customRecord2 : (x: Record2<"a", T>, y: Record2) => void +>customRecord2 : (x: Record2<'a', T>, y: Record2) => void >x : Record2<"a", T> >y : Record2 @@ -76,7 +76,7 @@ function customRecord2(x: Record2<'a', T>, y: Record2) { } function mixed3(x: Record2<'a', T>, y: Record) { ->mixed3 : (x: Record2<"a", T>, y: Record) => void +>mixed3 : (x: Record2<'a', T>, y: Record) => void >x : Record2<"a", T> >y : Record @@ -87,7 +87,7 @@ function mixed3(x: Record2<'a', T>, y: Record) { } function mixed4(x: Record<'a', T>, y: Record2) { ->mixed4 : (x: Record<"a", T>, y: Record2) => void +>mixed4 : (x: Record<'a', T>, y: Record2) => void >x : Record<"a", T> >y : Record2 diff --git a/tests/baselines/reference/constEnum3.types b/tests/baselines/reference/constEnum3.types index d5e69ae5a5e..674a88248bd 100644 --- a/tests/baselines/reference/constEnum3.types +++ b/tests/baselines/reference/constEnum3.types @@ -13,7 +13,7 @@ function f1(f: TestType) { } >f : TestType function f2(f: TestTypeStr) { } ->f2 : (f: "foo" | "bar") => void +>f2 : (f: TestTypeStr) => void >f : "foo" | "bar" f1(TestType.foo) diff --git a/tests/baselines/reference/constEnums.types b/tests/baselines/reference/constEnums.types index fc3caf5514d..36cb50a2aab 100644 --- a/tests/baselines/reference/constEnums.types +++ b/tests/baselines/reference/constEnums.types @@ -545,7 +545,7 @@ function foo(x: Enum1) { } function bar(e: A.B.C.E): number { ->bar : (e: I) => number +>bar : (e: A.B.C.E) => number >e : I >A : any >B : any diff --git a/tests/baselines/reference/constantOverloadFunction.types b/tests/baselines/reference/constantOverloadFunction.types index 10d05315ebd..458fdbae6f3 100644 --- a/tests/baselines/reference/constantOverloadFunction.types +++ b/tests/baselines/reference/constantOverloadFunction.types @@ -19,15 +19,15 @@ class Derived3 extends Base { biz() { } } >biz : () => void function foo(tagName: 'canvas'): Derived1; ->foo : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } +>foo : { (tagName: 'canvas'): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } >tagName : "canvas" function foo(tagName: 'div'): Derived2; ->foo : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } +>foo : { (tagName: "canvas"): Derived1; (tagName: 'div'): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } >tagName : "div" function foo(tagName: 'span'): Derived3; ->foo : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } +>foo : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; } >tagName : "span" function foo(tagName: string): Base; diff --git a/tests/baselines/reference/constantOverloadFunctionNoSubtypeError.types b/tests/baselines/reference/constantOverloadFunctionNoSubtypeError.types index b620d8b473a..52cb2aa1388 100644 --- a/tests/baselines/reference/constantOverloadFunctionNoSubtypeError.types +++ b/tests/baselines/reference/constantOverloadFunctionNoSubtypeError.types @@ -19,15 +19,15 @@ class Derived3 extends Base { biz() { } } >biz : () => void function foo(tagName: 'canvas'): Derived3; ->foo : { (tagName: "canvas"): Derived3; (tagName: "div"): Derived2; (tagName: "span"): Derived1; (tagName: number): Base; } +>foo : { (tagName: 'canvas'): Derived3; (tagName: "div"): Derived2; (tagName: "span"): Derived1; (tagName: number): Base; } >tagName : "canvas" function foo(tagName: 'div'): Derived2; ->foo : { (tagName: "canvas"): Derived3; (tagName: "div"): Derived2; (tagName: "span"): Derived1; (tagName: number): Base; } +>foo : { (tagName: "canvas"): Derived3; (tagName: 'div'): Derived2; (tagName: "span"): Derived1; (tagName: number): Base; } >tagName : "div" function foo(tagName: 'span'): Derived1; ->foo : { (tagName: "canvas"): Derived3; (tagName: "div"): Derived2; (tagName: "span"): Derived1; (tagName: number): Base; } +>foo : { (tagName: "canvas"): Derived3; (tagName: "div"): Derived2; (tagName: 'span'): Derived1; (tagName: number): Base; } >tagName : "span" function foo(tagName: number): Base; diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types index 08a687d8867..83ed9360110 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types @@ -76,7 +76,7 @@ interface A { // T >x : Derived[] a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -84,17 +84,17 @@ interface A { // T >bar : string a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[] +>a12 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] a13: new (x: Array, y: Array) => Array; ->a13 : new (x: Base[], y: Derived[]) => Derived[] +>a13 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived[] a14: new (x: { a: string; b: number }) => Object; ->a14 : new (x: { a: string; b: number; }) => Object +>a14 : new (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -202,10 +202,10 @@ interface I extends A { >r : T a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -221,12 +221,12 @@ interface I extends A { >y : T a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : new (x: Base[], y: T) => Derived[] +>a12 : new (x: Array, y: T) => Array >x : Base[] >y : T a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : new (x: Base[], y: T) => T +>a13 : new (x: Array, y: T) => T >x : Base[] >y : T diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types index 807a7fe6e3d..af85d788f6a 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types @@ -50,7 +50,7 @@ module Errors { >x : Base[] a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -58,7 +58,7 @@ module Errors { >bar : string a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[] +>a12 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] @@ -73,7 +73,7 @@ module Errors { }; a15: new (x: { a: string; b: number }) => number; ->a15 : new (x: { a: string; b: number; }) => number +>a15 : new (x: { a: string; b: number;}) => number >x : { a: string; b: number; } >a : string >b : number @@ -128,10 +128,10 @@ module Errors { interface I4 extends A { a8: new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; // error, type mismatch ->a8 : new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U +>a8 : new (x: (arg: T) => U, y: (arg2: { foo: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: number; }) => U +>y : (arg2: { foo: number;}) => U >arg2 : { foo: number; } >foo : number >r : T @@ -152,7 +152,7 @@ module Errors { interface I4E extends A { a12: new >(x: Array, y: Array) => T; // valid, no inferences for T, defaults to Array ->a12 : new (x: Base[], y: Base[]) => T +>a12 : new (x: Array, y: Array) => T >x : Base[] >y : Base[] } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types index 9296ce8295d..887919a15c5 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types @@ -77,7 +77,7 @@ interface A { // T >x : Derived[] a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -85,17 +85,17 @@ interface A { // T >bar : string a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[] +>a12 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] a13: new (x: Array, y: Array) => Array; ->a13 : new (x: Base[], y: Derived[]) => Derived[] +>a13 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived[] a14: new (x: { a: string; b: number }) => Object; ->a14 : new (x: { a: string; b: number; }) => Object +>a14 : new (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -152,10 +152,10 @@ interface I extends B { >r : T a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -171,12 +171,12 @@ interface I extends B { >y : T a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : new (x: Base[], y: T) => Derived[] +>a12 : new (x: Array, y: T) => Array >x : Base[] >y : T a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : new (x: Base[], y: T) => T +>a13 : new (x: Array, y: T) => T >x : Base[] >y : T diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types index 476fcb39951..f612a681965 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types @@ -107,7 +107,7 @@ interface I5 extends A { interface I7 extends A { a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>a11 : new (x: { foo: T;}, y: { foo: U; bar: U; }) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -117,7 +117,7 @@ interface I7 extends A { interface I9 extends A { a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[] +>a16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/constructorAsType.types b/tests/baselines/reference/constructorAsType.types index 55dc002907e..3d218edf104 100644 --- a/tests/baselines/reference/constructorAsType.types +++ b/tests/baselines/reference/constructorAsType.types @@ -1,6 +1,6 @@ === tests/cases/compiler/constructorAsType.ts === var Person:new () => {name: string;} = function () {return {name:"joe"};}; ->Person : new () => { name: string; } +>Person : new () => { name: string;} >name : string >function () {return {name:"joe"};} : () => { name: string; } >{name:"joe"} : { name: string; } @@ -8,7 +8,7 @@ var Person:new () => {name: string;} = function () {return {name:"joe"};}; >"joe" : "joe" var Person2:{new() : {name:string;};}; ->Person2 : new () => { name: string; } +>Person2 : new () => { name: string;} >name : string Person = Person2; diff --git a/tests/baselines/reference/contextSensitiveReturnTypeInference.types b/tests/baselines/reference/contextSensitiveReturnTypeInference.types index c0638e7b535..b2c53e124e3 100644 --- a/tests/baselines/reference/contextSensitiveReturnTypeInference.types +++ b/tests/baselines/reference/contextSensitiveReturnTypeInference.types @@ -63,7 +63,7 @@ test( >test : (getter: (deps: TDependencies, data: IData) => any, deps: TDependencies) => any (deps: typeof DEPS, data) => ({ ->(deps: typeof DEPS, data) => ({ fn1: function() { return deps.foo }, fn2: data.bar }) : (deps: { foo: number; }, data: IData) => { fn1: () => number; fn2: boolean; } +>(deps: typeof DEPS, data) => ({ fn1: function() { return deps.foo }, fn2: data.bar }) : (deps: typeof DEPS, data: IData) => { fn1: () => number; fn2: boolean; } >deps : { foo: number; } >DEPS : { foo: number; } >data : IData diff --git a/tests/baselines/reference/contextualTypeFromJSDoc.types b/tests/baselines/reference/contextualTypeFromJSDoc.types index f1121935d38..434163c4bae 100644 --- a/tests/baselines/reference/contextualTypeFromJSDoc.types +++ b/tests/baselines/reference/contextualTypeFromJSDoc.types @@ -22,7 +22,7 @@ const arr = [ /** @return {Array<[string, {x?:number, y?:number}]>} */ function f() { ->f : () => [string, { x?: number; y?: number; }][] +>f : () => Array<[string, { x?: number; y?: number;}]> return [ >[ ['a', { x: 1 }], ['b', { y: 2 }] ] : ([string, { x: number; }] | [string, { y: number; }])[] diff --git a/tests/baselines/reference/contextualTypeOfIndexedAccessParameter.types b/tests/baselines/reference/contextualTypeOfIndexedAccessParameter.types index e2fe48b76e2..5eb1f82c008 100644 --- a/tests/baselines/reference/contextualTypeOfIndexedAccessParameter.types +++ b/tests/baselines/reference/contextualTypeOfIndexedAccessParameter.types @@ -29,7 +29,7 @@ f("a", { }); function g< ->g : (x: ({ a: string; } & { b: string; })[K], y: string) => void +>g : (x: ({ a: string;} & { b: string;})[K], y: string) => void K extends "a" | "b">(x: ({ a: string } & { b: string })[K], y: string) { >x : ({ a: string; } & { b: string; })[K] diff --git a/tests/baselines/reference/contextualTypedSpecialAssignment.types b/tests/baselines/reference/contextualTypedSpecialAssignment.types index 830f20d9b2d..c2b7ae83cea 100644 --- a/tests/baselines/reference/contextualTypedSpecialAssignment.types +++ b/tests/baselines/reference/contextualTypedSpecialAssignment.types @@ -190,7 +190,7 @@ F.prototype = { // module.exports assignment /** @type {{ status: 'done', m(n: number): void }} */ module.exports = { ->module.exports = { status: "done", m(n) { }} : { status: "done"; m(n: number): void; } +>module.exports = { status: "done", m(n) { }} : { status: 'done'; m(n: number): void; } >module.exports : { status: "done"; m(n: number): void; } >module : { "\"tests/cases/conformance/salsa/mod\"": { status: "done"; m(n: number): void; }; } >exports : { status: "done"; m(n: number): void; } diff --git a/tests/baselines/reference/contextualTyping25.types b/tests/baselines/reference/contextualTyping25.types index 3c6442739a2..c7d958722ae 100644 --- a/tests/baselines/reference/contextualTyping25.types +++ b/tests/baselines/reference/contextualTyping25.types @@ -1,6 +1,6 @@ === tests/cases/compiler/contextualTyping25.ts === function foo(param:{id:number;}){}; foo(<{id:number;}>({})); ->foo : (param: { id: number; }) => void +>foo : (param: { id: number;}) => void >param : { id: number; } >id : number >foo(<{id:number;}>({})) : void diff --git a/tests/baselines/reference/contextualTyping26.types b/tests/baselines/reference/contextualTyping26.types index 65a089f6082..5c6b98e9db2 100644 --- a/tests/baselines/reference/contextualTyping26.types +++ b/tests/baselines/reference/contextualTyping26.types @@ -1,6 +1,6 @@ === tests/cases/compiler/contextualTyping26.ts === function foo(param:{id:number;}){}; foo(<{id:number;}>({})); ->foo : (param: { id: number; }) => void +>foo : (param: { id: number;}) => void >param : { id: number; } >id : number >foo(<{id:number;}>({})) : void diff --git a/tests/baselines/reference/contextualTyping27.types b/tests/baselines/reference/contextualTyping27.types index f668565e43d..7ab9a389dca 100644 --- a/tests/baselines/reference/contextualTyping27.types +++ b/tests/baselines/reference/contextualTyping27.types @@ -1,6 +1,6 @@ === tests/cases/compiler/contextualTyping27.ts === function foo(param:{id:number;}){}; foo(<{id:number;}>({})); ->foo : (param: { id: number; }) => void +>foo : (param: { id: number;}) => void >param : { id: number; } >id : number >foo(<{id:number;}>({})) : void diff --git a/tests/baselines/reference/contextualTypingOfOptionalMembers.types b/tests/baselines/reference/contextualTypingOfOptionalMembers.types index 8978cb86e07..b1d4190cb34 100644 --- a/tests/baselines/reference/contextualTypingOfOptionalMembers.types +++ b/tests/baselines/reference/contextualTypingOfOptionalMembers.types @@ -172,7 +172,7 @@ interface ActionsObjectOr { } declare function App4>(props: Options["actions"] & { state: State }): JSX.Element; ->App4 : >(props: (string & { state: State; }) | (Actions & { state: State; })) => JSX.Element +>App4 : >(props: Options["actions"] & { state: State;}) => JSX.Element >props : (string & { state: State; }) | (Actions & { state: State; }) >state : State >JSX : any diff --git a/tests/baselines/reference/contextuallyTypedParametersWithInitializers.types b/tests/baselines/reference/contextuallyTypedParametersWithInitializers.types index 7a70ab3c603..db65878b320 100644 --- a/tests/baselines/reference/contextuallyTypedParametersWithInitializers.types +++ b/tests/baselines/reference/contextuallyTypedParametersWithInitializers.types @@ -9,13 +9,13 @@ declare function id2 any>(input: T): T; >input : T declare function id3 any>(input: T): T; ->id3 : any>(input: T) => T +>id3 : any>(input: T) => T >x : { foo: any; } >foo : any >input : T declare function id4 any>(input: T): T; ->id4 : any>(input: T) => T +>id4 : any>(input: T) => T >x : { foo?: number | undefined; } >foo : number | undefined >input : T diff --git a/tests/baselines/reference/contextuallyTypedStringLiteralsInJsxAttributes01.types b/tests/baselines/reference/contextuallyTypedStringLiteralsInJsxAttributes01.types index 3ce1ee12915..3168ac8d92d 100644 --- a/tests/baselines/reference/contextuallyTypedStringLiteralsInJsxAttributes01.types +++ b/tests/baselines/reference/contextuallyTypedStringLiteralsInJsxAttributes01.types @@ -11,8 +11,8 @@ namespace JSX { } const FooComponent = (props: { foo: "A" | "B" | "C" }) => {props.foo}; ->FooComponent : (props: { foo: "A" | "B" | "C"; }) => JSX.Element ->(props: { foo: "A" | "B" | "C" }) => {props.foo} : (props: { foo: "A" | "B" | "C"; }) => JSX.Element +>FooComponent : (props: { foo: "A" | "B" | "C";}) => JSX.Element +>(props: { foo: "A" | "B" | "C" }) => {props.foo} : (props: { foo: "A" | "B" | "C";}) => JSX.Element >props : { foo: "A" | "B" | "C"; } >foo : "A" | "B" | "C" >{props.foo} : JSX.Element diff --git a/tests/baselines/reference/contravariantInferenceAndTypeGuard.types b/tests/baselines/reference/contravariantInferenceAndTypeGuard.types index d0b139a5a7c..5ee843a798a 100644 --- a/tests/baselines/reference/contravariantInferenceAndTypeGuard.types +++ b/tests/baselines/reference/contravariantInferenceAndTypeGuard.types @@ -34,7 +34,7 @@ declare class List { >context : TContext filter(fn: FilterFn): List; ->filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn>): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn>): List; } +>filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn>): List; } >fn : FilterFn> filter(fn: IteratorFn, context: TContext): List; @@ -43,7 +43,7 @@ declare class List { >context : TContext filter(fn: IteratorFn): List; ->filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn>): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn>): List; } +>filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn>): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn): List; } >fn : IteratorFn> } interface Test { diff --git a/tests/baselines/reference/controlFlowDeleteOperator.types b/tests/baselines/reference/controlFlowDeleteOperator.types index 7c8cfc8dd61..83b0f522d20 100644 --- a/tests/baselines/reference/controlFlowDeleteOperator.types +++ b/tests/baselines/reference/controlFlowDeleteOperator.types @@ -3,7 +3,7 @@ function f() { >f : () => void let x: { a?: number | string, b: number | string } = { b: 1 }; ->x : { a?: string | number | undefined; b: string | number; } +>x : { a?: string | number | undefined; b: number | string; } >a : string | number | undefined >b : string | number >{ b: 1 } : { b: number; } diff --git a/tests/baselines/reference/controlFlowOptionalChain.types b/tests/baselines/reference/controlFlowOptionalChain.types index c4809f58af9..b48f943eba2 100644 --- a/tests/baselines/reference/controlFlowOptionalChain.types +++ b/tests/baselines/reference/controlFlowOptionalChain.types @@ -319,8 +319,8 @@ o4.x.y; >y : boolean declare const o5: { x?: { y: { z?: { w: boolean } } } }; ->o5 : { x?: { y: { z?: { w: boolean; } | undefined; }; } | undefined; } ->x : { y: { z?: { w: boolean; } | undefined; }; } | undefined +>o5 : { x?: { y: { z?: { w: boolean; };}; } | undefined; } +>x : { y: { z?: { w: boolean; };}; } | undefined >y : { z?: { w: boolean; } | undefined; } >z : { w: boolean; } | undefined >w : boolean @@ -2038,7 +2038,7 @@ let i = 0; >0 : 0 declare const arr: { tag: ("left" | "right") }[]; ->arr : { tag: "left" | "right"; }[] +>arr : { tag: ("left" | "right"); }[] >tag : "left" | "right" while (arr[i]?.tag === "left") { diff --git a/tests/baselines/reference/customAsyncIterator.types b/tests/baselines/reference/customAsyncIterator.types index 63c67cfddd3..dd33864f181 100644 --- a/tests/baselines/reference/customAsyncIterator.types +++ b/tests/baselines/reference/customAsyncIterator.types @@ -7,7 +7,7 @@ class ConstantIterator implements AsyncIterator >constant : T } async next(value?: T): Promise> { ->next : (value?: T) => Promise> +>next : (value?: T) => Promise> >value : T if (value != null) { diff --git a/tests/baselines/reference/cyclicGenericTypeInstantiationInference.types b/tests/baselines/reference/cyclicGenericTypeInstantiationInference.types index e7597e9055e..df006869da9 100644 --- a/tests/baselines/reference/cyclicGenericTypeInstantiationInference.types +++ b/tests/baselines/reference/cyclicGenericTypeInstantiationInference.types @@ -52,7 +52,7 @@ var b = bar(); >bar : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } function test(x: typeof a): void { } ->test : (x: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; }) => void +>test : (x: typeof a) => void >x : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } >a : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } diff --git a/tests/baselines/reference/declFileForInterfaceWithRestParams.types b/tests/baselines/reference/declFileForInterfaceWithRestParams.types index dd1b1ea72c0..2bb2debd4d3 100644 --- a/tests/baselines/reference/declFileForInterfaceWithRestParams.types +++ b/tests/baselines/reference/declFileForInterfaceWithRestParams.types @@ -1,18 +1,18 @@ === tests/cases/compiler/declFileForInterfaceWithRestParams.ts === interface I { foo(...x): typeof x; ->foo : (...x: any[]) => any[] +>foo : (...x: any[]) => typeof x >x : any[] >x : any[] foo2(a: number, ...x): typeof x; ->foo2 : (a: number, ...x: any[]) => any[] +>foo2 : (a: number, ...x: any[]) => typeof x >a : number >x : any[] >x : any[] foo3(b: string, ...x: string[]): typeof x; ->foo3 : (b: string, ...x: string[]) => string[] +>foo3 : (b: string, ...x: string[]) => typeof x >b : string >x : string[] >x : string[] diff --git a/tests/baselines/reference/declFileGenericType.types b/tests/baselines/reference/declFileGenericType.types index b7df567567c..6dbbc3c0d0f 100644 --- a/tests/baselines/reference/declFileGenericType.types +++ b/tests/baselines/reference/declFileGenericType.types @@ -14,21 +14,21 @@ export module C { >null : null export function F2(x: T): C.A { return null; } ->F2 : (x: T) => A +>F2 : (x: T) => C.A >x : T >C : any >C : any >null : null export function F3(x: T): C.A[] { return null; } ->F3 : (x: T) => A[] +>F3 : (x: T) => C.A[] >x : T >C : any >C : any >null : null export function F4>(x: T): Array> { return null; } ->F4 : >(x: T) => A[] +>F4 : >(x: T) => Array> >x : T >C : any >C : any diff --git a/tests/baselines/reference/declFileGenericType2.types b/tests/baselines/reference/declFileGenericType2.types index d58dba34424..e56824bb98f 100644 --- a/tests/baselines/reference/declFileGenericType2.types +++ b/tests/baselines/reference/declFileGenericType2.types @@ -25,7 +25,7 @@ declare module templa.mvc.composite { >mvc : typeof mvc getControllers(): mvc.IController[]; ->getControllers : () => IController[] +>getControllers : () => mvc.IController[] >mvc : any >mvc : any } diff --git a/tests/baselines/reference/declFilePrivateMethodOverloads.types b/tests/baselines/reference/declFilePrivateMethodOverloads.types index 82187c34af4..0223d2b5179 100644 --- a/tests/baselines/reference/declFilePrivateMethodOverloads.types +++ b/tests/baselines/reference/declFilePrivateMethodOverloads.types @@ -13,7 +13,7 @@ class c1 { >bindingContext : IContext private _forEachBindingContext(bindingContextArray: Array, fn: (bindingContext: IContext) => void); ->_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; } +>_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: Array, fn: (bindingContext: IContext) => void): any; } >bindingContextArray : IContext[] >fn : (bindingContext: IContext) => void >bindingContext : IContext @@ -32,7 +32,7 @@ class c1 { >bindingContext : IContext private overloadWithArityDifference(bindingContextArray: Array, fn: (bindingContext: IContext) => void); ->overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; } +>overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: Array, fn: (bindingContext: IContext) => void): any; } >bindingContextArray : IContext[] >fn : (bindingContext: IContext) => void >bindingContext : IContext diff --git a/tests/baselines/reference/declFileTypeofFunction.types b/tests/baselines/reference/declFileTypeofFunction.types index fdc06020663..376f314ecc2 100644 --- a/tests/baselines/reference/declFileTypeofFunction.types +++ b/tests/baselines/reference/declFileTypeofFunction.types @@ -5,7 +5,7 @@ function f(n: typeof f): string; >f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } function f(n: typeof g): string; ->f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } +>f : { (n: typeof f): string; (n: typeof g): string; } >n : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } >g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } @@ -19,7 +19,7 @@ function g(n: typeof g): number; >g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } function g(n: typeof f): number; ->g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } +>g : { (n: typeof g): number; (n: typeof f): number; } >n : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } >f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } @@ -28,8 +28,8 @@ function g() { return undefined; } >undefined : undefined var b: () => typeof b; ->b : () => any ->b : () => any +>b : () => typeof b +>b : () => typeof b function b1() { >b1 : () => typeof b1 diff --git a/tests/baselines/reference/declarationEmitBundleWithAmbientReferences.js b/tests/baselines/reference/declarationEmitBundleWithAmbientReferences.js index c7328aa447a..2088dc2c18d 100644 --- a/tests/baselines/reference/declarationEmitBundleWithAmbientReferences.js +++ b/tests/baselines/reference/declarationEmitBundleWithAmbientReferences.js @@ -36,11 +36,11 @@ define("conditional_directive_field", ["require", "exports"], function (require, //// [datastore.bundle.d.ts] -/// declare module "datastore_result" { import { Result } from "lib/result"; export type T = Result; } declare module "conditional_directive_field" { - export const build: () => import("lib/result").Result; + import * as DatastoreResult from "datastore_result"; + export const build: () => DatastoreResult.T; } diff --git a/tests/baselines/reference/declarationEmitBundleWithAmbientReferences.types b/tests/baselines/reference/declarationEmitBundleWithAmbientReferences.types index 3963b20d01d..a626565acfb 100644 --- a/tests/baselines/reference/declarationEmitBundleWithAmbientReferences.types +++ b/tests/baselines/reference/declarationEmitBundleWithAmbientReferences.types @@ -21,8 +21,8 @@ import * as DatastoreResult from "src/datastore_result"; >DatastoreResult : typeof DatastoreResult export const build = (): DatastoreResult.T => { ->build : () => import("lib/result").Result ->(): DatastoreResult.T => { return null;} : () => import("lib/result").Result +>build : () => DatastoreResult.T +>(): DatastoreResult.T => { return null;} : () => DatastoreResult.T >DatastoreResult : any return null; diff --git a/tests/baselines/reference/declarationEmitDestructuring1.types b/tests/baselines/reference/declarationEmitDestructuring1.types index 161ad94e54a..7ff74ab36ac 100644 --- a/tests/baselines/reference/declarationEmitDestructuring1.types +++ b/tests/baselines/reference/declarationEmitDestructuring1.types @@ -12,7 +12,7 @@ function far([a, [b], [[c]]]: [number, boolean[], string[][]]): void { } >c : string function bar({a1, b1, c1}: { a1: number, b1: boolean, c1: string }): void { } ->bar : ({ a1, b1, c1 }: { a1: number; b1: boolean; c1: string; }) => void +>bar : ({ a1, b1, c1 }: { a1: number; b1: boolean; c1: string;}) => void >a1 : number >b1 : boolean >c1 : string @@ -21,7 +21,7 @@ function bar({a1, b1, c1}: { a1: number, b1: boolean, c1: string }): void { } >c1 : string function baz({a2, b2: {b1, c1}}: { a2: number, b2: { b1: boolean, c1: string } }): void { } ->baz : ({ a2, b2: { b1, c1 } }: { a2: number; b2: { b1: boolean; c1: string; }; }) => void +>baz : ({ a2, b2: { b1, c1 } }: { a2: number; b2: { b1: boolean; c1: string; };}) => void >a2 : number >b2 : any >b1 : boolean diff --git a/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.types b/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.types index fb8c57d019b..460920dfb33 100644 --- a/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.types +++ b/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.types @@ -11,7 +11,7 @@ function foo(...rest: any[]) { } function foo2( { x, y, z }?: { x: string; y: number; z: boolean }); ->foo2 : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => any +>foo2 : ({ x, y, z }?: { x: string; y: number; z: boolean;}) => any >x : string >y : number >z : boolean diff --git a/tests/baselines/reference/declarationEmitDestructuringWithOptionalBindingParameters.types b/tests/baselines/reference/declarationEmitDestructuringWithOptionalBindingParameters.types index 7c7d59ac115..e7d0ec68f53 100644 --- a/tests/baselines/reference/declarationEmitDestructuringWithOptionalBindingParameters.types +++ b/tests/baselines/reference/declarationEmitDestructuringWithOptionalBindingParameters.types @@ -6,7 +6,7 @@ function foo([x,y,z]?: [string, number, boolean]) { >z : boolean } function foo1( { x, y, z }?: { x: string; y: number; z: boolean }) { ->foo1 : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => void +>foo1 : ({ x, y, z }?: { x: string; y: number; z: boolean;}) => void >x : string >y : number >z : boolean diff --git a/tests/baselines/reference/declarationEmitNestedGenerics.js b/tests/baselines/reference/declarationEmitNestedGenerics.js index 04d74e3f8db..3e263e28e17 100644 --- a/tests/baselines/reference/declarationEmitNestedGenerics.js +++ b/tests/baselines/reference/declarationEmitNestedGenerics.js @@ -21,5 +21,5 @@ function g(x) { //// [declarationEmitNestedGenerics.d.ts] -declare function f(p: T): (x: T_1) => T; +declare function f(p: T): (x: T_1) => typeof p; declare function g(x: T): T extends (infer T_1)[] ? T_1 : T; diff --git a/tests/baselines/reference/declarationEmitNestedGenerics.types b/tests/baselines/reference/declarationEmitNestedGenerics.types index 28c9e18b14c..268c08c0c26 100644 --- a/tests/baselines/reference/declarationEmitNestedGenerics.types +++ b/tests/baselines/reference/declarationEmitNestedGenerics.types @@ -1,10 +1,10 @@ === tests/cases/compiler/declarationEmitNestedGenerics.ts === function f(p: T) { ->f : (p: T) => (x: T) => T +>f : (p: T) => (x: T) => typeof p >p : T let g: (x: T) => typeof p = null as any; ->g : (x: T) => T +>g : (x: T) => typeof p >x : T >p : T >null as any : any diff --git a/tests/baselines/reference/declarationEmitOptionalMethod.js b/tests/baselines/reference/declarationEmitOptionalMethod.js index 19384cfefb5..c7e3714010b 100644 --- a/tests/baselines/reference/declarationEmitOptionalMethod.js +++ b/tests/baselines/reference/declarationEmitOptionalMethod.js @@ -17,8 +17,8 @@ exports.Foo = function (opts) { return ({}); }; //// [declarationEmitOptionalMethod.d.ts] export declare const Foo: (opts: { a?(): void; - b?: (() => void) | undefined; + b?: () => void; }) => { c?(): void; - d?: (() => void) | undefined; + d?: () => void; }; diff --git a/tests/baselines/reference/declarationEmitOptionalMethod.types b/tests/baselines/reference/declarationEmitOptionalMethod.types index 2da39f70022..2419be9b020 100644 --- a/tests/baselines/reference/declarationEmitOptionalMethod.types +++ b/tests/baselines/reference/declarationEmitOptionalMethod.types @@ -1,7 +1,7 @@ === tests/cases/compiler/declarationEmitOptionalMethod.ts === export const Foo = (opts: { ->Foo : (opts: { a?(): void; b?: (() => void) | undefined; }) => { c?(): void; d?: (() => void) | undefined; } ->(opts: { a?(): void, b?: () => void,}): { c?(): void, d?: () => void,} => ({ }) : (opts: { a?(): void; b?: (() => void) | undefined; }) => { c?(): void; d?: (() => void) | undefined; } +>Foo : (opts: { a?(): void; b?: () => void;}) => { c?(): void; d?: () => void;} +>(opts: { a?(): void, b?: () => void,}): { c?(): void, d?: () => void,} => ({ }) : (opts: { a?(): void; b?: () => void;}) => { c?(): void; d?: () => void;} >opts : { a?(): void; b?: (() => void) | undefined; } a?(): void, diff --git a/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters1.js b/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters1.js index cc9cb8a803e..bd0775bb08d 100644 --- a/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters1.js +++ b/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters1.js @@ -13,4 +13,4 @@ exports.y = function (x) { return 1; }; //// [declarationEmitTypeAliasWithTypeParameters1.d.ts] export declare type Bar = () => [X, Y]; export declare type Foo = Bar; -export declare const y: (x: Bar) => number; +export declare const y: (x: Foo) => number; diff --git a/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters1.types b/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters1.types index 320349e7a15..b5b40990148 100644 --- a/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters1.types +++ b/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters1.types @@ -6,8 +6,8 @@ export type Foo = Bar; >Foo : Bar export const y = (x: Foo) => 1 ->y : (x: Bar) => number ->(x: Foo) => 1 : (x: Bar) => number +>y : (x: Foo) => number +>(x: Foo) => 1 : (x: Foo) => number >x : Bar >1 : 1 diff --git a/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters2.js b/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters2.js index ab711cb02c1..8a967cd592e 100644 --- a/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters2.js +++ b/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters2.js @@ -15,4 +15,4 @@ exports.y = function (x) { return 1; }; export declare type Bar = () => [X, Y, Z]; export declare type Baz = Bar; export declare type Baa = Baz; -export declare const y: (x: Bar) => number; +export declare const y: (x: Baa) => number; diff --git a/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters2.types b/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters2.types index e33e27a6512..55f20da36ef 100644 --- a/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters2.types +++ b/tests/baselines/reference/declarationEmitTypeAliasWithTypeParameters2.types @@ -9,8 +9,8 @@ export type Baa = Baz; >Baa : Bar export const y = (x: Baa) => 1 ->y : (x: Bar) => number ->(x: Baa) => 1 : (x: Bar) => number +>y : (x: Baa) => number +>(x: Baa) => 1 : (x: Baa) => number >x : Bar >1 : 1 diff --git a/tests/baselines/reference/declarationMapsMultifile.types b/tests/baselines/reference/declarationMapsMultifile.types index f77a3983a4d..cfd5671edaa 100644 --- a/tests/baselines/reference/declarationMapsMultifile.types +++ b/tests/baselines/reference/declarationMapsMultifile.types @@ -3,7 +3,7 @@ export class Foo { >Foo : Foo doThing(x: {a: number}) { ->doThing : (x: { a: number; }) => { b: number; } +>doThing : (x: { a: number;}) => { b: number; } >x : { a: number; } >a : number diff --git a/tests/baselines/reference/declarationMapsOutFile.types b/tests/baselines/reference/declarationMapsOutFile.types index f77a3983a4d..cfd5671edaa 100644 --- a/tests/baselines/reference/declarationMapsOutFile.types +++ b/tests/baselines/reference/declarationMapsOutFile.types @@ -3,7 +3,7 @@ export class Foo { >Foo : Foo doThing(x: {a: number}) { ->doThing : (x: { a: number; }) => { b: number; } +>doThing : (x: { a: number;}) => { b: number; } >x : { a: number; } >a : number diff --git a/tests/baselines/reference/declarationMapsOutFile2.types b/tests/baselines/reference/declarationMapsOutFile2.types index c4fc4261995..a0108b91fe7 100644 --- a/tests/baselines/reference/declarationMapsOutFile2.types +++ b/tests/baselines/reference/declarationMapsOutFile2.types @@ -3,7 +3,7 @@ class Foo { >Foo : Foo doThing(x: {a: number}) { ->doThing : (x: { a: number; }) => { b: number; } +>doThing : (x: { a: number;}) => { b: number; } >x : { a: number; } >a : number diff --git a/tests/baselines/reference/declarationMapsWithSourceMap.types b/tests/baselines/reference/declarationMapsWithSourceMap.types index c4fc4261995..a0108b91fe7 100644 --- a/tests/baselines/reference/declarationMapsWithSourceMap.types +++ b/tests/baselines/reference/declarationMapsWithSourceMap.types @@ -3,7 +3,7 @@ class Foo { >Foo : Foo doThing(x: {a: number}) { ->doThing : (x: { a: number; }) => { b: number; } +>doThing : (x: { a: number;}) => { b: number; } >x : { a: number; } >a : number diff --git a/tests/baselines/reference/declarationNoDanglingGenerics.types b/tests/baselines/reference/declarationNoDanglingGenerics.types index 2d2895f2076..9fd057e32f3 100644 --- a/tests/baselines/reference/declarationNoDanglingGenerics.types +++ b/tests/baselines/reference/declarationNoDanglingGenerics.types @@ -5,7 +5,7 @@ const kindCache: { [kind: string]: boolean } = {}; >{} : {} function register(kind: string): void | never { ->register : (kind: string) => void +>register : (kind: string) => void | never >kind : string if (kindCache[kind]) { diff --git a/tests/baselines/reference/declarationsForFileShadowingGlobalNoError.js b/tests/baselines/reference/declarationsForFileShadowingGlobalNoError.js index 5e422c30a6b..99226383835 100644 --- a/tests/baselines/reference/declarationsForFileShadowingGlobalNoError.js +++ b/tests/baselines/reference/declarationsForFileShadowingGlobalNoError.js @@ -56,11 +56,12 @@ export declare type DOMNode = Node; //// [custom.d.ts] export declare type Node = {}; //// [index.d.ts] +import { DOMNode } from './dom'; declare type Constructor = new (...args: any[]) => any; export declare const mixin: (Base: Constructor) => { new (...args: any[]): { [x: string]: any; - get(domNode: globalThis.Node): void; + get(domNode: DOMNode): void; }; }; export {}; diff --git a/tests/baselines/reference/declarationsForFileShadowingGlobalNoError.types b/tests/baselines/reference/declarationsForFileShadowingGlobalNoError.types index a091c2942c0..c15ad37bccc 100644 --- a/tests/baselines/reference/declarationsForFileShadowingGlobalNoError.types +++ b/tests/baselines/reference/declarationsForFileShadowingGlobalNoError.types @@ -27,7 +27,7 @@ export const mixin = (Base: Constructor) => { >Base : Constructor get(domNode: DOMNode) {} ->get : (domNode: globalThis.Node) => void +>get : (domNode: DOMNode) => void >domNode : globalThis.Node } } diff --git a/tests/baselines/reference/declarationsForInferredTypeFromOtherFile.types b/tests/baselines/reference/declarationsForInferredTypeFromOtherFile.types index d62b0b8d723..b1f85be8598 100644 --- a/tests/baselines/reference/declarationsForInferredTypeFromOtherFile.types +++ b/tests/baselines/reference/declarationsForInferredTypeFromOtherFile.types @@ -4,7 +4,7 @@ export class Foo {} === tests/cases/compiler/file2.ts === export function foo(): import("./file1").Foo { ->foo : () => import("tests/cases/compiler/file1").Foo +>foo : () => import("./file1").Foo return null as any; >null as any : any diff --git a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types index 68e2e12c65d..142dedb2041 100644 --- a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types +++ b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types @@ -55,7 +55,7 @@ export const updateIfChanged = (t: T) => { >u : U >key as keyof U : keyof U >key : K ->(v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); } : (v: U[K]) => T +>(v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); } : (v: Value) => T >v : U[K] return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); diff --git a/tests/baselines/reference/decoratorsOnComputedProperties.types b/tests/baselines/reference/decoratorsOnComputedProperties.types index 189222985d0..9ceea659e9a 100644 --- a/tests/baselines/reference/decoratorsOnComputedProperties.types +++ b/tests/baselines/reference/decoratorsOnComputedProperties.types @@ -1,6 +1,6 @@ === tests/cases/compiler/decoratorsOnComputedProperties.ts === function x(o: object, k: PropertyKey) { } ->x : (o: object, k: string | number | symbol) => void +>x : (o: object, k: PropertyKey) => void >o : object >k : string | number | symbol diff --git a/tests/baselines/reference/deepExcessPropertyCheckingWhenTargetIsIntersection.types b/tests/baselines/reference/deepExcessPropertyCheckingWhenTargetIsIntersection.types index dc84ff20e08..e00f87383c6 100644 --- a/tests/baselines/reference/deepExcessPropertyCheckingWhenTargetIsIntersection.types +++ b/tests/baselines/reference/deepExcessPropertyCheckingWhenTargetIsIntersection.types @@ -45,10 +45,10 @@ TestComponent({icon: { props: { INVALID_PROP_NAME: 'share', ariaLabel: 'test lab >'test label' : "test label" const TestComponent2: StatelessComponent = (props) => { ->TestComponent2 : StatelessComponent +>TestComponent2 : StatelessComponent >props2 : { x: number; } >x : number ->(props) => { return null;} : (props: (TestProps & { children?: number; }) | ({ props2: { x: number; }; } & { children?: number; })) => any +>(props) => { return null;} : (props: (TestProps & { children?: number; }) | ({ props2: { x: number;}; } & { children?: number; })) => any >props : (TestProps & { children?: number; }) | ({ props2: { x: number; }; } & { children?: number; }) return null; diff --git a/tests/baselines/reference/deeplyNestedAssignabilityIssue.types b/tests/baselines/reference/deeplyNestedAssignabilityIssue.types index 566bd6e499e..f5d8b1850cc 100644 --- a/tests/baselines/reference/deeplyNestedAssignabilityIssue.types +++ b/tests/baselines/reference/deeplyNestedAssignabilityIssue.types @@ -6,10 +6,10 @@ interface A { interface Large { something: { ->something : { another: { more: { thing: A; }; yetstill: { another: A; }; }; } +>something : { another: { more: { thing: A; }; yetstill: { another: A; };}; } another: { ->another : { more: { thing: A; }; yetstill: { another: A; }; } +>another : { more: { thing: A;}; yetstill: { another: A;}; } more: { >more : { thing: A; } diff --git a/tests/baselines/reference/deeplyNestedCheck.types b/tests/baselines/reference/deeplyNestedCheck.types index 9a13ccfc924..7b3c8e28769 100644 --- a/tests/baselines/reference/deeplyNestedCheck.types +++ b/tests/baselines/reference/deeplyNestedCheck.types @@ -3,7 +3,7 @@ interface DataSnapshot { child(path: string): DataSnapshot; ->child : (path: string) => DataSnapshot<{}> +>child : (path: string) => DataSnapshot >path : string } diff --git a/tests/baselines/reference/defaultDeclarationEmitNamedCorrectly.types b/tests/baselines/reference/defaultDeclarationEmitNamedCorrectly.types index ed131bbed8a..c80cfff0c81 100644 --- a/tests/baselines/reference/defaultDeclarationEmitNamedCorrectly.types +++ b/tests/baselines/reference/defaultDeclarationEmitNamedCorrectly.types @@ -7,8 +7,8 @@ export interface Things { >t : T } export function make(x: { new (): CTor & {props: P} }): Things { ->make : (x: new () => CTor & { props: P; }) => Things ->x : new () => CTor & { props: P; } +>make : (x: { new (): CTor & { props: P; };}) => Things +>x : new () => CTor & { props: P;} >props : P return null as any; diff --git a/tests/baselines/reference/defaultDeclarationEmitShadowedNamedCorrectly.types b/tests/baselines/reference/defaultDeclarationEmitShadowedNamedCorrectly.types index 883f5c037ef..32f6e94c865 100644 --- a/tests/baselines/reference/defaultDeclarationEmitShadowedNamedCorrectly.types +++ b/tests/baselines/reference/defaultDeclarationEmitShadowedNamedCorrectly.types @@ -10,8 +10,8 @@ export interface Things { >t : T } export function make(x: { new (): CTor & {props: P} }): Things { ->make : (x: new () => CTor & { props: P; }) => me.Things ->x : new () => CTor & { props: P; } +>make : (x: { new (): CTor & { props: P; };}) => Things +>x : new () => CTor & { props: P;} >props : P return null as any; diff --git a/tests/baselines/reference/deferredLookupTypeResolution.types b/tests/baselines/reference/deferredLookupTypeResolution.types index 1e505995bdc..300b29fb18d 100644 --- a/tests/baselines/reference/deferredLookupTypeResolution.types +++ b/tests/baselines/reference/deferredLookupTypeResolution.types @@ -43,7 +43,7 @@ function f2(a: A) { } function f3(x: 'a' | 'b') { ->f3 : (x: "a" | "b") => { a: any; b: any; x: any; } +>f3 : (x: 'a' | 'b') => { a: any; b: any; x: any; } >x : "a" | "b" return f2(x); diff --git a/tests/baselines/reference/deferredLookupTypeResolution2.types b/tests/baselines/reference/deferredLookupTypeResolution2.types index 6932830c51a..2f21efdad19 100644 --- a/tests/baselines/reference/deferredLookupTypeResolution2.types +++ b/tests/baselines/reference/deferredLookupTypeResolution2.types @@ -22,21 +22,21 @@ type D = A<[string]>; // "true" // Error, "false" not handled type E = { true: 'true' }[ObjectHasKey]; ->E : { true: "true"; }[({ [K in Extract]: "true"; } & { [key: string]: "false"; })["1"]] +>E : { true: 'true'; }[({ [K in Extract]: "true"; } & { [key: string]: "false"; })["1"]] >true : "true" type Juxtapose = ({ true: 'otherwise' } & { [k: string]: 'true' })[ObjectHasKey]; ->Juxtapose : ({ true: "otherwise"; } & { [k: string]: "true"; })[({ [K in Extract]: "true"; } & { [key: string]: "false"; })["1"]] +>Juxtapose : ({ true: 'otherwise'; } & { [k: string]: "true"; })[({ [K in Extract]: "true"; } & { [key: string]: "false"; })["1"]] >true : "otherwise" >k : string // Error, "otherwise" is missing type DeepError = { true: 'true' }[Juxtapose]; ->DeepError : { true: "true"; }[({ true: "otherwise"; } & { [k: string]: "true"; })[({ [K in Extract]: "true"; } & { [key: string]: "false"; })["1"]]] +>DeepError : { true: 'true'; }[({ true: "otherwise"; } & { [k: string]: "true"; })[({ [K in Extract]: "true"; } & { [key: string]: "false"; })["1"]]] >true : "true" type DeepOK = { true: 'true', otherwise: 'false' }[Juxtapose]; ->DeepOK : { true: "true"; otherwise: "false"; }[({ true: "otherwise"; } & { [k: string]: "true"; })[({ [K in Extract]: "true"; } & { [key: string]: "false"; })["1"]]] +>DeepOK : { true: 'true'; otherwise: 'false'; }[({ true: "otherwise"; } & { [k: string]: "true"; })[({ [K in Extract]: "true"; } & { [key: string]: "false"; })["1"]]] >true : "true" >otherwise : "false" diff --git a/tests/baselines/reference/deleteChain.types b/tests/baselines/reference/deleteChain.types index ab7fd8e65b1..2e5f7fedd31 100644 --- a/tests/baselines/reference/deleteChain.types +++ b/tests/baselines/reference/deleteChain.types @@ -17,7 +17,7 @@ delete (o1?.b); >b : string | undefined declare const o2: undefined | { b: { c: string } }; ->o2 : { b: { c: string; }; } | undefined +>o2 : { b: { c: string;}; } | undefined >b : { c: string; } >c : string @@ -39,7 +39,7 @@ delete (o2?.b.c); >c : string | undefined declare const o3: { b: undefined | { c: string } }; ->o3 : { b: { c: string; } | undefined; } +>o3 : { b: undefined | { c: string;}; } >b : { c: string; } | undefined >c : string @@ -61,8 +61,8 @@ delete (o3.b?.c); >c : string | undefined declare const o4: { b?: { c: { d?: { e: string } } } }; ->o4 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; } ->b : { c: { d?: { e: string; } | undefined; }; } | undefined +>o4 : { b?: { c: { d?: { e: string; };}; } | undefined; } +>b : { c: { d?: { e: string; };}; } | undefined >c : { d?: { e: string; } | undefined; } >d : { e: string; } | undefined >e : string @@ -106,8 +106,8 @@ delete (o4.b?.c.d?.e); >e : string | undefined declare const o5: { b?(): { c: { d?: { e: string } } } }; ->o5 : { b?(): { c: { d?: { e: string; } | undefined; }; }; } ->b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined +>o5 : { b?(): { c: { d?: { e: string; }; };}; } +>b : (() => { c: { d?: { e: string; }; };}) | undefined >c : { d?: { e: string; } | undefined; } >d : { e: string; } | undefined >e : string @@ -140,8 +140,8 @@ delete (o5.b?.().c.d?.e); >e : string | undefined declare const o6: { b?: { c: { d?: { e: string } } } }; ->o6 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; } ->b : { c: { d?: { e: string; } | undefined; }; } | undefined +>o6 : { b?: { c: { d?: { e: string; };}; } | undefined; } +>b : { c: { d?: { e: string; };}; } | undefined >c : { d?: { e: string; } | undefined; } >d : { e: string; } | undefined >e : string diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers.types b/tests/baselines/reference/derivedClassOverridesProtectedMembers.types index 32aca9dd5cb..9c9b6f374c0 100644 --- a/tests/baselines/reference/derivedClassOverridesProtectedMembers.types +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers.types @@ -16,7 +16,7 @@ class Base { >x : { foo: string; } protected b(a: typeof x) { } ->b : (a: { foo: string; }) => void +>b : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -30,7 +30,7 @@ class Base { >x : { foo: string; } protected d: (a: typeof x) => void; ->d : (a: { foo: string; }) => void +>d : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -39,7 +39,7 @@ class Base { >x : { foo: string; } protected static s(a: typeof x) { } ->s : (a: { foo: string; }) => void +>s : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -53,7 +53,7 @@ class Base { >x : { foo: string; } protected static u: (a: typeof x) => void; ->u : (a: { foo: string; }) => void +>u : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -71,7 +71,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } protected b(a: typeof y) { } ->b : (a: { foo: string; bar: string; }) => void +>b : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -85,7 +85,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } protected d: (a: typeof y) => void; ->d : (a: { foo: string; bar: string; }) => void +>d : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -94,7 +94,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } protected static s(a: typeof y) { } ->s : (a: { foo: string; bar: string; }) => void +>s : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -108,7 +108,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } protected static u: (a: typeof y) => void; ->u : (a: { foo: string; bar: string; }) => void +>u : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types b/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types index c51e0ab95a2..9f3ed172fe1 100644 --- a/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types @@ -16,7 +16,7 @@ class Base { >x : { foo: string; } protected b(a: typeof x) { } ->b : (a: { foo: string; }) => void +>b : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -30,7 +30,7 @@ class Base { >x : { foo: string; } protected d: (a: typeof x) => void ; ->d : (a: { foo: string; }) => void +>d : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -39,7 +39,7 @@ class Base { >x : { foo: string; } protected static s(a: typeof x) { } ->s : (a: { foo: string; }) => void +>s : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -53,7 +53,7 @@ class Base { >x : { foo: string; } protected static u: (a: typeof x) => void ; ->u : (a: { foo: string; }) => void +>u : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -72,7 +72,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } b(a: typeof y) { } ->b : (a: { foo: string; bar: string; }) => void +>b : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -86,7 +86,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } d: (a: typeof y) => void; ->d : (a: { foo: string; bar: string; }) => void +>d : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -95,7 +95,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } static s(a: typeof y) { } ->s : (a: { foo: string; bar: string; }) => void +>s : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -109,7 +109,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } static u: (a: typeof y) => void; ->u : (a: { foo: string; bar: string; }) => void +>u : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers3.types b/tests/baselines/reference/derivedClassOverridesProtectedMembers3.types index 32337cb6951..4642a9eb941 100644 --- a/tests/baselines/reference/derivedClassOverridesProtectedMembers3.types +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers3.types @@ -16,7 +16,7 @@ class Base { >x : { foo: string; } b(a: typeof x) { } ->b : (a: { foo: string; }) => void +>b : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -30,7 +30,7 @@ class Base { >x : { foo: string; } d: (a: typeof x) => void; ->d : (a: { foo: string; }) => void +>d : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -39,7 +39,7 @@ class Base { >x : { foo: string; } static s(a: typeof x) { } ->s : (a: { foo: string; }) => void +>s : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -53,7 +53,7 @@ class Base { >x : { foo: string; } static u: (a: typeof x) => void; ->u : (a: { foo: string; }) => void +>u : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -85,7 +85,7 @@ class Derived2 extends Base { >Base : Base protected b(a: typeof x) { } ->b : (a: { foo: string; }) => void +>b : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -135,7 +135,7 @@ class Derived5 extends Base { >Base : Base protected d: (a: typeof x) => void ; ->d : (a: { foo: string; }) => void +>d : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -168,7 +168,7 @@ class Derived7 extends Base { >Base : Base protected static s(a: typeof x) { } ->s : (a: { foo: string; }) => void +>s : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -218,7 +218,7 @@ class Derived10 extends Base { >Base : Base protected static u: (a: typeof x) => void ; ->u : (a: { foo: string; }) => void +>u : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } diff --git a/tests/baselines/reference/derivedClassOverridesPublicMembers.types b/tests/baselines/reference/derivedClassOverridesPublicMembers.types index b67017d1f75..25548790865 100644 --- a/tests/baselines/reference/derivedClassOverridesPublicMembers.types +++ b/tests/baselines/reference/derivedClassOverridesPublicMembers.types @@ -16,7 +16,7 @@ class Base { >x : { foo: string; } b(a: typeof x) { } ->b : (a: { foo: string; }) => void +>b : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -30,7 +30,7 @@ class Base { >x : { foo: string; } d: (a: typeof x) => void; ->d : (a: { foo: string; }) => void +>d : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -39,7 +39,7 @@ class Base { >x : { foo: string; } static s(a: typeof x) { } ->s : (a: { foo: string; }) => void +>s : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -53,7 +53,7 @@ class Base { >x : { foo: string; } static u: (a: typeof x) => void; ->u : (a: { foo: string; }) => void +>u : (a: typeof x) => void >a : { foo: string; } >x : { foo: string; } @@ -71,7 +71,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } b(a: typeof y) { } ->b : (a: { foo: string; bar: string; }) => void +>b : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -85,7 +85,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } d: (a: typeof y) => void; ->d : (a: { foo: string; bar: string; }) => void +>d : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -94,7 +94,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } static s(a: typeof y) { } ->s : (a: { foo: string; bar: string; }) => void +>s : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } @@ -108,7 +108,7 @@ class Derived extends Base { >y : { foo: string; bar: string; } static u: (a: typeof y) => void; ->u : (a: { foo: string; bar: string; }) => void +>u : (a: typeof y) => void >a : { foo: string; bar: string; } >y : { foo: string; bar: string; } diff --git a/tests/baselines/reference/derivedInterfaceIncompatibleWithBaseIndexer.types b/tests/baselines/reference/derivedInterfaceIncompatibleWithBaseIndexer.types index a476177045a..e073f8a8ce0 100644 --- a/tests/baselines/reference/derivedInterfaceIncompatibleWithBaseIndexer.types +++ b/tests/baselines/reference/derivedInterfaceIncompatibleWithBaseIndexer.types @@ -30,7 +30,7 @@ interface Derived3 extends Base { interface Derived4 extends Base { foo(): { x: number } // error ->foo : () => { x: number; } +>foo : () => { x: number;} >x : number } diff --git a/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.types b/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.types index a5e997f96eb..28e916666f8 100644 --- a/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.types +++ b/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.types @@ -3,7 +3,7 @@ class Base { >Base : Base foo(x: { a: number }): { a: number } { ->foo : (x: { a: number; }) => { a: number; } +>foo : (x: { a: number;}) => { a: number;} >x : { a: number; } >a : number >a : number @@ -18,7 +18,7 @@ class Derived extends Base { >Base : Base foo(x: { a: number; b: number }): { a: number; b: number } { ->foo : (x: { a: number; b: number; }) => { a: number; b: number; } +>foo : (x: { a: number; b: number;}) => { a: number; b: number;} >x : { a: number; b: number; } >a : number >b : number diff --git a/tests/baselines/reference/destructureOptionalParameter.types b/tests/baselines/reference/destructureOptionalParameter.types index d0ab8737dd6..984b2da856a 100644 --- a/tests/baselines/reference/destructureOptionalParameter.types +++ b/tests/baselines/reference/destructureOptionalParameter.types @@ -7,7 +7,7 @@ declare function f1({ a, b }?: { a: number, b: string }): void; >b : string function f2({ a, b }: { a: number, b: number } = { a: 0, b: 0 }) { ->f2 : ({ a, b }?: { a: number; b: number; }) => void +>f2 : ({ a, b }?: { a: number; b: number;}) => void >a : number >b : number >a : number diff --git a/tests/baselines/reference/destructuredDeclarationEmit.types b/tests/baselines/reference/destructuredDeclarationEmit.types index c3bdad1bc9c..96da1658066 100644 --- a/tests/baselines/reference/destructuredDeclarationEmit.types +++ b/tests/baselines/reference/destructuredDeclarationEmit.types @@ -16,7 +16,7 @@ const foo = { bar: 'hello', bat: 'world', bam: { bork: { bar: 'a', baz: 'b' } } >'b' : "b" const arr: [0, 1, 2, ['a', 'b', 'c', [{def: 'def'}, {sec: 'sec'}]]] = [0, 1, 2, ['a', 'b', 'c', [{def: 'def'}, {sec: 'sec'}]]]; ->arr : [0, 1, 2, ["a", "b", "c", [{ def: "def"; }, { sec: "sec"; }]]] +>arr : [0, 1, 2, ["a", "b", "c", [{ def: 'def'; }, { sec: 'sec'; }]]] >def : "def" >sec : "sec" >[0, 1, 2, ['a', 'b', 'c', [{def: 'def'}, {sec: 'sec'}]]] : [0, 1, 2, ["a", "b", "c", [{ def: "def"; }, { sec: "sec"; }]]] diff --git a/tests/baselines/reference/destructuringControlFlow.types b/tests/baselines/reference/destructuringControlFlow.types index efc406e9084..02deb392006 100644 --- a/tests/baselines/reference/destructuringControlFlow.types +++ b/tests/baselines/reference/destructuringControlFlow.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/destructuring/destructuringControlFlow.ts === function f1(obj: { a?: string }) { ->f1 : (obj: { a?: string | undefined; }) => void +>f1 : (obj: { a?: string;}) => void >obj : { a?: string | undefined; } >a : string | undefined @@ -95,7 +95,7 @@ function f2(obj: [number, string] | null[]) { } function f3(obj: { a?: number, b?: string }) { ->f3 : (obj: { a?: number | undefined; b?: string | undefined; }) => void +>f3 : (obj: { a?: number; b?: string;}) => void >obj : { a?: number | undefined; b?: string | undefined; } >a : number | undefined >b : string | undefined diff --git a/tests/baselines/reference/destructuringParameterDeclaration1ES5.types b/tests/baselines/reference/destructuringParameterDeclaration1ES5.types index 9b36241c7b0..cea8e2a231b 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration1ES5.types +++ b/tests/baselines/reference/destructuringParameterDeclaration1ES5.types @@ -11,13 +11,13 @@ function a1([a, b, [[c]]]: [number, number, string[][]]) { } >c : string function a2(o: { x: number, a: number }) { } ->a2 : (o: { x: number; a: number; }) => void +>a2 : (o: { x: number; a: number;}) => void >o : { x: number; a: number; } >x : number >a : number function a3({j, k, l: {m, n}, q: [a, b, c]}: { j: number, k: string, l: { m: boolean, n: number }, q: (number|string)[] }) { }; ->a3 : ({ j, k, l: { m, n }, q: [a, b, c] }: { j: number; k: string; l: { m: boolean; n: number; }; q: (string | number)[]; }) => void +>a3 : ({ j, k, l: { m, n }, q: [a, b, c] }: { j: number; k: string; l: { m: boolean; n: number; }; q: (number | string)[];}) => void >j : number >k : string >l : any @@ -35,7 +35,7 @@ function a3({j, k, l: {m, n}, q: [a, b, c]}: { j: number, k: string, l: { m: boo >q : (string | number)[] function a4({x, a}: { x: number, a: number }) { } ->a4 : ({ x, a }: { x: number; a: number; }) => void +>a4 : ({ x, a }: { x: number; a: number;}) => void >x : number >a : number >x : number @@ -213,7 +213,7 @@ function c2({z = 10}) { } >10 : 10 function c3({b}: { b: number|string} = { b: "hello" }) { } ->c3 : ({ b }?: { b: string | number; }) => void +>c3 : ({ b }?: { b: number | string;}) => void >b : string | number >b : string | number >{ b: "hello" } : { b: string; } @@ -407,12 +407,12 @@ function e1({x: number}) { } // x has type any NOT number >number : any function e2({x}: { x: number }) { } // x is type number ->e2 : ({ x }: { x: number; }) => void +>e2 : ({ x }: { x: number;}) => void >x : number >x : number function e3({x}: { x?: number }) { } // x is an optional with type number ->e3 : ({ x }: { x?: number; }) => void +>e3 : ({ x }: { x?: number;}) => void >x : number >x : number @@ -424,7 +424,7 @@ function e4({x: [number,string,any] }) { } // x has type [any, any, any] >any : any function e5({x: [a, b, c]}: { x: [number, number, number] }) { } // x has type [any, any, any] ->e5 : ({ x: [a, b, c] }: { x: [number, number, number]; }) => void +>e5 : ({ x: [a, b, c] }: { x: [number, number, number];}) => void >x : any >a : number >b : number diff --git a/tests/baselines/reference/destructuringParameterDeclaration1ES5iterable.types b/tests/baselines/reference/destructuringParameterDeclaration1ES5iterable.types index 9b7c194480c..4fee7254d2b 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration1ES5iterable.types +++ b/tests/baselines/reference/destructuringParameterDeclaration1ES5iterable.types @@ -11,13 +11,13 @@ function a1([a, b, [[c]]]: [number, number, string[][]]) { } >c : string function a2(o: { x: number, a: number }) { } ->a2 : (o: { x: number; a: number; }) => void +>a2 : (o: { x: number; a: number;}) => void >o : { x: number; a: number; } >x : number >a : number function a3({j, k, l: {m, n}, q: [a, b, c]}: { j: number, k: string, l: { m: boolean, n: number }, q: (number|string)[] }) { }; ->a3 : ({ j, k, l: { m, n }, q: [a, b, c] }: { j: number; k: string; l: { m: boolean; n: number; }; q: (string | number)[]; }) => void +>a3 : ({ j, k, l: { m, n }, q: [a, b, c] }: { j: number; k: string; l: { m: boolean; n: number; }; q: (number | string)[];}) => void >j : number >k : string >l : any @@ -35,7 +35,7 @@ function a3({j, k, l: {m, n}, q: [a, b, c]}: { j: number, k: string, l: { m: boo >q : (string | number)[] function a4({x, a}: { x: number, a: number }) { } ->a4 : ({ x, a }: { x: number; a: number; }) => void +>a4 : ({ x, a }: { x: number; a: number;}) => void >x : number >a : number >x : number @@ -213,7 +213,7 @@ function c2({z = 10}) { } >10 : 10 function c3({b}: { b: number|string} = { b: "hello" }) { } ->c3 : ({ b }?: { b: string | number; }) => void +>c3 : ({ b }?: { b: number | string;}) => void >b : string | number >b : string | number >{ b: "hello" } : { b: string; } @@ -407,12 +407,12 @@ function e1({x: number}) { } // x has type any NOT number >number : any function e2({x}: { x: number }) { } // x is type number ->e2 : ({ x }: { x: number; }) => void +>e2 : ({ x }: { x: number;}) => void >x : number >x : number function e3({x}: { x?: number }) { } // x is an optional with type number ->e3 : ({ x }: { x?: number; }) => void +>e3 : ({ x }: { x?: number;}) => void >x : number >x : number @@ -424,7 +424,7 @@ function e4({x: [number,string,any] }) { } // x has type [any, any, any] >any : any function e5({x: [a, b, c]}: { x: [number, number, number] }) { } // x has type [any, any, any] ->e5 : ({ x: [a, b, c] }: { x: [number, number, number]; }) => void +>e5 : ({ x: [a, b, c] }: { x: [number, number, number];}) => void >x : any >a : number >b : number diff --git a/tests/baselines/reference/destructuringParameterDeclaration1ES6.types b/tests/baselines/reference/destructuringParameterDeclaration1ES6.types index d91aebfc1bf..cee129da475 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration1ES6.types +++ b/tests/baselines/reference/destructuringParameterDeclaration1ES6.types @@ -13,13 +13,13 @@ function a1([a, b, [[c]]]: [number, number, string[][]]) { } >c : string function a2(o: { x: number, a: number }) { } ->a2 : (o: { x: number; a: number; }) => void +>a2 : (o: { x: number; a: number;}) => void >o : { x: number; a: number; } >x : number >a : number function a3({j, k, l: {m, n}, q: [a, b, c]}: { j: number, k: string, l: { m: boolean, n: number }, q: (number|string)[] }) { }; ->a3 : ({ j, k, l: { m, n }, q: [a, b, c] }: { j: number; k: string; l: { m: boolean; n: number; }; q: (string | number)[]; }) => void +>a3 : ({ j, k, l: { m, n }, q: [a, b, c] }: { j: number; k: string; l: { m: boolean; n: number; }; q: (number | string)[];}) => void >j : number >k : string >l : any @@ -37,7 +37,7 @@ function a3({j, k, l: {m, n}, q: [a, b, c]}: { j: number, k: string, l: { m: boo >q : (string | number)[] function a4({x, a}: { x: number, a: number }) { } ->a4 : ({ x, a }: { x: number; a: number; }) => void +>a4 : ({ x, a }: { x: number; a: number;}) => void >x : number >a : number >x : number @@ -196,7 +196,7 @@ function c2({z = 10}) { } >10 : 10 function c3({b}: { b: number|string} = { b: "hello" }) { } ->c3 : ({ b }?: { b: string | number; }) => void +>c3 : ({ b }?: { b: number | string;}) => void >b : string | number >b : string | number >{ b: "hello" } : { b: string; } @@ -381,12 +381,12 @@ function e1({x: number}) { } // x has type any NOT number >number : any function e2({x}: { x: number }) { } // x is type number ->e2 : ({ x }: { x: number; }) => void +>e2 : ({ x }: { x: number;}) => void >x : number >x : number function e3({x}: { x?: number }) { } // x is an optional with type number ->e3 : ({ x }: { x?: number; }) => void +>e3 : ({ x }: { x?: number;}) => void >x : number >x : number @@ -398,7 +398,7 @@ function e4({x: [number,string,any] }) { } // x has type [any, any, any] >any : any function e5({x: [a, b, c]}: { x: [number, number, number] }) { } // x has type [any, any, any] ->e5 : ({ x: [a, b, c] }: { x: [number, number, number]; }) => void +>e5 : ({ x: [a, b, c] }: { x: [number, number, number];}) => void >x : any >a : number >b : number diff --git a/tests/baselines/reference/destructuringParameterDeclaration2.types b/tests/baselines/reference/destructuringParameterDeclaration2.types index 6780d97d026..dda3f0cae57 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration2.types +++ b/tests/baselines/reference/destructuringParameterDeclaration2.types @@ -122,7 +122,7 @@ function c2({z = 10}) { } >10 : 10 function c3({b}: { b: number|string } = { b: "hello" }) { } ->c3 : ({ b }?: { b: string | number; }) => void +>c3 : ({ b }?: { b: number | string;}) => void >b : string | number >b : string | number >{ b: "hello" } : { b: string; } diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES5.types b/tests/baselines/reference/destructuringParameterDeclaration3ES5.types index feaaef5858e..80101e10138 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES5.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES5.types @@ -15,7 +15,7 @@ type stringOrNumArray = Array; >stringOrNumArray : stringOrNumArray function a1(...x: (number|string)[]) { } ->a1 : (...x: (string | number)[]) => void +>a1 : (...x: (number | string)[]) => void >x : (string | number)[] function a2(...a) { } @@ -23,7 +23,7 @@ function a2(...a) { } >a : any[] function a3(...a: Array) { } ->a3 : (...a: String[]) => void +>a3 : (...a: Array) => void >a : String[] function a4(...a: arrayString) { } diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types b/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types index 429073b17a6..02b43a1006d 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types @@ -15,7 +15,7 @@ type stringOrNumArray = Array; >stringOrNumArray : stringOrNumArray function a1(...x: (number|string)[]) { } ->a1 : (...x: (string | number)[]) => void +>a1 : (...x: (number | string)[]) => void >x : (string | number)[] function a2(...a) { } @@ -23,7 +23,7 @@ function a2(...a) { } >a : any[] function a3(...a: Array) { } ->a3 : (...a: String[]) => void +>a3 : (...a: Array) => void >a : String[] function a4(...a: arrayString) { } diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES6.types b/tests/baselines/reference/destructuringParameterDeclaration3ES6.types index 3b59fdb0da5..a2e6a55203f 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES6.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES6.types @@ -15,7 +15,7 @@ type stringOrNumArray = Array; >stringOrNumArray : stringOrNumArray function a1(...x: (number|string)[]) { } ->a1 : (...x: (string | number)[]) => void +>a1 : (...x: (number | string)[]) => void >x : (string | number)[] function a2(...a) { } @@ -23,7 +23,7 @@ function a2(...a) { } >a : any[] function a3(...a: Array) { } ->a3 : (...a: String[]) => void +>a3 : (...a: Array) => void >a : String[] function a4(...a: arrayString) { } diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.types b/tests/baselines/reference/destructuringParameterDeclaration4.types index 5d1ac7e4f4c..04e01920ee4 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.types +++ b/tests/baselines/reference/destructuringParameterDeclaration4.types @@ -19,7 +19,7 @@ function a0(...x: [number, number, string]) { } // Error, rest parameter must b >x : [number, number, string] function a1(...x: (number|string)[]) { } ->a1 : (...x: (string | number)[]) => void +>a1 : (...x: (number | string)[]) => void >x : (string | number)[] function a2(...a: someArray) { } // Error, rest parameter must be array type diff --git a/tests/baselines/reference/destructuringParameterDeclaration5.types b/tests/baselines/reference/destructuringParameterDeclaration5.types index 859b391f71c..a3fed88a215 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration5.types +++ b/tests/baselines/reference/destructuringParameterDeclaration5.types @@ -53,17 +53,17 @@ function d0({x} = { x: new Class() }) { } >Class : typeof Class function d1({x}: { x: F }) { } ->d1 : ({ x }: { x: F; }) => void +>d1 : ({ x }: { x: F;}) => void >x : F >x : F function d2({x}: { x: Class }) { } ->d2 : ({ x }: { x: Class; }) => void +>d2 : ({ x }: { x: Class;}) => void >x : Class >x : Class function d3({y}: { y: D }) { } ->d3 : ({ y }: { y: D; }) => void +>d3 : ({ y }: { y: D;}) => void >y : D >y : D diff --git a/tests/baselines/reference/destructuringParameterDeclaration8.types b/tests/baselines/reference/destructuringParameterDeclaration8.types index 870cbd05764..bcd16300c5f 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration8.types +++ b/tests/baselines/reference/destructuringParameterDeclaration8.types @@ -2,7 +2,7 @@ // explicit type annotation should cause `method` to have type 'x' | 'y' // both inside and outside `test`. function test({ ->test : ({ method, nested: { p } }: { method?: "x" | "y"; nested?: { p: "a" | "b"; }; }) => void +>test : ({ method, nested: { p } }: { method?: 'x' | 'y'; nested?: { p: 'a' | 'b'; };}) => void method = 'z', >method : "x" | "y" @@ -18,7 +18,7 @@ function test({ >method : "x" | "y" nested?: { p: 'a' | 'b' } ->nested : { p: "a" | "b"; } +>nested : { p: 'a' | 'b'; } >p : "a" | "b" }) diff --git a/tests/baselines/reference/destructuringPropertyAssignmentNameIsNotAssignmentTarget.types b/tests/baselines/reference/destructuringPropertyAssignmentNameIsNotAssignmentTarget.types index e0428fc959f..98d5cc7bbac 100644 --- a/tests/baselines/reference/destructuringPropertyAssignmentNameIsNotAssignmentTarget.types +++ b/tests/baselines/reference/destructuringPropertyAssignmentNameIsNotAssignmentTarget.types @@ -1,7 +1,7 @@ === tests/cases/compiler/destructuringPropertyAssignmentNameIsNotAssignmentTarget.ts === // test for #10668 function qux(bar: { value: number }) { ->qux : (bar: { value: number; }) => void +>qux : (bar: { value: number;}) => void >bar : { value: number; } >value : number diff --git a/tests/baselines/reference/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.types b/tests/baselines/reference/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.types index 8bf53bf6dd0..3060747c0a6 100644 --- a/tests/baselines/reference/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.types +++ b/tests/baselines/reference/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.types @@ -10,7 +10,7 @@ declare function getNum(): number; >getNum : () => number declare function foo(arg: { x: Bar, y: Date }, item: number, items?: [number, number, number]): void; ->foo : (arg: { x: Bar; y: Date; }, item: number, items?: [number, number, number]) => void +>foo : (arg: { x: Bar; y: Date;}, item: number, items?: [number, number, number]) => void >arg : { x: Bar; y: Date; } >x : Bar >y : Date diff --git a/tests/baselines/reference/differentTypesWithSameName.types b/tests/baselines/reference/differentTypesWithSameName.types index 77dbfc7ccac..c5b463a9df6 100644 --- a/tests/baselines/reference/differentTypesWithSameName.types +++ b/tests/baselines/reference/differentTypesWithSameName.types @@ -9,7 +9,7 @@ module m { >s : string } export function doSomething(v: m.variable) { ->doSomething : (v: variable) => void +>doSomething : (v: m.variable) => void >v : variable >m : any diff --git a/tests/baselines/reference/discriminableUnionWithIntersectedMembers.types b/tests/baselines/reference/discriminableUnionWithIntersectedMembers.types index 8f7899806f6..633d23c65c6 100644 --- a/tests/baselines/reference/discriminableUnionWithIntersectedMembers.types +++ b/tests/baselines/reference/discriminableUnionWithIntersectedMembers.types @@ -17,7 +17,7 @@ type X = // error const x: X = 4 as any as { x: 'x' | 'y', y: number }; >x : X ->4 as any as { x: 'x' | 'y', y: number } : { x: "x" | "y"; y: number; } +>4 as any as { x: 'x' | 'y', y: number } : { x: 'x' | 'y'; y: number; } >4 as any : any >4 : 4 >x : "x" | "y" @@ -38,7 +38,7 @@ type Y = // no error const y: Y = 4 as any as { x: 'x' | 'y', y: number }; >y : Y ->4 as any as { x: 'x' | 'y', y: number } : { x: "x" | "y"; y: number; } +>4 as any as { x: 'x' | 'y', y: number } : { x: 'x' | 'y'; y: number; } >4 as any : any >4 : 4 >x : "x" | "y" diff --git a/tests/baselines/reference/discriminantPropertyCheck.types b/tests/baselines/reference/discriminantPropertyCheck.types index 5f492087e4d..1e46a7dbe9d 100644 --- a/tests/baselines/reference/discriminantPropertyCheck.types +++ b/tests/baselines/reference/discriminantPropertyCheck.types @@ -424,7 +424,7 @@ export function foo(obj: Obj) { } function onlyPlus(arg: '+') { ->onlyPlus : (arg: "+") => "+" +>onlyPlus : (arg: '+') => "+" >arg : "+" return arg; @@ -463,7 +463,7 @@ type TypeBar2 = { type: BarEnum.bar2 }; >BarEnum : any function func3(value: Partial) { ->func3 : (value: Partial | Partial) => void +>func3 : (value: Partial) => void >value : Partial | Partial if (value.type !== undefined) { diff --git a/tests/baselines/reference/discriminantsAndPrimitives.types b/tests/baselines/reference/discriminantsAndPrimitives.types index d738f0f4013..6ad18446bf0 100644 --- a/tests/baselines/reference/discriminantsAndPrimitives.types +++ b/tests/baselines/reference/discriminantsAndPrimitives.types @@ -18,7 +18,7 @@ interface Bar { } function f1(x: Foo | Bar | string) { ->f1 : (x: string | Foo | Bar) => void +>f1 : (x: Foo | Bar | string) => void >x : string | Foo | Bar if (typeof x !== 'string') { @@ -44,7 +44,7 @@ function f1(x: Foo | Bar | string) { } function f2(x: Foo | Bar | string | undefined) { ->f2 : (x: string | Foo | Bar | undefined) => void +>f2 : (x: Foo | Bar | string | undefined) => void >x : string | Foo | Bar | undefined if (typeof x === "object") { @@ -70,7 +70,7 @@ function f2(x: Foo | Bar | string | undefined) { } function f3(x: Foo | Bar | string | null) { ->f3 : (x: string | Foo | Bar | null) => void +>f3 : (x: Foo | Bar | string | null) => void >x : string | Foo | Bar | null >null : null @@ -99,7 +99,7 @@ function f3(x: Foo | Bar | string | null) { } function f4(x: Foo | Bar | string | number | null) { ->f4 : (x: string | number | Foo | Bar | null) => void +>f4 : (x: Foo | Bar | string | number | null) => void >x : string | number | Foo | Bar | null >null : null diff --git a/tests/baselines/reference/discriminatedUnionTypes2.types b/tests/baselines/reference/discriminatedUnionTypes2.types index 51130779608..695f0c3768f 100644 --- a/tests/baselines/reference/discriminatedUnionTypes2.types +++ b/tests/baselines/reference/discriminatedUnionTypes2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/union/discriminatedUnionTypes2.ts === function f10(x : { kind: false, a: string } | { kind: true, b: string } | { kind: string, c: string }) { ->f10 : (x: { kind: false; a: string; } | { kind: true; b: string; } | { kind: string; c: string; }) => void +>f10 : (x: { kind: false; a: string;} | { kind: true; b: string;} | { kind: string; c: string;}) => void >x : { kind: false; a: string; } | { kind: true; b: string; } | { kind: string; c: string; } >kind : false >false : false @@ -44,7 +44,7 @@ function f10(x : { kind: false, a: string } | { kind: true, b: string } | { kind } function f11(x : { kind: false, a: string } | { kind: true, b: string } | { kind: string, c: string }) { ->f11 : (x: { kind: false; a: string; } | { kind: true; b: string; } | { kind: string; c: string; }) => void +>f11 : (x: { kind: false; a: string;} | { kind: true; b: string;} | { kind: string; c: string;}) => void >x : { kind: false; a: string; } | { kind: true; b: string; } | { kind: string; c: string; } >kind : false >false : false @@ -87,7 +87,7 @@ function f11(x : { kind: false, a: string } | { kind: true, b: string } | { kind } function f13(x: { a: null; b: string } | { a: string, c: number }) { ->f13 : (x: { a: null; b: string; } | { a: string; c: number; }) => void +>f13 : (x: { a: null; b: string;} | { a: string; c: number;}) => void >x : { a: null; b: string; } | { a: string; c: number; } >a : null >null : null @@ -108,7 +108,7 @@ function f13(x: { a: null; b: string } | { a: string, c: number }) { } function f14(x: { a: 0; b: string } | { a: T, c: number }) { ->f14 : (x: { a: 0; b: string; } | { a: T; c: number; }) => void +>f14 : (x: { a: 0; b: string;} | { a: T; c: number;}) => void >x : { a: 0; b: string; } | { a: T; c: number; } >a : 0 >b : string @@ -323,7 +323,7 @@ type abc = a | b | c; >abc : abc function f(problem: abc & (b | c)) { ->f : (problem: b | c) => void +>f : (problem: abc & (b | c)) => void >problem : b | c if (problem.type === 'b') { @@ -362,8 +362,8 @@ type RuntimeValue = >value : boolean function foo1(x: RuntimeValue & { type: 'number' }) { ->foo1 : (x: { type: "number"; value: number; } & { type: "number"; }) => void ->x : { type: "number"; value: number; } & { type: "number"; } +>foo1 : (x: RuntimeValue & { type: 'number';}) => void +>x : { type: "number"; value: number; } & { type: 'number'; } >type : "number" if (x.type === 'number') { @@ -387,8 +387,8 @@ function foo1(x: RuntimeValue & { type: 'number' }) { } function foo2(x: RuntimeValue & ({ type: 'number' } | { type: 'string' })) { ->foo2 : (x: ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; })) => void ->x : ({ type: "number"; value: number; } & { type: "number"; }) | ({ type: "string"; value: string; } & { type: "string"; }) +>foo2 : (x: RuntimeValue & ({ type: 'number';} | { type: 'string';})) => void +>x : ({ type: "number"; value: number; } & { type: 'number'; }) | ({ type: "string"; value: string; } & { type: 'string'; }) >type : "number" >type : "string" diff --git a/tests/baselines/reference/doNotInferUnrelatedTypes.types b/tests/baselines/reference/doNotInferUnrelatedTypes.types index 182334684fc..e3a9522721a 100644 --- a/tests/baselines/reference/doNotInferUnrelatedTypes.types +++ b/tests/baselines/reference/doNotInferUnrelatedTypes.types @@ -1,7 +1,7 @@ === tests/cases/compiler/doNotInferUnrelatedTypes.ts === // #16709 declare function dearray(ara: ReadonlyArray): T; ->dearray : (ara: readonly T[]) => T +>dearray : (ara: ReadonlyArray) => T >ara : readonly T[] type LiteralType = "foo" | "bar"; diff --git a/tests/baselines/reference/elaboratedErrorsOnNullableTargets01.types b/tests/baselines/reference/elaboratedErrorsOnNullableTargets01.types index 614237644cf..f161972d843 100644 --- a/tests/baselines/reference/elaboratedErrorsOnNullableTargets01.types +++ b/tests/baselines/reference/elaboratedErrorsOnNullableTargets01.types @@ -1,13 +1,13 @@ === tests/cases/compiler/elaboratedErrorsOnNullableTargets01.ts === export declare let x: null | { foo: { bar: string | null } | undefined } | undefined; ->x : { foo: { bar: string | null; } | undefined; } | null | undefined +>x : { foo: { bar: string | null;} | undefined; } | null | undefined >null : null >foo : { bar: string | null; } | undefined >bar : string | null >null : null export declare let y: { foo: { bar: number | undefined } }; ->y : { foo: { bar: number | undefined; }; } +>y : { foo: { bar: number | undefined;}; } >foo : { bar: number | undefined; } >bar : number | undefined diff --git a/tests/baselines/reference/elementAccessChain.2.types b/tests/baselines/reference/elementAccessChain.2.types index ef6b5607524..d1cc7222c8e 100644 --- a/tests/baselines/reference/elementAccessChain.2.types +++ b/tests/baselines/reference/elementAccessChain.2.types @@ -9,7 +9,7 @@ o1?.["b"]; >"b" : "b" declare const o2: undefined | { b: { c: string } }; ->o2 : { b: { c: string; }; } +>o2 : { b: { c: string;}; } >b : { c: string; } >c : string @@ -28,7 +28,7 @@ o2?.b["c"]; >"c" : "c" declare const o3: { b: undefined | { c: string } }; ->o3 : { b: { c: string; }; } +>o3 : { b: undefined | { c: string;}; } >b : { c: string; } >c : string diff --git a/tests/baselines/reference/elementAccessChain.types b/tests/baselines/reference/elementAccessChain.types index b865be68433..ccb7d974604 100644 --- a/tests/baselines/reference/elementAccessChain.types +++ b/tests/baselines/reference/elementAccessChain.types @@ -9,7 +9,7 @@ o1?.["b"]; >"b" : "b" declare const o2: undefined | { b: { c: string } }; ->o2 : { b: { c: string; }; } | undefined +>o2 : { b: { c: string;}; } | undefined >b : { c: string; } >c : string @@ -28,7 +28,7 @@ o2?.b["c"]; >"c" : "c" declare const o3: { b: undefined | { c: string } }; ->o3 : { b: { c: string; } | undefined; } +>o3 : { b: undefined | { c: string;}; } >b : { c: string; } | undefined >c : string @@ -47,8 +47,8 @@ o3.b?.["c"]; >"c" : "c" declare const o4: { b?: { c: { d?: { e: string } } } }; ->o4 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; } ->b : { c: { d?: { e: string; } | undefined; }; } | undefined +>o4 : { b?: { c: { d?: { e: string; };}; } | undefined; } +>b : { c: { d?: { e: string; };}; } | undefined >c : { d?: { e: string; } | undefined; } >d : { e: string; } | undefined >e : string @@ -76,8 +76,8 @@ o4.b?.["c"].d?.["e"]; >"e" : "e" declare const o5: { b?(): { c: { d?: { e: string } } } }; ->o5 : { b?(): { c: { d?: { e: string; } | undefined; }; }; } ->b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined +>o5 : { b?(): { c: { d?: { e: string; }; };}; } +>b : (() => { c: { d?: { e: string; }; };}) | undefined >c : { d?: { e: string; } | undefined; } >d : { e: string; } | undefined >e : string @@ -132,7 +132,7 @@ o5["b"]?.()["c"].d?.["e"]; // GH#33744 declare const o6: () => undefined | ({ x: number }); ->o6 : () => { x: number; } | undefined +>o6 : () => undefined | ({ x: number;}) >x : number o6()?.["x"]; diff --git a/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.types b/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.types index 6426ab89c8a..fa3232ef4ec 100644 --- a/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.types +++ b/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.types @@ -30,7 +30,7 @@ type DictionaryIterator = ObjectIterator, TResult>; // In lodash.d.ts this function has many overloads, but this seems to be the problematic one. function mapValues( ->mapValues : (obj: Dictionary | NumericDictionary, callback: ObjectIterator, TResult>) => Dictionary +>mapValues : (obj: Dictionary | NumericDictionary | null | undefined, callback: DictionaryIterator) => Dictionary obj: Dictionary | NumericDictionary | null | undefined, >obj : Dictionary | NumericDictionary @@ -57,7 +57,7 @@ interface Bar { } export function fooToBar( ->fooToBar : (foos: Record) => Record +>fooToBar : (foos: Record) => Record foos: Record >foos : Record diff --git a/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.types b/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.types index fd536cbd849..a31ff1e5596 100644 --- a/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.types +++ b/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.types @@ -30,7 +30,7 @@ type DictionaryIterator = ObjectIterator, TResult>; // In lodash.d.ts this function has many overloads, but this seems to be the problematic one. function mapValues( ->mapValues : (obj: Dictionary | NumericDictionary, callback: ObjectIterator, TResult>) => Dictionary +>mapValues : (obj: Dictionary | NumericDictionary | null | undefined, callback: DictionaryIterator) => Dictionary obj: Dictionary | NumericDictionary | null | undefined, >obj : Dictionary | NumericDictionary @@ -57,7 +57,7 @@ interface Bar { } export function fooToBar( ->fooToBar : (foos: Record) => Record +>fooToBar : (foos: Record) => Record foos: Record >foos : Record diff --git a/tests/baselines/reference/enumAssignabilityInInheritance.types b/tests/baselines/reference/enumAssignabilityInInheritance.types index 2c792b406df..a3a3bef8006 100644 --- a/tests/baselines/reference/enumAssignabilityInInheritance.types +++ b/tests/baselines/reference/enumAssignabilityInInheritance.types @@ -113,7 +113,7 @@ var r4 = foo5(E.A); >A : E declare function foo6(x: { bar: number }): { bar: number }; ->foo6 : { (x: { bar: number; }): { bar: number; }; (x: E): E; } +>foo6 : { (x: { bar: number;}): { bar: number;}; (x: E): E; } >x : { bar: number; } >bar : number >bar : number diff --git a/tests/baselines/reference/enumLiteralTypes1.types b/tests/baselines/reference/enumLiteralTypes1.types index 44dccdd0560..a73067eeaf2 100644 --- a/tests/baselines/reference/enumLiteralTypes1.types +++ b/tests/baselines/reference/enumLiteralTypes1.types @@ -42,7 +42,7 @@ function f1() { } function f2(a: YesNo, b: UnknownYesNo, c: Choice) { ->f2 : (a: YesNo, b: Choice, c: Choice) => void +>f2 : (a: YesNo, b: UnknownYesNo, c: Choice) => void >a : YesNo >b : Choice >c : Choice @@ -211,7 +211,7 @@ declare function g(x: Choice): number; >x : Choice function f5(a: YesNo, b: UnknownYesNo, c: Choice) { ->f5 : (a: YesNo, b: Choice, c: Choice) => void +>f5 : (a: YesNo, b: UnknownYesNo, c: Choice) => void >a : YesNo >b : Choice >c : Choice @@ -308,7 +308,7 @@ function f11(x: YesNo) { } function f12(x: UnknownYesNo) { ->f12 : (x: Choice) => void +>f12 : (x: UnknownYesNo) => void >x : Choice if (x) { @@ -324,7 +324,7 @@ function f12(x: UnknownYesNo) { } function f13(x: UnknownYesNo) { ->f13 : (x: Choice) => void +>f13 : (x: UnknownYesNo) => void >x : Choice if (x === Choice.Yes) { diff --git a/tests/baselines/reference/enumLiteralTypes2.types b/tests/baselines/reference/enumLiteralTypes2.types index 96d285647a3..168c0284cab 100644 --- a/tests/baselines/reference/enumLiteralTypes2.types +++ b/tests/baselines/reference/enumLiteralTypes2.types @@ -42,7 +42,7 @@ function f1() { } function f2(a: YesNo, b: UnknownYesNo, c: Choice) { ->f2 : (a: YesNo, b: Choice, c: Choice) => void +>f2 : (a: YesNo, b: UnknownYesNo, c: Choice) => void >a : YesNo >b : Choice >c : Choice @@ -64,7 +64,7 @@ function f2(a: YesNo, b: UnknownYesNo, c: Choice) { } function f3(a: Choice.Yes, b: UnknownYesNo) { ->f3 : (a: Choice.Yes, b: Choice) => void +>f3 : (a: Choice.Yes, b: UnknownYesNo) => void >a : Choice.Yes >Choice : any >b : Choice @@ -182,7 +182,7 @@ function f3(a: Choice.Yes, b: UnknownYesNo) { } function f4(a: Choice.Yes, b: UnknownYesNo) { ->f4 : (a: Choice.Yes, b: Choice) => void +>f4 : (a: Choice.Yes, b: UnknownYesNo) => void >a : Choice.Yes >Choice : any >b : Choice @@ -211,7 +211,7 @@ declare function g(x: Choice): number; >x : Choice function f5(a: YesNo, b: UnknownYesNo, c: Choice) { ->f5 : (a: YesNo, b: Choice, c: Choice) => void +>f5 : (a: YesNo, b: UnknownYesNo, c: Choice) => void >a : YesNo >b : Choice >c : Choice @@ -308,7 +308,7 @@ function f11(x: YesNo) { } function f12(x: UnknownYesNo) { ->f12 : (x: Choice) => void +>f12 : (x: UnknownYesNo) => void >x : Choice if (x) { @@ -324,7 +324,7 @@ function f12(x: UnknownYesNo) { } function f13(x: UnknownYesNo) { ->f13 : (x: Choice) => void +>f13 : (x: UnknownYesNo) => void >x : Choice if (x === Choice.Yes) { diff --git a/tests/baselines/reference/enumLiteralTypes3.types b/tests/baselines/reference/enumLiteralTypes3.types index 15214ac5df5..4a5421bb778 100644 --- a/tests/baselines/reference/enumLiteralTypes3.types +++ b/tests/baselines/reference/enumLiteralTypes3.types @@ -26,7 +26,7 @@ type UnknownYesNo = Choice.Unknown | Choice.Yes | Choice.No; >Choice : any function f1(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f1 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f1 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -54,7 +54,7 @@ function f1(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f2(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f2 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f2 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -82,7 +82,7 @@ function f2(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f3(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f3 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f3 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -110,7 +110,7 @@ function f3(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f4(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f4 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f4 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -138,7 +138,7 @@ function f4(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f5(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f5 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f5 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -230,7 +230,7 @@ function f5(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f6(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f6 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f6 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -322,7 +322,7 @@ function f6(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f7(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f7 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f7 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -410,7 +410,7 @@ function f7(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f10(x: Yes): Yes { ->f10 : (x: Choice.Yes) => Choice.Yes +>f10 : (x: Yes) => Yes >x : Choice.Yes switch (x) { @@ -468,7 +468,7 @@ function f11(x: YesNo): YesNo { } function f12(x: UnknownYesNo): UnknownYesNo { ->f12 : (x: Choice) => Choice +>f12 : (x: UnknownYesNo) => UnknownYesNo >x : Choice switch (x) { diff --git a/tests/baselines/reference/enumTag.types b/tests/baselines/reference/enumTag.types index a8eddab88c7..509b16dfe30 100644 --- a/tests/baselines/reference/enumTag.types +++ b/tests/baselines/reference/enumTag.types @@ -76,7 +76,7 @@ const Fs = { * @param {Fs} f */ function consume(t,s,f) { ->consume : (t: string, s: number, f: (arg0: number) => number) => void +>consume : (t: Target, s: Second, f: Fs) => void >t : string >s : number >f : (arg0: number) => number diff --git a/tests/baselines/reference/equalityStrictNulls.types b/tests/baselines/reference/equalityStrictNulls.types index c98ef726971..20623ca4bf9 100644 --- a/tests/baselines/reference/equalityStrictNulls.types +++ b/tests/baselines/reference/equalityStrictNulls.types @@ -111,7 +111,7 @@ function f2() { } function f3(a: number, b: boolean, c: { x: number }, d: number | string) { ->f3 : (a: number, b: boolean, c: { x: number; }, d: string | number) => void +>f3 : (a: number, b: boolean, c: { x: number;}, d: number | string) => void >a : number >b : boolean >c : { x: number; } diff --git a/tests/baselines/reference/errorOnUnionVsObjectShouldDeeplyDisambiguate.types b/tests/baselines/reference/errorOnUnionVsObjectShouldDeeplyDisambiguate.types index 9cee2e8483c..4a9b6ec3a33 100644 --- a/tests/baselines/reference/errorOnUnionVsObjectShouldDeeplyDisambiguate.types +++ b/tests/baselines/reference/errorOnUnionVsObjectShouldDeeplyDisambiguate.types @@ -35,7 +35,7 @@ interface Stuff { } function foo(): Stuff | string { ->foo : () => string | Stuff +>foo : () => Stuff | string return { >{ a() { return [123] }, b: () => "hello", c: () => "hello", d: () => "hello", e: () => "hello", f: () => "hello", g: () => "hello", h: () => "hello", i: () => "hello", j: () => "hello", k: () => 123 } : { a(): number[]; b: () => string; c: () => string; d: () => string; e: () => string; f: () => string; g: () => string; h: () => string; i: () => string; j: () => string; k: () => number; } diff --git a/tests/baselines/reference/errorTypesAsTypeArguments.types b/tests/baselines/reference/errorTypesAsTypeArguments.types index d0503a18e00..7dedbd35e3b 100644 --- a/tests/baselines/reference/errorTypesAsTypeArguments.types +++ b/tests/baselines/reference/errorTypesAsTypeArguments.types @@ -1,6 +1,6 @@ === tests/cases/compiler/errorTypesAsTypeArguments.ts === interface Foo { bar(baz: Foo): Foo; ->bar : (baz: Foo) => Foo +>bar : (baz: Foo) => Foo >baz : Foo } diff --git a/tests/baselines/reference/errorsInGenericTypeReference.types b/tests/baselines/reference/errorsInGenericTypeReference.types index dd20578aa7e..57d4cf01ec3 100644 --- a/tests/baselines/reference/errorsInGenericTypeReference.types +++ b/tests/baselines/reference/errorsInGenericTypeReference.types @@ -41,12 +41,12 @@ class testClass3 { >testClass3 : testClass3 testMethod1(): Foo<{ x: V }> { return null; } // error: could not find symbol V ->testMethod1 : () => Foo<{ x: any; }> +>testMethod1 : () => Foo<{ x: V;}> >x : any >null : null static testMethod2(): Foo<{ x: V }> { return null } // error: could not find symbol V ->testMethod2 : () => Foo<{ x: any; }> +>testMethod2 : () => Foo<{ x: V;}> >x : any >null : null @@ -63,14 +63,14 @@ class testClass3 { // in function return type annotation function testFunction1(): Foo<{ x: V }> { return null; } // error: could not find symbol V ->testFunction1 : () => Foo<{ x: any; }> +>testFunction1 : () => Foo<{ x: V;}> >x : any >null : null // in paramter types function testFunction2(p: Foo<{ x: V }>) { }// error: could not find symbol V ->testFunction2 : (p: Foo<{ x: any; }>) => void +>testFunction2 : (p: Foo<{ x: V;}>) => void >p : Foo<{ x: any; }> >x : any @@ -129,7 +129,7 @@ interface testInterface2 { >x : any method(a: Foo<{ x: V }>): Foo<{ x: V }>; //2x: error: could not find symbol V ->method : (a: Foo<{ x: any; }>) => Foo<{ x: any; }> +>method : (a: Foo<{ x: V;}>) => Foo<{ x: V;}> >a : Foo<{ x: any; }> >x : any >x : any diff --git a/tests/baselines/reference/excessPropertyCheckWithNestedArrayIntersection.types b/tests/baselines/reference/excessPropertyCheckWithNestedArrayIntersection.types index 8b819992a09..d6a5522eae3 100644 --- a/tests/baselines/reference/excessPropertyCheckWithNestedArrayIntersection.types +++ b/tests/baselines/reference/excessPropertyCheckWithNestedArrayIntersection.types @@ -1,7 +1,7 @@ === tests/cases/compiler/excessPropertyCheckWithNestedArrayIntersection.ts === interface ValueOnlyFields { fields: Array<{ ->fields : { value: number; }[] +>fields : { value: number | null; }[] value: number | null; >value : number @@ -11,7 +11,7 @@ interface ValueOnlyFields { } interface ValueAndKeyFields { fields: Array<{ ->fields : { key: string; value: number; }[] +>fields : { key: string | null; value: number | null; }[] key: string | null; >key : string diff --git a/tests/baselines/reference/excessPropertyCheckWithUnions.types b/tests/baselines/reference/excessPropertyCheckWithUnions.types index 211f87c6ba6..1a8cc69eaee 100644 --- a/tests/baselines/reference/excessPropertyCheckWithUnions.types +++ b/tests/baselines/reference/excessPropertyCheckWithUnions.types @@ -399,7 +399,7 @@ declare const prop2: string | undefined; >prop2 : string | undefined function F1(_arg: { props: Properties }) { } ->F1 : (_arg: { props: Properties; }) => void +>F1 : (_arg: { props: Properties;}) => void >_arg : { props: Properties; } >props : Properties diff --git a/tests/baselines/reference/expandoFunctionContextualTypesJs.types b/tests/baselines/reference/expandoFunctionContextualTypesJs.types index f9ede532ba7..1a9a12b8595 100644 --- a/tests/baselines/reference/expandoFunctionContextualTypesJs.types +++ b/tests/baselines/reference/expandoFunctionContextualTypesJs.types @@ -38,7 +38,7 @@ const MyComponent2 = () => null; MyComponent2.defaultProps = { >MyComponent2.defaultProps = { color: "red"} : { color: "red"; } >MyComponent2.defaultProps : { color: "red" | "blue"; } ->MyComponent2 : { (): any; defaultProps: { color: "red" | "blue"; }; } +>MyComponent2 : { (): any; defaultProps: MyComponentProps; } >defaultProps : { color: "red" | "blue"; } >{ color: "red"} : { color: "red"; } @@ -59,7 +59,7 @@ const check = MyComponent2; * @param {{ props: MyComponentProps }} p */ function expectLiteral(p) {} ->expectLiteral : (p: { props: { color: "red" | "blue"; }; }) => void +>expectLiteral : (p: { props: MyComponentProps;}) => void >p : { props: { color: "red" | "blue"; }; } function foo() { diff --git a/tests/baselines/reference/exportAssignmentMembersVisibleInAugmentation.types b/tests/baselines/reference/exportAssignmentMembersVisibleInAugmentation.types index 295a2b3e892..fb424f849d7 100644 --- a/tests/baselines/reference/exportAssignmentMembersVisibleInAugmentation.types +++ b/tests/baselines/reference/exportAssignmentMembersVisibleInAugmentation.types @@ -15,7 +15,7 @@ declare module "foo" { >"foo" : typeof foo export function f(): T; // OK ->f : () => number +>f : () => T } === /b.ts === @@ -26,7 +26,7 @@ declare module "foo" { >"foo" : typeof foo export function g(): foo.T; // OK ->g : () => number +>g : () => foo.T >foo : any } diff --git a/tests/baselines/reference/exportNestedNamespaces.types b/tests/baselines/reference/exportNestedNamespaces.types index e072d99ae18..97ce99af19a 100644 --- a/tests/baselines/reference/exportNestedNamespaces.types +++ b/tests/baselines/reference/exportNestedNamespaces.types @@ -68,7 +68,7 @@ var classic = new s.Classic() /** @param {s.n.K} c @param {s.Classic} classic */ function f(c, classic) { ->f : (c: K, classic: Classic) => void +>f : (c: s.n.K, classic: s.Classic) => void >c : K >classic : Classic diff --git a/tests/baselines/reference/extendArray.types b/tests/baselines/reference/extendArray.types index 7a09ff3b0a5..8e9e312e1e6 100644 --- a/tests/baselines/reference/extendArray.types +++ b/tests/baselines/reference/extendArray.types @@ -19,8 +19,8 @@ a.forEach(function (v,i,a) {}); declare module _Core { interface Array { collect(fn:(e:_element) => _element[]) : any[]; ->collect : (fn: (e: any) => any[]) => any[] ->fn : (e: any) => any[] +>collect : (fn: (e: any) => _element[]) => any[] +>fn : (e: any) => _element[] >e : any } } diff --git a/tests/baselines/reference/externModuleClobber.types b/tests/baselines/reference/externModuleClobber.types index 9b230e3b0c4..7299e282baf 100644 --- a/tests/baselines/reference/externModuleClobber.types +++ b/tests/baselines/reference/externModuleClobber.types @@ -9,7 +9,7 @@ declare module EM { >EC : EC public getPosition() : EM.Position; ->getPosition : () => Position +>getPosition : () => EM.Position >EM : any } } diff --git a/tests/baselines/reference/for-of29.types b/tests/baselines/reference/for-of29.types index 2f246b56860..52a18f0cf50 100644 --- a/tests/baselines/reference/for-of29.types +++ b/tests/baselines/reference/for-of29.types @@ -1,9 +1,9 @@ === tests/cases/conformance/es6/for-ofStatements/for-of29.ts === var iterableWithOptionalIterator: { ->iterableWithOptionalIterator : { [Symbol.iterator]?(): Iterator; } +>iterableWithOptionalIterator : { [Symbol.iterator]?(): Iterator; } [Symbol.iterator]?(): Iterator ->[Symbol.iterator] : () => Iterator +>[Symbol.iterator] : () => Iterator >Symbol.iterator : symbol >Symbol : SymbolConstructor >iterator : symbol diff --git a/tests/baselines/reference/functionAssignment.types b/tests/baselines/reference/functionAssignment.types index ef4d3c49d3e..85c8a5e7109 100644 --- a/tests/baselines/reference/functionAssignment.types +++ b/tests/baselines/reference/functionAssignment.types @@ -66,7 +66,7 @@ f2(() => { }); function f3(a: { a: number; b: number; }) { } ->f3 : (a: { a: number; b: number; }) => void +>f3 : (a: { a: number; b: number;}) => void >a : { a: number; b: number; } >a : number >b : number diff --git a/tests/baselines/reference/functionExpressionContextualTyping3.types b/tests/baselines/reference/functionExpressionContextualTyping3.types index 662aa72ea90..3d89ca0bccd 100644 --- a/tests/baselines/reference/functionExpressionContextualTyping3.types +++ b/tests/baselines/reference/functionExpressionContextualTyping3.types @@ -1,7 +1,7 @@ === tests/cases/conformance/expressions/contextualTyping/functionExpressionContextualTyping3.ts === // #31114 declare function f(value: T | number): void; ->f : (value: number | T) => void +>f : (value: T | number) => void >value : number | T f((a: any) => "") diff --git a/tests/baselines/reference/functionOverloadErrors.types b/tests/baselines/reference/functionOverloadErrors.types index c4b5f8d36f2..b7328391776 100644 --- a/tests/baselines/reference/functionOverloadErrors.types +++ b/tests/baselines/reference/functionOverloadErrors.types @@ -24,7 +24,7 @@ function fn2b(n: number[]); >n : number[] function fn2b(n: Array); ->fn2b : { (n: number[]): any; (n: number[]): any; } +>fn2b : { (n: number[]): any; (n: Array): any; } >n : number[] function fn2b() { diff --git a/tests/baselines/reference/functionOverloads14.types b/tests/baselines/reference/functionOverloads14.types index 3e88bd04f88..5b4ac064278 100644 --- a/tests/baselines/reference/functionOverloads14.types +++ b/tests/baselines/reference/functionOverloads14.types @@ -1,10 +1,10 @@ === tests/cases/compiler/functionOverloads14.ts === function foo():{a:number;} ->foo : { (): { a: number; }; (): { a: string; }; } +>foo : { (): { a: number;}; (): { a: string; }; } >a : number function foo():{a:string;} ->foo : { (): { a: number; }; (): { a: string; }; } +>foo : { (): { a: number; }; (): { a: string;}; } >a : string function foo():{a:any;} { return {a:1} } diff --git a/tests/baselines/reference/functionOverloads15.types b/tests/baselines/reference/functionOverloads15.types index 86c9fc6a665..50c76b576ab 100644 --- a/tests/baselines/reference/functionOverloads15.types +++ b/tests/baselines/reference/functionOverloads15.types @@ -1,12 +1,12 @@ === tests/cases/compiler/functionOverloads15.ts === function foo(foo:{a:string; b:number;}):string; ->foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number; }): number; } +>foo : { (foo: { a: string; b: number;}): string; (foo: { a: string; b: number; }): number; } >foo : { a: string; b: number; } >a : string >b : number function foo(foo:{a:string; b:number;}):number; ->foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number; }): number; } +>foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number;}): number; } >foo : { a: string; b: number; } >a : string >b : number diff --git a/tests/baselines/reference/functionOverloads16.types b/tests/baselines/reference/functionOverloads16.types index 1d7a4184de1..0de0ee8b673 100644 --- a/tests/baselines/reference/functionOverloads16.types +++ b/tests/baselines/reference/functionOverloads16.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads16.ts === function foo(foo:{a:string;}):string; ->foo : { (foo: { a: string; }): string; (foo: { a: string; }): number; } +>foo : { (foo: { a: string;}): string; (foo: { a: string; }): number; } >foo : { a: string; } >a : string function foo(foo:{a:string;}):number; ->foo : { (foo: { a: string; }): string; (foo: { a: string; }): number; } +>foo : { (foo: { a: string; }): string; (foo: { a: string;}): number; } >foo : { a: string; } >a : string diff --git a/tests/baselines/reference/functionOverloads17.types b/tests/baselines/reference/functionOverloads17.types index a93973cf3ac..a83c31f1fb6 100644 --- a/tests/baselines/reference/functionOverloads17.types +++ b/tests/baselines/reference/functionOverloads17.types @@ -1,6 +1,6 @@ === tests/cases/compiler/functionOverloads17.ts === function foo():{a:number;} ->foo : () => { a: number; } +>foo : () => { a: number;} >a : number function foo():{a:string;} { return {a:""} } diff --git a/tests/baselines/reference/functionOverloads18.types b/tests/baselines/reference/functionOverloads18.types index 8e3da948e5e..d712c36515a 100644 --- a/tests/baselines/reference/functionOverloads18.types +++ b/tests/baselines/reference/functionOverloads18.types @@ -1,6 +1,6 @@ === tests/cases/compiler/functionOverloads18.ts === function foo(bar:{a:number;}); ->foo : (bar: { a: number; }) => any +>foo : (bar: { a: number;}) => any >bar : { a: number; } >a : number diff --git a/tests/baselines/reference/functionOverloads19.types b/tests/baselines/reference/functionOverloads19.types index 33d6fc151d5..1f2f34d88e9 100644 --- a/tests/baselines/reference/functionOverloads19.types +++ b/tests/baselines/reference/functionOverloads19.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads19.ts === function foo(bar:{b:string;}); ->foo : { (bar: { b: string; }): any; (bar: { a: string; }): any; } +>foo : { (bar: { b: string;}): any; (bar: { a: string; }): any; } >bar : { b: string; } >b : string function foo(bar:{a:string;}); ->foo : { (bar: { b: string; }): any; (bar: { a: string; }): any; } +>foo : { (bar: { b: string; }): any; (bar: { a: string;}): any; } >bar : { a: string; } >a : string diff --git a/tests/baselines/reference/functionOverloads20.types b/tests/baselines/reference/functionOverloads20.types index 88d84babe7e..8c0326a2b71 100644 --- a/tests/baselines/reference/functionOverloads20.types +++ b/tests/baselines/reference/functionOverloads20.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads20.ts === function foo(bar:{a:number;}): number; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>foo : { (bar: { a: number;}): number; (bar: { a: string; }): string; } >bar : { a: number; } >a : number function foo(bar:{a:string;}): string; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>foo : { (bar: { a: number; }): number; (bar: { a: string;}): string; } >bar : { a: string; } >a : string diff --git a/tests/baselines/reference/functionOverloads21.types b/tests/baselines/reference/functionOverloads21.types index 4d87e3a123c..5ceb24dc26c 100644 --- a/tests/baselines/reference/functionOverloads21.types +++ b/tests/baselines/reference/functionOverloads21.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads21.ts === function foo(bar:{a:number;}[]); ->foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string; }[]): any; } +>foo : { (bar: { a: number;}[]): any; (bar: { a: number; b: string; }[]): any; } >bar : { a: number; }[] >a : number function foo(bar:{a:number; b:string;}[]); ->foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string; }[]): any; } +>foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string;}[]): any; } >bar : { a: number; b: string; }[] >a : number >b : string diff --git a/tests/baselines/reference/functionOverloads22.types b/tests/baselines/reference/functionOverloads22.types index ff6b30c084b..e799d2fc064 100644 --- a/tests/baselines/reference/functionOverloads22.types +++ b/tests/baselines/reference/functionOverloads22.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads22.ts === function foo(bar:number):{a:number;}[]; ->foo : { (bar: number): { a: number; }[]; (bar: string): { a: number; b: string; }[]; } +>foo : { (bar: number): { a: number;}[]; (bar: string): { a: number; b: string; }[]; } >bar : number >a : number function foo(bar:string):{a:number; b:string;}[]; ->foo : { (bar: number): { a: number; }[]; (bar: string): { a: number; b: string; }[]; } +>foo : { (bar: number): { a: number; }[]; (bar: string): { a: number; b: string;}[]; } >bar : string >a : number >b : string diff --git a/tests/baselines/reference/functionOverloads34.types b/tests/baselines/reference/functionOverloads34.types index 8e979aaa96f..4df69b604bc 100644 --- a/tests/baselines/reference/functionOverloads34.types +++ b/tests/baselines/reference/functionOverloads34.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads34.ts === function foo(bar:{a:number;}):string; ->foo : { (bar: { a: number; }): string; (bar: { a: boolean; }): number; } +>foo : { (bar: { a: number;}): string; (bar: { a: boolean; }): number; } >bar : { a: number; } >a : number function foo(bar:{a:boolean;}):number; ->foo : { (bar: { a: number; }): string; (bar: { a: boolean; }): number; } +>foo : { (bar: { a: number; }): string; (bar: { a: boolean;}): number; } >bar : { a: boolean; } >a : boolean diff --git a/tests/baselines/reference/functionOverloads35.types b/tests/baselines/reference/functionOverloads35.types index 8686bc2fdf8..2cc628f57f6 100644 --- a/tests/baselines/reference/functionOverloads35.types +++ b/tests/baselines/reference/functionOverloads35.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads35.ts === function foo(bar:{a:number;}):number; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>foo : { (bar: { a: number;}): number; (bar: { a: string; }): string; } >bar : { a: number; } >a : number function foo(bar:{a:string;}):string; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>foo : { (bar: { a: number; }): number; (bar: { a: string;}): string; } >bar : { a: string; } >a : string diff --git a/tests/baselines/reference/functionOverloads36.types b/tests/baselines/reference/functionOverloads36.types index 8a78f466d34..a4ecb44829e 100644 --- a/tests/baselines/reference/functionOverloads36.types +++ b/tests/baselines/reference/functionOverloads36.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads36.ts === function foo(bar:{a:number;}):number; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>foo : { (bar: { a: number;}): number; (bar: { a: string; }): string; } >bar : { a: number; } >a : number function foo(bar:{a:string;}):string; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>foo : { (bar: { a: number; }): number; (bar: { a: string;}): string; } >bar : { a: string; } >a : string diff --git a/tests/baselines/reference/functionOverloads37.types b/tests/baselines/reference/functionOverloads37.types index 99087180604..d55de4251d8 100644 --- a/tests/baselines/reference/functionOverloads37.types +++ b/tests/baselines/reference/functionOverloads37.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads37.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number;}[]): string; (bar: { a: boolean; }[]): number; } >bar : { a: number; }[] >a : number function foo(bar:{a:boolean;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean;}[]): number; } >bar : { a: boolean; }[] >a : boolean diff --git a/tests/baselines/reference/functionOverloads38.types b/tests/baselines/reference/functionOverloads38.types index e8b32f78e7c..2f420e7899f 100644 --- a/tests/baselines/reference/functionOverloads38.types +++ b/tests/baselines/reference/functionOverloads38.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads38.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number;}[]): string; (bar: { a: boolean; }[]): number; } >bar : { a: number; }[] >a : number function foo(bar:{a:boolean;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean;}[]): number; } >bar : { a: boolean; }[] >a : boolean diff --git a/tests/baselines/reference/functionOverloads39.types b/tests/baselines/reference/functionOverloads39.types index bf4a6ec5ae9..1ae837a296b 100644 --- a/tests/baselines/reference/functionOverloads39.types +++ b/tests/baselines/reference/functionOverloads39.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads39.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number;}[]): string; (bar: { a: boolean; }[]): number; } >bar : { a: number; }[] >a : number function foo(bar:{a:boolean;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean;}[]): number; } >bar : { a: boolean; }[] >a : boolean diff --git a/tests/baselines/reference/functionOverloads40.types b/tests/baselines/reference/functionOverloads40.types index 3ba5b993b5d..b303743a518 100644 --- a/tests/baselines/reference/functionOverloads40.types +++ b/tests/baselines/reference/functionOverloads40.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads40.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number;}[]): string; (bar: { a: boolean; }[]): number; } >bar : { a: number; }[] >a : number function foo(bar:{a:boolean;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean;}[]): number; } >bar : { a: boolean; }[] >a : boolean diff --git a/tests/baselines/reference/functionOverloads41.types b/tests/baselines/reference/functionOverloads41.types index 6dfeb47f22e..7a15f84d7f0 100644 --- a/tests/baselines/reference/functionOverloads41.types +++ b/tests/baselines/reference/functionOverloads41.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads41.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number;}[]): string; (bar: { a: boolean; }[]): number; } >bar : { a: number; }[] >a : number function foo(bar:{a:boolean;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean;}[]): number; } >bar : { a: boolean; }[] >a : boolean diff --git a/tests/baselines/reference/functionOverloads42.types b/tests/baselines/reference/functionOverloads42.types index e709ea8b7ef..3bbb27c762a 100644 --- a/tests/baselines/reference/functionOverloads42.types +++ b/tests/baselines/reference/functionOverloads42.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads42.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; } +>foo : { (bar: { a: number;}[]): string; (bar: { a: any; }[]): number; } >bar : { a: number; }[] >a : number function foo(bar:{a:any;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; } +>foo : { (bar: { a: number; }[]): string; (bar: { a: any;}[]): number; } >bar : { a: any; }[] >a : any diff --git a/tests/baselines/reference/functionOverloads43.types b/tests/baselines/reference/functionOverloads43.types index 41a29fd0fe3..3f032c0bd42 100644 --- a/tests/baselines/reference/functionOverloads43.types +++ b/tests/baselines/reference/functionOverloads43.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionOverloads43.ts === function foo(bar: { a:number }[]): number; ->foo : { (bar: { a: number; }[]): number; (bar: { a: string; }[]): string; } +>foo : { (bar: { a: number;}[]): number; (bar: { a: string; }[]): string; } >bar : { a: number; }[] >a : number function foo(bar: { a:string }[]): string; ->foo : { (bar: { a: number; }[]): number; (bar: { a: string; }[]): string; } +>foo : { (bar: { a: number; }[]): number; (bar: { a: string;}[]): string; } >bar : { a: string; }[] >a : string diff --git a/tests/baselines/reference/functionOverloads44.types b/tests/baselines/reference/functionOverloads44.types index fafd4ed507c..d607612f215 100644 --- a/tests/baselines/reference/functionOverloads44.types +++ b/tests/baselines/reference/functionOverloads44.types @@ -9,12 +9,12 @@ interface Cat extends Animal { cat } >cat : any function foo1(bar: { a:number }[]): Dog; ->foo1 : { (bar: { a: number; }[]): Dog; (bar: { a: string; }[]): Animal; } +>foo1 : { (bar: { a: number;}[]): Dog; (bar: { a: string; }[]): Animal; } >bar : { a: number; }[] >a : number function foo1(bar: { a:string }[]): Animal; ->foo1 : { (bar: { a: number; }[]): Dog; (bar: { a: string; }[]): Animal; } +>foo1 : { (bar: { a: number; }[]): Dog; (bar: { a: string;}[]): Animal; } >bar : { a: string; }[] >a : string @@ -28,12 +28,12 @@ function foo1([x]: { a:number | string }[]): Dog { } function foo2(bar: { a:number }[]): Cat; ->foo2 : { (bar: { a: number; }[]): Cat; (bar: { a: string; }[]): Dog | Cat; } +>foo2 : { (bar: { a: number;}[]): Cat; (bar: { a: string; }[]): Dog | Cat; } >bar : { a: number; }[] >a : number function foo2(bar: { a:string }[]): Cat | Dog; ->foo2 : { (bar: { a: number; }[]): Cat; (bar: { a: string; }[]): Dog | Cat; } +>foo2 : { (bar: { a: number; }[]): Cat; (bar: { a: string;}[]): Cat | Dog; } >bar : { a: string; }[] >a : string diff --git a/tests/baselines/reference/functionOverloads45.types b/tests/baselines/reference/functionOverloads45.types index 89e6799c937..285c2cd5733 100644 --- a/tests/baselines/reference/functionOverloads45.types +++ b/tests/baselines/reference/functionOverloads45.types @@ -9,12 +9,12 @@ interface Cat extends Animal { cat } >cat : any function foo1(bar: { a:number }[]): Cat; ->foo1 : { (bar: { a: number; }[]): Cat; (bar: { a: string; }[]): Dog; } +>foo1 : { (bar: { a: number;}[]): Cat; (bar: { a: string; }[]): Dog; } >bar : { a: number; }[] >a : number function foo1(bar: { a:string }[]): Dog; ->foo1 : { (bar: { a: number; }[]): Cat; (bar: { a: string; }[]): Dog; } +>foo1 : { (bar: { a: number; }[]): Cat; (bar: { a: string;}[]): Dog; } >bar : { a: string; }[] >a : string @@ -28,12 +28,12 @@ function foo1([x]: { a:number | string }[]): Animal { } function foo2(bar: { a:number }[]): Cat; ->foo2 : { (bar: { a: number; }[]): Cat; (bar: { a: string; }[]): Dog; } +>foo2 : { (bar: { a: number;}[]): Cat; (bar: { a: string; }[]): Dog; } >bar : { a: number; }[] >a : number function foo2(bar: { a:string }[]): Dog; ->foo2 : { (bar: { a: number; }[]): Cat; (bar: { a: string; }[]): Dog; } +>foo2 : { (bar: { a: number; }[]): Cat; (bar: { a: string;}[]): Dog; } >bar : { a: string; }[] >a : string diff --git a/tests/baselines/reference/functionReturnTypeQuery.types b/tests/baselines/reference/functionReturnTypeQuery.types index ac8a1df3894..f50c10aea08 100644 --- a/tests/baselines/reference/functionReturnTypeQuery.types +++ b/tests/baselines/reference/functionReturnTypeQuery.types @@ -3,14 +3,14 @@ declare let foo: number; >foo : number declare function test1(foo: string, bar: typeof foo): typeof foo; ->test1 : (foo: string, bar: string) => string +>test1 : (foo: string, bar: typeof foo) => typeof foo >foo : string >bar : string >foo : string >foo : string declare function test2({foo}: {foo: string}, bar: typeof foo): typeof foo; ->test2 : ({ foo }: { foo: string; }, bar: string) => string +>test2 : ({ foo }: { foo: string;}, bar: typeof foo) => typeof foo >foo : string >foo : string >bar : string diff --git a/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.types b/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.types index 025452ce502..51a683fe691 100644 --- a/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.types +++ b/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.types @@ -142,19 +142,19 @@ function f18() { } function f19(): void | number { ->f19 : () => number | void +>f19 : () => void | number // Okay; function return type is union containing void } function f20(): any | number { ->f20 : () => any +>f20 : () => any | number // Okay; function return type is union containing any } function f21(): number | string { ->f21 : () => string | number +>f21 : () => number | string // Not okay; union does not contain void or any } diff --git a/tests/baselines/reference/generatedContextualTyping.types b/tests/baselines/reference/generatedContextualTyping.types index 6cee0f5d468..adfd9b9407f 100644 --- a/tests/baselines/reference/generatedContextualTyping.types +++ b/tests/baselines/reference/generatedContextualTyping.types @@ -1062,7 +1062,7 @@ function x123(parm: () => Base[] = function named() { return [d1, d2] }) { } >d2 : Derived2 function x124(parm: { (): Base[]; } = () => [d1, d2]) { } ->x124 : (parm?: () => Base[]) => void +>x124 : (parm?: { (): Base[];}) => void >parm : () => Base[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] @@ -1070,7 +1070,7 @@ function x124(parm: { (): Base[]; } = () => [d1, d2]) { } >d2 : Derived2 function x125(parm: { (): Base[]; } = function() { return [d1, d2] }) { } ->x125 : (parm?: () => Base[]) => void +>x125 : (parm?: { (): Base[];}) => void >parm : () => Base[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] @@ -1078,7 +1078,7 @@ function x125(parm: { (): Base[]; } = function() { return [d1, d2] }) { } >d2 : Derived2 function x126(parm: { (): Base[]; } = function named() { return [d1, d2] }) { } ->x126 : (parm?: () => Base[]) => void +>x126 : (parm?: { (): Base[];}) => void >parm : () => Base[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >named : () => (Derived1 | Derived2)[] @@ -1094,7 +1094,7 @@ function x127(parm: Base[] = [d1, d2]) { } >d2 : Derived2 function x128(parm: Array = [d1, d2]) { } ->x128 : (parm?: Base[]) => void +>x128 : (parm?: Array) => void >parm : Base[] >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 @@ -1109,7 +1109,7 @@ function x129(parm: { [n: number]: Base; } = [d1, d2]) { } >d2 : Derived2 function x130(parm: {n: Base[]; } = { n: [d1, d2] }) { } ->x130 : (parm?: { n: Base[]; }) => void +>x130 : (parm?: { n: Base[];}) => void >parm : { n: Base[]; } >n : Base[] >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } @@ -1161,21 +1161,21 @@ function x135(): () => Base[] { return function named() { return [d1, d2] }; } >d2 : Derived2 function x136(): { (): Base[]; } { return () => [d1, d2]; } ->x136 : () => () => Base[] +>x136 : () => { (): Base[];} >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 >d2 : Derived2 function x137(): { (): Base[]; } { return function() { return [d1, d2] }; } ->x137 : () => () => Base[] +>x137 : () => { (): Base[];} >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 >d2 : Derived2 function x138(): { (): Base[]; } { return function named() { return [d1, d2] }; } ->x138 : () => () => Base[] +>x138 : () => { (): Base[];} >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] @@ -1189,7 +1189,7 @@ function x139(): Base[] { return [d1, d2]; } >d2 : Derived2 function x140(): Array { return [d1, d2]; } ->x140 : () => Base[] +>x140 : () => Array >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 >d2 : Derived2 @@ -1202,7 +1202,7 @@ function x141(): { [n: number]: Base; } { return [d1, d2]; } >d2 : Derived2 function x142(): {n: Base[]; } { return { n: [d1, d2] }; } ->x142 : () => { n: Base[]; } +>x142 : () => { n: Base[];} >n : Base[] >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } >n : (Derived1 | Derived2)[] @@ -1264,7 +1264,7 @@ function x147(): () => Base[] { return function named() { return [d1, d2] }; ret >d2 : Derived2 function x148(): { (): Base[]; } { return () => [d1, d2]; return () => [d1, d2]; } ->x148 : () => () => Base[] +>x148 : () => { (): Base[];} >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 @@ -1275,7 +1275,7 @@ function x148(): { (): Base[]; } { return () => [d1, d2]; return () => [d1, d2]; >d2 : Derived2 function x149(): { (): Base[]; } { return function() { return [d1, d2] }; return function() { return [d1, d2] }; } ->x149 : () => () => Base[] +>x149 : () => { (): Base[];} >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 @@ -1286,7 +1286,7 @@ function x149(): { (): Base[]; } { return function() { return [d1, d2] }; return >d2 : Derived2 function x150(): { (): Base[]; } { return function named() { return [d1, d2] }; return function named() { return [d1, d2] }; } ->x150 : () => () => Base[] +>x150 : () => { (): Base[];} >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] @@ -1308,7 +1308,7 @@ function x151(): Base[] { return [d1, d2]; return [d1, d2]; } >d2 : Derived2 function x152(): Array { return [d1, d2]; return [d1, d2]; } ->x152 : () => Base[] +>x152 : () => Array >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 >d2 : Derived2 @@ -1327,7 +1327,7 @@ function x153(): { [n: number]: Base; } { return [d1, d2]; return [d1, d2]; } >d2 : Derived2 function x154(): {n: Base[]; } { return { n: [d1, d2] }; return { n: [d1, d2] }; } ->x154 : () => { n: Base[]; } +>x154 : () => { n: Base[];} >n : Base[] >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } >n : (Derived1 | Derived2)[] @@ -1395,7 +1395,7 @@ var x159: () => () => Base[] = () => { return function named() { return [d1, d2] >d2 : Derived2 var x160: () => { (): Base[]; } = () => { return () => [d1, d2]; }; ->x160 : () => () => Base[] +>x160 : () => { (): Base[];} >() => { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] @@ -1403,7 +1403,7 @@ var x160: () => { (): Base[]; } = () => { return () => [d1, d2]; }; >d2 : Derived2 var x161: () => { (): Base[]; } = () => { return function() { return [d1, d2] }; }; ->x161 : () => () => Base[] +>x161 : () => { (): Base[];} >() => { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] @@ -1411,7 +1411,7 @@ var x161: () => { (): Base[]; } = () => { return function() { return [d1, d2] }; >d2 : Derived2 var x162: () => { (): Base[]; } = () => { return function named() { return [d1, d2] }; }; ->x162 : () => () => Base[] +>x162 : () => { (): Base[];} >() => { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >named : () => (Derived1 | Derived2)[] @@ -1427,7 +1427,7 @@ var x163: () => Base[] = () => { return [d1, d2]; }; >d2 : Derived2 var x164: () => Array = () => { return [d1, d2]; }; ->x164 : () => Base[] +>x164 : () => Array >() => { return [d1, d2]; } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 @@ -1442,7 +1442,7 @@ var x165: () => { [n: number]: Base; } = () => { return [d1, d2]; }; >d2 : Derived2 var x166: () => {n: Base[]; } = () => { return { n: [d1, d2] }; }; ->x166 : () => { n: Base[]; } +>x166 : () => { n: Base[];} >n : Base[] >() => { return { n: [d1, d2] }; } : () => { n: (Derived1 | Derived2)[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } @@ -1497,7 +1497,7 @@ var x171: () => () => Base[] = function() { return function named() { return [d1 >d2 : Derived2 var x172: () => { (): Base[]; } = function() { return () => [d1, d2]; }; ->x172 : () => () => Base[] +>x172 : () => { (): Base[];} >function() { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] @@ -1505,7 +1505,7 @@ var x172: () => { (): Base[]; } = function() { return () => [d1, d2]; }; >d2 : Derived2 var x173: () => { (): Base[]; } = function() { return function() { return [d1, d2] }; }; ->x173 : () => () => Base[] +>x173 : () => { (): Base[];} >function() { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] @@ -1513,7 +1513,7 @@ var x173: () => { (): Base[]; } = function() { return function() { return [d1, d >d2 : Derived2 var x174: () => { (): Base[]; } = function() { return function named() { return [d1, d2] }; }; ->x174 : () => () => Base[] +>x174 : () => { (): Base[];} >function() { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >named : () => (Derived1 | Derived2)[] @@ -1529,7 +1529,7 @@ var x175: () => Base[] = function() { return [d1, d2]; }; >d2 : Derived2 var x176: () => Array = function() { return [d1, d2]; }; ->x176 : () => Base[] +>x176 : () => Array >function() { return [d1, d2]; } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] >d1 : Derived1 @@ -1544,7 +1544,7 @@ var x177: () => { [n: number]: Base; } = function() { return [d1, d2]; }; >d2 : Derived2 var x178: () => {n: Base[]; } = function() { return { n: [d1, d2] }; }; ->x178 : () => { n: Base[]; } +>x178 : () => { n: Base[];} >n : Base[] >function() { return { n: [d1, d2] }; } : () => { n: (Derived1 | Derived2)[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } @@ -2090,7 +2090,7 @@ var x239: { n: () => Base[]; } = { n: function named() { return [d1, d2] } }; >d2 : Derived2 var x240: { n: { (): Base[]; }; } = { n: () => [d1, d2] }; ->x240 : { n: () => Base[]; } +>x240 : { n: { (): Base[];}; } >n : () => Base[] >{ n: () => [d1, d2] } : { n: () => (Derived1 | Derived2)[]; } >n : () => (Derived1 | Derived2)[] @@ -2100,7 +2100,7 @@ var x240: { n: { (): Base[]; }; } = { n: () => [d1, d2] }; >d2 : Derived2 var x241: { n: { (): Base[]; }; } = { n: function() { return [d1, d2] } }; ->x241 : { n: () => Base[]; } +>x241 : { n: { (): Base[];}; } >n : () => Base[] >{ n: function() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } >n : () => (Derived1 | Derived2)[] @@ -2110,7 +2110,7 @@ var x241: { n: { (): Base[]; }; } = { n: function() { return [d1, d2] } }; >d2 : Derived2 var x242: { n: { (): Base[]; }; } = { n: function named() { return [d1, d2] } }; ->x242 : { n: () => Base[]; } +>x242 : { n: { (): Base[];}; } >n : () => Base[] >{ n: function named() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } >n : () => (Derived1 | Derived2)[] @@ -2130,7 +2130,7 @@ var x243: { n: Base[]; } = { n: [d1, d2] }; >d2 : Derived2 var x244: { n: Array; } = { n: [d1, d2] }; ->x244 : { n: Base[]; } +>x244 : { n: Array; } >n : Base[] >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } >n : (Derived1 | Derived2)[] @@ -2149,7 +2149,7 @@ var x245: { n: { [n: number]: Base; }; } = { n: [d1, d2] }; >d2 : Derived2 var x246: { n: {n: Base[]; } ; } = { n: { n: [d1, d2] } }; ->x246 : { n: { n: Base[]; }; } +>x246 : { n: { n: Base[];}; } >n : { n: Base[]; } >n : Base[] >{ n: { n: [d1, d2] } } : { n: { n: (Derived1 | Derived2)[]; }; } @@ -2947,7 +2947,7 @@ function x323(n: () => Base[]) { }; x323(function named() { return [d1, d2] }); >d2 : Derived2 function x324(n: { (): Base[]; }) { }; x324(() => [d1, d2]); ->x324 : (n: () => Base[]) => void +>x324 : (n: { (): Base[];}) => void >n : () => Base[] >x324(() => [d1, d2]) : void >x324 : (n: () => Base[]) => void @@ -2957,7 +2957,7 @@ function x324(n: { (): Base[]; }) { }; x324(() => [d1, d2]); >d2 : Derived2 function x325(n: { (): Base[]; }) { }; x325(function() { return [d1, d2] }); ->x325 : (n: () => Base[]) => void +>x325 : (n: { (): Base[];}) => void >n : () => Base[] >x325(function() { return [d1, d2] }) : void >x325 : (n: () => Base[]) => void @@ -2967,7 +2967,7 @@ function x325(n: { (): Base[]; }) { }; x325(function() { return [d1, d2] }); >d2 : Derived2 function x326(n: { (): Base[]; }) { }; x326(function named() { return [d1, d2] }); ->x326 : (n: () => Base[]) => void +>x326 : (n: { (): Base[];}) => void >n : () => Base[] >x326(function named() { return [d1, d2] }) : void >x326 : (n: () => Base[]) => void @@ -2987,7 +2987,7 @@ function x327(n: Base[]) { }; x327([d1, d2]); >d2 : Derived2 function x328(n: Array) { }; x328([d1, d2]); ->x328 : (n: Base[]) => void +>x328 : (n: Array) => void >n : Base[] >x328([d1, d2]) : void >x328 : (n: Base[]) => void @@ -3006,7 +3006,7 @@ function x329(n: { [n: number]: Base; }) { }; x329([d1, d2]); >d2 : Derived2 function x330(n: {n: Base[]; } ) { }; x330({ n: [d1, d2] }); ->x330 : (n: { n: Base[]; }) => void +>x330 : (n: { n: Base[];}) => void >n : { n: Base[]; } >n : Base[] >x330({ n: [d1, d2] }) : void @@ -3079,8 +3079,8 @@ var x335 = (n: () => Base[]) => n; x335(function named() { return [d1, d2] }); >d2 : Derived2 var x336 = (n: { (): Base[]; }) => n; x336(() => [d1, d2]); ->x336 : (n: () => Base[]) => () => Base[] ->(n: { (): Base[]; }) => n : (n: () => Base[]) => () => Base[] +>x336 : (n: { (): Base[];}) => () => Base[] +>(n: { (): Base[]; }) => n : (n: { (): Base[];}) => () => Base[] >n : () => Base[] >n : () => Base[] >x336(() => [d1, d2]) : () => Base[] @@ -3091,8 +3091,8 @@ var x336 = (n: { (): Base[]; }) => n; x336(() => [d1, d2]); >d2 : Derived2 var x337 = (n: { (): Base[]; }) => n; x337(function() { return [d1, d2] }); ->x337 : (n: () => Base[]) => () => Base[] ->(n: { (): Base[]; }) => n : (n: () => Base[]) => () => Base[] +>x337 : (n: { (): Base[];}) => () => Base[] +>(n: { (): Base[]; }) => n : (n: { (): Base[];}) => () => Base[] >n : () => Base[] >n : () => Base[] >x337(function() { return [d1, d2] }) : () => Base[] @@ -3103,8 +3103,8 @@ var x337 = (n: { (): Base[]; }) => n; x337(function() { return [d1, d2] }); >d2 : Derived2 var x338 = (n: { (): Base[]; }) => n; x338(function named() { return [d1, d2] }); ->x338 : (n: () => Base[]) => () => Base[] ->(n: { (): Base[]; }) => n : (n: () => Base[]) => () => Base[] +>x338 : (n: { (): Base[];}) => () => Base[] +>(n: { (): Base[]; }) => n : (n: { (): Base[];}) => () => Base[] >n : () => Base[] >n : () => Base[] >x338(function named() { return [d1, d2] }) : () => Base[] @@ -3127,8 +3127,8 @@ var x339 = (n: Base[]) => n; x339([d1, d2]); >d2 : Derived2 var x340 = (n: Array) => n; x340([d1, d2]); ->x340 : (n: Base[]) => Base[] ->(n: Array) => n : (n: Base[]) => Base[] +>x340 : (n: Array) => Base[] +>(n: Array) => n : (n: Array) => Base[] >n : Base[] >n : Base[] >x340([d1, d2]) : Base[] @@ -3226,8 +3226,8 @@ var x347 = function(n: () => Base[]) { }; x347(function named() { return [d1, d2 >d2 : Derived2 var x348 = function(n: { (): Base[]; }) { }; x348(() => [d1, d2]); ->x348 : (n: () => Base[]) => void ->function(n: { (): Base[]; }) { } : (n: () => Base[]) => void +>x348 : (n: { (): Base[];}) => void +>function(n: { (): Base[]; }) { } : (n: { (): Base[];}) => void >n : () => Base[] >x348(() => [d1, d2]) : void >x348 : (n: () => Base[]) => void @@ -3237,8 +3237,8 @@ var x348 = function(n: { (): Base[]; }) { }; x348(() => [d1, d2]); >d2 : Derived2 var x349 = function(n: { (): Base[]; }) { }; x349(function() { return [d1, d2] }); ->x349 : (n: () => Base[]) => void ->function(n: { (): Base[]; }) { } : (n: () => Base[]) => void +>x349 : (n: { (): Base[];}) => void +>function(n: { (): Base[]; }) { } : (n: { (): Base[];}) => void >n : () => Base[] >x349(function() { return [d1, d2] }) : void >x349 : (n: () => Base[]) => void @@ -3248,8 +3248,8 @@ var x349 = function(n: { (): Base[]; }) { }; x349(function() { return [d1, d2] } >d2 : Derived2 var x350 = function(n: { (): Base[]; }) { }; x350(function named() { return [d1, d2] }); ->x350 : (n: () => Base[]) => void ->function(n: { (): Base[]; }) { } : (n: () => Base[]) => void +>x350 : (n: { (): Base[];}) => void +>function(n: { (): Base[]; }) { } : (n: { (): Base[];}) => void >n : () => Base[] >x350(function named() { return [d1, d2] }) : void >x350 : (n: () => Base[]) => void @@ -3270,8 +3270,8 @@ var x351 = function(n: Base[]) { }; x351([d1, d2]); >d2 : Derived2 var x352 = function(n: Array) { }; x352([d1, d2]); ->x352 : (n: Base[]) => void ->function(n: Array) { } : (n: Base[]) => void +>x352 : (n: Array) => void +>function(n: Array) { } : (n: Array) => void >n : Base[] >x352([d1, d2]) : void >x352 : (n: Base[]) => void diff --git a/tests/baselines/reference/generatorReturnExpressionIsChecked.types b/tests/baselines/reference/generatorReturnExpressionIsChecked.types index 4abe3721a8e..f77ec0b3729 100644 --- a/tests/baselines/reference/generatorReturnExpressionIsChecked.types +++ b/tests/baselines/reference/generatorReturnExpressionIsChecked.types @@ -1,6 +1,6 @@ === tests/cases/compiler/generatorReturnExpressionIsChecked.ts === function* f(): Iterator { ->f : () => Iterator +>f : () => Iterator return invalid; >invalid : any diff --git a/tests/baselines/reference/generatorTypeCheck1.types b/tests/baselines/reference/generatorTypeCheck1.types index 72597601a85..435da37fa69 100644 --- a/tests/baselines/reference/generatorTypeCheck1.types +++ b/tests/baselines/reference/generatorTypeCheck1.types @@ -1,4 +1,4 @@ === tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck1.ts === function* g1(): Iterator { } ->g1 : () => Iterator +>g1 : () => Iterator diff --git a/tests/baselines/reference/generatorTypeCheck62.types b/tests/baselines/reference/generatorTypeCheck62.types index 52eb65fbb63..398d2256767 100644 --- a/tests/baselines/reference/generatorTypeCheck62.types +++ b/tests/baselines/reference/generatorTypeCheck62.types @@ -5,9 +5,9 @@ export interface StrategicState { } export function strategy(stratName: string, gen: (a: T) => IterableIterator): (a: T) => IterableIterator { ->strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator +>strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator >stratName : string ->gen : (a: T) => IterableIterator +>gen : (a: T) => IterableIterator >a : T >a : T diff --git a/tests/baselines/reference/generatorTypeCheck63.types b/tests/baselines/reference/generatorTypeCheck63.types index 5af197f769a..9f92860ed49 100644 --- a/tests/baselines/reference/generatorTypeCheck63.types +++ b/tests/baselines/reference/generatorTypeCheck63.types @@ -5,9 +5,9 @@ export interface StrategicState { } export function strategy(stratName: string, gen: (a: T) => IterableIterator): (a: T) => IterableIterator { ->strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator +>strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator >stratName : string ->gen : (a: T) => IterableIterator +>gen : (a: T) => IterableIterator >a : T >a : T diff --git a/tests/baselines/reference/genericArrayPropertyAssignment.types b/tests/baselines/reference/genericArrayPropertyAssignment.types index 9552d0ac2c9..cc52cd5d9b5 100644 --- a/tests/baselines/reference/genericArrayPropertyAssignment.types +++ b/tests/baselines/reference/genericArrayPropertyAssignment.types @@ -1,6 +1,6 @@ === tests/cases/compiler/genericArrayPropertyAssignment.ts === function isEmpty(list: {length:number;}) ->isEmpty : (list: { length: number; }) => boolean +>isEmpty : (list: { length: number;}) => boolean >list : { length: number; } >length : number { diff --git a/tests/baselines/reference/genericArrayWithoutTypeAnnotation.types b/tests/baselines/reference/genericArrayWithoutTypeAnnotation.types index d56c6074506..c81d805f715 100644 --- a/tests/baselines/reference/genericArrayWithoutTypeAnnotation.types +++ b/tests/baselines/reference/genericArrayWithoutTypeAnnotation.types @@ -5,7 +5,7 @@ class Bar { >Bar : Bar public getBar(foo: IFoo[]) { ->getBar : (foo: any[]) => void +>getBar : (foo: IFoo[]) => void >foo : any[] } } diff --git a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.types b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.types index 3fc4090d5d4..3a9414e3167 100644 --- a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.types +++ b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.types @@ -35,7 +35,7 @@ var a1: I = { x: new A() }; var a2: I = function (): { x: A } { >a2 : I >function (): { x: A } { var z = { x: new A() }; return z;} () : { x: A; } ->function (): { x: A } { var z = { x: new A() }; return z;} : () => { x: A; } +>function (): { x: A } { var z = { x: new A() }; return z;} : () => { x: A;} >x : A var z = { x: new A() }; return z; diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments.types b/tests/baselines/reference/genericCallWithGenericSignatureArguments.types index af5e123d823..6eb4586461e 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments.types +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments.types @@ -76,11 +76,11 @@ var r4 = foo((x: typeof a) => a, (x: typeof b) => b); // typeof a => typeof a >r4 : (x: { x: number; y?: number; }) => { x: number; y?: number; } >foo((x: typeof a) => a, (x: typeof b) => b) : (x: { x: number; y?: number; }) => { x: number; y?: number; } >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T ->(x: typeof a) => a : (x: { x: number; y?: number; }) => { x: number; y?: number; } +>(x: typeof a) => a : (x: typeof a) => { x: number; y?: number; } >x : { x: number; y?: number; } >a : { x: number; y?: number; } >a : { x: number; y?: number; } ->(x: typeof b) => b : (x: { x: number; z?: number; }) => { x: number; z?: number; } +>(x: typeof b) => b : (x: typeof b) => { x: number; z?: number; } >x : { x: number; z?: number; } >b : { x: number; z?: number; } >b : { x: number; z?: number; } @@ -89,11 +89,11 @@ var r5 = foo((x: typeof b) => b, (x: typeof a) => a); // typeof b => typeof b >r5 : (x: { x: number; z?: number; }) => { x: number; z?: number; } >foo((x: typeof b) => b, (x: typeof a) => a) : (x: { x: number; z?: number; }) => { x: number; z?: number; } >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T ->(x: typeof b) => b : (x: { x: number; z?: number; }) => { x: number; z?: number; } +>(x: typeof b) => b : (x: typeof b) => { x: number; z?: number; } >x : { x: number; z?: number; } >b : { x: number; z?: number; } >b : { x: number; z?: number; } ->(x: typeof a) => a : (x: { x: number; y?: number; }) => { x: number; y?: number; } +>(x: typeof a) => a : (x: typeof a) => { x: number; y?: number; } >x : { x: number; y?: number; } >a : { x: number; y?: number; } >a : { x: number; y?: number; } diff --git a/tests/baselines/reference/genericCallWithObjectLiteralArgs.types b/tests/baselines/reference/genericCallWithObjectLiteralArgs.types index 7343f8a703f..7a0574028b5 100644 --- a/tests/baselines/reference/genericCallWithObjectLiteralArgs.types +++ b/tests/baselines/reference/genericCallWithObjectLiteralArgs.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectLiteralArgs.ts === function foo(x: { bar: T; baz: T }) { ->foo : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } +>foo : (x: { bar: T; baz: T;}) => { bar: T; baz: T; } >x : { bar: T; baz: T; } >bar : T >baz : T diff --git a/tests/baselines/reference/genericCallWithObjectLiteralArguments1.types b/tests/baselines/reference/genericCallWithObjectLiteralArguments1.types index 633a0cd3fbb..5d254d79299 100644 --- a/tests/baselines/reference/genericCallWithObjectLiteralArguments1.types +++ b/tests/baselines/reference/genericCallWithObjectLiteralArguments1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/genericCallWithObjectLiteralArguments1.ts === function foo(n: { x: T; y: T }, m: T) { return m; } ->foo : (n: { x: T; y: T; }, m: T) => T +>foo : (n: { x: T; y: T;}, m: T) => T >n : { x: T; y: T; } >x : T >y : T diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgs2.types b/tests/baselines/reference/genericCallWithObjectTypeArgs2.types index 61d83aaa40f..368ff2c5fdb 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgs2.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgs2.types @@ -22,7 +22,7 @@ class Derived2 extends Base { // returns {}[] function f(a: { x: T; y: U }) { ->f : (a: { x: T; y: U; }) => (T | U)[] +>f : (a: { x: T; y: U;}) => (T | U)[] >a : { x: T; y: U; } >x : T >y : U @@ -63,7 +63,7 @@ var r2 = f({ x: new Base(), y: new Derived2() }); // {}[] function f2(a: { x: T; y: U }) { ->f2 : (a: { x: T; y: U; }) => (x: T) => U +>f2 : (a: { x: T; y: U;}) => (x: T) => U >a : { x: T; y: U; } >x : T >y : U diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types index b26c37a58fa..0a2fa2179a1 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types @@ -17,7 +17,7 @@ class Derived extends Base { } function f(x: { foo: T; bar: T }) { ->f : (x: { foo: T; bar: T; }) => T +>f : (x: { foo: T; bar: T;}) => T >x : { foo: T; bar: T; } >foo : T >bar : T diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.types index a670d20e039..38646489b84 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.types @@ -23,7 +23,7 @@ class Derived2 extends Base { } function f(a: { x: T; y: T }) { ->f : (a: { x: T; y: T; }) => T +>f : (a: { x: T; y: T;}) => T >a : { x: T; y: T; } >x : T >y : T diff --git a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments.types b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments.types index 435b69bd753..9becb06eb85 100644 --- a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments.types +++ b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments.types @@ -16,7 +16,7 @@ module NonGenericParameter { } function foo4(cb: typeof a) { ->foo4 : (cb: { new (x: boolean): boolean; new (x: string): string; }) => boolean +>foo4 : (cb: typeof a) => boolean >cb : { new (x: boolean): boolean; new (x: string): string; } >a : { new (x: boolean): boolean; new (x: string): string; } diff --git a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.types b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.types index 36baf9fa2b9..a975cb761df 100644 --- a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.types +++ b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.types @@ -16,7 +16,7 @@ module NonGenericParameter { } function foo4(cb: typeof a) { ->foo4 : (cb: { new (x: boolean): boolean; new (x: string): string; }) => { new (x: boolean): boolean; new (x: string): string; } +>foo4 : (cb: typeof a) => { new (x: boolean): boolean; new (x: string): string; } >cb : { new (x: boolean): boolean; new (x: string): string; } >a : { new (x: boolean): boolean; new (x: string): string; } diff --git a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types index b37c03962ac..6360ee82417 100644 --- a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types +++ b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types @@ -16,7 +16,7 @@ module NonGenericParameter { } function foo4(cb: typeof a) { ->foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; } +>foo4 : (cb: typeof a) => { (x: boolean): boolean; (x: string): string; } >cb : { (x: boolean): boolean; (x: string): string; } >a : { (x: boolean): boolean; (x: string): string; } diff --git a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.types b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.types index b199cf05b3a..626a38bb7db 100644 --- a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.types +++ b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.types @@ -16,7 +16,7 @@ module NonGenericParameter { } function foo4(cb: typeof a) { ->foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; } +>foo4 : (cb: typeof a) => { (x: boolean): boolean; (x: string): string; } >cb : { (x: boolean): boolean; (x: string): string; } >a : { (x: boolean): boolean; (x: string): string; } diff --git a/tests/baselines/reference/genericClassWithStaticsUsingTypeArguments.types b/tests/baselines/reference/genericClassWithStaticsUsingTypeArguments.types index 7b5449eb43f..16907d74063 100644 --- a/tests/baselines/reference/genericClassWithStaticsUsingTypeArguments.types +++ b/tests/baselines/reference/genericClassWithStaticsUsingTypeArguments.types @@ -35,7 +35,7 @@ class Foo { >null : null static f(xs: T[]): T[] { ->f : (xs: any[]) => any[] +>f : (xs: T[]) => T[] >xs : any[] return xs.reverse(); diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index 2b44e9560df..085e322a7f2 100644 --- a/tests/baselines/reference/genericFunctionInference1.types +++ b/tests/baselines/reference/genericFunctionInference1.types @@ -28,7 +28,7 @@ declare function list(a: T): T[]; >a : T declare function box(x: V): { value: V }; ->box : (x: V) => { value: V; } +>box : (x: V) => { value: V;} >x : V >value : V @@ -621,7 +621,7 @@ var z = identityM(x); // #3038 export function keyOf(value: { key: a; }): a { ->keyOf : (value: { key: a; }) => a +>keyOf : (value: { key: a;}) => a >value : { key: a; } >key : a diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types index 4a7498563cc..96121d17463 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types @@ -1,7 +1,7 @@ === tests/cases/compiler/genericFunctionsWithOptionalParameters1.ts === interface Utils { fold(c?: Array, folder?: (s: S, t: T) => T, init?: S): T; ->fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T +>fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T >c : T[] >folder : (s: S, t: T) => T >s : S diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters2.types b/tests/baselines/reference/genericFunctionsWithOptionalParameters2.types index 1bb4cb7f6fd..54eac1b784d 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters2.types +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters2.types @@ -1,7 +1,7 @@ === tests/cases/compiler/genericFunctionsWithOptionalParameters2.ts === interface Utils { fold(c: Array, folder?: (s: S, t: T) => T, init?: S): T; ->fold : (c: T[], folder?: (s: S, t: T) => T, init?: S) => T +>fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T >c : T[] >folder : (s: S, t: T) => T >s : S diff --git a/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types b/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types index 4f3330b494d..53c02fa292a 100644 --- a/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types +++ b/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types @@ -26,7 +26,7 @@ declare function f(x: Pair); >x : Pair declare function f2(x: { first: T; second: U; }); ->f2 : (x: { first: T; second: U; }) => any +>f2 : (x: { first: T; second: U;}) => any >x : { first: T; second: U; } >first : T >second : U diff --git a/tests/baselines/reference/genericRestParameters2.types b/tests/baselines/reference/genericRestParameters2.types index 103b0a0a62f..16798357a92 100644 --- a/tests/baselines/reference/genericRestParameters2.types +++ b/tests/baselines/reference/genericRestParameters2.types @@ -49,7 +49,7 @@ declare let f11: (a: number, ...x: [string, ...boolean[]]) => void; >x : [string, ...boolean[]] declare let f12: (a: number, b: string, ...x: [...boolean[]]) => void; ->f12 : (a: number, b: string, ...x: boolean[]) => void +>f12 : (a: number, b: string, ...x: [...boolean[]]) => void >a : number >b : string >x : boolean[] diff --git a/tests/baselines/reference/genericRestTypes.types b/tests/baselines/reference/genericRestTypes.types index 78da48e79ba..8d06f4a0773 100644 --- a/tests/baselines/reference/genericRestTypes.types +++ b/tests/baselines/reference/genericRestTypes.types @@ -76,7 +76,7 @@ function assignmentWithComplexRest3() { >x : string const fn2: (...args: {x: "a"} & {x: "b"}) => void = fn1; ->fn2 : (...args: never) => void +>fn2 : (...args: { x: "a";} & { x: "b";}) => void >args : never >x : "a" >x : "b" diff --git a/tests/baselines/reference/genericSpecializationToTypeLiteral1.types b/tests/baselines/reference/genericSpecializationToTypeLiteral1.types index 343e2f0bde4..7f402ce08e9 100644 --- a/tests/baselines/reference/genericSpecializationToTypeLiteral1.types +++ b/tests/baselines/reference/genericSpecializationToTypeLiteral1.types @@ -87,7 +87,7 @@ interface IEnumerable { interface IDictionary { toEnumerable(): IEnumerable<{ key: TKey; value: TValue }>; ->toEnumerable : () => IEnumerable<{ key: TKey; value: TValue; }> +>toEnumerable : () => IEnumerable<{ key: TKey; value: TValue;}> >key : TKey >value : TValue } diff --git a/tests/baselines/reference/generics2.types b/tests/baselines/reference/generics2.types index af9ae4bc00c..9f835081bc5 100644 --- a/tests/baselines/reference/generics2.types +++ b/tests/baselines/reference/generics2.types @@ -18,7 +18,7 @@ interface G { var v1: { ->v1 : { x: { a: string; }; y: { a: string; b: string; c: string; }; } +>v1 : { x: { a: string;}; y: { a: string; b: string; c: string;}; } x: { a: string; } >x : { a: string; } diff --git a/tests/baselines/reference/generics2NoError.types b/tests/baselines/reference/generics2NoError.types index c4095436a57..af39f023e35 100644 --- a/tests/baselines/reference/generics2NoError.types +++ b/tests/baselines/reference/generics2NoError.types @@ -18,7 +18,7 @@ interface G { var v1: { ->v1 : { x: { a: string; }; y: { a: string; b: string; c: string; }; } +>v1 : { x: { a: string;}; y: { a: string; b: string; c: string;}; } x: { a: string; } >x : { a: string; } diff --git a/tests/baselines/reference/genericsWithoutTypeParameters1.types b/tests/baselines/reference/genericsWithoutTypeParameters1.types index 2453cdd5a76..53fff344b46 100644 --- a/tests/baselines/reference/genericsWithoutTypeParameters1.types +++ b/tests/baselines/reference/genericsWithoutTypeParameters1.types @@ -30,7 +30,7 @@ function foo(x: C, y: I) { } >y : any function foo2(x: C, y: I) { } ->foo2 : (x: C, y: I) => void +>foo2 : (x: C, y: I) => void >x : C >y : I diff --git a/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types b/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types index eafa5586fb1..f89f132dcc8 100644 --- a/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types +++ b/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types @@ -1,6 +1,6 @@ === tests/cases/compiler/homomorphicMappedTypeIntersectionAssignability.ts === function f( ->f : (a: { weak?: string | undefined; } & Readonly & { name: "ok"; }, b: Readonly, c: Readonly & { name: string; }) => void +>f : (a: { weak?: string;} & Readonly & { name: "ok";}, b: Readonly, c: Readonly & { name: string;}) => void a: { weak?: string } & Readonly & { name: "ok" }, >a : { weak?: string | undefined; } & Readonly & { name: "ok"; } diff --git a/tests/baselines/reference/illegalGenericWrapping1.types b/tests/baselines/reference/illegalGenericWrapping1.types index d98c5ea45a8..a50b39bcaaf 100644 --- a/tests/baselines/reference/illegalGenericWrapping1.types +++ b/tests/baselines/reference/illegalGenericWrapping1.types @@ -16,7 +16,7 @@ interface Sequence { >value : T groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: Sequence; }>; ->groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: Sequence; }> +>groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: Sequence;}> >keySelector : (value: T) => K >value : T >key : K diff --git a/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.types b/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.types index 50b339492ba..3ecd3d7788f 100644 --- a/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.types +++ b/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.types @@ -36,7 +36,7 @@ function testFunctionExprC2(eq: (v1: any, v2: any) => number) { }; >v2 : any function testObjLiteral(objLit: { v: any; w: any }) { }; ->testObjLiteral : (objLit: { v: any; w: any; }) => void +>testObjLiteral : (objLit: { v: any; w: any;}) => void >objLit : { v: any; w: any; } >v : any >w : any diff --git a/tests/baselines/reference/implicitConstParameters.types b/tests/baselines/reference/implicitConstParameters.types index e9a97ebc022..f0729e45630 100644 --- a/tests/baselines/reference/implicitConstParameters.types +++ b/tests/baselines/reference/implicitConstParameters.types @@ -9,7 +9,7 @@ function doSomething(cb: () => void) { } function fn(x: number | string) { ->fn : (x: string | number) => void +>fn : (x: number | string) => void >x : string | number if (typeof x === 'number') { diff --git a/tests/baselines/reference/inKeywordTypeguard.types b/tests/baselines/reference/inKeywordTypeguard.types index ccb27f5c9b6..bd77a8da45e 100644 --- a/tests/baselines/reference/inKeywordTypeguard.types +++ b/tests/baselines/reference/inKeywordTypeguard.types @@ -299,7 +299,7 @@ class UnreachableCodeDetection { } function positiveIntersectionTest(x: { a: string } & { b: string }) { ->positiveIntersectionTest : (x: { a: string; } & { b: string; }) => void +>positiveIntersectionTest : (x: { a: string;} & { b: string;}) => void >x : { a: string; } & { b: string; } >a : string >b : string diff --git a/tests/baselines/reference/inOperatorWithValidOperands.types b/tests/baselines/reference/inOperatorWithValidOperands.types index 597454605c4..20b4bfdf6fb 100644 --- a/tests/baselines/reference/inOperatorWithValidOperands.types +++ b/tests/baselines/reference/inOperatorWithValidOperands.types @@ -80,7 +80,7 @@ function unionCase(t: T | U) { } function unionCase2(t: T | object) { ->unionCase2 : (t: object | T) => void +>unionCase2 : (t: T | object) => void >t : object | T var rb5 = x in t; diff --git a/tests/baselines/reference/incompatibleTypes.types b/tests/baselines/reference/incompatibleTypes.types index e5ab878a9e5..9acf331d35c 100644 --- a/tests/baselines/reference/incompatibleTypes.types +++ b/tests/baselines/reference/incompatibleTypes.types @@ -47,7 +47,7 @@ class C3 implements IFoo3 { // incompatible on the property type interface IFoo4 { p1: { a: { a: string; }; b: string; }; ->p1 : { a: { a: string; }; b: string; } +>p1 : { a: { a: string;}; b: string; } >a : { a: string; } >a : string >b : string @@ -57,7 +57,7 @@ class C4 implements IFoo4 { // incompatible on the property type >C4 : C4 public p1: { c: { b: string; }; d: string; }; ->p1 : { c: { b: string; }; d: string; } +>p1 : { c: { b: string;}; d: string; } >c : { b: string; } >b : string >d : string @@ -88,15 +88,15 @@ if1(c1); function of1(n: { a: { a: string; }; b: string; }): number; ->of1 : { (n: { a: { a: string; }; b: string; }): number; (s: { c: { b: string; }; d: string; }): string; } ->n : { a: { a: string; }; b: string; } +>of1 : { (n: { a: { a: string; }; b: string;}): number; (s: { c: { b: string; }; d: string; }): string; } +>n : { a: { a: string;}; b: string; } >a : { a: string; } >a : string >b : string function of1(s: { c: { b: string; }; d: string; }): string; ->of1 : { (n: { a: { a: string; }; b: string; }): number; (s: { c: { b: string; }; d: string; }): string; } ->s : { c: { b: string; }; d: string; } +>of1 : { (n: { a: { a: string; }; b: string; }): number; (s: { c: { b: string; }; d: string;}): string; } +>s : { c: { b: string;}; d: string; } >c : { b: string; } >b : string >d : string @@ -146,7 +146,7 @@ function bar() { } var o1: { a: { a: string; }; b: string; } = { e: 0, f: 0 }; ->o1 : { a: { a: string; }; b: string; } +>o1 : { a: { a: string;}; b: string; } >a : { a: string; } >a : string >b : string diff --git a/tests/baselines/reference/independentPropertyVariance.types b/tests/baselines/reference/independentPropertyVariance.types index d2808166e01..294980f3457 100644 --- a/tests/baselines/reference/independentPropertyVariance.types +++ b/tests/baselines/reference/independentPropertyVariance.types @@ -7,7 +7,7 @@ declare const x: { a: 1, b: string }; >b : string declare const y: { a: number, b: 'a' }; ->y : { a: number; b: "a"; } +>y : { a: number; b: 'a'; } >a : number >b : "a" diff --git a/tests/baselines/reference/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types b/tests/baselines/reference/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types index 2c57c390ddc..9cc8fa90327 100644 --- a/tests/baselines/reference/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types +++ b/tests/baselines/reference/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types @@ -8,7 +8,7 @@ type Params = Parameters>; interface Wrapper { call(event: K, ...args: Params): void; ->call : (event: K, ...args: Parameters>) => void +>call : (event: K, ...args: Params) => void >event : K >args : Parameters> } diff --git a/tests/baselines/reference/indexedAccessTypeConstraints.types b/tests/baselines/reference/indexedAccessTypeConstraints.types index 11e41a4ec3d..280b1a68fdc 100644 --- a/tests/baselines/reference/indexedAccessTypeConstraints.types +++ b/tests/baselines/reference/indexedAccessTypeConstraints.types @@ -72,7 +72,7 @@ export class Bar> extends Parent { // Repro from #14557 function foo(x: C, y: T['content']) { ->foo : (x: C, y: T["content"]) => void +>foo : (x: C, y: T['content']) => void >content : C >x : C >y : T["content"] diff --git a/tests/baselines/reference/indirectTypeParameterReferences.types b/tests/baselines/reference/indirectTypeParameterReferences.types index 7129473b93f..f874fca1048 100644 --- a/tests/baselines/reference/indirectTypeParameterReferences.types +++ b/tests/baselines/reference/indirectTypeParameterReferences.types @@ -82,7 +82,7 @@ combined(comb => { // Repro from #19091 declare function f(a: T): { a: typeof a }; ->f : (a: T) => { a: T; } +>f : (a: T) => { a: typeof a;} >a : T >a : T >a : T diff --git a/tests/baselines/reference/inferFromBindingPattern.types b/tests/baselines/reference/inferFromBindingPattern.types index cd8ee76faf8..802fd56f7fc 100644 --- a/tests/baselines/reference/inferFromBindingPattern.types +++ b/tests/baselines/reference/inferFromBindingPattern.types @@ -6,7 +6,7 @@ declare function f2(): [T]; >f2 : () => [T] declare function f3(): { x: T }; ->f3 : () => { x: T; } +>f3 : () => { x: T;} >x : T let x1 = f1(); // string diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types index 3d0da11bab1..3b4a7fe12e1 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types @@ -28,7 +28,7 @@ function wrap(value: T): Wrap { } function wrappedFoo(): Wrap<'foo'> { ->wrappedFoo : () => Wrap<"foo"> +>wrappedFoo : () => Wrap<'foo'> return wrap('foo'); >wrap('foo') : Wrap<"foo"> @@ -37,7 +37,7 @@ function wrappedFoo(): Wrap<'foo'> { } function wrapBar(value: 'bar'): Wrap<'bar'> { ->wrapBar : (value: "bar") => Wrap<"bar"> +>wrapBar : (value: 'bar') => Wrap<'bar'> >value : "bar" return { value }; @@ -46,7 +46,7 @@ function wrapBar(value: 'bar'): Wrap<'bar'> { } function wrappedBar(): Wrap<'bar'> { ->wrappedBar : () => Wrap<"bar"> +>wrappedBar : () => Wrap<'bar'> const value = 'bar'; >value : "bar" @@ -81,7 +81,7 @@ function wrappedBar(): Wrap<'bar'> { } function wrappedBaz(): Wrap<'baz'> { ->wrappedBaz : () => Wrap<"baz"> +>wrappedBaz : () => Wrap<'baz'> const value: 'baz' = 'baz'; >value : "baz" @@ -250,7 +250,7 @@ function objectToMap(obj: any) { interface Person { phoneNumbers: { ->phoneNumbers : { __typename: "PhoneNumber"; }[] +>phoneNumbers : { __typename: 'PhoneNumber'; }[] __typename: 'PhoneNumber'; >__typename : "PhoneNumber" diff --git a/tests/baselines/reference/inferParameterWithMethodCallInitializer.types b/tests/baselines/reference/inferParameterWithMethodCallInitializer.types index 8c66c98ca14..ced717a38e1 100644 --- a/tests/baselines/reference/inferParameterWithMethodCallInitializer.types +++ b/tests/baselines/reference/inferParameterWithMethodCallInitializer.types @@ -15,7 +15,7 @@ class Example { >1 : 1 } doSomething(a = this.getNumber()): typeof a { ->doSomething : (a?: number) => number +>doSomething : (a?: number) => typeof a >a : number >this.getNumber() : number >this.getNumber : () => number diff --git a/tests/baselines/reference/inferTypes1.types b/tests/baselines/reference/inferTypes1.types index f31c230620b..aa421dd4c4d 100644 --- a/tests/baselines/reference/inferTypes1.types +++ b/tests/baselines/reference/inferTypes1.types @@ -191,9 +191,9 @@ type T44 = X2<{ a: number, b: string, c: boolean }>; // string | number type X3 = T extends { a: (x: infer U) => void, b: (x: infer U) => void } ? U : never; >X3 : X3 ->a : (x: U) => void +>a : (x: infer U) => void >x : U ->b : (x: U) => void +>b : (x: infer U) => void >x : U type T50 = X3<{}>; // never @@ -303,7 +303,7 @@ type Jsonified = : T extends undefined | Function ? never // undefined and functions are removed : T extends { toJSON(): infer R } ? R // toJSON is called if it exists (e.g. Date) ->toJSON : () => R +>toJSON : () => infer R : T extends object ? JsonifiedObject : "what is this"; @@ -324,7 +324,7 @@ type Example = { >customClass : MyClass obj: { ->obj : { prop: "property"; clz: MyClass; nested: { attr: Date; }; } +>obj : { prop: "property"; clz: MyClass; nested: { attr: Date;}; } prop: "property", >prop : "property" diff --git a/tests/baselines/reference/inferenceLimit.types b/tests/baselines/reference/inferenceLimit.types index 573087cca8e..73593da0fcf 100644 --- a/tests/baselines/reference/inferenceLimit.types +++ b/tests/baselines/reference/inferenceLimit.types @@ -87,7 +87,7 @@ export class BrokenClass { .then((orders: Array) => { >then : (onfulfilled?: (value: unknown[]) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise ->(orders: Array) => { resolve(orders); } : (orders: MyModule.MyModel[]) => void +>(orders: Array) => { resolve(orders); } : (orders: Array) => void >orders : MyModule.MyModel[] >MyModule : any diff --git a/tests/baselines/reference/inferingFromAny.types b/tests/baselines/reference/inferingFromAny.types index ff670f63f13..52ef648d235 100644 --- a/tests/baselines/reference/inferingFromAny.types +++ b/tests/baselines/reference/inferingFromAny.types @@ -18,7 +18,7 @@ declare function f3(t: [T, U]): [T, U]; >t : [T, U] declare function f4(x: { bar: T; baz: T }): T; ->f4 : (x: { bar: T; baz: T; }) => T +>f4 : (x: { bar: T; baz: T;}) => T >x : { bar: T; baz: T; } >bar : T >baz : T @@ -65,7 +65,7 @@ declare function f13(x: T & U): [T, U]; >x : T & U declare function f14(x: { a: T | U, b: U & T }): [T, U]; ->f14 : (x: { a: T | U; b: U & T; }) => [T, U] +>f14 : (x: { a: T | U; b: U & T;}) => [T, U] >x : { a: T | U; b: U & T; } >a : T | U >b : U & T diff --git a/tests/baselines/reference/inferrenceInfiniteLoopWithSubtyping.types b/tests/baselines/reference/inferrenceInfiniteLoopWithSubtyping.types index 6b0ddd64b3b..6a46d7350a5 100644 --- a/tests/baselines/reference/inferrenceInfiniteLoopWithSubtyping.types +++ b/tests/baselines/reference/inferrenceInfiniteLoopWithSubtyping.types @@ -23,12 +23,12 @@ export class ObjectTypeComposer { >ObjectTypeComposer : ObjectTypeComposer public setFields(fields: ObjMapReadOnly): this; ->setFields : (fields: Readonly<{ [key: string]: Readonly; }>) => this +>setFields : (fields: ObjMapReadOnly) => this >fields : Readonly<{ [key: string]: Readonly; }> public addResolver(opts: { type?: Thunk }): this; ->addResolver : (opts: { type?: Thunk> | Readonly>; }) => this ->opts : { type?: Thunk> | Readonly>; } +>addResolver : (opts: { type?: Thunk;}) => this +>opts : { type?: Thunk; } >type : Thunk> | Readonly> } @@ -47,8 +47,8 @@ export class Resolver { ): void; public wrapType(cb: () => ComposeOutputTypeDefinition): void; ->wrapType : (cb: () => Readonly> | Readonly) => void ->cb : () => Readonly> | Readonly +>wrapType : (cb: () => ComposeOutputTypeDefinition) => void +>cb : () => ComposeOutputTypeDefinition } diff --git a/tests/baselines/reference/infiniteConstraints.types b/tests/baselines/reference/infiniteConstraints.types index 17cd3a39d7d..c25e2e6cc5f 100644 --- a/tests/baselines/reference/infiniteConstraints.types +++ b/tests/baselines/reference/infiniteConstraints.types @@ -35,7 +35,7 @@ type Value = Record<"val", V>; >Value : Record<"val", V> declare function value(val: V): Value; ->value : (val: V) => Record<"val", V> +>value : (val: V) => Value >val : V declare function ensureNoDuplicates< @@ -112,7 +112,7 @@ export type ExactExtract = T extends U ? U extends T ? T : never : never; >ExactExtract : ExactExtract type Conv = ->Conv : { 0: [T]; 1: Prepend]; 1: Prepend, { 0: [ExactExtract, ExactExtract>]; 1: Prepend, ExactExtract>, { 0: [ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>]; 1: Prepend, ExactExtract>, ExactExtract, ExactExtract>>, { 0: [ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>]; 1: Prepend, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, { 0: [ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>]; 1: Prepend, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, { 0: [ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>]; 1: Prepend, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, { 0: [ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>]; 1: Prepend, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, { 0: [ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>]; 1: Prepend, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, { 0: [ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>]; 1: Prepend, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, { 0: [ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>>]; 1: Prepend, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>>, any[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>>> ? 0 : 1]>; }[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>>> ? 0 : 1]>; }[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>>> ? 0 : 1]>; }[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>>> ? 0 : 1]>; }[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>>> ? 0 : 1]>; }[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>>> ? 0 : 1]>; }[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>>> ? 0 : 1]>; }[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>, ExactExtract, ExactExtract>, ExactExtract, ExactExtract>>> ? 0 : 1]>; }[ExactExtract, ExactExtract>, ExactExtract, ExactExtract>> extends ExactExtract, ExactExtract>, ExactExtract, ExactExtract>> ? 0 : 1]>; }[ExactExtract, ExactExtract> extends ExactExtract, ExactExtract> ? 0 : 1]>; }[ExactExtract extends ExactExtract ? 0 : 1]>; }[U extends T ? 0 : 1] +>Conv : { 0: [T]; 1: Prepend>>; }[U extends T ? 0 : 1] { 0: [T]; 1: Prepend>>;}[U extends T ? 0 : 1]; >0 : [T] diff --git a/tests/baselines/reference/infinitelyGenerativeInheritance1.types b/tests/baselines/reference/infinitelyGenerativeInheritance1.types index e8fddc1c9d1..e872f99c736 100644 --- a/tests/baselines/reference/infinitelyGenerativeInheritance1.types +++ b/tests/baselines/reference/infinitelyGenerativeInheritance1.types @@ -4,7 +4,7 @@ interface Stack { >pop : () => T zip(a: Stack): Stack<{ x: T; y: S }> ->zip : (a: Stack) => Stack<{ x: T; y: S; }> +>zip : (a: Stack) => Stack<{ x: T; y: S;}> >a : Stack >x : T >y : S @@ -12,7 +12,7 @@ interface Stack { interface MyStack extends Stack { zip(a: Stack): Stack<{ x: T; y: S }> ->zip : (a: Stack) => Stack<{ x: T; y: S; }> +>zip : (a: Stack) => Stack<{ x: T; y: S;}> >a : Stack >x : T >y : S diff --git a/tests/baselines/reference/initializedParameterBeforeNonoptionalNotOptional.types b/tests/baselines/reference/initializedParameterBeforeNonoptionalNotOptional.types index 798b5268337..5035da7bcef 100644 --- a/tests/baselines/reference/initializedParameterBeforeNonoptionalNotOptional.types +++ b/tests/baselines/reference/initializedParameterBeforeNonoptionalNotOptional.types @@ -8,7 +8,7 @@ export declare function foo({a}?: { }): void; export declare function foo2({a}: { ->foo2 : ({ a }: { a?: string | undefined; } | undefined, b: string) => void +>foo2 : ({ a }: { a?: string | undefined;} | undefined, b: string) => void >a : string | undefined a?: string | undefined; @@ -18,7 +18,7 @@ export declare function foo2({a}: { >b : string export declare function foo3({a, b: {c}}: { ->foo3 : ({ a, b: { c } }: { a?: string | undefined; b?: { c?: string | undefined; } | undefined; } | undefined, b: string) => void +>foo3 : ({ a, b: { c } }: { a?: string | undefined; b?: { c?: string | undefined; } | undefined;} | undefined, b: string) => void >a : string | undefined >b : any >c : string | undefined diff --git a/tests/baselines/reference/inlineJsxFactoryDeclarationsLocalTypes.types b/tests/baselines/reference/inlineJsxFactoryDeclarationsLocalTypes.types index ab33876cbda..c9f7d4c2d8d 100644 --- a/tests/baselines/reference/inlineJsxFactoryDeclarationsLocalTypes.types +++ b/tests/baselines/reference/inlineJsxFactoryDeclarationsLocalTypes.types @@ -74,8 +74,8 @@ import { predom } from "./renderer2" >predom : () => predom.JSX.Element export const MySFC = (props: {x: number, y: number, children?: predom.JSX.Element[]}) =>

{props.x} + {props.y} = {props.x + props.y}{...this.props.children}

; ->MySFC : (props: { x: number; y: number; children?: predom.JSX.Element[]; }) => predom.JSX.Element ->(props: {x: number, y: number, children?: predom.JSX.Element[]}) =>

{props.x} + {props.y} = {props.x + props.y}{...this.props.children}

: (props: { x: number; y: number; children?: predom.JSX.Element[]; }) => predom.JSX.Element +>MySFC : (props: { x: number; y: number; children?: predom.JSX.Element[];}) => predom.JSX.Element +>(props: {x: number, y: number, children?: predom.JSX.Element[]}) =>

{props.x} + {props.y} = {props.x + props.y}{...this.props.children}

: (props: { x: number; y: number; children?: predom.JSX.Element[];}) => predom.JSX.Element >props : { x: number; y: number; children?: predom.JSX.Element[]; } >x : number >y : number @@ -212,8 +212,8 @@ elem = ; // Expect assignability error here >h : any const DOMSFC = (props: {x: number, y: number, children?: dom.JSX.Element[]}) =>

{props.x} + {props.y} = {props.x + props.y}{props.children}

; ->DOMSFC : (props: { x: number; y: number; children?: dom.JSX.Element[]; }) => dom.JSX.Element ->(props: {x: number, y: number, children?: dom.JSX.Element[]}) =>

{props.x} + {props.y} = {props.x + props.y}{props.children}

: (props: { x: number; y: number; children?: dom.JSX.Element[]; }) => dom.JSX.Element +>DOMSFC : (props: { x: number; y: number; children?: dom.JSX.Element[];}) => dom.JSX.Element +>(props: {x: number, y: number, children?: dom.JSX.Element[]}) =>

{props.x} + {props.y} = {props.x + props.y}{props.children}

: (props: { x: number; y: number; children?: dom.JSX.Element[];}) => dom.JSX.Element >props : { x: number; y: number; children?: dom.JSX.Element[]; } >x : number >y : number diff --git a/tests/baselines/reference/instanceOfAssignability.types b/tests/baselines/reference/instanceOfAssignability.types index 7ce2209e949..4e65e644a3b 100644 --- a/tests/baselines/reference/instanceOfAssignability.types +++ b/tests/baselines/reference/instanceOfAssignability.types @@ -42,7 +42,7 @@ class Giraffe extends Mammal { neck; } >neck : any function fn1(x: Array|Array|boolean) { ->fn1 : (x: boolean | number[] | string[]) => void +>fn1 : (x: Array | Array | boolean) => void >x : boolean | number[] | string[] if(x instanceof Array) { @@ -144,7 +144,7 @@ function fn6(x: Animal|Mammal) { } function fn7(x: Array|Array) { ->fn7 : (x: number[] | string[]) => void +>fn7 : (x: Array | Array) => void >x : number[] | string[] if(x instanceof Array) { diff --git a/tests/baselines/reference/instanceofWithPrimitiveUnion.types b/tests/baselines/reference/instanceofWithPrimitiveUnion.types index fcaba05b51f..25180fae2c4 100644 --- a/tests/baselines/reference/instanceofWithPrimitiveUnion.types +++ b/tests/baselines/reference/instanceofWithPrimitiveUnion.types @@ -1,6 +1,6 @@ === tests/cases/compiler/instanceofWithPrimitiveUnion.ts === function test1(x: number | string) { ->test1 : (x: string | number) => void +>test1 : (x: number | string) => void >x : string | number if (x instanceof Object) { @@ -14,7 +14,7 @@ function test1(x: number | string) { } function test2(x: (number | string) | number) { ->test2 : (x: string | number) => void +>test2 : (x: (number | string) | number) => void >x : string | number if (x instanceof Object) { diff --git a/tests/baselines/reference/interfaceImplementation7.types b/tests/baselines/reference/interfaceImplementation7.types index 1866137020e..8a5223e4c67 100644 --- a/tests/baselines/reference/interfaceImplementation7.types +++ b/tests/baselines/reference/interfaceImplementation7.types @@ -1,15 +1,15 @@ === tests/cases/compiler/interfaceImplementation7.ts === interface i1{ name(): { s: string; }; } ->name : () => { s: string; } +>name : () => { s: string;} >s : string interface i2{ name(): { n: number; }; } ->name : () => { n: number; } +>name : () => { n: number;} >n : number interface i3 extends i1, i2 { } interface i4 extends i1, i2 { name(): { s: string; n: number; }; } ->name : () => { s: string; n: number; } +>name : () => { s: string; n: number;} >s : string >n : number diff --git a/tests/baselines/reference/interfacePropertiesWithSameName1.types b/tests/baselines/reference/interfacePropertiesWithSameName1.types index d03f71b44e0..d9b076ad604 100644 --- a/tests/baselines/reference/interfacePropertiesWithSameName1.types +++ b/tests/baselines/reference/interfacePropertiesWithSameName1.types @@ -4,7 +4,7 @@ interface Mover { >move : () => void getStatus(): { speed: number; }; ->getStatus : () => { speed: number; } +>getStatus : () => { speed: number;} >speed : number } interface Shaker { @@ -12,13 +12,13 @@ interface Shaker { >shake : () => void getStatus(): { frequency: number; }; ->getStatus : () => { frequency: number; } +>getStatus : () => { frequency: number;} >frequency : number } interface MoverShaker extends Mover, Shaker { getStatus(): { speed: number; frequency: number; }; ->getStatus : () => { speed: number; frequency: number; } +>getStatus : () => { speed: number; frequency: number;} >speed : number >frequency : number } diff --git a/tests/baselines/reference/interfacePropertiesWithSameName2.types b/tests/baselines/reference/interfacePropertiesWithSameName2.types index 176b1e9f4bd..6456a1a7678 100644 --- a/tests/baselines/reference/interfacePropertiesWithSameName2.types +++ b/tests/baselines/reference/interfacePropertiesWithSameName2.types @@ -4,7 +4,7 @@ interface Mover { >move : () => void getStatus(): { speed: number; }; ->getStatus : () => { speed: number; } +>getStatus : () => { speed: number;} >speed : number } interface Shaker { @@ -12,7 +12,7 @@ interface Shaker { >shake : () => void getStatus(): { frequency: number; }; ->getStatus : () => { frequency: number; } +>getStatus : () => { frequency: number;} >frequency : number } @@ -31,7 +31,7 @@ declare module MoversAndShakers { >move : () => void getStatus(): { speed: number; }; ->getStatus : () => { speed: number; } +>getStatus : () => { speed: number;} >speed : number } export interface Shaker { @@ -39,7 +39,7 @@ declare module MoversAndShakers { >shake : () => void getStatus(): { frequency: number; }; ->getStatus : () => { frequency: number; } +>getStatus : () => { frequency: number;} >frequency : number } } @@ -53,7 +53,7 @@ interface MoverShaker3 extends MoversAndShakers.Mover, MoversAndShakers.Shaker { >MoversAndShakers : typeof MoversAndShakers getStatus(): { speed: number; frequency: number; }; // ok because this getStatus overrides the conflicting ones above ->getStatus : () => { speed: number; frequency: number; } +>getStatus : () => { speed: number; frequency: number;} >speed : number >frequency : number } diff --git a/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types b/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types index e8c72476b3c..7cd96b092a4 100644 --- a/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types +++ b/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types @@ -7,7 +7,7 @@ interface Component );} : { (prop: { className: string; }): JSX.Element; defaultProps: { tabs: string; }; } +>TabbedShowLayout : { (prop: { className: string;}): JSX.Element; defaultProps: { tabs: string; }; } +>(/** @type {{className: string}}*/prop) => { return (
ok
);} : { (prop: { className: string;}): JSX.Element; defaultProps: { tabs: string; }; } >prop : { className: string; } return ( diff --git a/tests/baselines/reference/jsDeclarationsTypeAliases.js b/tests/baselines/reference/jsDeclarationsTypeAliases.js index 0c6fe20d30b..0b37a9a5b26 100644 --- a/tests/baselines/reference/jsDeclarationsTypeAliases.js +++ b/tests/baselines/reference/jsDeclarationsTypeAliases.js @@ -129,9 +129,7 @@ export type SomeType = number | { * @param {number} x * @returns {SomeType} */ -export function doTheThing(x: number): number | { - x: string; -} | LocalThing | ExportedThing; +export function doTheThing(x: number): SomeType; export class ExportedThing { z: string; } diff --git a/tests/baselines/reference/jsDeclarationsTypeAliases.types b/tests/baselines/reference/jsDeclarationsTypeAliases.types index 6cad0aa3f34..debb65fcf7b 100644 --- a/tests/baselines/reference/jsDeclarationsTypeAliases.types +++ b/tests/baselines/reference/jsDeclarationsTypeAliases.types @@ -35,7 +35,7 @@ No type information for this code.=== tests/cases/conformance/jsdoc/declarations * @returns {SomeType} */ function doTheThing(x) { ->doTheThing : (x: number) => number | { x: string; } | LocalThing | ExportedThing +>doTheThing : (x: number) => SomeType >x : number return {x: ""+x}; diff --git a/tests/baselines/reference/jsDeclarationsTypedefAndImportTypes.js b/tests/baselines/reference/jsDeclarationsTypedefAndImportTypes.js index f8ff0175d95..d1ddbafb700 100644 --- a/tests/baselines/reference/jsDeclarationsTypedefAndImportTypes.js +++ b/tests/baselines/reference/jsDeclarationsTypedefAndImportTypes.js @@ -88,7 +88,7 @@ export class Wrap { /** * @param {Conn} c */ - constructor(c: import("./conn")); + constructor(c: Conn); connItem: number; /** @type {import("./conn").Whatever} */ another: import("./conn").Whatever; diff --git a/tests/baselines/reference/jsDeclarationsTypedefPropertyAndExportAssignment.js b/tests/baselines/reference/jsDeclarationsTypedefPropertyAndExportAssignment.js index 590ef5633bb..d7ec10d2a47 100644 --- a/tests/baselines/reference/jsDeclarationsTypedefPropertyAndExportAssignment.js +++ b/tests/baselines/reference/jsDeclarationsTypedefPropertyAndExportAssignment.js @@ -106,7 +106,7 @@ module.exports = MainThreadTasks; //// [module.d.ts] export type TaskGroupIds = "parseHTML" | "styleLayout"; export type TaskGroup = { - id: "parseHTML" | "styleLayout"; + id: TaskGroupIds; label: string; traceEventNames: string[]; }; @@ -121,8 +121,12 @@ export type TaskGroup = { * @type {{[P in TaskGroupIds]: {id: P, label: string}}} */ export const taskGroups: { - [P in TaskGroupIds]: { - id: P; + parseHTML: { + id: "parseHTML"; + label: string; + }; + styleLayout: { + id: "styleLayout"; label: string; }; }; @@ -145,21 +149,21 @@ declare class MainThreadTasks { * @param {TaskGroup} x * @param {TaskNode} y */ - constructor(x: import("./module.js").TaskGroup, y: TaskNode); + constructor(x: TaskGroup, y: TaskNode); } declare namespace MainThreadTasks { export { TaskGroup, TaskNode, PriorTaskData }; } -type TaskNode = { - children: TaskNode[]; - parent: TaskNode; - group: import("./module.js").TaskGroup; -}; type TaskGroup = { id: "parseHTML" | "styleLayout"; label: string; traceEventNames: string[]; }; +type TaskNode = { + children: TaskNode[]; + parent: TaskNode | undefined; + group: TaskGroup; +}; type PriorTaskData = { timers: Map; }; diff --git a/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.js b/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.js new file mode 100644 index 00000000000..5b931e62911 --- /dev/null +++ b/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.js @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsUniqueSymbolUsage.ts] //// + +//// [a.js] +export const kSymbol = Symbol("my-symbol"); + +/** + * @typedef {{[kSymbol]: true}} WithSymbol + */ +//// [b.js] +/** + * @returns {import('./a').WithSymbol} + * @param {import('./a').WithSymbol} value + */ +export function b(value) { + return value; +} + + + + +//// [a.d.ts] +export const kSymbol: unique symbol; +export type WithSymbol = { + [kSymbol]: true; +}; +//// [b.d.ts] +/** + * @returns {import('./a').WithSymbol} + * @param {import('./a').WithSymbol} value + */ +export function b(value: import('./a').WithSymbol): import('./a').WithSymbol; diff --git a/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.symbols b/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.symbols new file mode 100644 index 00000000000..5b927aade4e --- /dev/null +++ b/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/jsdoc/declarations/a.js === +export const kSymbol = Symbol("my-symbol"); +>kSymbol : Symbol(kSymbol, Decl(a.js, 0, 12)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +/** + * @typedef {{[kSymbol]: true}} WithSymbol + */ +=== tests/cases/conformance/jsdoc/declarations/b.js === +/** + * @returns {import('./a').WithSymbol} + * @param {import('./a').WithSymbol} value + */ +export function b(value) { +>b : Symbol(b, Decl(b.js, 0, 0)) +>value : Symbol(value, Decl(b.js, 4, 18)) + + return value; +>value : Symbol(value, Decl(b.js, 4, 18)) +} + diff --git a/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.types b/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.types new file mode 100644 index 00000000000..6c71caebe3a --- /dev/null +++ b/tests/baselines/reference/jsDeclarationsUniqueSymbolUsage.types @@ -0,0 +1,23 @@ +=== tests/cases/conformance/jsdoc/declarations/a.js === +export const kSymbol = Symbol("my-symbol"); +>kSymbol : unique symbol +>Symbol("my-symbol") : unique symbol +>Symbol : SymbolConstructor +>"my-symbol" : "my-symbol" + +/** + * @typedef {{[kSymbol]: true}} WithSymbol + */ +=== tests/cases/conformance/jsdoc/declarations/b.js === +/** + * @returns {import('./a').WithSymbol} + * @param {import('./a').WithSymbol} value + */ +export function b(value) { +>b : (value: import('./a').WithSymbol) => import('./a').WithSymbol +>value : { [kSymbol]: true; } + + return value; +>value : { [kSymbol]: true; } +} + diff --git a/tests/baselines/reference/jsEnumCrossFileExport.types b/tests/baselines/reference/jsEnumCrossFileExport.types index 4477b71a999..a3118b4d4ee 100644 --- a/tests/baselines/reference/jsEnumCrossFileExport.types +++ b/tests/baselines/reference/jsEnumCrossFileExport.types @@ -72,7 +72,7 @@ Other.Cls = class { * @param {!Host.UserMetrics.Action} p */ method(p) {} ->method : (p: number) => void +>method : (p: Host.UserMetrics.Action) => void >p : number usage() { diff --git a/tests/baselines/reference/jsEnumTagOnObjectFrozen.types b/tests/baselines/reference/jsEnumTagOnObjectFrozen.types index 29eb0b79573..4e6a151193a 100644 --- a/tests/baselines/reference/jsEnumTagOnObjectFrozen.types +++ b/tests/baselines/reference/jsEnumTagOnObjectFrozen.types @@ -75,7 +75,7 @@ exports.Thing = Thing; * @param {Thing} x */ function useThing(x) {} ->useThing : (x: string) => void +>useThing : (x: Thing) => void >x : string exports.useThing = useThing; @@ -89,7 +89,7 @@ exports.useThing = useThing; * @param {(x: Thing) => void} x */ function cbThing(x) {} ->cbThing : (x: (x: string) => void) => void +>cbThing : (x: (x: Thing) => void) => void >x : (x: string) => void exports.cbThing = cbThing; diff --git a/tests/baselines/reference/jsFileCompilationRestParamJsDocFunction.types b/tests/baselines/reference/jsFileCompilationRestParamJsDocFunction.types index c0247bb045f..ab733f5ab6a 100644 --- a/tests/baselines/reference/jsFileCompilationRestParamJsDocFunction.types +++ b/tests/baselines/reference/jsFileCompilationRestParamJsDocFunction.types @@ -10,7 +10,7 @@ * @returns {*} Returns the result of `func`. */ function apply(func, thisArg, ...args) { ->apply : (func: Function, thisArg: any, ...args: any[]) => any +>apply : (func: Function, thisArg: any, ...args: ...*) => any >func : Function >thisArg : any >args : any[] diff --git a/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types b/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types index 3fab5033c23..7ea21afe4c8 100644 --- a/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types +++ b/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types @@ -16,7 +16,7 @@ var numberArray = [5]; * @return {Array} */ function returnAnyArray(arr) { ->returnAnyArray : (arr: any[]) => any[] +>returnAnyArray : (arr: Array) => Array >arr : any[] return arr; @@ -46,7 +46,7 @@ var numberPromise = Promise.resolve(5); * @return {Promise} */ function returnAnyPromise(pr) { ->returnAnyPromise : (pr: Promise) => Promise +>returnAnyPromise : (pr: Promise) => Promise >pr : Promise return pr; @@ -72,7 +72,7 @@ var paramedObject = {valueOf: 1}; * @return {Object} */ function returnAnyObject(obj) { ->returnAnyObject : (obj: any) => any +>returnAnyObject : (obj: Object) => Object >obj : any return obj; diff --git a/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types b/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types index 82ff886f1ec..e5dba449a09 100644 --- a/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types +++ b/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types @@ -16,7 +16,7 @@ var numberArray = [5]; * @return {Array} */ function returnNotAnyArray(arr) { ->returnNotAnyArray : (arr: any[]) => any[] +>returnNotAnyArray : (arr: Array) => Array >arr : any[] return arr; @@ -46,7 +46,7 @@ var numberPromise = Promise.resolve(5); * @return {Promise} */ function returnNotAnyPromise(pr) { ->returnNotAnyPromise : (pr: Promise) => Promise +>returnNotAnyPromise : (pr: Promise) => Promise >pr : Promise return pr; diff --git a/tests/baselines/reference/jsdocClassMissingTypeArguments.types b/tests/baselines/reference/jsdocClassMissingTypeArguments.types index 0c64fd3c5a7..8be84d6df5d 100644 --- a/tests/baselines/reference/jsdocClassMissingTypeArguments.types +++ b/tests/baselines/reference/jsdocClassMissingTypeArguments.types @@ -5,6 +5,6 @@ class C {} /** @param {C} p */ function f(p) {} ->f : (p: C) => void +>f : (p: C) => void >p : C diff --git a/tests/baselines/reference/jsdocConstructorFunctionTypeReference.types b/tests/baselines/reference/jsdocConstructorFunctionTypeReference.types index b536ad26ded..e7550faa72e 100644 --- a/tests/baselines/reference/jsdocConstructorFunctionTypeReference.types +++ b/tests/baselines/reference/jsdocConstructorFunctionTypeReference.types @@ -26,8 +26,8 @@ Validator.prototype.num = 12 * @param {Validator} state */ var validateRegExpFlags = function(state) { ->validateRegExpFlags : (state: VFunc) => string ->function(state) { return state.flags} : (state: VFunc) => string +>validateRegExpFlags : (state: Validator) => string +>function(state) { return state.flags} : (state: Validator) => string >state : VFunc return state.flags diff --git a/tests/baselines/reference/jsdocDisallowedInTypescript.types b/tests/baselines/reference/jsdocDisallowedInTypescript.types index 76e595d8127..bf2ac65c722 100644 --- a/tests/baselines/reference/jsdocDisallowedInTypescript.types +++ b/tests/baselines/reference/jsdocDisallowedInTypescript.types @@ -8,7 +8,7 @@ var ara: Array. = [1,2,3]; >3 : 3 function f(x: ?number, y: Array.) { ->f : (x: number | null, y: number[]) => number +>f : (x: number | null, y: Array) => number >x : number | null >y : number[] @@ -35,7 +35,7 @@ function hof(ctor: function(new: number, string)) { >'hi' : "hi" } function hof2(f: function(this: number, string): string) { ->hof2 : (f: (this: number, arg1: string) => string) => string +>hof2 : (f: (args: number, arg1: string) => string) => string >f : (this: number, arg1: string) => string >this : number diff --git a/tests/baselines/reference/jsdocFunctionType.types b/tests/baselines/reference/jsdocFunctionType.types index b679c4326f8..6349dccb10a 100644 --- a/tests/baselines/reference/jsdocFunctionType.types +++ b/tests/baselines/reference/jsdocFunctionType.types @@ -4,7 +4,7 @@ * @return {function(this: string, number): number} */ function id1(c) { ->id1 : (c: (this: string, arg1: number) => number) => (this: string, arg1: number) => number +>id1 : (c: (args: string, arg1: number) => number) => (args: string, arg1: number) => number >c : (this: string, arg1: number) => number return c @@ -28,7 +28,7 @@ var x = id1(function (n) { return this.length + n }); * @return {function(new: { length: number }, number): number} */ function id2(c) { ->id2 : (c: new (arg1: number) => { length: number; }) => new (arg1: number) => { length: number; } +>id2 : (c: new (arg1: number) => { length: number;}) => new (arg1: number) => { length: number;} >c : new (arg1: number) => { length: number; } return c diff --git a/tests/baselines/reference/jsdocImportTypeReferenceToClassAlias.types b/tests/baselines/reference/jsdocImportTypeReferenceToClassAlias.types index 2245ba37967..49b85f1f063 100644 --- a/tests/baselines/reference/jsdocImportTypeReferenceToClassAlias.types +++ b/tests/baselines/reference/jsdocImportTypeReferenceToClassAlias.types @@ -18,7 +18,7 @@ module.exports.C = C /** @typedef {import('./mod1').C} X */ /** @param {X} c */ function demo(c) { ->demo : (c: C) => void +>demo : (c: X) => void >c : C c.s diff --git a/tests/baselines/reference/jsdocImportTypeReferenceToCommonjsModule.types b/tests/baselines/reference/jsdocImportTypeReferenceToCommonjsModule.types index 5d376c2852f..50d2bcc48d0 100644 --- a/tests/baselines/reference/jsdocImportTypeReferenceToCommonjsModule.types +++ b/tests/baselines/reference/jsdocImportTypeReferenceToCommonjsModule.types @@ -11,7 +11,7 @@ export = config; === tests/cases/conformance/jsdoc/test.js === /** @param {import('./ex')} a */ function demo(a) { ->demo : (a: { fix: boolean; }) => void +>demo : (a: import('./ex')) => void >a : { fix: boolean; } a.fix diff --git a/tests/baselines/reference/jsdocImportTypeReferenceToESModule.types b/tests/baselines/reference/jsdocImportTypeReferenceToESModule.types index d2cf23fbdd0..7866b98bd27 100644 --- a/tests/baselines/reference/jsdocImportTypeReferenceToESModule.types +++ b/tests/baselines/reference/jsdocImportTypeReferenceToESModule.types @@ -5,7 +5,7 @@ export var config: {} === tests/cases/conformance/jsdoc/test.js === /** @param {import('./ex')} a */ function demo(a) { ->demo : (a: typeof import("tests/cases/conformance/jsdoc/ex")) => void +>demo : (a: import('./ex')) => void >a : typeof import("tests/cases/conformance/jsdoc/ex") a.config diff --git a/tests/baselines/reference/jsdocIndexSignature.types b/tests/baselines/reference/jsdocIndexSignature.types index d9ac8263092..2f1d142f273 100644 --- a/tests/baselines/reference/jsdocIndexSignature.types +++ b/tests/baselines/reference/jsdocIndexSignature.types @@ -13,7 +13,7 @@ var o3; /** @param {Object.} o */ function f(o) { ->f : (o: { [x: string]: boolean; }) => void +>f : (o: { [x: string]: boolean;}) => void >o : { [x: string]: boolean; } o.foo = 1; // error diff --git a/tests/baselines/reference/jsdocLiteral.types b/tests/baselines/reference/jsdocLiteral.types index c0a17c9bad1..096c2e27b9c 100644 --- a/tests/baselines/reference/jsdocLiteral.types +++ b/tests/baselines/reference/jsdocLiteral.types @@ -7,7 +7,7 @@ * @param {12 | true | 'str'} p5 */ function f(p1, p2, p3, p4, p5) { ->f : (p1: "literal", p2: "literal", p3: "literal" | "other", p4: number | "literal", p5: true | 12 | "str") => string +>f : (p1: 'literal', p2: "literal", p3: 'literal' | 'other', p4: 'literal' | number, p5: 12 | true | 'str') => string >p1 : "literal" >p2 : "literal" >p3 : "literal" | "other" diff --git a/tests/baselines/reference/jsdocParamTag2.types b/tests/baselines/reference/jsdocParamTag2.types index a303403f0b9..bc4d0f3b10a 100644 --- a/tests/baselines/reference/jsdocParamTag2.types +++ b/tests/baselines/reference/jsdocParamTag2.types @@ -5,7 +5,7 @@ * @param {string} x */ function good1({a, b}, x) {} ->good1 : ({ a, b }: { a: string; b: string; }, x: string) => void +>good1 : ({ a, b }: { a: string; b: string;}, x: string) => void >a : string >b : string >x : string @@ -15,7 +15,7 @@ function good1({a, b}, x) {} * @param {{c: number, d: number}} OBJECTION */ function good2({a, b}, {c, d}) {} ->good2 : ({ a, b }: { a: string; b: string; }, { c, d }: { c: number; d: number; }) => void +>good2 : ({ a, b }: { a: string; b: string;}, { c, d }: { c: number; d: number;}) => void >a : string >b : string >c : number @@ -27,7 +27,7 @@ function good2({a, b}, {c, d}) {} * @param {string} y */ function good3(x, {a, b}, y) {} ->good3 : (x: number, { a, b }: { a: string; b: string; }, y: string) => void +>good3 : (x: number, { a, b }: { a: string; b: string;}, y: string) => void >x : number >a : string >b : string @@ -37,7 +37,7 @@ function good3(x, {a, b}, y) {} * @param {{a: string, b: string}} obj */ function good4({a, b}) {} ->good4 : ({ a, b }: { a: string; b: string; }) => void +>good4 : ({ a, b }: { a: string; b: string;}) => void >a : string >b : string @@ -49,7 +49,7 @@ function good4({a, b}) {} * @param {string} x */ function good5({a, b}, x) {} ->good5 : ({ a, b }: { a: string; b: string; }, x: string) => void +>good5 : ({ a, b }: * @param {string} obj.a - this is like the saddest way to specify a type * @param {string} obj.b - but it sure does allow a lot of documentation, x: string) => void >a : string >b : string >x : string @@ -63,7 +63,7 @@ function good5({a, b}, x) {} * @param {string} OBJECTION.d - meh */ function good6({a, b}, {c, d}) {} ->good6 : ({ a, b }: { a: string; b: string; }, { c, d }: { c: string; d: string; }) => void +>good6 : ({ a, b }: * @param {string} obj.a * @param {string} obj.b - but it sure does allow a lot of documentation, { c, d }: * @param {string} OBJECTION.c * @param {string} OBJECTION.d - meh) => void >a : string >b : string >c : string @@ -77,7 +77,7 @@ function good6({a, b}, {c, d}) {} * @param {string} y */ function good7(x, {a, b}, y) {} ->good7 : (x: number, { a, b }: { a: string; b: string; }, y: string) => void +>good7 : (x: number, { a, b }: * @param {string} obj.a * @param {string} obj.b, y: string) => void >x : number >a : string >b : string @@ -89,7 +89,7 @@ function good7(x, {a, b}, y) {} * @param {string} obj.b */ function good8({a, b}) {} ->good8 : ({ a, b }: { a: string; b: string; }) => void +>good8 : ({ a, b }: * @param {string} obj.a * @param {string} obj.b) => void >a : string >b : string @@ -110,7 +110,7 @@ function bad1(x, {a, b}) {} * @param {{a: string, b: string}} obj */ function bad2(x, {a, b}) {} ->bad2 : (x: any, { a, b }: { a: string; b: string; }) => void +>bad2 : (x: any, { a, b }: { a: string; b: string;}) => void >x : any >a : string >b : string diff --git a/tests/baselines/reference/jsdocParamTagTypeLiteral.types b/tests/baselines/reference/jsdocParamTagTypeLiteral.types index b9447757b7a..a27d8b4d50c 100644 --- a/tests/baselines/reference/jsdocParamTagTypeLiteral.types +++ b/tests/baselines/reference/jsdocParamTagTypeLiteral.types @@ -23,7 +23,7 @@ normal(12); * @param {string} [opts1.w="hi"] doc5 */ function foo1(opts1) { ->foo1 : (opts1: { x: string; y?: string | undefined; z?: string; w?: string; }) => void +>foo1 : (opts1: * @param {string} opts1.x doc2 * @param {string=} opts1.y doc3 * @param {string} [opts1.z] doc4 * @param {string} [opts1.w] doc5) => void >opts1 : { x: string; y?: string | undefined; z?: string; w?: string; } opts1.x; @@ -45,7 +45,7 @@ foo1({x: 'abc'}); * @param {string=} opts2[].anotherY */ function foo2(/** @param opts2 bad idea theatre! */opts2) { ->foo2 : (opts2: { anotherX: string; anotherY?: string | undefined; }[]) => void +>foo2 : (opts2: * @param {string} opts2.anotherX * @param {string=} opts2.anotherY) => void >opts2 : { anotherX: string; anotherY?: string | undefined; }[] opts2[0].anotherX; @@ -69,7 +69,7 @@ foo2([{anotherX: "world"}]); * @param {string} opts3.x */ function foo3(opts3) { ->foo3 : (opts3: { x: string; }) => void +>foo3 : (opts3: * @param {string} opts3.x) => void >opts3 : { x: string; } opts3.x; @@ -92,7 +92,7 @@ foo3({x: 'abc'}); * @param {string} [opts4[].w="hi"] */ function foo4(opts4) { ->foo4 : (opts4: { x: string; y?: string | undefined; z?: string; w?: string; }[]) => void +>foo4 : (opts4: * @param {string} opts4.x * @param {string=} opts4.y * @param {string} [opts4.z] * @param {string} [opts4.w]) => void >opts4 : { x: string; y?: string | undefined; z?: string; w?: string; }[] opts4[0].x; @@ -122,7 +122,7 @@ foo4([{ x: 'hi' }]); * @param {number} opts5[].unnest - Here we are almost all the way back at the beginning. */ function foo5(opts5) { ->foo5 : (opts5: { help: string; what: { a: string; bad: { idea: string; oh: boolean; }[]; }; unnest: number; }[]) => void +>foo5 : (opts5: * @param {string} opts5.help - (This one is just normal) * @param { * @param {string} opts5.what.a - (Another normal one) * @param { * @param {string} opts5.what.bad.idea - I don't think you can get back out of this level... * @param {boolean} opts5.what.bad.oh - Oh ... that's how you do it.} opts5.what.bad - Now we're nesting inside a nested type} opts5.what - Look at us go! Here's the first nest! * @param {number} opts5.unnest - Here we are almost all the way back at the beginning.) => void >opts5 : { help: string; what: { a: string; bad: { idea: string; oh: boolean; }[]; }; unnest: number; }[] opts5[0].what.bad[0].idea; diff --git a/tests/baselines/reference/jsdocParseBackquotedParamName.types b/tests/baselines/reference/jsdocParseBackquotedParamName.types index c0e818b1add..070615fb53d 100644 --- a/tests/baselines/reference/jsdocParseBackquotedParamName.types +++ b/tests/baselines/reference/jsdocParseBackquotedParamName.types @@ -4,7 +4,7 @@ * @param `bwarg` {?number?} */ function f(args, bwarg) { ->f : (args?: string | undefined, bwarg: number | null) => void +>f : (args?: string | undefined, bwarg: (number | null) | null) => void >args : string | undefined >bwarg : number | null } diff --git a/tests/baselines/reference/jsdocParseDotDotDotInJSDocFunction.types b/tests/baselines/reference/jsdocParseDotDotDotInJSDocFunction.types index 3c3bff9169f..1e9703ccb31 100644 --- a/tests/baselines/reference/jsdocParseDotDotDotInJSDocFunction.types +++ b/tests/baselines/reference/jsdocParseDotDotDotInJSDocFunction.types @@ -2,7 +2,7 @@ // from bcryptjs /** @param {function(...[*])} callback */ function g(callback) { ->g : (callback: (...arg0: [any][]) => any) => void +>g : (callback: (arg0: ...[*]) => ) => void >callback : (...arg0: [any][]) => any callback([1], [2], [3]) diff --git a/tests/baselines/reference/jsdocParseStarEquals.types b/tests/baselines/reference/jsdocParseStarEquals.types index e2b28e6ae3a..ac7d7f0164e 100644 --- a/tests/baselines/reference/jsdocParseStarEquals.types +++ b/tests/baselines/reference/jsdocParseStarEquals.types @@ -2,7 +2,7 @@ /** @param {...*=} args @return {*=} */ function f(...args) { ->f : (...args: any[]) => any +>f : (...args: ...*=) => any | undefined >args : any[] return null diff --git a/tests/baselines/reference/jsdocPostfixEqualsAddsOptionality.types b/tests/baselines/reference/jsdocPostfixEqualsAddsOptionality.types index 0b2a145309c..a0c73ce764c 100644 --- a/tests/baselines/reference/jsdocPostfixEqualsAddsOptionality.types +++ b/tests/baselines/reference/jsdocPostfixEqualsAddsOptionality.types @@ -40,7 +40,7 @@ f(1) /** @param {???!?number?=} a */ function g(a) { ->g : (a?: number | null | undefined) => void +>g : (a?: (((((number | null) | null) | null) | null) | null) | undefined) => void >a : number | null | undefined a = 1 diff --git a/tests/baselines/reference/jsdocPrefixPostfixParsing.types b/tests/baselines/reference/jsdocPrefixPostfixParsing.types index b7b2fbd8fc6..1fa8634af7f 100644 --- a/tests/baselines/reference/jsdocPrefixPostfixParsing.types +++ b/tests/baselines/reference/jsdocPrefixPostfixParsing.types @@ -15,7 +15,7 @@ * @param {...number?[]!} k - (number[] | null)[] */ function f(x, y, z, a, b, c, e, f, g, h, i, j, k) { ->f : (x: number[], y: number[], z: number[], a: (number | null)[], b: number[] | null, c: number[] | null, e: number | null | undefined, f: number | null | undefined, g: number | null | undefined, h: number | null | undefined, i: number[] | undefined, j: number[] | null | undefined, k: (number | null)[] | undefined) => void +>f : (x: number[], y: number[], z: (number[]), a: (number | null)[], b: number[] | null, c: (number[]) | null, e: ...?number, f: ...?number, g: ...?!number, h: ...!?number, i: ...number[], j: ...?!number[], k: ...!?number[]) => void >x : number[] >y : number[] >z : number[] diff --git a/tests/baselines/reference/jsdocRestParameter_es6.types b/tests/baselines/reference/jsdocRestParameter_es6.types index b07d7d931f1..faa569a4f20 100644 --- a/tests/baselines/reference/jsdocRestParameter_es6.types +++ b/tests/baselines/reference/jsdocRestParameter_es6.types @@ -1,7 +1,7 @@ === /a.js === /** @param {...number} a */ function f(...a) { ->f : (...a: number[]) => void +>f : (...a: ...number) => void >a : number[] a; // number[] diff --git a/tests/baselines/reference/jsdocReturnTag1.types b/tests/baselines/reference/jsdocReturnTag1.types index d2a5891b29a..a87e4083ea2 100644 --- a/tests/baselines/reference/jsdocReturnTag1.types +++ b/tests/baselines/reference/jsdocReturnTag1.types @@ -13,7 +13,7 @@ function f() { * @returns {string=} This comment is not currently exposed */ function f1() { ->f1 : () => string +>f1 : () => string | undefined return 5; >5 : 5 diff --git a/tests/baselines/reference/jsdocTemplateClass.types b/tests/baselines/reference/jsdocTemplateClass.types index 40b73bc7002..6e5695ca837 100644 --- a/tests/baselines/reference/jsdocTemplateClass.types +++ b/tests/baselines/reference/jsdocTemplateClass.types @@ -27,7 +27,7 @@ class Foo { * @return {T} */ foo(x, y, alpha) { ->foo : (x: T, y: (t: T) => T, alpha: (t: T) => T) => T +>foo : (x: T, y: Id, alpha: (t: T) => T) => T >x : T >y : (t: T) => T >alpha : (t: T) => T diff --git a/tests/baselines/reference/jsdocTemplateConstructorFunction2.types b/tests/baselines/reference/jsdocTemplateConstructorFunction2.types index dc70e5282c3..19270bb4b67 100644 --- a/tests/baselines/reference/jsdocTemplateConstructorFunction2.types +++ b/tests/baselines/reference/jsdocTemplateConstructorFunction2.types @@ -26,13 +26,13 @@ function Zet(t) { * @param {T} o.nested */ Zet.prototype.add = function(v, o) { ->Zet.prototype.add = function(v, o) { this.u = v || o.nested return this.u} : (v: T, o: { nested: T; }) => T +>Zet.prototype.add = function(v, o) { this.u = v || o.nested return this.u} : (v: T, o: * @param {T} o.nested) => T >Zet.prototype.add : any >Zet.prototype : any >Zet : typeof Zet >prototype : any >add : any ->function(v, o) { this.u = v || o.nested return this.u} : (v: T, o: { nested: T; }) => T +>function(v, o) { this.u = v || o.nested return this.u} : (v: T, o: * @param {T} o.nested) => T >v : T >o : { nested: T; } diff --git a/tests/baselines/reference/jsdocTemplateTag.types b/tests/baselines/reference/jsdocTemplateTag.types index 14b9471db2b..860244c6315 100644 --- a/tests/baselines/reference/jsdocTemplateTag.types +++ b/tests/baselines/reference/jsdocTemplateTag.types @@ -42,12 +42,12 @@ let s = g('hi')() * @param {Array.} keyframes - Can't look up types on Element since it's a global in another file. (But it shouldn't crash). */ Element.prototype.animate = function(keyframes) {}; ->Element.prototype.animate = function(keyframes) {} : (keyframes: any[]) => void +>Element.prototype.animate = function(keyframes) {} : (keyframes: Array) => void >Element.prototype.animate : (keyframes: Keyframe[] | PropertyIndexedKeyframes, options?: number | KeyframeAnimationOptions) => Animation >Element.prototype : Element >Element : { new (): Element; prototype: Element; } >prototype : Element >animate : (keyframes: Keyframe[] | PropertyIndexedKeyframes, options?: number | KeyframeAnimationOptions) => Animation ->function(keyframes) {} : (keyframes: any[]) => void +>function(keyframes) {} : (keyframes: Array) => void >keyframes : any[] diff --git a/tests/baselines/reference/jsdocTypeGenericInstantiationAttempt.types b/tests/baselines/reference/jsdocTypeGenericInstantiationAttempt.types index 50231c9d868..7e8247127d6 100644 --- a/tests/baselines/reference/jsdocTypeGenericInstantiationAttempt.types +++ b/tests/baselines/reference/jsdocTypeGenericInstantiationAttempt.types @@ -3,7 +3,7 @@ * @param {Array<*>} list */ function thing(list) { ->thing : (list: any[]) => any[] +>thing : (list: Array) => any[] >list : any[] return list; diff --git a/tests/baselines/reference/jsdocTypeNongenericInstantiationAttempt.types b/tests/baselines/reference/jsdocTypeNongenericInstantiationAttempt.types index 21dc8d546ce..1549c560583 100644 --- a/tests/baselines/reference/jsdocTypeNongenericInstantiationAttempt.types +++ b/tests/baselines/reference/jsdocTypeNongenericInstantiationAttempt.types @@ -109,6 +109,6 @@ function fn() {} * @param {fn} somebody */ function sayHello8(somebody) { } ->sayHello8 : (somebody: () => void) => void +>sayHello8 : (somebody: fn) => void >somebody : () => void diff --git a/tests/baselines/reference/jsdocTypeReferenceToValue.types b/tests/baselines/reference/jsdocTypeReferenceToValue.types index 91f8e26d35d..4db6664b84d 100644 --- a/tests/baselines/reference/jsdocTypeReferenceToValue.types +++ b/tests/baselines/reference/jsdocTypeReferenceToValue.types @@ -1,7 +1,7 @@ === tests/cases/conformance/jsdoc/foo.js === /** @param {Image} image */ function process(image) { ->process : (image: new (width?: number, height?: number) => HTMLImageElement) => HTMLImageElement +>process : (image: Image) => HTMLImageElement >image : new (width?: number, height?: number) => HTMLImageElement return new image(1, 1) diff --git a/tests/baselines/reference/jsxCallbackWithDestructuring.types b/tests/baselines/reference/jsxCallbackWithDestructuring.types index ca639d4a718..26d790343a5 100644 --- a/tests/baselines/reference/jsxCallbackWithDestructuring.types +++ b/tests/baselines/reference/jsxCallbackWithDestructuring.types @@ -38,7 +38,7 @@ declare global { export interface RouteProps { children?: (props: { x: number }) => any; ->children : ((props: { x: number; }) => any) | undefined +>children : ((props: { x: number;}) => any) | undefined >props : { x: number; } >x : number } diff --git a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types index b07dd6fb891..7b856e56eca 100644 --- a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types +++ b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types @@ -27,7 +27,7 @@ export type ReactSingleSelectProps< >; export function createReactSingleSelect< ->createReactSingleSelect : >(WrappedComponent: React.ComponentType) => React.ComponentType, Props>>> +>createReactSingleSelect : >(WrappedComponent: React.ComponentType) => React.ComponentType> WrappedProps extends ReactSelectProps >( diff --git a/tests/baselines/reference/jsxEmitWithAttributes.types b/tests/baselines/reference/jsxEmitWithAttributes.types index 881bfe71ae1..12eb61ccad3 100644 --- a/tests/baselines/reference/jsxEmitWithAttributes.types +++ b/tests/baselines/reference/jsxEmitWithAttributes.types @@ -85,7 +85,7 @@ import { Element} from './Element'; >Element : typeof Element let c: { ->c : { a?: { b: string; }; } +>c : { a?: { b: string;}; } a?: { >a : { b: string; } diff --git a/tests/baselines/reference/jsxFactoryAndReactNamespace.types b/tests/baselines/reference/jsxFactoryAndReactNamespace.types index 12e231874b6..ffb74d2cd2d 100644 --- a/tests/baselines/reference/jsxFactoryAndReactNamespace.types +++ b/tests/baselines/reference/jsxFactoryAndReactNamespace.types @@ -85,7 +85,7 @@ import { Element} from './Element'; >Element : typeof Element let c: { ->c : { a?: { b: string; }; } +>c : { a?: { b: string;}; } a?: { >a : { b: string; } diff --git a/tests/baselines/reference/jsxFactoryIdentifier.types b/tests/baselines/reference/jsxFactoryIdentifier.types index ddb83d56516..756765a2ed6 100644 --- a/tests/baselines/reference/jsxFactoryIdentifier.types +++ b/tests/baselines/reference/jsxFactoryIdentifier.types @@ -91,7 +91,7 @@ let createElement = Element.createElement; >createElement : (args: any[]) => {} let c: { ->c : { a?: { b: string; }; } +>c : { a?: { b: string;}; } a?: { >a : { b: string; } diff --git a/tests/baselines/reference/jsxFactoryNotIdentifierOrQualifiedName.types b/tests/baselines/reference/jsxFactoryNotIdentifierOrQualifiedName.types index 12e231874b6..ffb74d2cd2d 100644 --- a/tests/baselines/reference/jsxFactoryNotIdentifierOrQualifiedName.types +++ b/tests/baselines/reference/jsxFactoryNotIdentifierOrQualifiedName.types @@ -85,7 +85,7 @@ import { Element} from './Element'; >Element : typeof Element let c: { ->c : { a?: { b: string; }; } +>c : { a?: { b: string;}; } a?: { >a : { b: string; } diff --git a/tests/baselines/reference/jsxFactoryNotIdentifierOrQualifiedName2.types b/tests/baselines/reference/jsxFactoryNotIdentifierOrQualifiedName2.types index 12e231874b6..ffb74d2cd2d 100644 --- a/tests/baselines/reference/jsxFactoryNotIdentifierOrQualifiedName2.types +++ b/tests/baselines/reference/jsxFactoryNotIdentifierOrQualifiedName2.types @@ -85,7 +85,7 @@ import { Element} from './Element'; >Element : typeof Element let c: { ->c : { a?: { b: string; }; } +>c : { a?: { b: string;}; } a?: { >a : { b: string; } diff --git a/tests/baselines/reference/jsxFactoryQualifiedName.types b/tests/baselines/reference/jsxFactoryQualifiedName.types index 881bfe71ae1..12eb61ccad3 100644 --- a/tests/baselines/reference/jsxFactoryQualifiedName.types +++ b/tests/baselines/reference/jsxFactoryQualifiedName.types @@ -85,7 +85,7 @@ import { Element} from './Element'; >Element : typeof Element let c: { ->c : { a?: { b: string; }; } +>c : { a?: { b: string;}; } a?: { >a : { b: string; } diff --git a/tests/baselines/reference/keyofAndIndexedAccess.types b/tests/baselines/reference/keyofAndIndexedAccess.types index f39ca3c63d1..1659a8c596e 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess.types +++ b/tests/baselines/reference/keyofAndIndexedAccess.types @@ -976,7 +976,7 @@ function f74(func: (x: T, y: U, k: K) => (T | U)[ } function f80(obj: T) { ->f80 : (obj: T) => void +>f80 : (obj: T) => void >a : { x: any; } >x : any >obj : T @@ -1027,7 +1027,7 @@ function f80(obj: T) { } function f81(obj: T) { ->f81 : (obj: T) => T["a"]["x"] +>f81 : (obj: T) => T["a"]["x"] >a : { x: any; } >x : any >obj : T @@ -1207,7 +1207,7 @@ type S2 = { }; function f90(x1: S2[keyof S2], x2: T[keyof S2], x3: S2[K]) { ->f90 : (x1: string, x2: T["a" | "b"], x3: S2[K]) => void +>f90 : (x1: S2[keyof S2], x2: T[keyof S2], x3: S2[K]) => void >x1 : string >x2 : T["a" | "b"] >x3 : S2[K] @@ -1659,7 +1659,7 @@ type MethodDescriptor = { } declare function dispatchMethod(name: M['name'], args: M['args']): M['returnValue']; ->dispatchMethod : (name: M["name"], args: M["args"]) => M["returnValue"] +>dispatchMethod : (name: M['name'], args: M['args']) => M['returnValue'] >name : M["name"] >args : M["args"] @@ -1719,7 +1719,7 @@ type Handler = { }; function onChangeGenericFunction(handler: Handler) { ->onChangeGenericFunction : (handler: Handler) => void +>onChangeGenericFunction : (handler: Handler) => void >handler : Handler >preset : number @@ -1973,7 +1973,7 @@ type Example = { [K in keyof T]: T[ >prop : any type Result = Example<{ a: { prop: string }; b: { prop: number } }>; ->Result : Example<{ a: { prop: string; }; b: { prop: number; }; }> +>Result : Example<{ a: { prop: string;}; b: { prop: number;}; }> >a : { prop: string; } >prop : string >b : { prop: number; } @@ -1987,7 +1987,7 @@ type Example2 = { [K in keyof Helper2]: Helper2[K]["prop"] }; >Example2 : Example2 type Result2 = Example2<{ 1: { prop: string }; 2: { prop: number } }>; ->Result2 : Example2<{ 1: { prop: string; }; 2: { prop: number; }; }> +>Result2 : Example2<{ 1: { prop: string;}; 2: { prop: number;}; }> >1 : { prop: string; } >prop : string >2 : { prop: number; } @@ -2103,7 +2103,7 @@ type Foo7 = T; >Foo7 : T declare function f7(type: K): Foo7; ->f7 : (type: K) => I7[K] +>f7 : (type: K) => Foo7 >type : K // Repro from #21770 diff --git a/tests/baselines/reference/keyofAndIndexedAccess2.types b/tests/baselines/reference/keyofAndIndexedAccess2.types index 66766a27595..6f1231ce527 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess2.types +++ b/tests/baselines/reference/keyofAndIndexedAccess2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/keyof/keyofAndIndexedAccess2.ts === function f1(obj: { a: number, b: 0 | 1, c: string }, k0: 'a', k1: 'a' | 'b', k2: 'a' | 'b' | 'c') { ->f1 : (obj: { a: number; b: 0 | 1; c: string; }, k0: "a", k1: "a" | "b", k2: "a" | "b" | "c") => void +>f1 : (obj: { a: number; b: 0 | 1; c: string;}, k0: 'a', k1: 'a' | 'b', k2: 'a' | 'b' | 'c') => void >obj : { a: number; b: 0 | 1; c: string; } >a : number >b : 0 | 1 @@ -74,7 +74,7 @@ function f1(obj: { a: number, b: 0 | 1, c: string }, k0: 'a', k1: 'a' | 'b', k2: } function f2(a: { x: number, y: number }, b: { [key: string]: number }, c: T, k: keyof T) { ->f2 : (a: { x: number; y: number; }, b: { [key: string]: number; }, c: T, k: keyof T) => void +>f2 : (a: { x: number; y: number;}, b: { [key: string]: number; }, c: T, k: keyof T) => void >key : string >a : { x: number; y: number; } >x : number @@ -233,7 +233,7 @@ type Item = { a: string, b: number }; >b : number function f10(obj: T, k1: string, k2: keyof Item, k3: keyof T, k4: K) { ->f10 : (obj: T, k1: string, k2: "a" | "b", k3: keyof T, k4: K) => void +>f10 : (obj: T, k1: string, k2: keyof Item, k3: keyof T, k4: K) => void >obj : T >k1 : string >k2 : "a" | "b" @@ -273,7 +273,7 @@ type Dict = Record; >Dict : Record function f11(obj: Dict, k1: keyof Dict, k2: K) { ->f11 : (obj: Record, k1: string, k2: K) => void +>f11 : (obj: Dict, k1: keyof Dict, k2: K) => void >obj : Record >k1 : string >k2 : K @@ -301,7 +301,7 @@ function f11(obj: Dict, k1: keyof Dict, k2: K) { } function f12, K extends keyof T>(obj: T, k1: keyof Dict, k2: keyof T, k3: K) { ->f12 : >, K extends keyof T>(obj: T, k1: string, k2: keyof T, k3: K) => void +>f12 : >, K extends keyof T>(obj: T, k1: keyof Dict, k2: keyof T, k3: K) => void >obj : T >k1 : string >k2 : keyof T @@ -379,7 +379,7 @@ export function getAllEntities(state: EntityState): E[] { } export function getEntity(id: IdOf, state: EntityState): E | undefined { ->getEntity : (id: E["id"], state: EntityState) => E | undefined +>getEntity : (id: IdOf, state: EntityState) => E | undefined >id : E["id"] >state : EntityState @@ -440,11 +440,11 @@ type B = A<{ [Q in keyof T]: StrictExclude, {}>; }>; // Repros from #30938 function fn} | {elements: Array}>(param: T, cb: (element: T['elements'][number]) => void) { ->fn : (param: T, cb: (element: T["elements"][number]) => void) => void +>fn : ; } | { elements: Array; }>(param: T, cb: (element: T['elements'][number]) => void) => void >elements : string[] >elements : number[] >param : T ->cb : (element: T["elements"][number]) => void +>cb : (element: T['elements'][number]) => void >element : T["elements"][number] cb(param.elements[0]); diff --git a/tests/baselines/reference/keyofAndIndexedAccessErrors.types b/tests/baselines/reference/keyofAndIndexedAccessErrors.types index 4d4ad578303..80ffabefaf2 100644 --- a/tests/baselines/reference/keyofAndIndexedAccessErrors.types +++ b/tests/baselines/reference/keyofAndIndexedAccessErrors.types @@ -204,7 +204,7 @@ function f10(shape: Shape) { } function f20(x: T | U, y: T & U, k1: keyof (T | U), k2: keyof T & keyof U, k3: keyof (T & U), k4: keyof T | keyof U) { ->f20 : (x: T | U, y: T & U, k1: keyof T & keyof U, k2: keyof T & keyof U, k3: keyof T | keyof U, k4: keyof T | keyof U) => void +>f20 : (x: T | U, y: T & U, k1: keyof (T | U), k2: keyof T & keyof U, k3: keyof (T & U), k4: keyof T | keyof U) => void >x : T | U >y : T & U >k1 : keyof T & keyof U diff --git a/tests/baselines/reference/limitDeepInstantiations.types b/tests/baselines/reference/limitDeepInstantiations.types index 5441f3a175c..559ed228235 100644 --- a/tests/baselines/reference/limitDeepInstantiations.types +++ b/tests/baselines/reference/limitDeepInstantiations.types @@ -2,7 +2,7 @@ // Repro from #14837 type Foo = { "true": Foo> }[T]; ->Foo : { true: { true: { true: { true: { true: { true: { true: { true: { true: { true: { true: any[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T] +>Foo : { true: Foo>; }[T] >"true" : { true: { true: { true: { true: { true: { true: { true: { true: { true: { true: { true: any[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T]; }[T] let f1: Foo<"true", {}>; diff --git a/tests/baselines/reference/literalTypeWidening.types b/tests/baselines/reference/literalTypeWidening.types index 8fed2df9986..808c5c918db 100644 --- a/tests/baselines/reference/literalTypeWidening.types +++ b/tests/baselines/reference/literalTypeWidening.types @@ -357,7 +357,7 @@ let x = onMouseOver(); // Repro from #23649 export function Set(...keys: K[]): Record { ->Set : (...keys: K[]) => Record +>Set : (...keys: K[]) => Record >keys : K[] >true : true diff --git a/tests/baselines/reference/literalTypes1.types b/tests/baselines/reference/literalTypes1.types index ba0ef3d3d19..f2f25599ae9 100644 --- a/tests/baselines/reference/literalTypes1.types +++ b/tests/baselines/reference/literalTypes1.types @@ -99,7 +99,7 @@ function f3(x: Falsy) { } function f4(x: 0 | 1 | true | string) { ->f4 : (x: string | true | 0 | 1) => void +>f4 : (x: 0 | 1 | true | string) => void >x : string | true | 0 | 1 >true : true diff --git a/tests/baselines/reference/literalTypes3.types b/tests/baselines/reference/literalTypes3.types index c0623dd6523..dad69d0d8dd 100644 --- a/tests/baselines/reference/literalTypes3.types +++ b/tests/baselines/reference/literalTypes3.types @@ -131,7 +131,7 @@ function f6(x: number, y: 1 | 2) { } function f7(x: number | "foo" | "bar", y: 1 | 2 | string) { ->f7 : (x: number | "foo" | "bar", y: string | 1 | 2) => void +>f7 : (x: number | "foo" | "bar", y: 1 | 2 | string) => void >x : number | "foo" | "bar" >y : string | 1 | 2 diff --git a/tests/baselines/reference/mappedTypeConstraints.types b/tests/baselines/reference/mappedTypeConstraints.types index 3e42e2a2e98..2a2b43608dd 100644 --- a/tests/baselines/reference/mappedTypeConstraints.types +++ b/tests/baselines/reference/mappedTypeConstraints.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/mapped/mappedTypeConstraints.ts === function f0(obj: Pick>) { ->f0 : (obj: Pick>) => void +>f0 : (obj: Pick>) => void >a : string >b : string >obj : Pick> @@ -12,7 +12,7 @@ function f0(obj: Pick(obj: Pick>) { ->f1 : (obj: Pick>) => void +>f1 : (obj: Pick>) => void >a : string >b : string >obj : Pick> @@ -24,7 +24,7 @@ function f1(obj: Pick(obj: Pick) { ->f2 : (obj: Pick) => void +>f2 : (obj: Pick) => void >a : string >b : string >b : string @@ -38,7 +38,7 @@ function f2(obj: Pick) { ->f3 : (obj: Pick) => void +>f3 : (obj: Pick) => void >a : string >b : string >b : string @@ -62,7 +62,7 @@ function f3(obj: Record | 'c', string>) { ->f4 : (obj: Record<"c" | Exclude, string>) => void +>f4 : (obj: Record | 'c', string>) => void >a : string >b : string >obj : Record<"c" | Exclude, string> diff --git a/tests/baselines/reference/mappedTypeInferenceErrors.types b/tests/baselines/reference/mappedTypeInferenceErrors.types index abacced1ee2..c8c80a0c6a6 100644 --- a/tests/baselines/reference/mappedTypeInferenceErrors.types +++ b/tests/baselines/reference/mappedTypeInferenceErrors.types @@ -8,7 +8,7 @@ type ComputedOf = { } declare function foo(options: { props: P, computed: ComputedOf } & ThisType

): void; ->foo : (options: { props: P; computed: ComputedOf; } & ThisType

) => void +>foo : (options: { props: P; computed: ComputedOf;} & ThisType

) => void >options : { props: P; computed: ComputedOf; } & ThisType

>props : P >computed : ComputedOf diff --git a/tests/baselines/reference/memberFunctionsWithPrivateOverloads.types b/tests/baselines/reference/memberFunctionsWithPrivateOverloads.types index 7e306ff10d4..6fbf0a1438b 100644 --- a/tests/baselines/reference/memberFunctionsWithPrivateOverloads.types +++ b/tests/baselines/reference/memberFunctionsWithPrivateOverloads.types @@ -17,7 +17,7 @@ class C { >y : any private bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" private bar(x: string); @@ -49,7 +49,7 @@ class C { >y : any private static bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" private static bar(x: string); @@ -85,7 +85,7 @@ class D { >y : any private bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: T, y: T): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } >x : "hi" private bar(x: string); @@ -117,7 +117,7 @@ class D { >y : any private static bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: number): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: number): any; } >x : "hi" private static bar(x: string); diff --git a/tests/baselines/reference/memberFunctionsWithPublicOverloads.types b/tests/baselines/reference/memberFunctionsWithPublicOverloads.types index 1e3ce05ba30..35e82cf1edd 100644 --- a/tests/baselines/reference/memberFunctionsWithPublicOverloads.types +++ b/tests/baselines/reference/memberFunctionsWithPublicOverloads.types @@ -17,7 +17,7 @@ class C { >y : any public bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" public bar(x: string); @@ -49,7 +49,7 @@ class C { >y : any public static bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" public static bar(x: string); @@ -85,7 +85,7 @@ class D { >y : any public bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: T, y: T): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } >x : "hi" public bar(x: string); @@ -117,7 +117,7 @@ class D { >y : any public static bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" public static bar(x: string); diff --git a/tests/baselines/reference/memberFunctionsWithPublicPrivateOverloads.types b/tests/baselines/reference/memberFunctionsWithPublicPrivateOverloads.types index b210bcd3752..d158fdd8b46 100644 --- a/tests/baselines/reference/memberFunctionsWithPublicPrivateOverloads.types +++ b/tests/baselines/reference/memberFunctionsWithPublicPrivateOverloads.types @@ -17,7 +17,7 @@ class C { >y : any private bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" public bar(x: string); // error @@ -63,7 +63,7 @@ class C { >y : any private static bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" public static bar(x: string); // error @@ -81,7 +81,7 @@ class C { >y : any protected static baz(x: 'hi'); ->baz : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>baz : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" public static baz(x: string); // error @@ -117,7 +117,7 @@ class D { >y : any private bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: T, y: T): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } >x : "hi" public bar(x: string); // error @@ -163,7 +163,7 @@ class D { >y : any private static bar(x: 'hi'); ->bar : { (x: "hi"): any; (x: string): any; (x: number, y: string): any; } +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } >x : "hi" public static bar(x: string); // error diff --git a/tests/baselines/reference/mixinAccessModifiers.types b/tests/baselines/reference/mixinAccessModifiers.types index ffa7b2b1e71..d3ecd90545e 100644 --- a/tests/baselines/reference/mixinAccessModifiers.types +++ b/tests/baselines/reference/mixinAccessModifiers.types @@ -328,7 +328,7 @@ class ProtectedGeneric2 { } function f7(x: ProtectedGeneric<{}> & ProtectedGeneric<{}>) { ->f7 : (x: ProtectedGeneric<{}>) => void +>f7 : (x: ProtectedGeneric<{}> & ProtectedGeneric<{}>) => void >x : ProtectedGeneric<{}> x.privateMethod(); // Error, private constituent makes method inaccessible @@ -345,7 +345,7 @@ function f7(x: ProtectedGeneric<{}> & ProtectedGeneric<{}>) { } function f8(x: ProtectedGeneric<{a: void;}> & ProtectedGeneric2<{a:void;b:void;}>) { ->f8 : (x: ProtectedGeneric<{ a: void; }> & ProtectedGeneric2<{ a: void; b: void; }>) => void +>f8 : (x: ProtectedGeneric<{ a: void;}> & ProtectedGeneric2<{ a: void; b: void;}>) => void >x : ProtectedGeneric<{ a: void; }> & ProtectedGeneric2<{ a: void; b: void; }> >a : void >a : void @@ -365,7 +365,7 @@ function f8(x: ProtectedGeneric<{a: void;}> & ProtectedGeneric2<{a:void;b:void;} } function f9(x: ProtectedGeneric<{a: void;}> & ProtectedGeneric<{a:void;b:void;}>) { ->f9 : (x: ProtectedGeneric<{ a: void; }> & ProtectedGeneric<{ a: void; b: void; }>) => void +>f9 : (x: ProtectedGeneric<{ a: void;}> & ProtectedGeneric<{ a: void; b: void;}>) => void >x : ProtectedGeneric<{ a: void; }> & ProtectedGeneric<{ a: void; b: void; }> >a : void >a : void diff --git a/tests/baselines/reference/moduleAliasAsFunctionArgument.types b/tests/baselines/reference/moduleAliasAsFunctionArgument.types index dc621aa5dbf..73de2422abc 100644 --- a/tests/baselines/reference/moduleAliasAsFunctionArgument.types +++ b/tests/baselines/reference/moduleAliasAsFunctionArgument.types @@ -4,7 +4,7 @@ import a = require('moduleAliasAsFunctionArgument_0'); >a : typeof a function fn(arg: { x: number }) { ->fn : (arg: { x: number; }) => void +>fn : (arg: { x: number;}) => void >arg : { x: number; } >x : number } diff --git a/tests/baselines/reference/moduleAugmentationDuringSyntheticDefaultCheck.types b/tests/baselines/reference/moduleAugmentationDuringSyntheticDefaultCheck.types index 3ee42ec79aa..a4a0bcb02e7 100644 --- a/tests/baselines/reference/moduleAugmentationDuringSyntheticDefaultCheck.types +++ b/tests/baselines/reference/moduleAugmentationDuringSyntheticDefaultCheck.types @@ -6,7 +6,7 @@ import moment = require("moment-timezone"); === tests/cases/compiler/node_modules/moment/index.d.ts === declare function moment(): moment.Moment; ->moment : () => import("tests/cases/compiler/node_modules/moment/index.d.ts").Moment +>moment : () => moment.Moment >moment : any declare namespace moment { diff --git a/tests/baselines/reference/moduleExportNestedNamespaces.types b/tests/baselines/reference/moduleExportNestedNamespaces.types index 0d1685b2530..249739a3beb 100644 --- a/tests/baselines/reference/moduleExportNestedNamespaces.types +++ b/tests/baselines/reference/moduleExportNestedNamespaces.types @@ -75,7 +75,7 @@ var classic = new s.Classic() /** @param {s.n.K} c @param {s.Classic} classic */ function f(c, classic) { ->f : (c: C, classic: Classic) => void +>f : (c: s.n.K, classic: s.Classic) => void >c : C >classic : Classic diff --git a/tests/baselines/reference/multiLineErrors.types b/tests/baselines/reference/multiLineErrors.types index d547face664..547696bccbc 100644 --- a/tests/baselines/reference/multiLineErrors.types +++ b/tests/baselines/reference/multiLineErrors.types @@ -4,7 +4,7 @@ var t = 32; >32 : 32 function noReturn(): { ->noReturn : () => { n: string; y: number; } +>noReturn : () => { n: string; y: number;} n: string; >n : string diff --git a/tests/baselines/reference/narrowByEquality.types b/tests/baselines/reference/narrowByEquality.types index 833e7537d68..0dfb3bb8e11 100644 --- a/tests/baselines/reference/narrowByEquality.types +++ b/tests/baselines/reference/narrowByEquality.types @@ -110,7 +110,7 @@ if (x == xAndObj) { // Repro from #24991 function test(level: number | string):number { ->test : (level: string | number) => number +>test : (level: number | string) => number >level : string | number if (level == +level) { diff --git a/tests/baselines/reference/narrowExceptionVariableInCatchClause.types b/tests/baselines/reference/narrowExceptionVariableInCatchClause.types index f7b3f35a777..8f35bbaf896 100644 --- a/tests/baselines/reference/narrowExceptionVariableInCatchClause.types +++ b/tests/baselines/reference/narrowExceptionVariableInCatchClause.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/any/narrowExceptionVariableInCatchClause.ts === declare function isFooError(x: any): x is { type: 'foo'; dontPanic(); }; ->isFooError : (x: any) => x is { type: "foo"; dontPanic(): any; } +>isFooError : (x: any) => x is { type: 'foo'; dontPanic(): any; } >x : any >type : "foo" >dontPanic : () => any diff --git a/tests/baselines/reference/narrowingByTypeofInSwitch.types b/tests/baselines/reference/narrowingByTypeofInSwitch.types index 616dae29225..90126810527 100644 --- a/tests/baselines/reference/narrowingByTypeofInSwitch.types +++ b/tests/baselines/reference/narrowingByTypeofInSwitch.types @@ -440,7 +440,7 @@ type R = { x: string, y: number } >y : number function exhaustiveChecks(x: number | string | L | R): string { ->exhaustiveChecks : (x: string | number | R | L) => string +>exhaustiveChecks : (x: number | string | L | R) => string >x : string | number | R | L switch (typeof x) { @@ -543,7 +543,7 @@ function multipleGeneric(xy: X | Y): [X, string] | [Y, } function multipleGenericFuse(xy: X | Y): [X, number] | [Y, string] | [(X | Y)] { ->multipleGenericFuse : (xy: X | Y) => [X, number] | [Y, string] | [X | Y] +>multipleGenericFuse : (xy: X | Y) => [X, number] | [Y, string] | [(X | Y)] >xy : X | Y switch (typeof xy) { @@ -1017,7 +1017,7 @@ function keyofNarrowingWithTemplate(k: key /* Both string literals and template literals */ function multipleGenericFuseWithBoth(xy: X | Y): [X, number] | [Y, string] | [(X | Y)] { ->multipleGenericFuseWithBoth : (xy: X | Y) => [X, number] | [Y, string] | [X | Y] +>multipleGenericFuseWithBoth : (xy: X | Y) => [X, number] | [Y, string] | [(X | Y)] >xy : X | Y switch (typeof xy) { diff --git a/tests/baselines/reference/narrowingConstrainedTypeVariable.types b/tests/baselines/reference/narrowingConstrainedTypeVariable.types index 5b56babfab2..2d44fe602c3 100644 --- a/tests/baselines/reference/narrowingConstrainedTypeVariable.types +++ b/tests/baselines/reference/narrowingConstrainedTypeVariable.types @@ -5,7 +5,7 @@ class C { } >C : C function f1(v: T | string): void { ->f1 : (v: string | T) => void +>f1 : (v: T | string) => void >v : string | T if (v instanceof C) { @@ -52,7 +52,7 @@ class E { x: string | undefined } >x : string | undefined function f3(v: T | { x: string }) { ->f3 : (v: T | { x: string; }) => void +>f3 : (v: T | { x: string;}) => void >v : T | { x: string; } >x : string diff --git a/tests/baselines/reference/nearbyIdenticalGenericLambdasAssignable.types b/tests/baselines/reference/nearbyIdenticalGenericLambdasAssignable.types index b2f878d548a..74b907ee4ad 100644 --- a/tests/baselines/reference/nearbyIdenticalGenericLambdasAssignable.types +++ b/tests/baselines/reference/nearbyIdenticalGenericLambdasAssignable.types @@ -45,15 +45,15 @@ type TL = () => { v: T }; >v : T declare function accA(x: TA): void; ->accA : (x: () => { v: T; }) => void +>accA : (x: TA) => void >x : () => { v: T; } declare function accB(x: TB): void; ->accB : (x: () => { v: T; }) => void +>accB : (x: TB) => void >x : () => { v: T; } declare function accC(x: TC): void; ->accC : (x: () => { v: T; }) => void +>accC : (x: TC) => void >x : () => { v: T; } declare function accL(x: TL): void; diff --git a/tests/baselines/reference/nestedTypeVariableInfersLiteral.types b/tests/baselines/reference/nestedTypeVariableInfersLiteral.types index 6c57d34d3a5..548fa221ee2 100644 --- a/tests/baselines/reference/nestedTypeVariableInfersLiteral.types +++ b/tests/baselines/reference/nestedTypeVariableInfersLiteral.types @@ -5,12 +5,12 @@ declare function direct(a: A | A[]): Record >a : A | A[] declare function nested(a: { fields: A }): Record ->nested : (a: { fields: A; }) => Record +>nested : (a: { fields: A;}) => Record >a : { fields: A; } >fields : A declare function nestedUnion(a: { fields: A | A[] }): Record ->nestedUnion : (a: { fields: A | A[]; }) => Record +>nestedUnion : (a: { fields: A | A[];}) => Record >a : { fields: A | A[]; } >fields : A | A[] @@ -55,7 +55,7 @@ const nestedUnionArray = nestedUnion({fields: ["z", "y"]}) >"y" : "y" declare function hasZField(arg: { z: string }): void ->hasZField : (arg: { z: string; }) => void +>hasZField : (arg: { z: string;}) => void >arg : { z: string; } >z : string diff --git a/tests/baselines/reference/neverReturningFunctions1.types b/tests/baselines/reference/neverReturningFunctions1.types index 69250693d87..2111736b893 100644 --- a/tests/baselines/reference/neverReturningFunctions1.types +++ b/tests/baselines/reference/neverReturningFunctions1.types @@ -328,7 +328,7 @@ function f30(x: string | number | undefined) { } function f31(x: { a: string | number }) { ->f31 : (x: { a: string | number; }) => void +>f31 : (x: { a: string | number;}) => void >x : { a: string | number; } >a : string | number diff --git a/tests/baselines/reference/noImplicitAnyDestructuringParameterDeclaration.types b/tests/baselines/reference/noImplicitAnyDestructuringParameterDeclaration.types index c0eef976c4d..707c6b708c3 100644 --- a/tests/baselines/reference/noImplicitAnyDestructuringParameterDeclaration.types +++ b/tests/baselines/reference/noImplicitAnyDestructuringParameterDeclaration.types @@ -18,7 +18,7 @@ function f2([a = undefined], {b = null}, c = undefined, d = null) { // error >null : null } function f3([a]: [any], {b}: { b: any }, c: any, d: any) { ->f3 : ([a]: [any], { b }: { b: any; }, c: any, d: any) => void +>f3 : ([a]: [any], { b }: { b: any;}, c: any, d: any) => void >a : any >b : any >b : any @@ -26,7 +26,7 @@ function f3([a]: [any], {b}: { b: any }, c: any, d: any) { >d : any } function f4({b}: { b }, x: { b }) { // error in type instead ->f4 : ({ b }: { b: any; }, x: { b: any; }) => void +>f4 : ({ b }: { b;}, x: { b;}) => void >b : any >b : any >x : { b: any; } diff --git a/tests/baselines/reference/noUnusedLocals_writeOnly.types b/tests/baselines/reference/noUnusedLocals_writeOnly.types index cc21d624fe7..68c03b7c8bc 100644 --- a/tests/baselines/reference/noUnusedLocals_writeOnly.types +++ b/tests/baselines/reference/noUnusedLocals_writeOnly.types @@ -117,6 +117,6 @@ function f(x = 0, b = false) { >1 : 1 } function f2(_: ReadonlyArray): void {} ->f2 : (_: readonly number[]) => void +>f2 : (_: ReadonlyArray) => void >_ : readonly number[] diff --git a/tests/baselines/reference/nonInstantiatedModule.types b/tests/baselines/reference/nonInstantiatedModule.types index 5301840da2c..0ede4affb06 100644 --- a/tests/baselines/reference/nonInstantiatedModule.types +++ b/tests/baselines/reference/nonInstantiatedModule.types @@ -75,8 +75,8 @@ var p: M2.Point; >M2 : any var p2: { Origin() : { x: number; y: number; } }; ->p2 : { Origin(): { x: number; y: number; }; } ->Origin : () => { x: number; y: number; } +>p2 : { Origin(): { x: number; y: number;}; } +>Origin : () => { x: number; y: number;} >x : number >y : number diff --git a/tests/baselines/reference/numberVsBigIntOperations.types b/tests/baselines/reference/numberVsBigIntOperations.types index 14ab151a437..ddb81030309 100644 --- a/tests/baselines/reference/numberVsBigIntOperations.types +++ b/tests/baselines/reference/numberVsBigIntOperations.types @@ -707,8 +707,8 @@ else isNumber(zeroOrBigOne); // Distinguishing truthy from falsy const isOne = (x: 1 | 1n) => x; ->isOne : (x: 1n | 1) => 1n | 1 ->(x: 1 | 1n) => x : (x: 1n | 1) => 1n | 1 +>isOne : (x: 1 | 1n) => 1n | 1 +>(x: 1 | 1n) => x : (x: 1 | 1n) => 1n | 1 >x : 1n | 1 >x : 1n | 1 diff --git a/tests/baselines/reference/numericLiteralTypes1.types b/tests/baselines/reference/numericLiteralTypes1.types index 7556d0818ee..1ef5854173a 100644 --- a/tests/baselines/reference/numericLiteralTypes1.types +++ b/tests/baselines/reference/numericLiteralTypes1.types @@ -263,7 +263,7 @@ type Tag = 0 | 1 | 2; >Tag : 0 | 1 | 2 function f10(x: Tag) { ->f10 : (x: 0 | 1 | 2) => "a" | "b" | "c" +>f10 : (x: Tag) => "a" | "b" | "c" >x : 0 | 1 | 2 switch (x) { @@ -284,7 +284,7 @@ function f10(x: Tag) { } function f11(x: Tag) { ->f11 : (x: 0 | 1 | 2) => "a" | "b" | "c" +>f11 : (x: Tag) => "a" | "b" | "c" >x : 0 | 1 | 2 switch (x) { @@ -309,7 +309,7 @@ function f11(x: Tag) { } function f12(x: Tag) { ->f12 : (x: 0 | 1 | 2) => void +>f12 : (x: Tag) => void >x : 0 | 1 | 2 if (x) { @@ -325,7 +325,7 @@ function f12(x: Tag) { } function f13(x: Tag) { ->f13 : (x: 0 | 1 | 2) => void +>f13 : (x: Tag) => void >x : 0 | 1 | 2 if (x === 0 || x === 2) { @@ -365,7 +365,7 @@ function f14(x: 0 | 1 | 2, y: string) { } function f15(x: 0 | false, y: 1 | "one") { ->f15 : (x: false | 0, y: 1 | "one") => void +>f15 : (x: 0 | false, y: 1 | "one") => void >x : false | 0 >false : false >y : 1 | "one" diff --git a/tests/baselines/reference/numericLiteralTypes2.types b/tests/baselines/reference/numericLiteralTypes2.types index 32396d13da2..815cd80f42a 100644 --- a/tests/baselines/reference/numericLiteralTypes2.types +++ b/tests/baselines/reference/numericLiteralTypes2.types @@ -263,7 +263,7 @@ type Tag = 0 | 1 | 2; >Tag : 0 | 1 | 2 function f10(x: Tag) { ->f10 : (x: 0 | 1 | 2) => "a" | "b" | "c" +>f10 : (x: Tag) => "a" | "b" | "c" >x : 0 | 1 | 2 switch (x) { @@ -284,7 +284,7 @@ function f10(x: Tag) { } function f11(x: Tag) { ->f11 : (x: 0 | 1 | 2) => "a" | "b" | "c" +>f11 : (x: Tag) => "a" | "b" | "c" >x : 0 | 1 | 2 switch (x) { @@ -309,7 +309,7 @@ function f11(x: Tag) { } function f12(x: Tag) { ->f12 : (x: 0 | 1 | 2) => void +>f12 : (x: Tag) => void >x : 0 | 1 | 2 if (x) { @@ -325,7 +325,7 @@ function f12(x: Tag) { } function f13(x: Tag) { ->f13 : (x: 0 | 1 | 2) => void +>f13 : (x: Tag) => void >x : 0 | 1 | 2 if (x === 0 || x === 2) { @@ -365,7 +365,7 @@ function f14(x: 0 | 1 | 2, y: string) { } function f15(x: 0 | false, y: 1 | "one") { ->f15 : (x: false | 0, y: 1 | "one") => void +>f15 : (x: 0 | false, y: 1 | "one") => void >x : false | 0 >false : false >y : 1 | "one" diff --git a/tests/baselines/reference/numericLiteralTypes3.types b/tests/baselines/reference/numericLiteralTypes3.types index 9748eaccfca..ea70129ac50 100644 --- a/tests/baselines/reference/numericLiteralTypes3.types +++ b/tests/baselines/reference/numericLiteralTypes3.types @@ -12,7 +12,7 @@ type D = 0 | 1 | 2; >D : D function f1(a: A, b: B, c: C, d: D) { ->f1 : (a: 1, b: B, c: C, d: D) => void +>f1 : (a: A, b: B, c: C, d: D) => void >a : 1 >b : B >c : C @@ -40,7 +40,7 @@ function f1(a: A, b: B, c: C, d: D) { } function f2(a: A, b: B, c: C, d: D) { ->f2 : (a: 1, b: B, c: C, d: D) => void +>f2 : (a: A, b: B, c: C, d: D) => void >a : 1 >b : B >c : C @@ -68,7 +68,7 @@ function f2(a: A, b: B, c: C, d: D) { } function f3(a: A, b: B, c: C, d: D) { ->f3 : (a: 1, b: B, c: C, d: D) => void +>f3 : (a: A, b: B, c: C, d: D) => void >a : 1 >b : B >c : C @@ -96,7 +96,7 @@ function f3(a: A, b: B, c: C, d: D) { } function f4(a: A, b: B, c: C, d: D) { ->f4 : (a: 1, b: B, c: C, d: D) => void +>f4 : (a: A, b: B, c: C, d: D) => void >a : 1 >b : B >c : C @@ -124,7 +124,7 @@ function f4(a: A, b: B, c: C, d: D) { } function f5(a: A, b: B, c: C, d: D) { ->f5 : (a: 1, b: B, c: C, d: D) => void +>f5 : (a: A, b: B, c: C, d: D) => void >a : 1 >b : B >c : C @@ -212,7 +212,7 @@ function f5(a: A, b: B, c: C, d: D) { } function f6(a: A, b: B, c: C, d: D) { ->f6 : (a: 1, b: B, c: C, d: D) => void +>f6 : (a: A, b: B, c: C, d: D) => void >a : 1 >b : B >c : C @@ -300,7 +300,7 @@ function f6(a: A, b: B, c: C, d: D) { } function f7(a: A, b: B, c: C, d: D) { ->f7 : (a: 1, b: B, c: C, d: D) => void +>f7 : (a: A, b: B, c: C, d: D) => void >a : 1 >b : B >c : C diff --git a/tests/baselines/reference/objectLitTargetTypeCallSite.types b/tests/baselines/reference/objectLitTargetTypeCallSite.types index b2dccb78fd3..0dcbe12b44e 100644 --- a/tests/baselines/reference/objectLitTargetTypeCallSite.types +++ b/tests/baselines/reference/objectLitTargetTypeCallSite.types @@ -1,6 +1,6 @@ === tests/cases/compiler/objectLitTargetTypeCallSite.ts === function process( x: {a:number; b:string;}) { ->process : (x: { a: number; b: string; }) => number +>process : (x: { a: number; b: string;}) => number >x : { a: number; b: string; } >a : number >b : string diff --git a/tests/baselines/reference/objectLiteralContextualTyping.types b/tests/baselines/reference/objectLiteralContextualTyping.types index d2982298ad9..d2dce39654b 100644 --- a/tests/baselines/reference/objectLiteralContextualTyping.types +++ b/tests/baselines/reference/objectLiteralContextualTyping.types @@ -69,7 +69,7 @@ var w: number; >w : number declare function bar(param: { x?: T }): T; ->bar : (param: { x?: T; }) => T +>bar : (param: { x?: T;}) => T >param : { x?: T; } >x : T diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types index 88a910a99fb..f272413c2e5 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types @@ -16,7 +16,7 @@ var person: { name: string; id: number } = { name, id }; >id : number function foo( obj:{ name: string }): void { }; ->foo : (obj: { name: string; }) => void +>foo : (obj: { name: string;}) => void >obj : { name: string; } >name : string @@ -36,7 +36,7 @@ function bar1(name: string, id: number) { return { name }; } >name : string function baz(name: string, id: number): { name: string; id: number } { return { name, id }; } ->baz : (name: string, id: number) => { name: string; id: number; } +>baz : (name: string, id: number) => { name: string; id: number;} >name : string >id : number >name : string diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types index 527c9c5fb6c..c4efcdb2b00 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types @@ -16,7 +16,7 @@ var person: { name: string; id: number } = { name, id }; >id : number function foo(obj: { name: string }): void { }; ->foo : (obj: { name: string; }) => void +>foo : (obj: { name: string;}) => void >obj : { name: string; } >name : string @@ -36,7 +36,7 @@ function bar1(name: string, id: number) { return { name }; } >name : string function baz(name: string, id: number): { name: string; id: number } { return { name, id }; } ->baz : (name: string, id: number) => { name: string; id: number; } +>baz : (name: string, id: number) => { name: string; id: number;} >name : string >id : number >name : string diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.types index 8b85508d016..1baeae13561 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.types @@ -21,7 +21,7 @@ var person1: { name, id }; // ok >id : any function foo(name: string, id: number): { id: string, name: number } { return { name, id }; } // error ->foo : (name: string, id: number) => { id: string; name: number; } +>foo : (name: string, id: number) => { id: string; name: number;} >name : string >id : number >id : string @@ -31,7 +31,7 @@ function foo(name: string, id: number): { id: string, name: number } { return { >id : number function bar(obj: { name: string; id: boolean }) { } ->bar : (obj: { name: string; id: boolean; }) => void +>bar : (obj: { name: string; id: boolean;}) => void >obj : { name: string; id: boolean; } >name : string >id : boolean diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.types index 4bc4cf8f452..6e2562fde4d 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.types @@ -16,7 +16,7 @@ var person: { b: string; id: number } = { name, id }; // error >id : number function bar(name: string, id: number): { name: number, id: string } { return { name, id }; } // error ->bar : (name: string, id: number) => { name: number; id: string; } +>bar : (name: string, id: number) => { name: number; id: string;} >name : string >id : number >name : number @@ -26,7 +26,7 @@ function bar(name: string, id: number): { name: number, id: string } { return { >id : number function foo(name: string, id: number): { name: string, id: number } { return { name, id }; } // error ->foo : (name: string, id: number) => { name: string; id: number; } +>foo : (name: string, id: number) => { name: string; id: number;} >name : string >id : number >name : string diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types index fe67e59dd7b..ac28cd8fd59 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types @@ -14,7 +14,7 @@ var person = { name, id }; >id : number function foo(p: { name: string; id: number }) { } ->foo : (p: { name: string; id: number; }) => void +>foo : (p: { name: string; id: number;}) => void >p : { name: string; id: number; } >name : string >id : number diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.types b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.types index 390d6100736..f614a49fac4 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.types @@ -14,7 +14,7 @@ var person = { name, id }; >id : number function foo(p: { a: string; id: number }) { } ->foo : (p: { a: string; id: number; }) => void +>foo : (p: { a: string; id: number;}) => void >p : { a: string; id: number; } >a : string >id : number diff --git a/tests/baselines/reference/objectRest.types b/tests/baselines/reference/objectRest.types index dfce7e47912..b0d34beae7d 100644 --- a/tests/baselines/reference/objectRest.types +++ b/tests/baselines/reference/objectRest.types @@ -56,11 +56,11 @@ var { d: renamed, ...d } = o2; >o2 : { c: string; d: string; } let nestedrest: { x: number, n1: { y: number, n2: { z: number, n3: { n4: number } } }, rest: number, restrest: number }; ->nestedrest : { x: number; n1: { y: number; n2: { z: number; n3: { n4: number; }; }; }; rest: number; restrest: number; } +>nestedrest : { x: number; n1: { y: number; n2: { z: number; n3: { n4: number; }; };}; rest: number; restrest: number; } >x : number ->n1 : { y: number; n2: { z: number; n3: { n4: number; }; }; } +>n1 : { y: number; n2: { z: number; n3: { n4: number; };}; } >y : number ->n2 : { z: number; n3: { n4: number; }; } +>n2 : { z: number; n3: { n4: number;}; } >z : number >n3 : { n4: number; } >n4 : number @@ -79,7 +79,7 @@ var { x, n1: { y, n2: { z, n3: { ...nr } } }, ...restrest } = nestedrest; >nestedrest : { x: number; n1: { y: number; n2: { z: number; n3: { n4: number; }; }; }; rest: number; restrest: number; } let complex: { x: { ka, ki }, y: number }; ->complex : { x: { ka: any; ki: any; }; y: number; } +>complex : { x: { ka; ki;}; y: number; } >x : { ka: any; ki: any; } >ka : any >ki : any diff --git a/tests/baselines/reference/objectRestAssignment.types b/tests/baselines/reference/objectRestAssignment.types index c0c84b6d5e3..c4cdfe12ad7 100644 --- a/tests/baselines/reference/objectRestAssignment.types +++ b/tests/baselines/reference/objectRestAssignment.types @@ -13,7 +13,7 @@ let rest: { }; >rest : {} let complex: { x: { ka, ki }, y: number }; ->complex : { x: { ka: any; ki: any; }; y: number; } +>complex : { x: { ka; ki;}; y: number; } >x : { ka: any; ki: any; } >ka : any >ki : any @@ -34,7 +34,7 @@ let complex: { x: { ka, ki }, y: number }; // should be: let overEmit: { a: { ka: string, x: string }[], b: { z: string, ki: string, ku: string }, ke: string, ko: string }; ->overEmit : { a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; } +>overEmit : { a: { ka: string; x: string;}[]; b: { z: string; ki: string; ku: string;}; ke: string; ko: string; } >a : { ka: string; x: string; }[] >ka : string >x : string diff --git a/tests/baselines/reference/objectRestNegative.types b/tests/baselines/reference/objectRestNegative.types index 58ed1902f6d..af949daca67 100644 --- a/tests/baselines/reference/objectRestNegative.types +++ b/tests/baselines/reference/objectRestNegative.types @@ -29,7 +29,7 @@ let notAssignable: { a: string }; function stillMustBeLast({ ...mustBeLast, a }: { a: number, b: string }): void { ->stillMustBeLast : ({ ...mustBeLast, a }: { a: number; b: string; }) => void +>stillMustBeLast : ({ ...mustBeLast, a }: { a: number; b: string;}) => void >mustBeLast : { b: string; } >a : number >a : number diff --git a/tests/baselines/reference/objectRestParameter.types b/tests/baselines/reference/objectRestParameter.types index 831ac9df59f..71047deea43 100644 --- a/tests/baselines/reference/objectRestParameter.types +++ b/tests/baselines/reference/objectRestParameter.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/rest/objectRestParameter.ts === function cloneAgain({ a, ...clone }: { a: number, b: string }): void { ->cloneAgain : ({ a, ...clone }: { a: number; b: string; }) => void +>cloneAgain : ({ a, ...clone }: { a: number; b: string;}) => void >a : number >clone : { b: string; } >a : number @@ -8,9 +8,9 @@ function cloneAgain({ a, ...clone }: { a: number, b: string }): void { } declare function suddenly(f: (a: { x: { z, ka }, y: string }) => void); ->suddenly : (f: (a: { x: { z: any; ka: any; }; y: string; }) => void) => any ->f : (a: { x: { z: any; ka: any; }; y: string; }) => void ->a : { x: { z: any; ka: any; }; y: string; } +>suddenly : (f: (a: { x: { z; ka; }; y: string;}) => void) => any +>f : (a: { x: { z; ka; }; y: string;}) => void +>a : { x: { z; ka;}; y: string; } >x : { z: any; ka: any; } >z : any >ka : any @@ -57,7 +57,7 @@ class C { >C : C m({ a, ...clone }: { a: number, b: string}): void { ->m : ({ a, ...clone }: { a: number; b: string; }) => void +>m : ({ a, ...clone }: { a: number; b: string;}) => void >a : number >clone : { b: string; } >a : number diff --git a/tests/baselines/reference/objectRestParameterES5.types b/tests/baselines/reference/objectRestParameterES5.types index 1b8dd29e29e..74df68093aa 100644 --- a/tests/baselines/reference/objectRestParameterES5.types +++ b/tests/baselines/reference/objectRestParameterES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/rest/objectRestParameterES5.ts === function cloneAgain({ a, ...clone }: { a: number, b: string }): void { ->cloneAgain : ({ a, ...clone }: { a: number; b: string; }) => void +>cloneAgain : ({ a, ...clone }: { a: number; b: string;}) => void >a : number >clone : { b: string; } >a : number @@ -8,9 +8,9 @@ function cloneAgain({ a, ...clone }: { a: number, b: string }): void { } declare function suddenly(f: (a: { x: { z, ka }, y: string }) => void); ->suddenly : (f: (a: { x: { z: any; ka: any; }; y: string; }) => void) => any ->f : (a: { x: { z: any; ka: any; }; y: string; }) => void ->a : { x: { z: any; ka: any; }; y: string; } +>suddenly : (f: (a: { x: { z; ka; }; y: string;}) => void) => any +>f : (a: { x: { z; ka; }; y: string;}) => void +>a : { x: { z; ka;}; y: string; } >x : { z: any; ka: any; } >z : any >ka : any @@ -57,7 +57,7 @@ class C { >C : C m({ a, ...clone }: { a: number, b: string}): void { ->m : ({ a, ...clone }: { a: number; b: string; }) => void +>m : ({ a, ...clone }: { a: number; b: string;}) => void >a : number >clone : { b: string; } >a : number diff --git a/tests/baselines/reference/objectSpread.types b/tests/baselines/reference/objectSpread.types index f253d6c0954..45c4c853faa 100644 --- a/tests/baselines/reference/objectSpread.types +++ b/tests/baselines/reference/objectSpread.types @@ -123,7 +123,7 @@ let combinedNestedChangeType: { a: number, b: boolean, c: number } = >1 : 1 let propertyNested: { a: { a: number, b: string } } = ->propertyNested : { a: { a: number; b: string; }; } +>propertyNested : { a: { a: number; b: string;}; } >a : { a: number; b: string; } >a : number >b : string @@ -174,7 +174,7 @@ type Header = { head: string, body: string, authToken: string } >authToken : string function from16326(this: { header: Header }, header: Header, authToken: string): Header { ->from16326 : (this: { header: Header; }, header: Header, authToken: string) => Header +>from16326 : (this: { header: Header;}, header: Header, authToken: string) => Header >this : { header: Header; } >header : Header >header : Header @@ -200,7 +200,7 @@ function from16326(this: { header: Header }, header: Header, authToken: string): } // boolean && T results in Partial function conditionalSpreadBoolean(b: boolean) : { x: number, y: number } { ->conditionalSpreadBoolean : (b: boolean) => { x: number; y: number; } +>conditionalSpreadBoolean : (b: boolean) => { x: number; y: number;} >b : boolean >x : number >y : number @@ -241,7 +241,7 @@ function conditionalSpreadBoolean(b: boolean) : { x: number, y: number } { >o : { x: number; y: number; } } function conditionalSpreadNumber(nt: number): { x: number, y: number } { ->conditionalSpreadNumber : (nt: number) => { x: number; y: number; } +>conditionalSpreadNumber : (nt: number) => { x: number; y: number;} >nt : number >x : number >y : number @@ -282,7 +282,7 @@ function conditionalSpreadNumber(nt: number): { x: number, y: number } { >o : { x: number; y: number; } } function conditionalSpreadString(st: string): { x: string, y: number } { ->conditionalSpreadString : (st: string) => { x: string; y: number; } +>conditionalSpreadString : (st: string) => { x: string; y: number;} >st : string >x : string >y : number @@ -394,7 +394,7 @@ let changeTypeBoth: { a: string, b: number } = // optional function container( ->container : (definiteBoolean: { sn: boolean; }, definiteString: { sn: string; }, optionalString: { sn?: string | undefined; }, optionalNumber: { sn?: number | undefined; }) => void +>container : (definiteBoolean: { sn: boolean;}, definiteString: { sn: string;}, optionalString: { sn?: string;}, optionalNumber: { sn?: number;}) => void definiteBoolean: { sn: boolean }, >definiteBoolean : { sn: boolean; } @@ -579,7 +579,7 @@ let overwriteId: { id: string, a: number, c: number, d: string } = >'no' : "no" function genericSpread(t: T, u: U, v: T | U, w: T | { s: string }, obj: { x: number }) { ->genericSpread : (t: T, u: U, v: T | U, w: T | { s: string; }, obj: { x: number; }) => void +>genericSpread : (t: T, u: U, v: T | U, w: T | { s: string;}, obj: { x: number;}) => void >t : T >u : U >v : T | U diff --git a/tests/baselines/reference/objectSpreadStrictNull.types b/tests/baselines/reference/objectSpreadStrictNull.types index e1fdfbcf620..05e50a21458 100644 --- a/tests/baselines/reference/objectSpreadStrictNull.types +++ b/tests/baselines/reference/objectSpreadStrictNull.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/spread/objectSpreadStrictNull.ts === function f( ->f : (definiteBoolean: { sn: boolean; }, definiteString: { sn: string; }, optionalString: { sn?: string | undefined; }, optionalNumber: { sn?: number | undefined; }, undefinedString: { sn: string | undefined; }, undefinedNumber: { sn: number | undefined; }) => void +>f : (definiteBoolean: { sn: boolean;}, definiteString: { sn: string;}, optionalString: { sn?: string;}, optionalNumber: { sn?: number;}, undefinedString: { sn: string | undefined;}, undefinedNumber: { sn: number | undefined;}) => void definiteBoolean: { sn: boolean }, >definiteBoolean : { sn: boolean; } diff --git a/tests/baselines/reference/objectTypesIdentity.types b/tests/baselines/reference/objectTypesIdentity.types index b5a5ddb993b..c49ce4608db 100644 --- a/tests/baselines/reference/objectTypesIdentity.types +++ b/tests/baselines/reference/objectTypesIdentity.types @@ -86,12 +86,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo: string; }): any; } >x : { foo: string; } >a : { foo: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo3 : { (x: { foo: string; }): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -100,12 +100,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo: string; }): any; } >x : { foo: string; } >b : { foo: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo4 : { (x: { foo: string; }): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } @@ -154,7 +154,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo: string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -191,7 +191,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { foo: string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -204,7 +204,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { foo: string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } @@ -229,7 +229,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo: string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -242,7 +242,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo: string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } diff --git a/tests/baselines/reference/objectTypesIdentity2.types b/tests/baselines/reference/objectTypesIdentity2.types index aa61a461507..29bd6473617 100644 --- a/tests/baselines/reference/objectTypesIdentity2.types +++ b/tests/baselines/reference/objectTypesIdentity2.types @@ -84,7 +84,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo: RegExp; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo: RegExp; } >a : { foo: RegExp; } @@ -121,7 +121,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo: RegExp; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo: RegExp; } >a : { foo: RegExp; } @@ -134,7 +134,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo: E; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo: E; } >b : { foo: E; } @@ -159,7 +159,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo: RegExp; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo: RegExp; } >a : { foo: RegExp; } @@ -172,7 +172,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo: E; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo: E; } >b : { foo: E; } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures.types b/tests/baselines/reference/objectTypesIdentityWithCallSignatures.types index 5d1d995e95a..6156b5dba46 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignatures.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures.types @@ -101,12 +101,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: string): string; }): any; } >x : { foo(x: string): string; } >a : { foo(x: string): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>foo3 : { (x: { foo(x: string): string; }): any; (x: typeof a): any; } >x : { foo(x: string): string; } >a : { foo(x: string): string; } @@ -115,12 +115,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: string): string; }): any; } >x : { foo(x: string): string; } >b : { foo(x: string): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>foo4 : { (x: { foo(x: string): string; }): any; (x: typeof b): any; } >x : { foo(x: string): string; } >b : { foo(x: string): string; } @@ -169,7 +169,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo(x: string): string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: string): string; } >a : { foo(x: string): string; } @@ -206,7 +206,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: string): string; } >a : { foo(x: string): string; } @@ -219,7 +219,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: string): string; } >b : { foo(x: string): string; } @@ -256,7 +256,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: string): string; } >a : { foo(x: string): string; } @@ -269,7 +269,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: string): string; } >b : { foo(x: string): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.types b/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.types index 8ff36508f7b..fd2ed409da6 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.types @@ -101,12 +101,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: Date): string; }): any; (x: { foo(x: Date): string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: Date): string; }): any; } >x : { foo(x: Date): string; } >a : { foo(x: Date): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: Date): string; }): any; (x: { foo(x: Date): string; }): any; } +>foo3 : { (x: { foo(x: Date): string; }): any; (x: typeof a): any; } >x : { foo(x: Date): string; } >a : { foo(x: Date): string; } @@ -115,12 +115,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: RegExp): string; }): any; (x: { foo(x: RegExp): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: RegExp): string; }): any; } >x : { foo(x: RegExp): string; } >b : { foo(x: RegExp): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: RegExp): string; }): any; (x: { foo(x: RegExp): string; }): any; } +>foo4 : { (x: { foo(x: RegExp): string; }): any; (x: typeof b): any; } >x : { foo(x: RegExp): string; } >b : { foo(x: RegExp): string; } @@ -169,7 +169,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: Date): string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: Date): string; } >a : { foo(x: Date): string; } @@ -206,7 +206,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: Date): string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: Date): string; } >a : { foo(x: Date): string; } @@ -219,7 +219,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: RegExp): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: RegExp): string; } >b : { foo(x: RegExp): string; } @@ -256,7 +256,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: Date): string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: Date): string; } >a : { foo(x: Date): string; } @@ -269,7 +269,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: RegExp): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: RegExp): string; } >b : { foo(x: RegExp): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures3.types b/tests/baselines/reference/objectTypesIdentityWithCallSignatures3.types index 188d6478930..9e8f91d47bc 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignatures3.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures3.types @@ -28,12 +28,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: (x: string) => string): any; (x: (x: string) => string): any; } +>foo3 : { (x: typeof a): any; (x: (x: string) => string): any; } >x : (x: string) => string >a : (x: string) => string function foo3(x: typeof a); // error ->foo3 : { (x: (x: string) => string): any; (x: (x: string) => string): any; } +>foo3 : { (x: (x: string) => string): any; (x: typeof a): any; } >x : (x: string) => string >a : (x: string) => string @@ -60,7 +60,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: (x: string) => string): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : (x: string) => string >a : (x: string) => string @@ -81,7 +81,7 @@ function foo14(x: any) { } >x : any function foo14b(x: typeof a); ->foo14b : { (x: (x: string) => string): any; (x: I2): any; } +>foo14b : { (x: typeof a): any; (x: I2): any; } >x : (x: string) => string >a : (x: string) => string diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.types b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.types index 0873cc5fc55..88b370383de 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.types @@ -104,12 +104,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: { foo(x: string, y: string): string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: string, y: string): string; }): any; } >x : { foo(x: string, y: string): string; } >a : { foo(x: string, y: string): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: { foo(x: string, y: string): string; }): any; } +>foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: typeof a): any; } >x : { foo(x: string, y: string): string; } >a : { foo(x: string, y: string): string; } @@ -118,12 +118,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: string): string; }): any; } >x : { foo(x: string): string; } >b : { foo(x: string): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>foo4 : { (x: { foo(x: string): string; }): any; (x: typeof b): any; } >x : { foo(x: string): string; } >b : { foo(x: string): string; } @@ -172,7 +172,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: string, y: string): string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: string, y: string): string; } >a : { foo(x: string, y: string): string; } @@ -209,7 +209,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { foo(x: string, y: string): string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: string, y: string): string; } >a : { foo(x: string, y: string): string; } @@ -222,7 +222,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: string): string; } >b : { foo(x: string): string; } @@ -259,7 +259,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: string, y: string): string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: string, y: string): string; } >a : { foo(x: string, y: string): string; } @@ -272,7 +272,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: string): string; } >b : { foo(x: string): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.types b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.types index 34bf523223c..ba63f8fc116 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.types @@ -29,12 +29,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: (x: string, y: string) => string): any; (x: (x: string, y: string) => string): any; } +>foo3 : { (x: typeof a): any; (x: (x: string, y: string) => string): any; } >x : (x: string, y: string) => string >a : (x: string, y: string) => string function foo3(x: typeof a); // error ->foo3 : { (x: (x: string, y: string) => string): any; (x: (x: string, y: string) => string): any; } +>foo3 : { (x: (x: string, y: string) => string): any; (x: typeof a): any; } >x : (x: string, y: string) => string >a : (x: string, y: string) => string @@ -71,7 +71,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: (x: string, y: string) => string): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : (x: string, y: string) => string >a : (x: string, y: string) => string @@ -92,7 +92,7 @@ function foo14(x: any) { } >x : any function foo14b(x: typeof a); ->foo14b : { (x: (x: string, y: string) => string): any; (x: I2): any; } +>foo14b : { (x: typeof a): any; (x: I2): any; } >x : (x: string, y: string) => string >a : (x: string, y: string) => string diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.types b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.types index 1325b9e42b9..034b318f453 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.types @@ -153,12 +153,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } >x : { foo(x: number): number; foo(x: string): string; } >a : { foo(x: number): number; foo(x: string): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: typeof a): any; } >x : { foo(x: number): number; foo(x: string): string; } >a : { foo(x: number): number; foo(x: string): string; } @@ -167,12 +167,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: any): any; }): any; (x: { foo(x: any): any; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: any): any; }): any; } >x : { foo(x: any): any; } >b : { foo(x: any): any; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: any): any; }): any; (x: { foo(x: any): any; }): any; } +>foo4 : { (x: { foo(x: any): any; }): any; (x: typeof b): any; } >x : { foo(x: any): any; } >b : { foo(x: any): any; } @@ -221,7 +221,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // BUG 831930 ->foo7 : { (x: A): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: number): number; foo(x: string): string; } >a : { foo(x: number): number; foo(x: string): string; } @@ -258,7 +258,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // BUG 831930 ->foo10 : { (x: B): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: number): number; foo(x: string): string; } >a : { foo(x: number): number; foo(x: string): string; } @@ -271,7 +271,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: any): any; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: any): any; } >b : { foo(x: any): any; } @@ -308,7 +308,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: number): number; foo(x: string): string; } >a : { foo(x: number): number; foo(x: string): string; } @@ -321,7 +321,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: any): any; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: any): any; } >b : { foo(x: any): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.types b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.types index 4a503e259d3..e3d9de2b775 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.types +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.types @@ -85,12 +85,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: string) => any): any; (x: new (x: string) => any): any; } +>foo3 : { (x: typeof a): any; (x: new (x: string) => any): any; } >x : new (x: string) => any >a : new (x: string) => any function foo3(x: typeof a); // error ->foo3 : { (x: new (x: string) => any): any; (x: new (x: string) => any): any; } +>foo3 : { (x: new (x: string) => any): any; (x: typeof a): any; } >x : new (x: string) => any >a : new (x: string) => any @@ -139,7 +139,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: new (x: string) => any): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : new (x: string) => any >a : new (x: string) => any @@ -176,7 +176,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: string) => any): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: string) => any >a : new (x: string) => any @@ -213,7 +213,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: new (x: string) => any): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: string) => any >a : new (x: string) => any diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.types b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.types index b1dde3bf3f2..60f11703623 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.types +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.types @@ -75,12 +75,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: Date) => string): any; (x: new (x: Date) => string): any; } +>foo3 : { (x: typeof a): any; (x: new (x: Date) => string): any; } >x : new (x: Date) => string >a : new (x: Date) => string function foo3(x: typeof a); // error ->foo3 : { (x: new (x: Date) => string): any; (x: new (x: Date) => string): any; } +>foo3 : { (x: new (x: Date) => string): any; (x: typeof a): any; } >x : new (x: Date) => string >a : new (x: Date) => string @@ -89,12 +89,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: RegExp): string; }): any; (x: { new(x: RegExp): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: RegExp): string; }): any; } >x : { new(x: RegExp): string; } >b : { new(x: RegExp): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: RegExp): string; }): any; (x: { new(x: RegExp): string; }): any; } +>foo4 : { (x: { new(x: RegExp): string; }): any; (x: typeof b): any; } >x : { new(x: RegExp): string; } >b : { new(x: RegExp): string; } @@ -131,7 +131,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: Date) => string): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: Date) => string >a : new (x: Date) => string @@ -144,7 +144,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: RegExp): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: RegExp): string; } >b : { new(x: RegExp): string; } @@ -181,7 +181,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: Date) => string): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: Date) => string >a : new (x: Date) => string @@ -194,7 +194,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: RegExp): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: RegExp): string; } >b : { new(x: RegExp): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.types b/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.types index 0b68472b720..42170ffd732 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.types @@ -78,12 +78,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: string, y: string) => string): any; (x: new (x: string, y: string) => string): any; } +>foo3 : { (x: typeof a): any; (x: new (x: string, y: string) => string): any; } >x : new (x: string, y: string) => string >a : new (x: string, y: string) => string function foo3(x: typeof a); // error ->foo3 : { (x: new (x: string, y: string) => string): any; (x: new (x: string, y: string) => string): any; } +>foo3 : { (x: new (x: string, y: string) => string): any; (x: typeof a): any; } >x : new (x: string, y: string) => string >a : new (x: string, y: string) => string @@ -92,12 +92,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: string): string; }): any; (x: { new(x: string): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: string): string; }): any; } >x : { new(x: string): string; } >b : { new(x: string): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: string): string; }): any; (x: { new(x: string): string; }): any; } +>foo4 : { (x: { new(x: string): string; }): any; (x: typeof b): any; } >x : { new(x: string): string; } >b : { new(x: string): string; } @@ -134,7 +134,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: string, y: string) => string): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: string, y: string) => string >a : new (x: string, y: string) => string @@ -147,7 +147,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: string): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: string): string; } >b : { new(x: string): string; } @@ -184,7 +184,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: string, y: string) => string): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: string, y: string) => string >a : new (x: string, y: string) => string @@ -197,7 +197,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: string): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: string): string; } >b : { new(x: string): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types index 11f5a5169df..8b9791c29bf 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types @@ -101,12 +101,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T): T; }): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>foo3 : { (x: { foo(x: T): T; }): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -115,12 +115,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T): T; }): any; } >x : { foo(x: T): T; } >b : { foo(x: T): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>foo4 : { (x: { foo(x: T): T; }): any; (x: typeof b): any; } >x : { foo(x: T): T; } >b : { foo(x: T): T; } @@ -169,7 +169,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -206,7 +206,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -219,7 +219,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T): T; } >b : { foo(x: T): T; } @@ -256,7 +256,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -269,7 +269,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T): T; } >b : { foo(x: T): T; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types index 365f831fe0d..e1640178c57 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types @@ -108,12 +108,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T, y: U): T; }): any; } >x : { foo(x: T, y: U): T; } >a : { foo(x: T, y: U): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: typeof a): any; } >x : { foo(x: T, y: U): T; } >a : { foo(x: T, y: U): T; } @@ -122,12 +122,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T, y: U): T; }): any; } >x : { foo(x: T, y: U): T; } >b : { foo(x: T, y: U): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: typeof b): any; } >x : { foo(x: T, y: U): T; } >b : { foo(x: T, y: U): T; } @@ -176,7 +176,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: T, y: U): T; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T, y: U): T; } >a : { foo(x: T, y: U): T; } @@ -213,7 +213,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T, y: U): T; } >a : { foo(x: T, y: U): T; } @@ -226,7 +226,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T, y: U): T; } >b : { foo(x: T, y: U): T; } @@ -263,7 +263,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T, y: U): T; } >a : { foo(x: T, y: U): T; } @@ -276,7 +276,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T, y: U): T; } >b : { foo(x: T, y: U): T; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types index bfb5390f0b9..6cd87955db2 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types @@ -67,11 +67,11 @@ function foo1(x: any) { } >x : any function foo1b(x: B>); ->foo1b : { (x: B): any; (x: B): any; } +>foo1b : { (x: B>): any; (x: B): any; } >x : B function foo1b(x: B>); // error ->foo1b : { (x: B): any; (x: B): any; } +>foo1b : { (x: B): any; (x: B>): any; } >x : B function foo1b(x: any) { } @@ -103,12 +103,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T): string; }): any; } >x : { foo(x: T): string; } >a : { foo(x: T): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>foo3 : { (x: { foo(x: T): string; }): any; (x: typeof a): any; } >x : { foo(x: T): string; } >a : { foo(x: T): string; } @@ -117,12 +117,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T): string; }): any; } >x : { foo(x: T): string; } >b : { foo(x: T): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>foo4 : { (x: { foo(x: T): string; }): any; (x: typeof b): any; } >x : { foo(x: T): string; } >b : { foo(x: T): string; } @@ -135,7 +135,7 @@ function foo5(x: A); >x : A function foo5(x: B>); // ok ->foo5 : { (x: A): any; (x: B): any; } +>foo5 : { (x: A): any; (x: B>): any; } >x : B function foo5(x: any) { } @@ -171,7 +171,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: T): string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T): string; } >a : { foo(x: T): string; } @@ -180,7 +180,7 @@ function foo7(x: any) { } >x : any function foo8(x: B>); ->foo8 : { (x: B): any; (x: I): any; } +>foo8 : { (x: B>): any; (x: I): any; } >x : B function foo8(x: I); // ok @@ -192,7 +192,7 @@ function foo8(x: any) { } >x : any function foo9(x: B>); ->foo9 : { (x: B): any; (x: C): any; } +>foo9 : { (x: B>): any; (x: C): any; } >x : B function foo9(x: C); // ok @@ -204,11 +204,11 @@ function foo9(x: any) { } >x : any function foo10(x: B>); ->foo10 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>foo10 : { (x: B>): any; (x: { foo(x: T): string; }): any; } >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T): string; } >a : { foo(x: T): string; } @@ -217,11 +217,11 @@ function foo10(x: any) { } >x : any function foo11(x: B>); ->foo11 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>foo11 : { (x: B>): any; (x: { foo(x: T): string; }): any; } >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T): string; } >b : { foo(x: T): string; } @@ -258,7 +258,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T): string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T): string; } >a : { foo(x: T): string; } @@ -271,7 +271,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T): string; } >b : { foo(x: T): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.types index a3fe95b4175..f474159b29b 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.types @@ -84,11 +84,11 @@ function foo1(x: any) { } >x : any function foo1b(x: B, Array>); ->foo1b : { (x: B): any; (x: B): any; } +>foo1b : { (x: B, Array>): any; (x: B): any; } >x : B function foo1b(x: B, Array>); // error ->foo1b : { (x: B): any; (x: B): any; } +>foo1b : { (x: B): any; (x: B, Array>): any; } >x : B function foo1b(x: any) { } @@ -120,12 +120,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y: U): string; }): any; (x: { foo(x: T, y: U): string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T, y: U): string; }): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y: U): string; }): any; (x: { foo(x: T, y: U): string; }): any; } +>foo3 : { (x: { foo(x: T, y: U): string; }): any; (x: typeof a): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } @@ -134,12 +134,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y: U): string; }): any; (x: { foo(x: T, y: U): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T, y: U): string; }): any; } >x : { foo(x: T, y: U): string; } >b : { foo(x: T, y: U): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y: U): string; }): any; (x: { foo(x: T, y: U): string; }): any; } +>foo4 : { (x: { foo(x: T, y: U): string; }): any; (x: typeof b): any; } >x : { foo(x: T, y: U): string; } >b : { foo(x: T, y: U): string; } @@ -152,7 +152,7 @@ function foo5(x: A); >x : A function foo5(x: B, Array>); // ok ->foo5 : { (x: A): any; (x: B): any; } +>foo5 : { (x: A): any; (x: B, Array>): any; } >x : B function foo5(x: any) { } @@ -212,7 +212,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: T, y: U): string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } @@ -221,7 +221,7 @@ function foo7(x: any) { } >x : any function foo8(x: B, Array>); ->foo8 : { (x: B): any; (x: I): any; } +>foo8 : { (x: B, Array>): any; (x: I): any; } >x : B function foo8(x: I); // ok @@ -233,7 +233,7 @@ function foo8(x: any) { } >x : any function foo9(x: B, Array>); ->foo9 : { (x: B): any; (x: C): any; } +>foo9 : { (x: B, Array>): any; (x: C): any; } >x : B function foo9(x: C); // ok @@ -245,11 +245,11 @@ function foo9(x: any) { } >x : any function foo10(x: B, Array>); ->foo10 : { (x: B): any; (x: { foo(x: T, y: U): string; }): any; } +>foo10 : { (x: B, Array>): any; (x: { foo(x: T, y: U): string; }): any; } >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y: U): string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } @@ -258,11 +258,11 @@ function foo10(x: any) { } >x : any function foo11(x: B, Array>); ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): string; }): any; } +>foo11 : { (x: B, Array>): any; (x: { foo(x: T, y: U): string; }): any; } >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T, y: U): string; } >b : { foo(x: T, y: U): string; } @@ -299,7 +299,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y: U): string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } @@ -312,7 +312,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T, y: U): string; } >b : { foo(x: T, y: U): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.types index 3c3959a1af2..83a0cd8e66b 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.types @@ -140,12 +140,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y: U): string; }): any; (x: { foo(x: T, y: U): string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T, y: U): string; }): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y: U): string; }): any; (x: { foo(x: T, y: U): string; }): any; } +>foo3 : { (x: { foo(x: T, y: U): string; }): any; (x: typeof a): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } @@ -154,12 +154,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y: U): string; }): any; (x: { foo(x: T, y: U): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T, y: U): string; }): any; } >x : { foo(x: T, y: U): string; } >b : { foo(x: T, y: U): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y: U): string; }): any; (x: { foo(x: T, y: U): string; }): any; } +>foo4 : { (x: { foo(x: T, y: U): string; }): any; (x: typeof b): any; } >x : { foo(x: T, y: U): string; } >b : { foo(x: T, y: U): string; } @@ -232,7 +232,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo(x: T, y: U): string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } @@ -269,7 +269,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y: U): string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } @@ -282,7 +282,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T, y: U): string; } >b : { foo(x: T, y: U): string; } @@ -319,7 +319,7 @@ function foo13(x: I, Five>); >x : I, Five> function foo13(x: typeof a); // ok ->foo13 : { (x: I, Five>): any; (x: { foo(x: T, y: U): string; }): any; } +>foo13 : { (x: I, Five>): any; (x: typeof a): any; } >x : { foo(x: T, y: U): string; } >a : { foo(x: T, y: U): string; } @@ -332,7 +332,7 @@ function foo14(x: I, Five>); >x : I, Five> function foo14(x: typeof b); // ok ->foo14 : { (x: I, Five>): any; (x: { foo(x: T, y: U): string; }): any; } +>foo14 : { (x: I, Five>): any; (x: typeof b): any; } >x : { foo(x: T, y: U): string; } >b : { foo(x: T, y: U): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types index 18c2eb4bd01..c9d1cc391bd 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types @@ -103,12 +103,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T): T; }): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>foo3 : { (x: { foo(x: T): T; }): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -117,12 +117,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T): any; }): any; } >x : { foo(x: T): any; } >b : { foo(x: T): any; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>foo4 : { (x: { foo(x: T): any; }): any; (x: typeof b): any; } >x : { foo(x: T): any; } >b : { foo(x: T): any; } @@ -171,7 +171,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -208,7 +208,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -221,7 +221,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T): any; } >b : { foo(x: T): any; } @@ -258,7 +258,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -271,7 +271,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T): any; } >b : { foo(x: T): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types index 86b25d895e3..e06213ec1e2 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types @@ -103,12 +103,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T): T; }): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>foo3 : { (x: { foo(x: T): T; }): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -117,12 +117,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T): any; }): any; } >x : { foo(x: T): any; } >b : { foo(x: T): any; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>foo4 : { (x: { foo(x: T): any; }): any; (x: typeof b): any; } >x : { foo(x: T): any; } >b : { foo(x: T): any; } @@ -171,7 +171,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -208,7 +208,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -221,7 +221,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T): any; } >b : { foo(x: T): any; } @@ -258,7 +258,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T): T; } >a : { foo(x: T): T; } @@ -271,7 +271,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T): any; } >b : { foo(x: T): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types index 49ee9e75272..e52eb157e62 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types @@ -101,12 +101,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: Z): Z; }): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>foo3 : { (x: { foo(x: Z): Z; }): any; (x: typeof a): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } @@ -115,12 +115,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: A): A; }): any; } >x : { foo(x: A): A; } >b : { foo(x: A): A; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>foo4 : { (x: { foo(x: A): A; }): any; (x: typeof b): any; } >x : { foo(x: A): A; } >b : { foo(x: A): A; } @@ -169,7 +169,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } @@ -206,7 +206,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } @@ -219,7 +219,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: A): A; } >b : { foo(x: A): A; } @@ -256,7 +256,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } @@ -269,7 +269,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: A): A; } >b : { foo(x: A): A; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types index 90895aaea73..00419739456 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types @@ -41,12 +41,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: (x: Z) => Z): any; (x: (x: Z) => Z): any; } +>foo3 : { (x: typeof a): any; (x: (x: Z) => Z): any; } >x : (x: Z) => Z >a : (x: Z) => Z function foo3(x: typeof a); // error ->foo3 : { (x: (x: Z) => Z): any; (x: (x: Z) => Z): any; } +>foo3 : { (x: (x: Z) => Z): any; (x: typeof a): any; } >x : (x: Z) => Z >a : (x: Z) => Z @@ -59,7 +59,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: (x: Z) => Z): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : (x: Z) => Z >a : (x: Z) => Z @@ -80,7 +80,7 @@ function foo14(x: any) { } >x : any function foo14b(x: typeof a); ->foo14b : { (x: (x: Z) => Z): any; (x: I2): any; } +>foo14b : { (x: typeof a): any; (x: I2): any; } >x : (x: Z) => Z >a : (x: Z) => Z diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types index 8c054d65469..d7ae2ac79cf 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types @@ -101,12 +101,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: Z): Z; }): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>foo3 : { (x: { foo(x: Z): Z; }): any; (x: typeof a): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } @@ -115,12 +115,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: A): A; }): any; } >x : { foo(x: A): A; } >b : { foo(x: A): A; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>foo4 : { (x: { foo(x: A): A; }): any; (x: typeof b): any; } >x : { foo(x: A): A; } >b : { foo(x: A): A; } @@ -169,7 +169,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } @@ -206,7 +206,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } @@ -219,7 +219,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: A): A; } >b : { foo(x: A): A; } @@ -256,7 +256,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: Z): Z; } >a : { foo(x: Z): Z; } @@ -269,7 +269,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: A): A; } >b : { foo(x: A): A; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types index c84f5132326..24139e680e6 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types @@ -110,12 +110,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T, y?: T): T; }): any; } >x : { foo(x: T, y?: T): T; } >a : { foo(x: T, y?: T): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: typeof a): any; } >x : { foo(x: T, y?: T): T; } >a : { foo(x: T, y?: T): T; } @@ -124,12 +124,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T, y?: T): T; }): any; } >x : { foo(x: T, y?: T): T; } >b : { foo(x: T, y?: T): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: typeof b): any; } >x : { foo(x: T, y?: T): T; } >b : { foo(x: T, y?: T): T; } @@ -178,7 +178,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T, y?: T): T; } >a : { foo(x: T, y?: T): T; } @@ -215,7 +215,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T, y?: T): T; } >a : { foo(x: T, y?: T): T; } @@ -228,7 +228,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T, y?: T): T; } >b : { foo(x: T, y?: T): T; } @@ -265,7 +265,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T, y?: T): T; } >a : { foo(x: T, y?: T): T; } @@ -278,7 +278,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T, y?: T): T; } >b : { foo(x: T, y?: T): T; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types index ff80fe8a24c..eace84311a0 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types @@ -110,12 +110,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T, y?: U): T; }): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: typeof a): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } @@ -124,12 +124,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T, y?: U): T; }): any; } >x : { foo(x: T, y?: U): T; } >b : { foo(x: T, y?: U): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: typeof b): any; } >x : { foo(x: T, y?: U): T; } >b : { foo(x: T, y?: U): T; } @@ -178,7 +178,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } @@ -215,7 +215,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } @@ -228,7 +228,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T, y?: U): T; } >b : { foo(x: T, y?: U): T; } @@ -265,7 +265,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } @@ -278,7 +278,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T, y?: U): T; } >b : { foo(x: T, y?: U): T; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types index ccc0b7508ea..819eea01a7f 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types @@ -110,12 +110,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo(x: T, y?: U): T; }): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: typeof a): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } @@ -124,12 +124,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo(x: T, y: U): T; }): any; } >x : { foo(x: T, y: U): T; } >b : { foo(x: T, y: U): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: typeof b): any; } >x : { foo(x: T, y: U): T; } >b : { foo(x: T, y: U): T; } @@ -178,7 +178,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } @@ -215,7 +215,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } @@ -228,7 +228,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo(x: T, y: U): T; } >b : { foo(x: T, y: U): T; } @@ -265,7 +265,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo(x: T, y?: U): T; } >a : { foo(x: T, y?: U): T; } @@ -278,7 +278,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo(x: T, y: U): T; } >b : { foo(x: T, y: U): T; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types index a2d256eba87..f4d08caae22 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types @@ -41,11 +41,11 @@ var b = { new(x: T) { return ''; } }; // not a construct signa >'' : "" function foo1b(x: B>); ->foo1b : { (x: B): any; (x: B): any; } +>foo1b : { (x: B>): any; (x: B): any; } >x : B function foo1b(x: B>); // error ->foo1b : { (x: B): any; (x: B): any; } +>foo1b : { (x: B): any; (x: B>): any; } >x : B function foo1b(x: any) { } @@ -77,12 +77,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T) => string): any; (x: new (x: T) => string): any; } +>foo3 : { (x: typeof a): any; (x: new (x: T) => string): any; } >x : new (x: T) => string >a : new (x: T) => string function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T) => string): any; (x: new (x: T) => string): any; } +>foo3 : { (x: new (x: T) => string): any; (x: typeof a): any; } >x : new (x: T) => string >a : new (x: T) => string @@ -91,12 +91,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T): string; }): any; (x: { new(x: T): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: T): string; }): any; } >x : { new(x: T): string; } >b : { new(x: T): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T): string; }): any; (x: { new(x: T): string; }): any; } +>foo4 : { (x: { new(x: T): string; }): any; (x: typeof b): any; } >x : { new(x: T): string; } >b : { new(x: T): string; } @@ -105,7 +105,7 @@ function foo4(x: any) { } >x : any function foo8(x: B>); ->foo8 : { (x: B): any; (x: I): any; } +>foo8 : { (x: B>): any; (x: I): any; } >x : B function foo8(x: I); // ok @@ -117,7 +117,7 @@ function foo8(x: any) { } >x : any function foo9(x: B>); ->foo9 : { (x: B): any; (x: C): any; } +>foo9 : { (x: B>): any; (x: C): any; } >x : B function foo9(x: C); // error, types are structurally equal @@ -129,11 +129,11 @@ function foo9(x: any) { } >x : any function foo10(x: B>); ->foo10 : { (x: B): any; (x: new (x: T) => string): any; } +>foo10 : { (x: B>): any; (x: new (x: T) => string): any; } >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: T) => string): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: T) => string >a : new (x: T) => string @@ -142,11 +142,11 @@ function foo10(x: any) { } >x : any function foo11(x: B>); ->foo11 : { (x: B): any; (x: { new(x: T): string; }): any; } +>foo11 : { (x: B>): any; (x: { new(x: T): string; }): any; } >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: T): string; } >b : { new(x: T): string; } @@ -183,7 +183,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: T) => string): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: T) => string >a : new (x: T) => string @@ -196,7 +196,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: T): string; } >b : { new(x: T): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types index 10eafdb11f8..d474a8dcb3a 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types @@ -56,11 +56,11 @@ var b = { new(x: T, y: U) { return ''; } }; // no >'' : "" function foo1b(x: B, Array>); ->foo1b : { (x: B): any; (x: B): any; } +>foo1b : { (x: B, Array>): any; (x: B): any; } >x : B function foo1b(x: B, Array>); // error ->foo1b : { (x: B): any; (x: B): any; } +>foo1b : { (x: B): any; (x: B, Array>): any; } >x : B function foo1b(x: any) { } @@ -92,12 +92,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T, y: U) => string): any; (x: new (x: T, y: U) => string): any; } +>foo3 : { (x: typeof a): any; (x: new (x: T, y: U) => string): any; } >x : new (x: T, y: U) => string >a : new (x: T, y: U) => string function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T, y: U) => string): any; (x: new (x: T, y: U) => string): any; } +>foo3 : { (x: new (x: T, y: U) => string): any; (x: typeof a): any; } >x : new (x: T, y: U) => string >a : new (x: T, y: U) => string @@ -106,12 +106,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T, y: U): string; }): any; (x: { new(x: T, y: U): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: T, y: U): string; }): any; } >x : { new(x: T, y: U): string; } >b : { new(x: T, y: U): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T, y: U): string; }): any; (x: { new(x: T, y: U): string; }): any; } +>foo4 : { (x: { new(x: T, y: U): string; }): any; (x: typeof b): any; } >x : { new(x: T, y: U): string; } >b : { new(x: T, y: U): string; } @@ -144,7 +144,7 @@ function foo6c(x: any) { } >x : any function foo8(x: B, Array>); ->foo8 : { (x: B): any; (x: I): any; } +>foo8 : { (x: B, Array>): any; (x: I): any; } >x : B function foo8(x: I); // ok @@ -156,7 +156,7 @@ function foo8(x: any) { } >x : any function foo9(x: B, Array>); ->foo9 : { (x: B): any; (x: C): any; } +>foo9 : { (x: B, Array>): any; (x: C): any; } >x : B function foo9(x: C); // error, types are structurally equal @@ -168,11 +168,11 @@ function foo9(x: any) { } >x : any function foo10(x: B, Array>); ->foo10 : { (x: B): any; (x: new (x: T, y: U) => string): any; } +>foo10 : { (x: B, Array>): any; (x: new (x: T, y: U) => string): any; } >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: T, y: U) => string): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: T, y: U) => string >a : new (x: T, y: U) => string @@ -181,11 +181,11 @@ function foo10(x: any) { } >x : any function foo11(x: B, Array>); ->foo11 : { (x: B): any; (x: { new(x: T, y: U): string; }): any; } +>foo11 : { (x: B, Array>): any; (x: { new(x: T, y: U): string; }): any; } >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T, y: U): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: T, y: U): string; } >b : { new(x: T, y: U): string; } @@ -222,7 +222,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: T, y: U) => string): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: T, y: U) => string >a : new (x: T, y: U) => string @@ -235,7 +235,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T, y: U): string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: T, y: U): string; } >b : { new(x: T, y: U): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.types index b6abc2205dc..e489d67f156 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.types @@ -112,12 +112,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T, y: U) => string): any; (x: new (x: T, y: U) => string): any; } +>foo3 : { (x: typeof a): any; (x: new (x: T, y: U) => string): any; } >x : new (x: T, y: U) => string >a : new (x: T, y: U) => string function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T, y: U) => string): any; (x: new (x: T, y: U) => string): any; } +>foo3 : { (x: new (x: T, y: U) => string): any; (x: typeof a): any; } >x : new (x: T, y: U) => string >a : new (x: T, y: U) => string @@ -126,12 +126,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T, y: U): string; }): any; (x: { new(x: T, y: U): string; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: T, y: U): string; }): any; } >x : { new(x: T, y: U): string; } >b : { new(x: T, y: U): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T, y: U): string; }): any; (x: { new(x: T, y: U): string; }): any; } +>foo4 : { (x: { new(x: T, y: U): string; }): any; (x: typeof b): any; } >x : { new(x: T, y: U): string; } >b : { new(x: T, y: U): string; } @@ -192,7 +192,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: T, y: U) => string): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: T, y: U) => string >a : new (x: T, y: U) => string @@ -205,7 +205,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T, y: U): string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: T, y: U): string; } >b : { new(x: T, y: U): string; } @@ -242,7 +242,7 @@ function foo13(x: I, Five>); >x : I, Five> function foo13(x: typeof a); // ok ->foo13 : { (x: I, Five>): any; (x: new (x: T, y: U) => string): any; } +>foo13 : { (x: I, Five>): any; (x: typeof a): any; } >x : new (x: T, y: U) => string >a : new (x: T, y: U) => string @@ -255,7 +255,7 @@ function foo14(x: I, Five>); >x : I, Five> function foo14(x: typeof b); // ok ->foo14 : { (x: I, Five>): any; (x: { new(x: T, y: U): string; }): any; } +>foo14 : { (x: I, Five>): any; (x: typeof b): any; } >x : { new(x: T, y: U): string; } >b : { new(x: T, y: U): string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types index d5842dcdb7a..0ca4685b55a 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types @@ -77,12 +77,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>foo3 : { (x: typeof a): any; (x: new (x: T) => T): any; } >x : new (x: T) => T >a : new (x: T) => T function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>foo3 : { (x: new (x: T) => T): any; (x: typeof a): any; } >x : new (x: T) => T >a : new (x: T) => T @@ -91,12 +91,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T): T; }): any; (x: { new(x: T): T; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: T): T; }): any; } >x : { new(x: T): T; } >b : { new(x: T): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T): T; }): any; (x: { new(x: T): T; }): any; } +>foo4 : { (x: { new(x: T): T; }): any; (x: typeof b): any; } >x : { new(x: T): T; } >b : { new(x: T): T; } @@ -105,12 +105,12 @@ function foo4(x: any) { } >x : any function foo5(x: typeof a): number; ->foo5 : { (x: new (x: T) => T): number; (x: { new(x: T): T; }): string; } +>foo5 : { (x: typeof a): number; (x: { new(x: T): T; }): string; } >x : new (x: T) => T >a : new (x: T) => T function foo5(x: typeof b): string; // ok ->foo5 : { (x: new (x: T) => T): number; (x: { new(x: T): T; }): string; } +>foo5 : { (x: new (x: T) => T): number; (x: typeof b): string; } >x : { new(x: T): T; } >b : { new(x: T): T; } @@ -147,7 +147,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: T) => T): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: T) => T >a : new (x: T) => T @@ -160,7 +160,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T): T; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: T): T; } >b : { new(x: T): T; } @@ -197,7 +197,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: T) => T): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: T) => T >a : new (x: T) => T @@ -210,7 +210,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T): T; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: T): T; } >b : { new(x: T): T; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types index d28bd487fd8..81cfc0e8f44 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types @@ -77,12 +77,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>foo3 : { (x: typeof a): any; (x: new (x: T) => T): any; } >x : new (x: T) => T >a : new (x: T) => T function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>foo3 : { (x: new (x: T) => T): any; (x: typeof a): any; } >x : new (x: T) => T >a : new (x: T) => T @@ -91,12 +91,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T): any; }): any; (x: { new(x: T): any; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: T): any; }): any; } >x : { new(x: T): any; } >b : { new(x: T): any; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T): any; }): any; (x: { new(x: T): any; }): any; } +>foo4 : { (x: { new(x: T): any; }): any; (x: typeof b): any; } >x : { new(x: T): any; } >b : { new(x: T): any; } @@ -133,7 +133,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: T) => T): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: T) => T >a : new (x: T) => T @@ -146,7 +146,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T): any; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: T): any; } >b : { new(x: T): any; } @@ -183,7 +183,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: T) => T): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: T) => T >a : new (x: T) => T @@ -196,7 +196,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T): any; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: T): any; } >b : { new(x: T): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types index f0375bd9b15..b4be0ae1b4f 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types @@ -75,12 +75,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: Z) => C): any; (x: new (x: Z) => C): any; } +>foo3 : { (x: typeof a): any; (x: new (x: Z) => C): any; } >x : new (x: Z) => C >a : new (x: Z) => C function foo3(x: typeof a); // error ->foo3 : { (x: new (x: Z) => C): any; (x: new (x: Z) => C): any; } +>foo3 : { (x: new (x: Z) => C): any; (x: typeof a): any; } >x : new (x: Z) => C >a : new (x: Z) => C @@ -89,12 +89,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: A): A; }): any; (x: { new(x: A): A; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: A): A; }): any; } >x : { new(x: A): A; } >b : { new(x: A): A; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: A): A; }): any; (x: { new(x: A): A; }): any; } +>foo4 : { (x: { new(x: A): A; }): any; (x: typeof b): any; } >x : { new(x: A): A; } >b : { new(x: A): A; } @@ -131,7 +131,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: Z) => C): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: Z) => C >a : new (x: Z) => C @@ -144,7 +144,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: A): A; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: A): A; } >b : { new(x: A): A; } @@ -181,7 +181,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: Z) => C): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: Z) => C >a : new (x: Z) => C @@ -194,7 +194,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: A): A; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: A): A; } >b : { new(x: A): A; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types index dcabbd9d46e..bfbeadcd02e 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types @@ -77,12 +77,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: Z) => B): any; (x: new (x: Z) => B): any; } +>foo3 : { (x: typeof a): any; (x: new (x: Z) => B): any; } >x : new (x: Z) => B >a : new (x: Z) => B function foo3(x: typeof a); // error ->foo3 : { (x: new (x: Z) => B): any; (x: new (x: Z) => B): any; } +>foo3 : { (x: new (x: Z) => B): any; (x: typeof a): any; } >x : new (x: Z) => B >a : new (x: Z) => B @@ -91,12 +91,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: A): C; }): any; (x: { new(x: A): C; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: A): C; }): any; } >x : { new(x: A): C; } >b : { new(x: A): C; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: A): C; }): any; (x: { new(x: A): C; }): any; } +>foo4 : { (x: { new(x: A): C; }): any; (x: typeof b): any; } >x : { new(x: A): C; } >b : { new(x: A): C; } @@ -133,7 +133,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // BUG 832086 ->foo10 : { (x: B): any; (x: new (x: Z) => B): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: Z) => B >a : new (x: Z) => B @@ -146,7 +146,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: A): C; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: A): C; } >b : { new(x: A): C; } @@ -183,7 +183,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // BUG 832086 ->foo13 : { (x: I): any; (x: new (x: Z) => B): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: Z) => B >a : new (x: Z) => B @@ -196,7 +196,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: A): C; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: A): C; } >b : { new(x: A): C; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types index aeb263aee2a..98b9295dbac 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types @@ -86,12 +86,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T, y?: T) => B): any; (x: new (x: T, y?: T) => B): any; } +>foo3 : { (x: typeof a): any; (x: new (x: T, y?: T) => B): any; } >x : new (x: T, y?: T) => B >a : new (x: T, y?: T) => B function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T, y?: T) => B): any; (x: new (x: T, y?: T) => B): any; } +>foo3 : { (x: new (x: T, y?: T) => B): any; (x: typeof a): any; } >x : new (x: T, y?: T) => B >a : new (x: T, y?: T) => B @@ -100,12 +100,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: { new(x: T, y?: T): C; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: T, y?: T): C; }): any; } >x : { new(x: T, y?: T): C; } >b : { new(x: T, y?: T): C; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: { new(x: T, y?: T): C; }): any; } +>foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: typeof b): any; } >x : { new(x: T, y?: T): C; } >b : { new(x: T, y?: T): C; } @@ -142,7 +142,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // BUG 832086 ->foo10 : { (x: B): any; (x: new (x: T, y?: T) => B): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: T, y?: T) => B >a : new (x: T, y?: T) => B @@ -155,7 +155,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T, y?: T): C; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: T, y?: T): C; } >b : { new(x: T, y?: T): C; } @@ -192,7 +192,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // BUG 832086 ->foo13 : { (x: I): any; (x: new (x: T, y?: T) => B): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: T, y?: T) => B >a : new (x: T, y?: T) => B @@ -205,7 +205,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T, y?: T): C; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: T, y?: T): C; } >b : { new(x: T, y?: T): C; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types index 2814764b501..c5063e07505 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types @@ -86,12 +86,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>foo3 : { (x: typeof a): any; (x: new (x: T, y?: U) => B): any; } >x : new (x: T, y?: U) => B >a : new (x: T, y?: U) => B function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>foo3 : { (x: new (x: T, y?: U) => B): any; (x: typeof a): any; } >x : new (x: T, y?: U) => B >a : new (x: T, y?: U) => B @@ -100,12 +100,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: { new(x: T, y?: U): C; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: T, y?: U): C; }): any; } >x : { new(x: T, y?: U): C; } >b : { new(x: T, y?: U): C; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: { new(x: T, y?: U): C; }): any; } +>foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: typeof b): any; } >x : { new(x: T, y?: U): C; } >b : { new(x: T, y?: U): C; } @@ -142,7 +142,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // BUG 832086 ->foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: T, y?: U) => B >a : new (x: T, y?: U) => B @@ -155,7 +155,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T, y?: U): C; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: T, y?: U): C; } >b : { new(x: T, y?: U): C; } @@ -192,7 +192,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // BUG 832086 ->foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: T, y?: U) => B >a : new (x: T, y?: U) => B @@ -205,7 +205,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T, y?: U): C; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: T, y?: U): C; } >b : { new(x: T, y?: U): C; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types index f3a69a79e29..3a2b834caa9 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types @@ -86,12 +86,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>foo3 : { (x: typeof a): any; (x: new (x: T, y?: U) => B): any; } >x : new (x: T, y?: U) => B >a : new (x: T, y?: U) => B function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>foo3 : { (x: new (x: T, y?: U) => B): any; (x: typeof a): any; } >x : new (x: T, y?: U) => B >a : new (x: T, y?: U) => B @@ -100,12 +100,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T, y: U): C; }): any; (x: { new(x: T, y: U): C; }): any; } +>foo4 : { (x: typeof b): any; (x: { new(x: T, y: U): C; }): any; } >x : { new(x: T, y: U): C; } >b : { new(x: T, y: U): C; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T, y: U): C; }): any; (x: { new(x: T, y: U): C; }): any; } +>foo4 : { (x: { new(x: T, y: U): C; }): any; (x: typeof b): any; } >x : { new(x: T, y: U): C; } >b : { new(x: T, y: U): C; } @@ -142,7 +142,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // BUG 832086 ->foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : new (x: T, y?: U) => B >a : new (x: T, y?: U) => B @@ -155,7 +155,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T, y: U): C; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { new(x: T, y: U): C; } >b : { new(x: T, y: U): C; } @@ -192,7 +192,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // BUG 832086 ->foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : new (x: T, y?: U) => B >a : new (x: T, y?: U) => B @@ -205,7 +205,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T, y: U): C; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { new(x: T, y: U): C; } >b : { new(x: T, y: U): C; } diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types index 4a976546b9b..0e7e910f20b 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types @@ -99,12 +99,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>foo3 : { (x: typeof a): any; (x: { [x: number]: string; }): any; } >x : { [x: number]: string; } >a : { [x: number]: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>foo3 : { (x: { [x: number]: string; }): any; (x: typeof a): any; } >x : { [x: number]: string; } >a : { [x: number]: string; } @@ -113,12 +113,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>foo4 : { (x: typeof b): any; (x: { [x: number]: string; }): any; } >x : { [x: number]: string; } >b : { [x: number]: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>foo4 : { (x: { [x: number]: string; }): any; (x: typeof b): any; } >x : { [x: number]: string; } >b : { [x: number]: string; } @@ -191,7 +191,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { [x: number]: string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { [x: number]: string; } >a : { [x: number]: string; } @@ -228,7 +228,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { [x: number]: string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { [x: number]: string; } >a : { [x: number]: string; } @@ -241,7 +241,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { [x: number]: string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { [x: number]: string; } >b : { [x: number]: string; } @@ -290,7 +290,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { [x: number]: string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { [x: number]: string; } >a : { [x: number]: string; } @@ -303,7 +303,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { [x: number]: string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { [x: number]: string; } >b : { [x: number]: string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types index 5df9df90602..f86cdcda6bc 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types @@ -109,12 +109,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: number]: Base; }): any; (x: { [x: number]: Base; }): any; } +>foo3 : { (x: typeof a): any; (x: { [x: number]: Base; }): any; } >x : { [x: number]: Base; } >a : { [x: number]: Base; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: number]: Base; }): any; (x: { [x: number]: Base; }): any; } +>foo3 : { (x: { [x: number]: Base; }): any; (x: typeof a): any; } >x : { [x: number]: Base; } >a : { [x: number]: Base; } @@ -123,12 +123,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: number]: Derived; }): any; (x: { [x: number]: Derived; }): any; } +>foo4 : { (x: typeof b): any; (x: { [x: number]: Derived; }): any; } >x : { [x: number]: Derived; } >b : { [x: number]: Derived; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: number]: Derived; }): any; (x: { [x: number]: Derived; }): any; } +>foo4 : { (x: { [x: number]: Derived; }): any; (x: typeof b): any; } >x : { [x: number]: Derived; } >b : { [x: number]: Derived; } @@ -201,7 +201,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { [x: number]: Base; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { [x: number]: Base; } >a : { [x: number]: Base; } @@ -238,7 +238,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { [x: number]: Base; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { [x: number]: Base; } >a : { [x: number]: Base; } @@ -251,7 +251,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { [x: number]: Derived; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { [x: number]: Derived; } >b : { [x: number]: Derived; } @@ -300,7 +300,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { [x: number]: Base; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { [x: number]: Base; } >a : { [x: number]: Base; } @@ -313,7 +313,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { [x: number]: Derived; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { [x: number]: Derived; } >b : { [x: number]: Derived; } diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types index 6b971fa1a21..64617eeb5a2 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types @@ -99,12 +99,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>foo3 : { (x: typeof a): any; (x: { [x: string]: string; }): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>foo3 : { (x: { [x: string]: string; }): any; (x: typeof a): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } @@ -113,12 +113,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>foo4 : { (x: typeof b): any; (x: { [x: number]: string; }): any; } >x : { [x: number]: string; } >b : { [x: number]: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>foo4 : { (x: { [x: number]: string; }): any; (x: typeof b): any; } >x : { [x: number]: string; } >b : { [x: number]: string; } @@ -191,7 +191,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { [x: string]: string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } @@ -228,7 +228,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { [x: string]: string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } @@ -241,7 +241,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { [x: number]: string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { [x: number]: string; } >b : { [x: number]: string; } @@ -290,7 +290,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { [x: string]: string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } @@ -303,7 +303,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { [x: number]: string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { [x: number]: string; } >b : { [x: number]: string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithOptionality.types b/tests/baselines/reference/objectTypesIdentityWithOptionality.types index f3962cb956c..4346ea2722c 100644 --- a/tests/baselines/reference/objectTypesIdentityWithOptionality.types +++ b/tests/baselines/reference/objectTypesIdentityWithOptionality.types @@ -50,12 +50,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo?: string; }): any; (x: { foo?: string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo?: string; }): any; } >x : { foo?: string; } >a : { foo?: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo?: string; }): any; (x: { foo?: string; }): any; } +>foo3 : { (x: { foo?: string; }): any; (x: typeof a): any; } >x : { foo?: string; } >a : { foo?: string; } @@ -80,7 +80,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo?: string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo?: string; } >a : { foo?: string; } @@ -105,7 +105,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo?: string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo?: string; } >a : { foo?: string; } @@ -130,7 +130,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo?: string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo?: string; } >a : { foo?: string; } @@ -143,7 +143,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo: string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithPrivates.types b/tests/baselines/reference/objectTypesIdentityWithPrivates.types index a0f0d053a7f..20a69056cf8 100644 --- a/tests/baselines/reference/objectTypesIdentityWithPrivates.types +++ b/tests/baselines/reference/objectTypesIdentityWithPrivates.types @@ -96,12 +96,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo: string; }): any; } >x : { foo: string; } >a : { foo: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo3 : { (x: { foo: string; }): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -110,12 +110,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo: string; }): any; } >x : { foo: string; } >b : { foo: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo4 : { (x: { foo: string; }): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } @@ -188,7 +188,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // no error ->foo7 : { (x: A): any; (x: { foo: string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -225,7 +225,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // no error ->foo10 : { (x: B): any; (x: { foo: string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -238,7 +238,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // no error ->foo11 : { (x: B): any; (x: { foo: string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } @@ -287,7 +287,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo: string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -300,7 +300,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo: string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithPublics.types b/tests/baselines/reference/objectTypesIdentityWithPublics.types index d5b553d2801..a49fb54e74f 100644 --- a/tests/baselines/reference/objectTypesIdentityWithPublics.types +++ b/tests/baselines/reference/objectTypesIdentityWithPublics.types @@ -86,12 +86,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo3 : { (x: typeof a): any; (x: { foo: string; }): any; } >x : { foo: string; } >a : { foo: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo3 : { (x: { foo: string; }): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -100,12 +100,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo4 : { (x: typeof b): any; (x: { foo: string; }): any; } >x : { foo: string; } >b : { foo: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>foo4 : { (x: { foo: string; }): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } @@ -154,7 +154,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo: string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -191,7 +191,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { foo: string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -204,7 +204,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { foo: string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } @@ -229,7 +229,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo: string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { foo: string; } >a : { foo: string; } @@ -242,7 +242,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo: string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { foo: string; } >b : { foo: string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types index 6be715cee5e..97065dd763e 100644 --- a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types @@ -99,12 +99,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>foo3 : { (x: typeof a): any; (x: { [x: string]: string; }): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>foo3 : { (x: { [x: string]: string; }): any; (x: typeof a): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } @@ -113,12 +113,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>foo4 : { (x: typeof b): any; (x: { [x: string]: string; }): any; } >x : { [x: string]: string; } >b : { [x: string]: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>foo4 : { (x: { [x: string]: string; }): any; (x: typeof b): any; } >x : { [x: string]: string; } >b : { [x: string]: string; } @@ -191,7 +191,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { [x: string]: string; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } @@ -228,7 +228,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { [x: string]: string; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } @@ -241,7 +241,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { [x: string]: string; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { [x: string]: string; } >b : { [x: string]: string; } @@ -290,7 +290,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { [x: string]: string; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { [x: string]: string; } >a : { [x: string]: string; } @@ -303,7 +303,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { [x: string]: string; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { [x: string]: string; } >b : { [x: string]: string; } diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types index f6390e89d98..d5378a68b3c 100644 --- a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types @@ -109,12 +109,12 @@ function foo2(x: any) { } >x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: string]: Base; }): any; (x: { [x: string]: Base; }): any; } +>foo3 : { (x: typeof a): any; (x: { [x: string]: Base; }): any; } >x : { [x: string]: Base; } >a : { [x: string]: Base; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: string]: Base; }): any; (x: { [x: string]: Base; }): any; } +>foo3 : { (x: { [x: string]: Base; }): any; (x: typeof a): any; } >x : { [x: string]: Base; } >a : { [x: string]: Base; } @@ -123,12 +123,12 @@ function foo3(x: any) { } >x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: string]: Derived; }): any; (x: { [x: string]: Derived; }): any; } +>foo4 : { (x: typeof b): any; (x: { [x: string]: Derived; }): any; } >x : { [x: string]: Derived; } >b : { [x: string]: Derived; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: string]: Derived; }): any; (x: { [x: string]: Derived; }): any; } +>foo4 : { (x: { [x: string]: Derived; }): any; (x: typeof b): any; } >x : { [x: string]: Derived; } >b : { [x: string]: Derived; } @@ -201,7 +201,7 @@ function foo7(x: A); >x : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { [x: string]: Base; }): any; } +>foo7 : { (x: A): any; (x: typeof a): any; } >x : { [x: string]: Base; } >a : { [x: string]: Base; } @@ -238,7 +238,7 @@ function foo10(x: B); >x : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { [x: string]: Base; }): any; } +>foo10 : { (x: B): any; (x: typeof a): any; } >x : { [x: string]: Base; } >a : { [x: string]: Base; } @@ -251,7 +251,7 @@ function foo11(x: B); >x : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { [x: string]: Derived; }): any; } +>foo11 : { (x: B): any; (x: typeof b): any; } >x : { [x: string]: Derived; } >b : { [x: string]: Derived; } @@ -300,7 +300,7 @@ function foo13(x: I); >x : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { [x: string]: Base; }): any; } +>foo13 : { (x: I): any; (x: typeof a): any; } >x : { [x: string]: Base; } >a : { [x: string]: Base; } @@ -313,7 +313,7 @@ function foo14(x: I); >x : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { [x: string]: Derived; }): any; } +>foo14 : { (x: I): any; (x: typeof b): any; } >x : { [x: string]: Derived; } >b : { [x: string]: Derived; } diff --git a/tests/baselines/reference/observableInferenceCanBeMade.types b/tests/baselines/reference/observableInferenceCanBeMade.types index bb855f80524..4efbf360b99 100644 --- a/tests/baselines/reference/observableInferenceCanBeMade.types +++ b/tests/baselines/reference/observableInferenceCanBeMade.types @@ -38,7 +38,7 @@ declare class Observable implements Subscribable { } function asObservable(input: string | ObservableInput): Observable { ->asObservable : (input: string | Subscribable | Subscribable) => Observable +>asObservable : (input: string | ObservableInput) => Observable >input : string | Subscribable | Subscribable return typeof input === 'string' ? of(input) : from(input) diff --git a/tests/baselines/reference/omitTypeHelperModifiers01.types b/tests/baselines/reference/omitTypeHelperModifiers01.types index da5f61b6986..1c374901a50 100644 --- a/tests/baselines/reference/omitTypeHelperModifiers01.types +++ b/tests/baselines/reference/omitTypeHelperModifiers01.types @@ -20,7 +20,7 @@ type B = Omit; >B : Pick function f(x: B) { ->f : (x: Pick) => void +>f : (x: B) => void >x : Pick const b = x.b; diff --git a/tests/baselines/reference/omitTypeTestErrors01.types b/tests/baselines/reference/omitTypeTestErrors01.types index e7282016868..e6cc4910220 100644 --- a/tests/baselines/reference/omitTypeTestErrors01.types +++ b/tests/baselines/reference/omitTypeTestErrors01.types @@ -17,7 +17,7 @@ export type Baz = Omit; >Baz : Pick export function getBarC(bar: Bar) { ->getBarC : (bar: Pick) => any +>getBarC : (bar: Bar) => any >bar : Pick return bar.c; @@ -27,7 +27,7 @@ export function getBarC(bar: Bar) { } export function getBazB(baz: Baz) { ->getBazB : (baz: Pick) => any +>getBazB : (baz: Baz) => any >baz : Pick return baz.b; diff --git a/tests/baselines/reference/omitTypeTests01.types b/tests/baselines/reference/omitTypeTests01.types index c07894ee2dc..e841753aa6f 100644 --- a/tests/baselines/reference/omitTypeTests01.types +++ b/tests/baselines/reference/omitTypeTests01.types @@ -17,7 +17,7 @@ export type Baz = Omit; >Baz : Pick export function getBarA(bar: Bar) { ->getBarA : (bar: Pick) => string +>getBarA : (bar: Bar) => string >bar : Pick return bar.a; @@ -27,7 +27,7 @@ export function getBarA(bar: Bar) { } export function getBazA(baz: Baz) { ->getBazA : (baz: Pick) => string +>getBazA : (baz: Baz) => string >baz : Pick return baz.a; diff --git a/tests/baselines/reference/operationsAvailableOnPromisedType.types b/tests/baselines/reference/operationsAvailableOnPromisedType.types index b22bd7fb1cc..70688a00f88 100644 --- a/tests/baselines/reference/operationsAvailableOnPromisedType.types +++ b/tests/baselines/reference/operationsAvailableOnPromisedType.types @@ -1,6 +1,6 @@ === tests/cases/compiler/operationsAvailableOnPromisedType.ts === async function fn( ->fn : (a: number, b: Promise, c: Promise, d: Promise<{ prop: string; }>, e: Promise<() => void>, f: Promise<() => void> | (() => void), g: Promise any>) => Promise +>fn : (a: number, b: Promise, c: Promise, d: Promise<{ prop: string;}>, e: Promise<() => void>, f: Promise<() => void> | (() => void), g: Promise<{ new (): any;}>) => Promise a: number, >a : number diff --git a/tests/baselines/reference/optionalBindingParameters2.types b/tests/baselines/reference/optionalBindingParameters2.types index 79fb6ef7a58..627e74e5aa9 100644 --- a/tests/baselines/reference/optionalBindingParameters2.types +++ b/tests/baselines/reference/optionalBindingParameters2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/destructuring/optionalBindingParameters2.ts === function foo({ x, y, z }?: { x: string; y: number; z: boolean }) { ->foo : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => void +>foo : ({ x, y, z }?: { x: string; y: number; z: boolean;}) => void >x : string >y : number >z : boolean diff --git a/tests/baselines/reference/optionalBindingParametersInOverloads2.types b/tests/baselines/reference/optionalBindingParametersInOverloads2.types index acf4afe352f..91d88e8aaf8 100644 --- a/tests/baselines/reference/optionalBindingParametersInOverloads2.types +++ b/tests/baselines/reference/optionalBindingParametersInOverloads2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/destructuring/optionalBindingParametersInOverloads2.ts === function foo({ x, y, z }?: { x: string; y: number; z: boolean }); ->foo : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => any +>foo : ({ x, y, z }?: { x: string; y: number; z: boolean;}) => any >x : string >y : number >z : boolean diff --git a/tests/baselines/reference/optionalChainingInference.types b/tests/baselines/reference/optionalChainingInference.types index c2daa073061..155c51a9eaa 100644 --- a/tests/baselines/reference/optionalChainingInference.types +++ b/tests/baselines/reference/optionalChainingInference.types @@ -1,8 +1,8 @@ === tests/cases/conformance/expressions/optionalChaining/optionalChainingInference.ts === // https://github.com/microsoft/TypeScript/issues/34579 declare function unbox(box: { value: T | undefined }): T; ->unbox : (box: { value: T; }) => T ->box : { value: T; } +>unbox : (box: { value: T | undefined;}) => T +>box : { value: T | undefined; } >value : T declare const su: string | undefined; @@ -49,7 +49,7 @@ const v2: number = unbox(b2); >b2 : { value: number; } const b3: { value: number | undefined } = { value: su?.length }; ->b3 : { value: number; } +>b3 : { value: number | undefined; } >value : number >{ value: su?.length } : { value: number; } >value : number diff --git a/tests/baselines/reference/optionalParameterInDestructuringWithInitializer.types b/tests/baselines/reference/optionalParameterInDestructuringWithInitializer.types index 7ffbc43b86a..29e54e2d9bf 100644 --- a/tests/baselines/reference/optionalParameterInDestructuringWithInitializer.types +++ b/tests/baselines/reference/optionalParameterInDestructuringWithInitializer.types @@ -7,7 +7,7 @@ declare function f(a:number,b:number): void; >b : number function func1( {a, b}: {a: number, b?: number} = {a: 1, b: 2} ) { ->func1 : ({ a, b }?: { a: number; b?: number | undefined; }) => void +>func1 : ({ a, b }?: { a: number; b?: number;}) => void >a : number >b : number | undefined >a : number @@ -28,7 +28,7 @@ function func1( {a, b}: {a: number, b?: number} = {a: 1, b: 2} ) { } function func2( {a, b = 3}: {a: number, b?:number} = {a: 1,b: 2} ) { ->func2 : ({ a, b }?: { a: number; b?: number | undefined; }) => void +>func2 : ({ a, b }?: { a: number; b?: number;}) => void >a : number >b : number >3 : 3 @@ -50,7 +50,7 @@ function func2( {a, b = 3}: {a: number, b?:number} = {a: 1,b: 2} ) { } function func3( {a, b}: {a: number, b?: number} = {a: 1} ) { ->func3 : ({ a, b }?: { a: number; b?: number | undefined; }) => void +>func3 : ({ a, b }?: { a: number; b?: number;}) => void >a : number >b : number | undefined >a : number @@ -69,7 +69,7 @@ function func3( {a, b}: {a: number, b?: number} = {a: 1} ) { } function func4( {a: {b, c}, d}: {a: {b: number,c?: number},d: number} = {a: {b: 1,c: 2},d: 3} ) { ->func4 : ({ a: { b, c }, d }?: { a: { b: number; c?: number | undefined; }; d: number; }) => void +>func4 : ({ a: { b, c }, d }?: { a: { b: number; c?: number; }; d: number;}) => void >a : any >b : number >c : number | undefined @@ -98,7 +98,7 @@ function func4( {a: {b, c}, d}: {a: {b: number,c?: number},d: number} = {a: {b: } function func5({a: {b, c = 4}, d}: {a: {b: number,c?: number},d: number} = {a: {b: 1,c: 2},d: 3} ) { ->func5 : ({ a: { b, c }, d }?: { a: { b: number; c?: number | undefined; }; d: number; }) => void +>func5 : ({ a: { b, c }, d }?: { a: { b: number; c?: number; }; d: number;}) => void >a : any >b : number >c : number @@ -128,7 +128,7 @@ function func5({a: {b, c = 4}, d}: {a: {b: number,c?: number},d: number} = {a: { } function func6( {a: {b, c} = {b: 4, c: 5}, d}: {a: {b: number, c?: number}, d: number} = {a: {b: 1,c: 2}, d: 3} ) { ->func6 : ({ a: { b, c }, d }?: { a: { b: number; c?: number | undefined; }; d: number; }) => void +>func6 : ({ a: { b, c }, d }?: { a: { b: number; c?: number; }; d: number;}) => void >a : any >b : number >c : number | undefined @@ -162,7 +162,7 @@ function func6( {a: {b, c} = {b: 4, c: 5}, d}: {a: {b: number, c?: number}, d: n } function func7( {a: {b, c = 6} = {b: 4, c: 5}, d}: {a: {b: number, c?: number}, d: number} = {a: {b: 1, c: 2}, d: 3} ) { ->func7 : ({ a: { b, c }, d }?: { a: { b: number; c?: number | undefined; }; d: number; }) => void +>func7 : ({ a: { b, c }, d }?: { a: { b: number; c?: number; }; d: number;}) => void >a : any >b : number >c : number diff --git a/tests/baselines/reference/optionalPropertiesTest.types b/tests/baselines/reference/optionalPropertiesTest.types index 6f764563d48..31c2ae9f15d 100644 --- a/tests/baselines/reference/optionalPropertiesTest.types +++ b/tests/baselines/reference/optionalPropertiesTest.types @@ -1,6 +1,6 @@ === tests/cases/compiler/optionalPropertiesTest.ts === var x: {p1:number; p2?:string; p3?:{():number;};}; ->x : { p1: number; p2?: string; p3?: () => number; } +>x : { p1: number; p2?: string; p3?: { (): number;}; } >p1 : number >p2 : string >p3 : () => number diff --git a/tests/baselines/reference/overloadOnConstAsTypeAnnotation.types b/tests/baselines/reference/overloadOnConstAsTypeAnnotation.types index 5afe742dc68..2c4068398b4 100644 --- a/tests/baselines/reference/overloadOnConstAsTypeAnnotation.types +++ b/tests/baselines/reference/overloadOnConstAsTypeAnnotation.types @@ -1,8 +1,8 @@ === tests/cases/compiler/overloadOnConstAsTypeAnnotation.ts === var f: (x: 'hi') => number = (x: 'hi') => { return 1; }; ->f : (x: "hi") => number +>f : (x: 'hi') => number >x : "hi" ->(x: 'hi') => { return 1; } : (x: "hi") => number +>(x: 'hi') => { return 1; } : (x: 'hi') => number >x : "hi" >1 : 1 diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks1.types b/tests/baselines/reference/overloadOnConstConstraintChecks1.types index 207bfb0b5a4..2a72aa43535 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks1.types +++ b/tests/baselines/reference/overloadOnConstConstraintChecks1.types @@ -24,15 +24,15 @@ interface MyDoc { // Document >tagName : string createElement(tagName: 'canvas'): Derived1; ->createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; } +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; } >tagName : "canvas" createElement(tagName: 'div'): Derived2; ->createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; } +>createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: 'div'): Derived2; (tagName: "span"): Derived3; } >tagName : "div" createElement(tagName: 'span'): Derived3; ->createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; } +>createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: 'span'): Derived3; } >tagName : "span" // + 100 more @@ -46,15 +46,15 @@ class D implements MyDoc { >tagName : string createElement(tagName: 'canvas'): Derived1; ->createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; } +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; } >tagName : "canvas" createElement(tagName: 'div'): Derived2; ->createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; } +>createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: 'div'): Derived2; (tagName: "span"): Derived3; } >tagName : "div" createElement(tagName: 'span'): Derived3; ->createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; } +>createElement : { (tagName: string): Base; (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: 'span'): Derived3; } >tagName : "span" createElement(tagName:any): Base { diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks2.types b/tests/baselines/reference/overloadOnConstConstraintChecks2.types index 74ffadc773b..56fd73b2e31 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks2.types +++ b/tests/baselines/reference/overloadOnConstConstraintChecks2.types @@ -14,11 +14,11 @@ class C extends A { >foo : () => void } function foo(name: 'hi'): B; ->foo : { (name: "hi"): B; (name: "bye"): C; (name: string): A; } +>foo : { (name: 'hi'): B; (name: "bye"): C; (name: string): A; } >name : "hi" function foo(name: 'bye'): C; ->foo : { (name: "hi"): B; (name: "bye"): C; (name: string): A; } +>foo : { (name: "hi"): B; (name: 'bye'): C; (name: string): A; } >name : "bye" function foo(name: string): A; diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks3.types b/tests/baselines/reference/overloadOnConstConstraintChecks3.types index c3f854f2df2..bb7eb906519 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks3.types +++ b/tests/baselines/reference/overloadOnConstConstraintChecks3.types @@ -16,11 +16,11 @@ class C extends A { >foo : () => void } function foo(name: 'hi'): B; ->foo : { (name: "hi"): B; (name: "bye"): C; (name: string): A; } +>foo : { (name: 'hi'): B; (name: "bye"): C; (name: string): A; } >name : "hi" function foo(name: 'bye'): C; ->foo : { (name: "hi"): B; (name: "bye"): C; (name: string): A; } +>foo : { (name: "hi"): B; (name: 'bye'): C; (name: string): A; } >name : "bye" function foo(name: string): A; diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks4.types b/tests/baselines/reference/overloadOnConstConstraintChecks4.types index fa27d3f4f06..268f9804a24 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks4.types +++ b/tests/baselines/reference/overloadOnConstConstraintChecks4.types @@ -20,11 +20,11 @@ class C extends A { >foo : () => void } function foo(name: 'hi'): B; ->foo : { (name: "hi"): B; (name: "bye"): C; (name: string): A; } +>foo : { (name: 'hi'): B; (name: "bye"): C; (name: string): A; } >name : "hi" function foo(name: 'bye'): C; ->foo : { (name: "hi"): B; (name: "bye"): C; (name: string): A; } +>foo : { (name: "hi"): B; (name: 'bye'): C; (name: string): A; } >name : "bye" function foo(name: string): A; diff --git a/tests/baselines/reference/overloadOnConstDuplicateOverloads1.types b/tests/baselines/reference/overloadOnConstDuplicateOverloads1.types index f74bb5bf958..674488b3f43 100644 --- a/tests/baselines/reference/overloadOnConstDuplicateOverloads1.types +++ b/tests/baselines/reference/overloadOnConstDuplicateOverloads1.types @@ -1,11 +1,11 @@ === tests/cases/compiler/overloadOnConstDuplicateOverloads1.ts === function foo(a: 'hi', x: string); ->foo : { (a: "hi", x: string): any; (a: "hi", x: string): any; } +>foo : { (a: 'hi', x: string): any; (a: "hi", x: string): any; } >a : "hi" >x : string function foo(a: 'hi', x: string); ->foo : { (a: "hi", x: string): any; (a: "hi", x: string): any; } +>foo : { (a: "hi", x: string): any; (a: 'hi', x: string): any; } >a : "hi" >x : string @@ -16,12 +16,12 @@ function foo(a: any, x: any) { } function foo2(a: 'hi', x: string); ->foo2 : { (a: "hi", x: string): any; (a: "hi", x: string): any; (a: string, x: string): any; } +>foo2 : { (a: 'hi', x: string): any; (a: "hi", x: string): any; (a: string, x: string): any; } >a : "hi" >x : string function foo2(a: 'hi', x: string); ->foo2 : { (a: "hi", x: string): any; (a: "hi", x: string): any; (a: string, x: string): any; } +>foo2 : { (a: "hi", x: string): any; (a: 'hi', x: string): any; (a: string, x: string): any; } >a : "hi" >x : string diff --git a/tests/baselines/reference/overloadOnConstInBaseWithBadImplementationInDerived.types b/tests/baselines/reference/overloadOnConstInBaseWithBadImplementationInDerived.types index dedec00b1b1..5dc2e8bb7c0 100644 --- a/tests/baselines/reference/overloadOnConstInBaseWithBadImplementationInDerived.types +++ b/tests/baselines/reference/overloadOnConstInBaseWithBadImplementationInDerived.types @@ -1,9 +1,9 @@ === tests/cases/compiler/overloadOnConstInBaseWithBadImplementationInDerived.ts === interface I { x1(a: number, callback: (x: 'hi') => number); ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" } @@ -11,9 +11,9 @@ class C implements I { >C : C x1(a: number, callback: (x: 'hi') => number) { // error ->x1 : (a: number, callback: (x: "hi") => number) => void +>x1 : (a: number, callback: (x: 'hi') => number) => void >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" } } diff --git a/tests/baselines/reference/overloadOnConstInCallback1.types b/tests/baselines/reference/overloadOnConstInCallback1.types index c9d954aa282..9eebbe00fa3 100644 --- a/tests/baselines/reference/overloadOnConstInCallback1.types +++ b/tests/baselines/reference/overloadOnConstInCallback1.types @@ -3,9 +3,9 @@ class C { >C : C x1(a: number, callback: (x: 'hi') => number); // error ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" x1(a: number, callback: (x: any) => number) { diff --git a/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.types b/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.types index d63b31f3647..2ea7d1066f6 100644 --- a/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.types +++ b/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.types @@ -1,18 +1,18 @@ === tests/cases/compiler/overloadOnConstInObjectLiteralImplementingAnInterface.ts === interface I { x1(a: number, callback: (x: 'hi') => number); ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" } var i2: I = { x1: (a: number, cb: (x: 'hi') => number) => { } }; // error >i2 : I ->{ x1: (a: number, cb: (x: 'hi') => number) => { } } : { x1: (a: number, cb: (x: "hi") => number) => void; } ->x1 : (a: number, cb: (x: "hi") => number) => void ->(a: number, cb: (x: 'hi') => number) => { } : (a: number, cb: (x: "hi") => number) => void +>{ x1: (a: number, cb: (x: 'hi') => number) => { } } : { x1: (a: number, cb: (x: 'hi') => number) => void; } +>x1 : (a: number, cb: (x: 'hi') => number) => void +>(a: number, cb: (x: 'hi') => number) => { } : (a: number, cb: (x: 'hi') => number) => void >a : number ->cb : (x: "hi") => number +>cb : (x: 'hi') => number >x : "hi" diff --git a/tests/baselines/reference/overloadOnConstInheritance1.types b/tests/baselines/reference/overloadOnConstInheritance1.types index b4ed5387e35..abe9b45bd2c 100644 --- a/tests/baselines/reference/overloadOnConstInheritance1.types +++ b/tests/baselines/reference/overloadOnConstInheritance1.types @@ -5,7 +5,7 @@ interface Base { >x : string addEventListener(x: 'foo'): string; ->addEventListener : { (x: string): any; (x: "foo"): string; } +>addEventListener : { (x: string): any; (x: 'foo'): string; } >x : "foo" } interface Deriver extends Base { @@ -14,7 +14,7 @@ interface Deriver extends Base { >x : string addEventListener(x: 'bar'): string; ->addEventListener : { (x: string): any; (x: "bar"): string; } +>addEventListener : { (x: string): any; (x: 'bar'): string; } >x : "bar" } diff --git a/tests/baselines/reference/overloadOnConstInheritance2.types b/tests/baselines/reference/overloadOnConstInheritance2.types index e6d7fdb7ba1..517d94d79aa 100644 --- a/tests/baselines/reference/overloadOnConstInheritance2.types +++ b/tests/baselines/reference/overloadOnConstInheritance2.types @@ -5,12 +5,12 @@ interface Base { >x : string addEventListener(x: 'foo'): string; ->addEventListener : { (x: string): any; (x: "foo"): string; } +>addEventListener : { (x: string): any; (x: 'foo'): string; } >x : "foo" } interface Deriver extends Base { addEventListener(x: 'bar'): string; // shouldn't need to redeclare the string overload ->addEventListener : (x: "bar") => string +>addEventListener : (x: 'bar') => string >x : "bar" } diff --git a/tests/baselines/reference/overloadOnConstInheritance3.types b/tests/baselines/reference/overloadOnConstInheritance3.types index 40f50680312..b59703e14a7 100644 --- a/tests/baselines/reference/overloadOnConstInheritance3.types +++ b/tests/baselines/reference/overloadOnConstInheritance3.types @@ -7,11 +7,11 @@ interface Base { interface Deriver extends Base { // shouldn't need to redeclare the string overload addEventListener(x: 'bar'): string; ->addEventListener : { (x: "bar"): string; (x: "foo"): string; } +>addEventListener : { (x: 'bar'): string; (x: "foo"): string; } >x : "bar" addEventListener(x: 'foo'): string; ->addEventListener : { (x: "bar"): string; (x: "foo"): string; } +>addEventListener : { (x: "bar"): string; (x: 'foo'): string; } >x : "foo" } diff --git a/tests/baselines/reference/overloadOnConstInheritance4.types b/tests/baselines/reference/overloadOnConstInheritance4.types index 4943aab46f1..bdf6e1b4836 100644 --- a/tests/baselines/reference/overloadOnConstInheritance4.types +++ b/tests/baselines/reference/overloadOnConstInheritance4.types @@ -1,24 +1,24 @@ === tests/cases/compiler/overloadOnConstInheritance4.ts === interface I { x1(a: number, callback: (x: 'hi') => number); ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" } class C implements I { >C : C x1(a: number, callback: (x: 'hi') => number); ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" x1(a: number, callback: (x: 'hi') => number) { >x1 : (a: number, callback: (x: "hi") => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" } } diff --git a/tests/baselines/reference/overloadOnConstNoAnyImplementation.types b/tests/baselines/reference/overloadOnConstNoAnyImplementation.types index 00829f9dc8e..dac88c56f96 100644 --- a/tests/baselines/reference/overloadOnConstNoAnyImplementation.types +++ b/tests/baselines/reference/overloadOnConstNoAnyImplementation.types @@ -1,14 +1,14 @@ === tests/cases/compiler/overloadOnConstNoAnyImplementation.ts === function x1(a: number, cb: (x: 'hi') => number); ->x1 : { (a: number, cb: (x: "hi") => number): any; (a: number, cb: (x: "bye") => number): any; } +>x1 : { (a: number, cb: (x: 'hi') => number): any; (a: number, cb: (x: "bye") => number): any; } >a : number ->cb : (x: "hi") => number +>cb : (x: 'hi') => number >x : "hi" function x1(a: number, cb: (x: 'bye') => number); ->x1 : { (a: number, cb: (x: "hi") => number): any; (a: number, cb: (x: "bye") => number): any; } +>x1 : { (a: number, cb: (x: "hi") => number): any; (a: number, cb: (x: 'bye') => number): any; } >a : number ->cb : (x: "bye") => number +>cb : (x: 'bye') => number >x : "bye" function x1(a: number, cb: (x: string) => number) { @@ -64,7 +64,7 @@ x1(1, (x: 'hi') => 1); // error >x1(1, (x: 'hi') => 1) : any >x1 : { (a: number, cb: (x: "hi") => number): any; (a: number, cb: (x: "bye") => number): any; } >1 : 1 ->(x: 'hi') => 1 : (x: "hi") => number +>(x: 'hi') => 1 : (x: 'hi') => number >x : "hi" >1 : 1 diff --git a/tests/baselines/reference/overloadOnConstNoAnyImplementation2.errors.txt b/tests/baselines/reference/overloadOnConstNoAnyImplementation2.errors.txt index f6792949e59..a954059a3d6 100644 --- a/tests/baselines/reference/overloadOnConstNoAnyImplementation2.errors.txt +++ b/tests/baselines/reference/overloadOnConstNoAnyImplementation2.errors.txt @@ -1,6 +1,6 @@ tests/cases/compiler/overloadOnConstNoAnyImplementation2.ts(6,5): error TS2394: This overload signature is not compatible with its implementation signature. tests/cases/compiler/overloadOnConstNoAnyImplementation2.ts(12,18): error TS2345: Argument of type '1' is not assignable to parameter of type 'string'. -tests/cases/compiler/overloadOnConstNoAnyImplementation2.ts(18,9): error TS2345: Argument of type '(x: "bye") => number' is not assignable to parameter of type '(x: "hi") => number'. +tests/cases/compiler/overloadOnConstNoAnyImplementation2.ts(18,9): error TS2345: Argument of type '(x: 'bye') => number' is not assignable to parameter of type '(x: "hi") => number'. Types of parameters 'x' and 'x' are incompatible. Type '"hi"' is not assignable to type '"bye"'. tests/cases/compiler/overloadOnConstNoAnyImplementation2.ts(21,9): error TS2345: Argument of type '(x: number) => number' is not assignable to parameter of type '(x: "hi") => number'. @@ -33,7 +33,7 @@ tests/cases/compiler/overloadOnConstNoAnyImplementation2.ts(21,9): error TS2345: c.x1(1, (x: 'hi') => { return 1; } ); c.x1(1, (x: 'bye') => { return 1; } ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: "bye") => number' is not assignable to parameter of type '(x: "hi") => number'. +!!! error TS2345: Argument of type '(x: 'bye') => number' is not assignable to parameter of type '(x: "hi") => number'. !!! error TS2345: Types of parameters 'x' and 'x' are incompatible. !!! error TS2345: Type '"hi"' is not assignable to type '"bye"'. c.x1(1, (x) => { return 1; } ); diff --git a/tests/baselines/reference/overloadOnConstNoAnyImplementation2.types b/tests/baselines/reference/overloadOnConstNoAnyImplementation2.types index f8f59dd4dfb..028241412f4 100644 --- a/tests/baselines/reference/overloadOnConstNoAnyImplementation2.types +++ b/tests/baselines/reference/overloadOnConstNoAnyImplementation2.types @@ -1,9 +1,9 @@ === tests/cases/compiler/overloadOnConstNoAnyImplementation2.ts === interface I { x1(a: number, callback: (x: 'hi') => number); ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" } @@ -11,9 +11,9 @@ class C { >C : C x1(a: number, callback: (x: 'hi') => number); ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" x1(a: number, callback: (x: string) => number) { @@ -57,7 +57,7 @@ c.x1(1, (x: 'hi') => { return 1; } ); >c : C >x1 : (a: number, callback: (x: "hi") => number) => any >1 : 1 ->(x: 'hi') => { return 1; } : (x: "hi") => number +>(x: 'hi') => { return 1; } : (x: 'hi') => number >x : "hi" >1 : 1 @@ -67,7 +67,7 @@ c.x1(1, (x: 'bye') => { return 1; } ); >c : C >x1 : (a: number, callback: (x: "hi") => number) => any >1 : 1 ->(x: 'bye') => { return 1; } : (x: "bye") => number +>(x: 'bye') => { return 1; } : (x: 'bye') => number >x : "bye" >1 : 1 diff --git a/tests/baselines/reference/overloadOnConstNoNonSpecializedSignature.types b/tests/baselines/reference/overloadOnConstNoNonSpecializedSignature.types index 09360b748c3..a2f393db847 100644 --- a/tests/baselines/reference/overloadOnConstNoNonSpecializedSignature.types +++ b/tests/baselines/reference/overloadOnConstNoNonSpecializedSignature.types @@ -3,7 +3,7 @@ class C { >C : C x1(a: 'hi'); // error, no non-specialized signature in overload list ->x1 : (a: "hi") => any +>x1 : (a: 'hi') => any >a : "hi" x1(a: string) { } diff --git a/tests/baselines/reference/overloadOnConstNoStringImplementation.types b/tests/baselines/reference/overloadOnConstNoStringImplementation.types index 0fdbc97e380..f8b5f90fe3b 100644 --- a/tests/baselines/reference/overloadOnConstNoStringImplementation.types +++ b/tests/baselines/reference/overloadOnConstNoStringImplementation.types @@ -1,14 +1,14 @@ === tests/cases/compiler/overloadOnConstNoStringImplementation.ts === function x2(a: number, cb: (x: 'hi') => number); ->x2 : { (a: number, cb: (x: "hi") => number): any; (a: number, cb: (x: "bye") => number): any; } +>x2 : { (a: number, cb: (x: 'hi') => number): any; (a: number, cb: (x: "bye") => number): any; } >a : number ->cb : (x: "hi") => number +>cb : (x: 'hi') => number >x : "hi" function x2(a: number, cb: (x: 'bye') => number); ->x2 : { (a: number, cb: (x: "hi") => number): any; (a: number, cb: (x: "bye") => number): any; } +>x2 : { (a: number, cb: (x: "hi") => number): any; (a: number, cb: (x: 'bye') => number): any; } >a : number ->cb : (x: "bye") => number +>cb : (x: 'bye') => number >x : "bye" function x2(a: number, cb: (x: any) => number) { @@ -64,7 +64,7 @@ x2(1, (x: 'hi') => 1); // error >x2(1, (x: 'hi') => 1) : any >x2 : { (a: number, cb: (x: "hi") => number): any; (a: number, cb: (x: "bye") => number): any; } >1 : 1 ->(x: 'hi') => 1 : (x: "hi") => number +>(x: 'hi') => 1 : (x: 'hi') => number >x : "hi" >1 : 1 diff --git a/tests/baselines/reference/overloadOnConstNoStringImplementation2.errors.txt b/tests/baselines/reference/overloadOnConstNoStringImplementation2.errors.txt index e7ac72eb052..47b132158fb 100644 --- a/tests/baselines/reference/overloadOnConstNoStringImplementation2.errors.txt +++ b/tests/baselines/reference/overloadOnConstNoStringImplementation2.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/overloadOnConstNoStringImplementation2.ts(18,9): error TS2345: Argument of type '(x: "bye") => number' is not assignable to parameter of type '(x: "hi") => number'. +tests/cases/compiler/overloadOnConstNoStringImplementation2.ts(18,9): error TS2345: Argument of type '(x: 'bye') => number' is not assignable to parameter of type '(x: "hi") => number'. Types of parameters 'x' and 'x' are incompatible. Type '"hi"' is not assignable to type '"bye"'. tests/cases/compiler/overloadOnConstNoStringImplementation2.ts(20,9): error TS2345: Argument of type '(x: number) => number' is not assignable to parameter of type '(x: "hi") => number'. @@ -26,7 +26,7 @@ tests/cases/compiler/overloadOnConstNoStringImplementation2.ts(20,9): error TS23 c.x1(1, (x: 'hi') => { return 1; } ); c.x1(1, (x: 'bye') => { return 1; } ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2345: Argument of type '(x: "bye") => number' is not assignable to parameter of type '(x: "hi") => number'. +!!! error TS2345: Argument of type '(x: 'bye') => number' is not assignable to parameter of type '(x: "hi") => number'. !!! error TS2345: Types of parameters 'x' and 'x' are incompatible. !!! error TS2345: Type '"hi"' is not assignable to type '"bye"'. c.x1(1, (x: string) => { return 1; } ); diff --git a/tests/baselines/reference/overloadOnConstNoStringImplementation2.types b/tests/baselines/reference/overloadOnConstNoStringImplementation2.types index f0fa063a99a..7605552ee87 100644 --- a/tests/baselines/reference/overloadOnConstNoStringImplementation2.types +++ b/tests/baselines/reference/overloadOnConstNoStringImplementation2.types @@ -1,9 +1,9 @@ === tests/cases/compiler/overloadOnConstNoStringImplementation2.ts === interface I { x1(a: number, callback: (x: 'hi') => number); ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" } @@ -11,9 +11,9 @@ class C implements I { >C : C x1(a: number, callback: (x: 'hi') => number); ->x1 : (a: number, callback: (x: "hi") => number) => any +>x1 : (a: number, callback: (x: 'hi') => number) => any >a : number ->callback : (x: "hi") => number +>callback : (x: 'hi') => number >x : "hi" x1(a: number, callback: (x: any) => number) { @@ -57,7 +57,7 @@ c.x1(1, (x: 'hi') => { return 1; } ); >c : C >x1 : (a: number, callback: (x: "hi") => number) => any >1 : 1 ->(x: 'hi') => { return 1; } : (x: "hi") => number +>(x: 'hi') => { return 1; } : (x: 'hi') => number >x : "hi" >1 : 1 @@ -67,7 +67,7 @@ c.x1(1, (x: 'bye') => { return 1; } ); >c : C >x1 : (a: number, callback: (x: "hi") => number) => any >1 : 1 ->(x: 'bye') => { return 1; } : (x: "bye") => number +>(x: 'bye') => { return 1; } : (x: 'bye') => number >x : "bye" >1 : 1 diff --git a/tests/baselines/reference/overloadResolutionTest1.types b/tests/baselines/reference/overloadResolutionTest1.types index f1814b5fecf..4424428d180 100644 --- a/tests/baselines/reference/overloadResolutionTest1.types +++ b/tests/baselines/reference/overloadResolutionTest1.types @@ -1,11 +1,11 @@ === tests/cases/compiler/overloadResolutionTest1.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number;}[]): string; (bar: { a: boolean; }[]): number; } >bar : { a: number; }[] >a : number function foo(bar:{a:boolean;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean;}[]): number; } >bar : { a: boolean; }[] >a : boolean @@ -54,12 +54,12 @@ var x1111 = foo([{a:null}]); // works - ambiguous call is resolved to be the fir function foo2(bar:{a:number;}):string; ->foo2 : { (bar: { a: number; }): string; (bar: { a: boolean; }): number; } +>foo2 : { (bar: { a: number;}): string; (bar: { a: boolean; }): number; } >bar : { a: number; } >a : number function foo2(bar:{a:boolean;}):number; ->foo2 : { (bar: { a: number; }): string; (bar: { a: boolean; }): number; } +>foo2 : { (bar: { a: number; }): string; (bar: { a: boolean;}): number; } >bar : { a: boolean; } >a : boolean @@ -95,12 +95,12 @@ var x4 = foo2({a:"s"}); // error function foo4(bar:{a:number;}):number; ->foo4 : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>foo4 : { (bar: { a: number;}): number; (bar: { a: string; }): string; } >bar : { a: number; } >a : number function foo4(bar:{a:string;}):string; ->foo4 : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>foo4 : { (bar: { a: number; }): number; (bar: { a: string;}): string; } >bar : { a: string; } >a : string diff --git a/tests/baselines/reference/overloadedConstructorFixesInferencesAppropriately.types b/tests/baselines/reference/overloadedConstructorFixesInferencesAppropriately.types index a486c5d2082..47f70b40e79 100644 --- a/tests/baselines/reference/overloadedConstructorFixesInferencesAppropriately.types +++ b/tests/baselines/reference/overloadedConstructorFixesInferencesAppropriately.types @@ -34,7 +34,7 @@ class AsyncLoader { } function load(): Box<{ success: true } | ErrorResult> { ->load : () => Box +>load : () => Box<{ success: true;} | ErrorResult> >success : true >true : true diff --git a/tests/baselines/reference/overloadingOnConstants1.types b/tests/baselines/reference/overloadingOnConstants1.types index 37a932d1fb9..8f84285ad68 100644 --- a/tests/baselines/reference/overloadingOnConstants1.types +++ b/tests/baselines/reference/overloadingOnConstants1.types @@ -20,15 +20,15 @@ class Derived3 extends Base { biz() { } } interface Document2 { createElement(tagName: 'canvas'): Derived1; ->createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } +>createElement : { (tagName: 'canvas'): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } >tagName : "canvas" createElement(tagName: 'div'): Derived2; ->createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } +>createElement : { (tagName: "canvas"): Derived1; (tagName: 'div'): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } >tagName : "div" createElement(tagName: 'span'): Derived3; ->createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } +>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; } >tagName : "span" createElement(tagName: string): Base; diff --git a/tests/baselines/reference/overloadingOnConstantsInImplementation.types b/tests/baselines/reference/overloadingOnConstantsInImplementation.types index 0cdb13e995f..ba1e1d64978 100644 --- a/tests/baselines/reference/overloadingOnConstantsInImplementation.types +++ b/tests/baselines/reference/overloadingOnConstantsInImplementation.types @@ -1,11 +1,11 @@ === tests/cases/compiler/overloadingOnConstantsInImplementation.ts === function foo(a: 'hi', x: string); ->foo : { (a: "hi", x: string): any; (a: "hi", x: string): any; } +>foo : { (a: 'hi', x: string): any; (a: "hi", x: string): any; } >a : "hi" >x : string function foo(a: 'hi', x: string); ->foo : { (a: "hi", x: string): any; (a: "hi", x: string): any; } +>foo : { (a: "hi", x: string): any; (a: 'hi', x: string): any; } >a : "hi" >x : string diff --git a/tests/baselines/reference/overloadsWithProvisionalErrors.types b/tests/baselines/reference/overloadsWithProvisionalErrors.types index 1dbc5e486d0..bdbcc6bb26e 100644 --- a/tests/baselines/reference/overloadsWithProvisionalErrors.types +++ b/tests/baselines/reference/overloadsWithProvisionalErrors.types @@ -1,12 +1,12 @@ === tests/cases/compiler/overloadsWithProvisionalErrors.ts === var func: { ->func : { (s: string): number; (lambda: (s: string) => { a: number; b: number; }): string; } +>func : { (s: string): number; (lambda: (s: string) => { a: number; b: number;}): string; } (s: string): number; >s : string (lambda: (s: string) => { a: number; b: number }): string; ->lambda : (s: string) => { a: number; b: number; } +>lambda : (s: string) => { a: number; b: number;} >s : string >a : number >b : number diff --git a/tests/baselines/reference/paramTagNestedWithoutTopLevelObject3.types b/tests/baselines/reference/paramTagNestedWithoutTopLevelObject3.types index a2bb9ddf329..7adea4b0111 100644 --- a/tests/baselines/reference/paramTagNestedWithoutTopLevelObject3.types +++ b/tests/baselines/reference/paramTagNestedWithoutTopLevelObject3.types @@ -4,7 +4,7 @@ * @param {number} xyz.bar.p */ function g(xyz) { ->g : (xyz: any) => any +>g : (xyz: object) => any >xyz : any return xyz.bar.p; diff --git a/tests/baselines/reference/parameterDestructuringObjectLiteral.types b/tests/baselines/reference/parameterDestructuringObjectLiteral.types index 4dd861cbf59..e506b187099 100644 --- a/tests/baselines/reference/parameterDestructuringObjectLiteral.types +++ b/tests/baselines/reference/parameterDestructuringObjectLiteral.types @@ -2,8 +2,8 @@ // Repro from #22644 const fn1 = (options: { headers?: {} }) => { }; ->fn1 : (options: { headers?: {}; }) => void ->(options: { headers?: {} }) => { } : (options: { headers?: {}; }) => void +>fn1 : (options: { headers?: {};}) => void +>(options: { headers?: {} }) => { } : (options: { headers?: {};}) => void >options : { headers?: {}; } >headers : {} diff --git a/tests/baselines/reference/parameterNamesInTypeParameterList.types b/tests/baselines/reference/parameterNamesInTypeParameterList.types index 3a06e7502f6..2c71e11e66c 100644 --- a/tests/baselines/reference/parameterNamesInTypeParameterList.types +++ b/tests/baselines/reference/parameterNamesInTypeParameterList.types @@ -11,7 +11,7 @@ function f0(a: T) { } function f1({a}: {a:T}) { ->f1 : ({ a }: { a: T; }) => void +>f1 : ({ a }: { a: T;}) => void >a : any >a : T >a : T @@ -47,7 +47,7 @@ class A { >b : any } m1({a}: {a:T}) { ->m1 : ({ a }: { a: T; }) => void +>m1 : ({ a }: { a: T;}) => void >a : any >a : T >a : T diff --git a/tests/baselines/reference/parseBigInt.types b/tests/baselines/reference/parseBigInt.types index 98a8b0d9c74..70fd3fa3a60 100644 --- a/tests/baselines/reference/parseBigInt.types +++ b/tests/baselines/reference/parseBigInt.types @@ -216,8 +216,8 @@ const doubleSeparator = 123_456__789n; // Using literals as types const oneTwoOrThree = (x: 1n | 2n | 3n): bigint => x ** 2n; ->oneTwoOrThree : (x: 1n | 3n | 2n) => bigint ->(x: 1n | 2n | 3n): bigint => x ** 2n : (x: 1n | 3n | 2n) => bigint +>oneTwoOrThree : (x: 1n | 2n | 3n) => bigint +>(x: 1n | 2n | 3n): bigint => x ** 2n : (x: 1n | 2n | 3n) => bigint >x : 1n | 3n | 2n >x ** 2n : bigint >x : 1n | 3n | 2n diff --git a/tests/baselines/reference/parserOverloadOnConstants1.types b/tests/baselines/reference/parserOverloadOnConstants1.types index 500104364ad..6a786c50eb5 100644 --- a/tests/baselines/reference/parserOverloadOnConstants1.types +++ b/tests/baselines/reference/parserOverloadOnConstants1.types @@ -5,14 +5,14 @@ interface Document { >tagName : string createElement(tagName: 'canvas'): HTMLCanvasElement; ->createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } +>createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: 'canvas'): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } >tagName : "canvas" createElement(tagName: 'div'): HTMLDivElement; ->createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } +>createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: 'div'): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } >tagName : "div" createElement(tagName: 'span'): HTMLSpanElement; ->createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } +>createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: 'span'): HTMLSpanElement; } >tagName : "span" } diff --git a/tests/baselines/reference/parserRealSource14.types b/tests/baselines/reference/parserRealSource14.types index 85a2ca27594..4ba24e6fd4a 100644 --- a/tests/baselines/reference/parserRealSource14.types +++ b/tests/baselines/reference/parserRealSource14.types @@ -3830,7 +3830,7 @@ module TypeScript { /// Return the stack of AST nodes containing "position" /// export function getAstPathToPosition(script: TypeScript.AST, pos: number, options = GetAstPathOptions.Default): TypeScript.AstPath { ->getAstPathToPosition : (script: any, pos: number, options?: GetAstPathOptions) => AstPath +>getAstPathToPosition : (script: any, pos: number, options?: GetAstPathOptions) => TypeScript.AstPath >script : any >TypeScript : any >pos : number @@ -3841,8 +3841,8 @@ module TypeScript { >TypeScript : any var lookInComments = (comments: TypeScript.Comment[]) => { ->lookInComments : (comments: any[]) => void ->(comments: TypeScript.Comment[]) => { if (comments && comments.length > 0) { for (var i = 0; i < comments.length; i++) { var minChar = comments[i].minChar; var limChar = comments[i].limChar; if (!comments[i].isBlockComment) { limChar++; // For single line comments, include 1 more character (for the newline) } if (pos >= minChar && pos < limChar) { ctx.path.push(comments[i]); } } } } : (comments: any[]) => void +>lookInComments : (comments: TypeScript.Comment[]) => void +>(comments: TypeScript.Comment[]) => { if (comments && comments.length > 0) { for (var i = 0; i < comments.length; i++) { var minChar = comments[i].minChar; var limChar = comments[i].limChar; if (!comments[i].isBlockComment) { limChar++; // For single line comments, include 1 more character (for the newline) } if (pos >= minChar && pos < limChar) { ctx.path.push(comments[i]); } } } } : (comments: TypeScript.Comment[]) => void >comments : any[] >TypeScript : any diff --git a/tests/baselines/reference/parserRealSource7.types b/tests/baselines/reference/parserRealSource7.types index e72b2636394..e819f9414cc 100644 --- a/tests/baselines/reference/parserRealSource7.types +++ b/tests/baselines/reference/parserRealSource7.types @@ -20,7 +20,7 @@ module TypeScript { } function getBaseTypeLinks(bases: ASTList, baseTypeLinks: TypeLink[]) { ->getBaseTypeLinks : (bases: any, baseTypeLinks: any[]) => any[] +>getBaseTypeLinks : (bases: any, baseTypeLinks: TypeLink[]) => any[] >bases : any >baseTypeLinks : any[] diff --git a/tests/baselines/reference/parserRealSource9.types b/tests/baselines/reference/parserRealSource9.types index b607174ed15..aa3c23d7c4b 100644 --- a/tests/baselines/reference/parserRealSource9.types +++ b/tests/baselines/reference/parserRealSource9.types @@ -14,7 +14,7 @@ module TypeScript { >checker : any public resolveBaseTypeLinks(typeLinks: TypeLink[], scope: SymbolScope) { ->resolveBaseTypeLinks : (typeLinks: any[], scope: any) => any[] +>resolveBaseTypeLinks : (typeLinks: TypeLink[], scope: any) => any[] >typeLinks : any[] >scope : any diff --git a/tests/baselines/reference/parserShorthandPropertyAssignment1.types b/tests/baselines/reference/parserShorthandPropertyAssignment1.types index ee3fc311231..44e2c0c9d02 100644 --- a/tests/baselines/reference/parserShorthandPropertyAssignment1.types +++ b/tests/baselines/reference/parserShorthandPropertyAssignment1.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript6/ShorthandPropertyAssignment/parserShorthandPropertyAssignment1.ts === function foo(obj: { name?: string; id: number }) { } ->foo : (obj: { name?: string; id: number; }) => void +>foo : (obj: { name?: string; id: number;}) => void >obj : { name?: string; id: number; } >name : string >id : number diff --git a/tests/baselines/reference/parserUnterminatedGeneric1.types b/tests/baselines/reference/parserUnterminatedGeneric1.types index ae82fb600b7..033742ea4ee 100644 --- a/tests/baselines/reference/parserUnterminatedGeneric1.types +++ b/tests/baselines/reference/parserUnterminatedGeneric1.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserUnterminatedGeneric1.ts === interface IQService { all(promises: IPromise < any > []): IPromise< ->all : (promises: any[]) => any +>all : (promises: IPromise[]) => any >promises : any[] diff --git a/tests/baselines/reference/parserUnterminatedGeneric2.types b/tests/baselines/reference/parserUnterminatedGeneric2.types index 43cb4de6907..af9dd727c72 100644 --- a/tests/baselines/reference/parserUnterminatedGeneric2.types +++ b/tests/baselines/reference/parserUnterminatedGeneric2.types @@ -23,6 +23,6 @@ declare module ng { interface IQService { all(promises: IPromise < any > []): IPromise< ->all : (promises: any[]) => any +>all : (promises: IPromise[]) => any >promises : any[] diff --git a/tests/baselines/reference/parserharness.types b/tests/baselines/reference/parserharness.types index bd8652aac0e..c9b501d8754 100644 --- a/tests/baselines/reference/parserharness.types +++ b/tests/baselines/reference/parserharness.types @@ -2258,7 +2258,7 @@ module Harness { >[] : undefined[] var timeFunction: ( ->timeFunction : (benchmark: Benchmark, description?: string, name?: string, f?: (bench?: () => void) => void) => void +>timeFunction : (benchmark: Benchmark, description?: string, name?: string, f?: (bench?: { (): void;}) => void) => void benchmark: Benchmark, >benchmark : Benchmark @@ -2270,7 +2270,7 @@ module Harness { >name : string f?: (bench?: { (): void; }) => void ->f : (bench?: () => void) => void +>f : (bench?: { (): void;}) => void >bench : () => void ) => void; @@ -2725,7 +2725,7 @@ module Harness { >{} : {} public toArray(): { filename: string; file: WriterAggregator; }[] { ->toArray : () => { filename: string; file: WriterAggregator; }[] +>toArray : () => { filename: string; file: WriterAggregator;}[] >filename : string >file : WriterAggregator @@ -4471,7 +4471,7 @@ module Harness { * @param references the set of referenced files used by the given code */ export function generateDeclFile(code: string, verifyNoDeclFile: boolean, unitName?: string, compilationContext?: Harness.Compiler.CompilationContext, references?: TypeScript.IFileReference[]): string { ->generateDeclFile : (code: string, verifyNoDeclFile: boolean, unitName?: string, compilationContext?: CompilationContext, references?: any[]) => string +>generateDeclFile : (code: string, verifyNoDeclFile: boolean, unitName?: string, compilationContext?: Harness.Compiler.CompilationContext, references?: TypeScript.IFileReference[]) => string >code : string >verifyNoDeclFile : boolean >unitName : string @@ -5114,7 +5114,7 @@ module Harness { } export function addUnit(code: string, unitName?: string, isResident?: boolean, isDeclareFile?: boolean, references?: TypeScript.IFileReference[]) { ->addUnit : (code: string, unitName?: string, isResident?: boolean, isDeclareFile?: boolean, references?: any[]) => any +>addUnit : (code: string, unitName?: string, isResident?: boolean, isDeclareFile?: boolean, references?: TypeScript.IFileReference[]) => any >code : string >unitName : string >isResident : boolean @@ -5250,7 +5250,7 @@ module Harness { } export function compileFile(path: string, callback: (res: CompilerResult) => void , settingsCallback?: (settings?: TypeScript.CompilationSettings) => void , context?: CompilationContext, references?: TypeScript.IFileReference[]) { ->compileFile : (path: string, callback: (res: CompilerResult) => void, settingsCallback?: (settings?: any) => void, context?: CompilationContext, references?: any[]) => void +>compileFile : (path: string, callback: (res: CompilerResult) => void, settingsCallback?: (settings?: any) => void, context?: CompilationContext, references?: TypeScript.IFileReference[]) => void >path : string >callback : (res: CompilerResult) => void >res : CompilerResult @@ -5296,7 +5296,7 @@ module Harness { } export function compileUnit(code: string, filename: string, callback: (res: CompilerResult) => void , settingsCallback?: (settings?: TypeScript.CompilationSettings) => void , context?: CompilationContext, references?: TypeScript.IFileReference[]) { ->compileUnit : (code: string, filename: string, callback: (res: CompilerResult) => void, settingsCallback?: (settings?: any) => void, context?: CompilationContext, references?: any[]) => void +>compileUnit : (code: string, filename: string, callback: (res: CompilerResult) => void, settingsCallback?: (settings?: any) => void, context?: CompilationContext, references?: TypeScript.IFileReference[]) => void >code : string >filename : string >callback : (res: CompilerResult) => void @@ -5432,10 +5432,10 @@ module Harness { } export function compileUnits(units: TestCaseParser.TestUnitData[], callback: (res: Compiler.CompilerResult) => void , settingsCallback?: () => void ) { ->compileUnits : (units: TestCaseParser.TestUnitData[], callback: (res: CompilerResult) => void, settingsCallback?: () => void) => void +>compileUnits : (units: TestCaseParser.TestUnitData[], callback: (res: Compiler.CompilerResult) => void, settingsCallback?: () => void) => void >units : TestCaseParser.TestUnitData[] >TestCaseParser : any ->callback : (res: CompilerResult) => void +>callback : (res: Compiler.CompilerResult) => void >res : CompilerResult >Compiler : any >settingsCallback : () => void @@ -5531,10 +5531,10 @@ module Harness { } export function compileString(code: string, unitName: string, callback: (res: Compiler.CompilerResult) => void , context?: CompilationContext, references?: TypeScript.IFileReference[]) { ->compileString : (code: string, unitName: string, callback: (res: CompilerResult) => void, context?: CompilationContext, references?: any[]) => void +>compileString : (code: string, unitName: string, callback: (res: Compiler.CompilerResult) => void, context?: CompilationContext, references?: TypeScript.IFileReference[]) => void >code : string >unitName : string ->callback : (res: CompilerResult) => void +>callback : (res: Compiler.CompilerResult) => void >res : CompilerResult >Compiler : any >context : CompilationContext @@ -5877,7 +5877,7 @@ module Harness { /** Given a test file containing // @Filename directives, return an array of named units of code to be added to an existing compiler instance */ export function makeUnitsFromTest(code: string, filename: string): { settings: CompilerSetting[]; testUnitData: TestUnitData[]; } { ->makeUnitsFromTest : (code: string, filename: string) => { settings: CompilerSetting[]; testUnitData: TestUnitData[]; } +>makeUnitsFromTest : (code: string, filename: string) => { settings: CompilerSetting[]; testUnitData: TestUnitData[];} >code : string >filename : string >settings : CompilerSetting[] @@ -7205,7 +7205,7 @@ module Harness { /** Verify that applying edits to sourceFileName result in the content of the file baselineFileName */ public checkEdits(sourceFileName: string, baselineFileName: string, edits: Services.TextEdit[]) { ->checkEdits : (sourceFileName: string, baselineFileName: string, edits: any[]) => void +>checkEdits : (sourceFileName: string, baselineFileName: string, edits: Services.TextEdit[]) => void >sourceFileName : string >baselineFileName : string >edits : any[] @@ -7252,7 +7252,7 @@ module Harness { /** Apply an array of text edits to a string, and return the resulting string. */ public applyEdits(content: string, edits: Services.TextEdit[]): string { ->applyEdits : (content: string, edits: any[]) => string +>applyEdits : (content: string, edits: Services.TextEdit[]) => string >content : string >edits : any[] >Services : any @@ -7331,7 +7331,7 @@ module Harness { /** Normalize an array of edits by removing overlapping entries and sorting entries on the minChar position. */ private normalizeEdits(edits: Services.TextEdit[]): Services.TextEdit[] { ->normalizeEdits : (edits: any[]) => any[] +>normalizeEdits : (edits: Services.TextEdit[]) => Services.TextEdit[] >edits : any[] >Services : any >Services : any @@ -7342,7 +7342,7 @@ module Harness { >[] : undefined[] function mapEdits(edits: Services.TextEdit[]): { edit: Services.TextEdit; index: number; }[] { ->mapEdits : (edits: any[]) => { edit: any; index: number; }[] +>mapEdits : (edits: Services.TextEdit[]) => { edit: Services.TextEdit; index: number;}[] >edits : any[] >Services : any >edit : any diff --git a/tests/baselines/reference/primtiveTypesAreIdentical.types b/tests/baselines/reference/primtiveTypesAreIdentical.types index 43b9f2e785a..ef0520355ca 100644 --- a/tests/baselines/reference/primtiveTypesAreIdentical.types +++ b/tests/baselines/reference/primtiveTypesAreIdentical.types @@ -50,11 +50,11 @@ function foo4(x: any) { } >x : any function foo5(x: 'a'); ->foo5 : { (x: "a"): any; (x: "a"): any; (x: string): any; } +>foo5 : { (x: 'a'): any; (x: "a"): any; (x: string): any; } >x : "a" function foo5(x: 'a'); ->foo5 : { (x: "a"): any; (x: "a"): any; (x: string): any; } +>foo5 : { (x: "a"): any; (x: 'a'): any; (x: string): any; } >x : "a" function foo5(x: string); diff --git a/tests/baselines/reference/privacyFunctionParameterDeclFile.types b/tests/baselines/reference/privacyFunctionParameterDeclFile.types index a2d3de22fa2..db15a06e9f5 100644 --- a/tests/baselines/reference/privacyFunctionParameterDeclFile.types +++ b/tests/baselines/reference/privacyFunctionParameterDeclFile.types @@ -781,7 +781,7 @@ module privateModule { >privateModule : any myMethod(param: privateModule.publicClass): void; ->myMethod : (param: publicClass) => void +>myMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -789,12 +789,12 @@ module privateModule { >publicClassWithPrivateModuleParameterTypes : publicClassWithPrivateModuleParameterTypes static myPublicStaticMethod(param: privateModule.publicClass) { ->myPublicStaticMethod : (param: publicClass) => void +>myPublicStaticMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } myPublicMethod(param: privateModule.publicClass) { ->myPublicMethod : (param: publicClass) => void +>myPublicMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -808,12 +808,12 @@ module privateModule { } } export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { ->publicFunctionWithPrivateModuleParameterTypes : (param: publicClass) => void +>publicFunctionWithPrivateModuleParameterTypes : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; ->publicAmbientFunctionWithPrivateModuleParameterTypes : (param: publicClass) => void +>publicAmbientFunctionWithPrivateModuleParameterTypes : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any @@ -827,7 +827,7 @@ module privateModule { >privateModule : any myMethod(param: privateModule.publicClass): void; ->myMethod : (param: publicClass) => void +>myMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -835,12 +835,12 @@ module privateModule { >privateClassWithPrivateModuleParameterTypes : privateClassWithPrivateModuleParameterTypes static myPublicStaticMethod(param: privateModule.publicClass) { ->myPublicStaticMethod : (param: publicClass) => void +>myPublicStaticMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } myPublicMethod(param: privateModule.publicClass) { ->myPublicMethod : (param: publicClass) => void +>myPublicMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -854,12 +854,12 @@ module privateModule { } } function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { ->privateFunctionWithPrivateModuleParameterTypes : (param: publicClass) => void +>privateFunctionWithPrivateModuleParameterTypes : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; ->privateAmbientFunctionWithPrivateModuleParameterTypes : (param: publicClass) => void +>privateAmbientFunctionWithPrivateModuleParameterTypes : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -1129,7 +1129,7 @@ module publicModuleInGlobal { >privateModule : any myMethod(param: privateModule.publicClass): void; ->myMethod : (param: publicClass) => void +>myMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -1137,12 +1137,12 @@ module publicModuleInGlobal { >publicClassWithPrivateModuleParameterTypes : publicClassWithPrivateModuleParameterTypes static myPublicStaticMethod(param: privateModule.publicClass) { ->myPublicStaticMethod : (param: publicClass) => void +>myPublicStaticMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } myPublicMethod(param: privateModule.publicClass) { ->myPublicMethod : (param: publicClass) => void +>myPublicMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -1156,12 +1156,12 @@ module publicModuleInGlobal { } } export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { ->publicFunctionWithPrivateModuleParameterTypes : (param: publicClass) => void +>publicFunctionWithPrivateModuleParameterTypes : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; ->publicAmbientFunctionWithPrivateModuleParameterTypes : (param: publicClass) => void +>publicAmbientFunctionWithPrivateModuleParameterTypes : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any @@ -1175,7 +1175,7 @@ module publicModuleInGlobal { >privateModule : any myMethod(param: privateModule.publicClass): void; ->myMethod : (param: publicClass) => void +>myMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -1183,12 +1183,12 @@ module publicModuleInGlobal { >privateClassWithPrivateModuleParameterTypes : privateClassWithPrivateModuleParameterTypes static myPublicStaticMethod(param: privateModule.publicClass) { ->myPublicStaticMethod : (param: publicClass) => void +>myPublicStaticMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } myPublicMethod(param: privateModule.publicClass) { ->myPublicMethod : (param: publicClass) => void +>myPublicMethod : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } @@ -1202,12 +1202,12 @@ module publicModuleInGlobal { } } function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { ->privateFunctionWithPrivateModuleParameterTypes : (param: publicClass) => void +>privateFunctionWithPrivateModuleParameterTypes : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; ->privateAmbientFunctionWithPrivateModuleParameterTypes : (param: publicClass) => void +>privateAmbientFunctionWithPrivateModuleParameterTypes : (param: privateModule.publicClass) => void >param : publicClass >privateModule : any } diff --git a/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.types b/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.types index 6fc55f111da..b5f16efadb8 100644 --- a/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.types +++ b/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.types @@ -1325,21 +1325,21 @@ module privateModule { >privateModule : any myMethod(): privateModule.publicClass; ->myMethod : () => publicClass +>myMethod : () => privateModule.publicClass >privateModule : any } export class publicClassWithPrivateModuleParameterTypes { >publicClassWithPrivateModuleParameterTypes : publicClassWithPrivateModuleParameterTypes static myPublicStaticMethod(): privateModule.publicClass { ->myPublicStaticMethod : () => publicClass +>myPublicStaticMethod : () => privateModule.publicClass >privateModule : any return null; >null : null } myPublicMethod(): privateModule.publicClass { ->myPublicMethod : () => publicClass +>myPublicMethod : () => privateModule.publicClass >privateModule : any return null; @@ -1365,7 +1365,7 @@ module privateModule { } } export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { ->publicFunctionWithPrivateModuleParameterTypes : () => publicClass +>publicFunctionWithPrivateModuleParameterTypes : () => privateModule.publicClass >privateModule : any return null; @@ -1381,7 +1381,7 @@ module privateModule { >publicClass : typeof publicClass } export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; ->publicAmbientFunctionWithPrivateModuleParameterTypes : () => publicClass +>publicAmbientFunctionWithPrivateModuleParameterTypes : () => privateModule.publicClass >privateModule : any interface privateInterfaceWithPrivateModuleParameterTypes { @@ -1396,21 +1396,21 @@ module privateModule { >privateModule : any myMethod(): privateModule.publicClass; ->myMethod : () => publicClass +>myMethod : () => privateModule.publicClass >privateModule : any } class privateClassWithPrivateModuleParameterTypes { >privateClassWithPrivateModuleParameterTypes : privateClassWithPrivateModuleParameterTypes static myPublicStaticMethod(): privateModule.publicClass { ->myPublicStaticMethod : () => publicClass +>myPublicStaticMethod : () => privateModule.publicClass >privateModule : any return null; >null : null } myPublicMethod(): privateModule.publicClass { ->myPublicMethod : () => publicClass +>myPublicMethod : () => privateModule.publicClass >privateModule : any return null; @@ -1436,7 +1436,7 @@ module privateModule { } } function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { ->privateFunctionWithPrivateModuleParameterTypes : () => publicClass +>privateFunctionWithPrivateModuleParameterTypes : () => privateModule.publicClass >privateModule : any return null; @@ -1452,7 +1452,7 @@ module privateModule { >publicClass : typeof publicClass } declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; ->privateAmbientFunctionWithPrivateModuleParameterTypes : () => publicClass +>privateAmbientFunctionWithPrivateModuleParameterTypes : () => privateModule.publicClass >privateModule : any } @@ -1908,21 +1908,21 @@ module publicModuleInGlobal { >privateModule : any myMethod(): privateModule.publicClass; ->myMethod : () => publicClass +>myMethod : () => privateModule.publicClass >privateModule : any } export class publicClassWithPrivateModuleParameterTypes { >publicClassWithPrivateModuleParameterTypes : publicClassWithPrivateModuleParameterTypes static myPublicStaticMethod(): privateModule.publicClass { ->myPublicStaticMethod : () => publicClass +>myPublicStaticMethod : () => privateModule.publicClass >privateModule : any return null; >null : null } myPublicMethod(): privateModule.publicClass { ->myPublicMethod : () => publicClass +>myPublicMethod : () => privateModule.publicClass >privateModule : any return null; @@ -1948,7 +1948,7 @@ module publicModuleInGlobal { } } export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { ->publicFunctionWithPrivateModuleParameterTypes : () => publicClass +>publicFunctionWithPrivateModuleParameterTypes : () => privateModule.publicClass >privateModule : any return null; @@ -1964,7 +1964,7 @@ module publicModuleInGlobal { >publicClass : typeof publicClass } export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; ->publicAmbientFunctionWithPrivateModuleParameterTypes : () => publicClass +>publicAmbientFunctionWithPrivateModuleParameterTypes : () => privateModule.publicClass >privateModule : any interface privateInterfaceWithPrivateModuleParameterTypes { @@ -1979,21 +1979,21 @@ module publicModuleInGlobal { >privateModule : any myMethod(): privateModule.publicClass; ->myMethod : () => publicClass +>myMethod : () => privateModule.publicClass >privateModule : any } class privateClassWithPrivateModuleParameterTypes { >privateClassWithPrivateModuleParameterTypes : privateClassWithPrivateModuleParameterTypes static myPublicStaticMethod(): privateModule.publicClass { ->myPublicStaticMethod : () => publicClass +>myPublicStaticMethod : () => privateModule.publicClass >privateModule : any return null; >null : null } myPublicMethod(): privateModule.publicClass { ->myPublicMethod : () => publicClass +>myPublicMethod : () => privateModule.publicClass >privateModule : any return null; @@ -2019,7 +2019,7 @@ module publicModuleInGlobal { } } function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { ->privateFunctionWithPrivateModuleParameterTypes : () => publicClass +>privateFunctionWithPrivateModuleParameterTypes : () => privateModule.publicClass >privateModule : any return null; @@ -2035,7 +2035,7 @@ module publicModuleInGlobal { >publicClass : typeof publicClass } declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; ->privateAmbientFunctionWithPrivateModuleParameterTypes : () => publicClass +>privateAmbientFunctionWithPrivateModuleParameterTypes : () => privateModule.publicClass >privateModule : any } diff --git a/tests/baselines/reference/privateNameAndPropertySignature.types b/tests/baselines/reference/privateNameAndPropertySignature.types index d33639a86ce..efe0dfbffd6 100644 --- a/tests/baselines/reference/privateNameAndPropertySignature.types +++ b/tests/baselines/reference/privateNameAndPropertySignature.types @@ -12,7 +12,7 @@ interface B { } declare const x: { ->x : { bar: {}; } +>x : { bar: { #baz: string;}; } #foo: number; >#foo : number @@ -26,7 +26,7 @@ declare const x: { }; declare const y: [{ qux: { #quux: 3 } }]; ->y : [{ qux: {}; }] +>y : [{ qux: { #quux: 3;}; }] >qux : {} >#quux : 3 diff --git a/tests/baselines/reference/privateNamesUnique-2.types b/tests/baselines/reference/privateNamesUnique-2.types index 882f5b29390..5beb2a65981 100644 --- a/tests/baselines/reference/privateNamesUnique-2.types +++ b/tests/baselines/reference/privateNamesUnique-2.types @@ -6,7 +6,7 @@ export class Foo { >#x : any copy(other: import("./b").Foo) { ->copy : (other: import("tests/cases/conformance/classes/members/privateNames/b").Foo) => void +>copy : (other: import("./b").Foo) => void >other : import("tests/cases/conformance/classes/members/privateNames/b").Foo other.#x; // error diff --git a/tests/baselines/reference/promisePermutations.types b/tests/baselines/reference/promisePermutations.types index 9a4607fb75d..1ad75706168 100644 --- a/tests/baselines/reference/promisePermutations.types +++ b/tests/baselines/reference/promisePermutations.types @@ -100,11 +100,11 @@ declare function testFunctionP(): Promise; >testFunctionP : () => Promise declare function testFunction2(): IPromise<{ x: number }>; ->testFunction2 : () => IPromise<{ x: number; }> +>testFunction2 : () => IPromise<{ x: number;}> >x : number declare function testFunction2P(): Promise<{ x: number }>; ->testFunction2P : () => Promise<{ x: number; }> +>testFunction2P : () => Promise<{ x: number;}> >x : number declare function testFunction3(x: number): IPromise; diff --git a/tests/baselines/reference/promisePermutations2.types b/tests/baselines/reference/promisePermutations2.types index 49a704375ba..af56d7088e2 100644 --- a/tests/baselines/reference/promisePermutations2.types +++ b/tests/baselines/reference/promisePermutations2.types @@ -75,11 +75,11 @@ declare function testFunctionP(): Promise; >testFunctionP : () => Promise declare function testFunction2(): IPromise<{ x: number }>; ->testFunction2 : () => IPromise<{ x: number; }> +>testFunction2 : () => IPromise<{ x: number;}> >x : number declare function testFunction2P(): Promise<{ x: number }>; ->testFunction2P : () => Promise<{ x: number; }> +>testFunction2P : () => Promise<{ x: number;}> >x : number declare function testFunction3(x: number): IPromise; diff --git a/tests/baselines/reference/promisePermutations3.types b/tests/baselines/reference/promisePermutations3.types index 9ce0662c27a..a92245e6096 100644 --- a/tests/baselines/reference/promisePermutations3.types +++ b/tests/baselines/reference/promisePermutations3.types @@ -75,11 +75,11 @@ declare function testFunctionP(): Promise; >testFunctionP : () => Promise declare function testFunction2(): IPromise<{ x: number }>; ->testFunction2 : () => IPromise<{ x: number; }> +>testFunction2 : () => IPromise<{ x: number;}> >x : number declare function testFunction2P(): Promise<{ x: number }>; ->testFunction2P : () => Promise<{ x: number; }> +>testFunction2P : () => Promise<{ x: number;}> >x : number declare function testFunction3(x: number): IPromise; diff --git a/tests/baselines/reference/propertyAccessChain.2.types b/tests/baselines/reference/propertyAccessChain.2.types index 6a046048f15..4dcf445afff 100644 --- a/tests/baselines/reference/propertyAccessChain.2.types +++ b/tests/baselines/reference/propertyAccessChain.2.types @@ -9,7 +9,7 @@ o1?.b; >b : string declare const o2: undefined | { b: { c: string } }; ->o2 : { b: { c: string; }; } +>o2 : { b: { c: string;}; } >b : { c: string; } >c : string @@ -21,7 +21,7 @@ o2?.b.c; >c : string declare const o3: { b: undefined | { c: string } }; ->o3 : { b: { c: string; }; } +>o3 : { b: undefined | { c: string;}; } >b : { c: string; } >c : string diff --git a/tests/baselines/reference/propertyAccessChain.types b/tests/baselines/reference/propertyAccessChain.types index bd8023f94ce..b776ca10fa2 100644 --- a/tests/baselines/reference/propertyAccessChain.types +++ b/tests/baselines/reference/propertyAccessChain.types @@ -9,7 +9,7 @@ o1?.b; >b : string | undefined declare const o2: undefined | { b: { c: string } }; ->o2 : { b: { c: string; }; } | undefined +>o2 : { b: { c: string;}; } | undefined >b : { c: string; } >c : string @@ -21,7 +21,7 @@ o2?.b.c; >c : string | undefined declare const o3: { b: undefined | { c: string } }; ->o3 : { b: { c: string; } | undefined; } +>o3 : { b: undefined | { c: string;}; } >b : { c: string; } | undefined >c : string @@ -33,8 +33,8 @@ o3.b?.c; >c : string | undefined declare const o4: { b?: { c: { d?: { e: string } } } }; ->o4 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; } ->b : { c: { d?: { e: string; } | undefined; }; } | undefined +>o4 : { b?: { c: { d?: { e: string; };}; } | undefined; } +>b : { c: { d?: { e: string; };}; } | undefined >c : { d?: { e: string; } | undefined; } >d : { e: string; } | undefined >e : string @@ -51,8 +51,8 @@ o4.b?.c.d?.e; >e : string | undefined declare const o5: { b?(): { c: { d?: { e: string } } } }; ->o5 : { b?(): { c: { d?: { e: string; } | undefined; }; }; } ->b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined +>o5 : { b?(): { c: { d?: { e: string; }; };}; } +>b : (() => { c: { d?: { e: string; }; };}) | undefined >c : { d?: { e: string; } | undefined; } >d : { e: string; } | undefined >e : string @@ -71,7 +71,7 @@ o5.b?.().c.d?.e; // GH#33744 declare const o6: () => undefined | ({ x: number }); ->o6 : () => { x: number; } | undefined +>o6 : () => undefined | ({ x: number;}) >x : number o6()?.x; diff --git a/tests/baselines/reference/prototypePropertyAssignmentMergeWithInterfaceMethod.types b/tests/baselines/reference/prototypePropertyAssignmentMergeWithInterfaceMethod.types index 9776e40ac24..b61471495b1 100644 --- a/tests/baselines/reference/prototypePropertyAssignmentMergeWithInterfaceMethod.types +++ b/tests/baselines/reference/prototypePropertyAssignmentMergeWithInterfaceMethod.types @@ -3,12 +3,12 @@ declare namespace lf { export interface Transaction { attach(query: query.Builder): Promise> ->attach : (query: any) => Promise +>attach : (query: any) => Promise> >query : any >query : any begin(scope: Array): Promise ->begin : (scope: any[]) => Promise +>begin : (scope: Array) => Promise >scope : any[] >schema : any @@ -16,7 +16,7 @@ declare namespace lf { >commit : () => Promise exec(queries: Array): Promise>> ->exec : (queries: any[]) => Promise +>exec : (queries: Array) => Promise>> >queries : any[] >query : any @@ -40,7 +40,7 @@ lf.Transaction = function() {}; * @return {!IThenable} */ lf.Transaction.prototype.begin = function(scope) {}; ->lf.Transaction.prototype.begin = function(scope) {} : (scope: any[]) => any +>lf.Transaction.prototype.begin = function(scope) {} : (scope: Array) => any >lf.Transaction.prototype.begin : any >lf.Transaction.prototype : any >lf.Transaction : typeof Transaction @@ -48,6 +48,6 @@ lf.Transaction.prototype.begin = function(scope) {}; >Transaction : typeof Transaction >prototype : any >begin : any ->function(scope) {} : (scope: any[]) => any +>function(scope) {} : (scope: Array) => any >scope : any[] diff --git a/tests/baselines/reference/ramdaToolsNoInfinite.types b/tests/baselines/reference/ramdaToolsNoInfinite.types index 097cf8cd817..229bdfe4c40 100644 --- a/tests/baselines/reference/ramdaToolsNoInfinite.types +++ b/tests/baselines/reference/ramdaToolsNoInfinite.types @@ -32,7 +32,7 @@ declare namespace Tools { >true : true type Last = { ->Last : { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: any[HasTail>>>>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>>>>; }[HasTail>>>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>>>; }[HasTail>>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>>; }[HasTail>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>; }[HasTail>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>; }[HasTail>>>>>> extends true ? 0 : 1]; 1: Head>>>>>; }[HasTail>>>>> extends true ? 0 : 1]; 1: Head>>>>; }[HasTail>>>> extends true ? 0 : 1]; 1: Head>>>; }[HasTail>>> extends true ? 0 : 1]; 1: Head>>; }[HasTail>> extends true ? 0 : 1]; 1: Head>; }[HasTail> extends true ? 0 : 1]; 1: Head; }[HasTail extends true ? 0 : 1] +>Last : { 0: Last>; 1: Head; }[HasTail extends true ? 0 : 1] 0: Last>; >0 : { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: any[HasTail>>>>>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>>>>>; }[HasTail>>>>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>>>>; }[HasTail>>>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>>>; }[HasTail>>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>>; }[HasTail>>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>>; }[HasTail>>>>>>> extends true ? 0 : 1]; 1: Head>>>>>>; }[HasTail>>>>>> extends true ? 0 : 1]; 1: Head>>>>>; }[HasTail>>>>> extends true ? 0 : 1]; 1: Head>>>>; }[HasTail>>>> extends true ? 0 : 1]; 1: Head>>>; }[HasTail>>> extends true ? 0 : 1]; 1: Head>>; }[HasTail>> extends true ? 0 : 1]; 1: Head>; }[HasTail> extends true ? 0 : 1] @@ -65,7 +65,7 @@ declare namespace Tools { : T; type Drop = { ->Drop : { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: any[Prepend>>>>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>>>>; }[Prepend>>>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>>>; }[Prepend>>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>>; }[Prepend>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>; }[Prepend>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>; }[Prepend>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>; }[Prepend>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>; }[Prepend>>>["length"] extends N ? 1 : 0]; 1: Tail>>; }[Prepend>>["length"] extends N ? 1 : 0]; 1: Tail>; }[Prepend>["length"] extends N ? 1 : 0]; 1: Tail; }[Prepend["length"] extends N ? 1 : 0]; 1: T; }[I["length"] extends N ? 1 : 0] +>Drop : { 0: Drop, Prepend>; 1: T; }[I["length"] extends N ? 1 : 0] 0: Drop, Prepend>; >0 : { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: any[Prepend>>>>>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>>>>>; }[Prepend>>>>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>>>>; }[Prepend>>>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>>>; }[Prepend>>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>>; }[Prepend>>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>>; }[Prepend>>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>>; }[Prepend>>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>>; }[Prepend>>>>["length"] extends N ? 1 : 0]; 1: Tail>>>; }[Prepend>>>["length"] extends N ? 1 : 0]; 1: Tail>>; }[Prepend>>["length"] extends N ? 1 : 0]; 1: Tail>; }[Prepend>["length"] extends N ? 1 : 0]; 1: Tail; }[Prepend["length"] extends N ? 1 : 0] @@ -98,7 +98,7 @@ declare namespace Tools { Tail; type Iterator = { ->Iterator : { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: any[Prepend>>>>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>>>>; }[Prepend>>>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>>>; }[Prepend>>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>>; }[Prepend>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>; }[Prepend>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>; }[Prepend>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>; }[Prepend>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>; }[Prepend>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>; }[Prepend>>["length"] extends Index ? 1 : 0]; 1: Prepend>; }[Prepend>["length"] extends Index ? 1 : 0]; 1: Prepend; }[Prepend["length"] extends Index ? 1 : 0]; 1: From; }[I["length"] extends Index ? 1 : 0] +>Iterator : { 0: Iterator, Next>; 1: From; }[I["length"] extends Index ? 1 : 0] 0: Iterator, Next>; >0 : { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: any[Prepend>>>>>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>>>>>; }[Prepend>>>>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>>>>; }[Prepend>>>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>>>; }[Prepend>>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>>; }[Prepend>>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>>; }[Prepend>>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>>; }[Prepend>>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>>; }[Prepend>>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>>; }[Prepend>>>["length"] extends Index ? 1 : 0]; 1: Prepend>>; }[Prepend>>["length"] extends Index ? 1 : 0]; 1: Prepend>; }[Prepend>["length"] extends Index ? 1 : 0]; 1: Prepend; }[Prepend["length"] extends Index ? 1 : 0] @@ -113,7 +113,7 @@ declare namespace Tools { ]; type Reverse = { ->Reverse : { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: any[Prepend>>>>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>>>>["length"]], Prepend>>>>>>>["length"]], Prepend>>>>>>["length"]], Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>>>>; }[Prepend>>>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>>>["length"]], Prepend>>>>>>["length"]], Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>>>; }[Prepend>>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>>["length"]], Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>>; }[Prepend>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>; }[Prepend>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>; }[Prepend>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>; }[Prepend>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>; }[Prepend>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>["length"]], Prepend["length"]], Prepend>>; }[Prepend>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend["length"]], Prepend>; }[Prepend>["length"] extends T["length"] ? 1 : 0]; 1: Prepend; }[Prepend["length"] extends T["length"] ? 1 : 0]; 1: R; }[I["length"] extends T["length"] ? 1 : 0] +>Reverse : { 0: Reverse], R>, Next>; 1: R; }[I["length"] extends T["length"] ? 1 : 0] 0: Reverse], R>, Next>; >0 : { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: { 0: any[Prepend>>>>>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>>>>>["length"]], Prepend>>>>>>>>["length"]], Prepend>>>>>>>["length"]], Prepend>>>>>>["length"]], Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>>>>>; }[Prepend>>>>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>>>>["length"]], Prepend>>>>>>>["length"]], Prepend>>>>>>["length"]], Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>>>>; }[Prepend>>>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>>>["length"]], Prepend>>>>>>["length"]], Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>>>; }[Prepend>>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>>["length"]], Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>>; }[Prepend>>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>>["length"]], Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>>; }[Prepend>>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>>["length"]], Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>>; }[Prepend>>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>>["length"]], Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>>; }[Prepend>>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>>["length"]], Prepend>["length"]], Prepend["length"]], Prepend>>>; }[Prepend>>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend>["length"]], Prepend["length"]], Prepend>>; }[Prepend>>["length"] extends T["length"] ? 1 : 0]; 1: Prepend["length"]], Prepend>; }[Prepend>["length"] extends T["length"] ? 1 : 0]; 1: Prepend; }[Prepend["length"] extends T["length"] ? 1 : 0] diff --git a/tests/baselines/reference/reactHOCSpreadprops.types b/tests/baselines/reference/reactHOCSpreadprops.types index b343ea5fc7a..2480196a217 100644 --- a/tests/baselines/reference/reactHOCSpreadprops.types +++ b/tests/baselines/reference/reactHOCSpreadprops.types @@ -4,7 +4,7 @@ import React = require("react"); >React : typeof React function f

(App: React.ComponentClass

| React.StatelessComponent

): void { ->f :

(App: React.ComponentClass | React.StatelessComponent

) => void +>f :

(App: React.ComponentClass

| React.StatelessComponent

) => void >App : React.ComponentClass | React.StatelessComponent

>React : any >React : any diff --git a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types index 1f67ab5adf9..befb43a43a2 100644 --- a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types +++ b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types @@ -4,7 +4,7 @@ import * as React from "react"; >React : typeof React function myHigherOrderComponent

(Inner: React.ComponentClass

): React.ComponentClass

{ ->myHigherOrderComponent :

(Inner: React.ComponentClass

) => React.ComponentClass +>myHigherOrderComponent :

(Inner: React.ComponentClass

) => React.ComponentClass

>Inner : React.ComponentClass

>React : any >name : string diff --git a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types index 4772a806521..2458b92026d 100644 --- a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types +++ b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types @@ -226,11 +226,11 @@ const simpleAction = (payload: boolean) => ({ }); const thunkAction = (param1: number, param2: string) => async ( ->thunkAction : (param1: number, param2: string) => (dispatch: Dispatch, { foo }: OwnProps) => Promise ->(param1: number, param2: string) => async ( dispatch: Dispatch, { foo }: OwnProps) => { return foo;} : (param1: number, param2: string) => (dispatch: Dispatch, { foo }: OwnProps) => Promise +>thunkAction : (param1: number, param2: string) => (dispatch: Dispatch, { foo }: OwnProps) => Promise +>(param1: number, param2: string) => async ( dispatch: Dispatch, { foo }: OwnProps) => { return foo;} : (param1: number, param2: string) => (dispatch: Dispatch, { foo }: OwnProps) => Promise >param1 : number >param2 : string ->async ( dispatch: Dispatch, { foo }: OwnProps) => { return foo;} : (dispatch: Dispatch, { foo }: OwnProps) => Promise +>async ( dispatch: Dispatch, { foo }: OwnProps) => { return foo;} : (dispatch: Dispatch, { foo }: OwnProps) => Promise dispatch: Dispatch, >dispatch : Dispatch diff --git a/tests/baselines/reference/reactTransitiveImportHasValidDeclaration.types b/tests/baselines/reference/reactTransitiveImportHasValidDeclaration.types index 234782767b3..5376d9522fc 100644 --- a/tests/baselines/reference/reactTransitiveImportHasValidDeclaration.types +++ b/tests/baselines/reference/reactTransitiveImportHasValidDeclaration.types @@ -36,7 +36,7 @@ import {StyledOtherComponent, StyledOtherComponentList} from "create-emotion-sty >StyledOtherComponentList : any export default function styled(tag: string): (o: object) => StyledOtherComponent<{}, StyledOtherComponentList["div"], any>; ->styled : (tag: string) => (o: object) => StyledOtherComponent<{}, import("tests/cases/compiler/node_modules/react/index").DetailedHTMLProps, HTMLDivElement>, any> +>styled : (tag: string) => (o: object) => StyledOtherComponent<{}, StyledOtherComponentList["div"], any> >tag : string >o : object diff --git a/tests/baselines/reference/readonlyAssignmentInSubclassOfClassExpression.types b/tests/baselines/reference/readonlyAssignmentInSubclassOfClassExpression.types index bdeb79aaac4..06c6455d327 100644 --- a/tests/baselines/reference/readonlyAssignmentInSubclassOfClassExpression.types +++ b/tests/baselines/reference/readonlyAssignmentInSubclassOfClassExpression.types @@ -2,7 +2,7 @@ class C extends (class {} as new () => Readonly<{ attrib: number }>) { >C : C >(class {} as new () => Readonly<{ attrib: number }>) : Readonly<{ attrib: number; }> ->class {} as new () => Readonly<{ attrib: number }> : new () => Readonly<{ attrib: number; }> +>class {} as new () => Readonly<{ attrib: number }> : new () => Readonly<{ attrib: number;}> >class {} : typeof (Anonymous class) >attrib : number diff --git a/tests/baselines/reference/readonlyTupleAndArrayElaboration.types b/tests/baselines/reference/readonlyTupleAndArrayElaboration.types index 375621cfa3f..617ee5c366d 100644 --- a/tests/baselines/reference/readonlyTupleAndArrayElaboration.types +++ b/tests/baselines/reference/readonlyTupleAndArrayElaboration.types @@ -43,7 +43,7 @@ arryFn(point); >point : readonly [3, 4] declare function arryFn2(x: Array): void; ->arryFn2 : (x: number[]) => void +>arryFn2 : (x: Array) => void >x : number[] arryFn2(point); diff --git a/tests/baselines/reference/recursiveClassReferenceTest.types b/tests/baselines/reference/recursiveClassReferenceTest.types index bd79dc181f3..e1a40ca799c 100644 --- a/tests/baselines/reference/recursiveClassReferenceTest.types +++ b/tests/baselines/reference/recursiveClassReferenceTest.types @@ -14,8 +14,8 @@ declare module Sample.Thing { >destroy : () => any gar(runner:(widget:Sample.Thing.IWidget)=>any):any; ->gar : (runner: (widget: IWidget) => any) => any ->runner : (widget: IWidget) => any +>gar : (runner: (widget: Sample.Thing.IWidget) => any) => any +>runner : (widget: Sample.Thing.IWidget) => any >widget : IWidget >Sample : any >Thing : any @@ -88,8 +88,8 @@ module Sample.Thing.Widgets { >Thing : typeof Thing public gar(runner:(widget:Sample.Thing.IWidget)=>any) { if (true) {return runner(this);}} ->gar : (runner: (widget: IWidget) => any) => any ->runner : (widget: IWidget) => any +>gar : (runner: (widget: Sample.Thing.IWidget) => any) => any +>runner : (widget: Sample.Thing.IWidget) => any >widget : IWidget >Sample : any >Thing : any diff --git a/tests/baselines/reference/recursiveFunctionTypes.types b/tests/baselines/reference/recursiveFunctionTypes.types index 09a91163913..bfc29f13d0d 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.types +++ b/tests/baselines/reference/recursiveFunctionTypes.types @@ -13,12 +13,12 @@ var y: () => number = fn; // ok >fn : () => typeof fn var f: () => typeof g; ->f : () => () => any ->g : () => () => any +>f : () => typeof g +>g : () => () => typeof g var g: () => typeof f; ->g : () => () => any ->f : () => () => any +>g : () => typeof f +>f : () => () => typeof f function f1(d: typeof f1) { } >f1 : (d: typeof f1) => void @@ -26,11 +26,11 @@ function f1(d: typeof f1) { } >f1 : (d: typeof f1) => void function f2(): typeof g2 { } ->f2 : () => () => typeof f2 +>f2 : () => typeof g2 >g2 : () => () => typeof g2 function g2(): typeof f2 { } ->g2 : () => () => typeof g2 +>g2 : () => typeof f2 >f2 : () => () => typeof f2 interface I { } @@ -61,8 +61,8 @@ C.g(3); // error >3 : 3 var f4: () => typeof f4; ->f4 : () => any ->f4 : () => any +>f4 : () => typeof f4 +>f4 : () => typeof f4 f4 = 3; // error >f4 = 3 : 3 diff --git a/tests/baselines/reference/recursiveTypeReferences1.types b/tests/baselines/reference/recursiveTypeReferences1.types index 14f4180b6dd..8259f392c5b 100644 --- a/tests/baselines/reference/recursiveTypeReferences1.types +++ b/tests/baselines/reference/recursiveTypeReferences1.types @@ -184,15 +184,15 @@ type RecArray = Array>; >RecArray : RecArray declare function flat(a: RecArray): Array; ->flat : (a: RecArray) => T[] +>flat : (a: RecArray) => Array >a : RecArray declare function flat1(a: Array>): Array ->flat1 : (a: (T | T[])[]) => T[] +>flat1 : (a: Array>) => Array >a : (T | T[])[] declare function flat2(a: Array>>): Array; ->flat2 : (a: (T | (T | T[])[])[]) => T[] +>flat2 : (a: Array>>) => Array >a : (T | (T | T[])[])[] flat([1, [2, [3]]]); // number[] diff --git a/tests/baselines/reference/recursiveTypesWithTypeof.types b/tests/baselines/reference/recursiveTypesWithTypeof.types index 5625e7919cd..ff80ad048b1 100644 --- a/tests/baselines/reference/recursiveTypesWithTypeof.types +++ b/tests/baselines/reference/recursiveTypesWithTypeof.types @@ -46,8 +46,8 @@ var f3: any; // None of these declarations should have any errors! // Truly recursive types var g: { x: typeof g; }; ->g : { x: any; } ->x : { x: any; } +>g : { x: typeof g; } +>x : { x: typeof g; } >g : { x: any; } var g: typeof g.x; @@ -57,8 +57,8 @@ var g: typeof g.x; >x : { x: any; } var h: () => typeof h; ->h : () => any ->h : () => any +>h : () => typeof h +>h : () => typeof h var h = h(); >h : () => any @@ -66,10 +66,10 @@ var h = h(); >h : () => any var i: (x: typeof i) => typeof x; +>i : (x: typeof i) => any +>x : (x: typeof i) => any >i : (x: any) => any ->x : (x: any) => any ->i : (x: any) => any ->x : (x: any) => any +>x : (x: any) => typeof x var i = i(i); >i : (x: any) => any @@ -90,8 +90,8 @@ var j = j(j); // Same as h, i, j with construct signatures var h2: new () => typeof h2; ->h2 : new () => any ->h2 : new () => any +>h2 : new () => typeof h2 +>h2 : new () => typeof h2 var h2 = new h2(); >h2 : new () => any @@ -99,10 +99,10 @@ var h2 = new h2(); >h2 : new () => any var i2: new (x: typeof i2) => typeof x; +>i2 : new (x: typeof i2) => any +>x : new (x: typeof i2) => any >i2 : new (x: any) => any ->x : new (x: any) => any ->i2 : new (x: any) => any ->x : new (x: any) => any +>x : new (x: any) => typeof x var i2 = new i2(i2); >i2 : new (x: any) => any @@ -144,8 +144,8 @@ var k = k['']; // Hybrid - contains type literals as well as type arguments // These two are recursive var hy1: { x: typeof hy1 }[]; ->hy1 : { x: any[]; }[] ->x : { x: any[]; }[] +>hy1 : { x: typeof hy1; }[] +>x : { x: typeof hy1; }[] >hy1 : { x: any[]; }[] var hy1 = hy1[0].x; @@ -157,8 +157,8 @@ var hy1 = hy1[0].x; >x : { x: any[]; }[] var hy2: { x: Array }; ->hy2 : { x: any[]; } ->x : { x: any[]; }[] +>hy2 : { x: Array; } +>x : { x: Array; }[] >hy2 : { x: any[]; } var hy2 = hy2.x[0]; diff --git a/tests/baselines/reference/recursiveUnionTypeInference.types b/tests/baselines/reference/recursiveUnionTypeInference.types index 9388e37ab09..57d8e6071fe 100644 --- a/tests/baselines/reference/recursiveUnionTypeInference.types +++ b/tests/baselines/reference/recursiveUnionTypeInference.types @@ -5,7 +5,7 @@ interface Foo { } function bar(x: Foo | string): T { ->bar : (x: string | Foo) => T +>bar : (x: Foo | string) => T >x : string | Foo return bar(x); diff --git a/tests/baselines/reference/resolvingClassDeclarationWhenInBaseTypeResolution.types b/tests/baselines/reference/resolvingClassDeclarationWhenInBaseTypeResolution.types index cf848b326be..2aca965b5fc 100644 --- a/tests/baselines/reference/resolvingClassDeclarationWhenInBaseTypeResolution.types +++ b/tests/baselines/reference/resolvingClassDeclarationWhenInBaseTypeResolution.types @@ -1000,7 +1000,7 @@ module ruatanica { >x : julianae.steerii eurycerus() : panamensis.linulus, lavali.wilsoni> { var x : panamensis.linulus, lavali.wilsoni>; () => { var y = this; }; return x; } ->eurycerus : () => panamensis.linulus, lavali.wilsoni> +>eurycerus : () => panamensis.linulus, lavali.wilsoni> >panamensis : any >ruatanica : any >Lanthanum : any @@ -2426,7 +2426,7 @@ module quasiater { >x : rendalli.moojeni, gabriellae.echinatus> Copper() : argurus.netscheri { var x : argurus.netscheri; () => { var y = this; }; return x; } ->Copper : () => argurus.netscheri +>Copper : () => argurus.netscheri >argurus : any >quasiater : any >dogramacii : any @@ -3647,7 +3647,7 @@ module lutreolus { >x : quasiater.carolinensis Tin() : sagitta.leptoceros> { var x : sagitta.leptoceros>; () => { var y = this; }; return x; } ->Tin : () => sagitta.leptoceros> +>Tin : () => sagitta.leptoceros> >sagitta : any >lutreolus : any >daubentonii : any @@ -3665,7 +3665,7 @@ module lutreolus { >x : sagitta.leptoceros> marmorata() : panamensis.setulosus> { var x : panamensis.setulosus>; () => { var y = this; }; return x; } ->marmorata : () => panamensis.setulosus> +>marmorata : () => panamensis.setulosus> >panamensis : any >quasiater : any >daubentonii : any @@ -3697,7 +3697,7 @@ module lutreolus { >x : Lanthanum.nitidus peregrina() : daubentonii.nesiotes { var x : daubentonii.nesiotes; () => { var y = this; }; return x; } ->peregrina : () => daubentonii.nesiotes +>peregrina : () => daubentonii.nesiotes >daubentonii : any >macrorhinos : any >lutreolus : any @@ -3886,7 +3886,7 @@ module argurus { >x : rionegrensis.veraecrucis jacobitus() : caurinus.johorensis>> { var x : caurinus.johorensis>>; () => { var y = this; }; return x; } ->jacobitus : () => caurinus.johorensis>> +>jacobitus : () => caurinus.johorensis>> >caurinus : any >macrorhinos : any >caurinus : any @@ -3908,7 +3908,7 @@ module argurus { >x : caurinus.johorensis>> guentheri() : rendalli.moojeni { var x : rendalli.moojeni; () => { var y = this; }; return x; } ->guentheri : () => rendalli.moojeni +>guentheri : () => rendalli.moojeni >rendalli : any >lutreolus : any >argurus : any @@ -3922,7 +3922,7 @@ module argurus { >x : rendalli.moojeni mahomet() : imperfecta.ciliolabrum { var x : imperfecta.ciliolabrum; () => { var y = this; }; return x; } ->mahomet : () => imperfecta.ciliolabrum +>mahomet : () => imperfecta.ciliolabrum >imperfecta : any >argurus : any >lutreolus : any @@ -4005,7 +4005,7 @@ module nigra { >x : caurinus.psilurus morrisi() : ruatanica.hector, quasiater.wattsi>>> { var x : ruatanica.hector, quasiater.wattsi>>>; () => { var y = this; }; return x; } ->morrisi : () => ruatanica.hector, quasiater.wattsi>>> +>morrisi : () => ruatanica.hector, quasiater.wattsi>>> >ruatanica : any >trivirgatus : any >sagitta : any @@ -4482,7 +4482,7 @@ module minutus { >x : patas.uralensis flaviceps(): minutus.inez> { var x: minutus.inez>; () => { var y = this; }; return x; } ->flaviceps : () => inez> +>flaviceps : () => minutus.inez> >minutus : any >argurus : any >panglima : any @@ -4596,7 +4596,7 @@ module caurinus { >macrorhinos : any martiniquensis(): ruatanica.hector>> { var x: ruatanica.hector>>; () => { var y = this; }; return x; } ->martiniquensis : () => ruatanica.hector>> +>martiniquensis : () => ruatanica.hector>> >ruatanica : any >julianae : any >macrorhinos : any @@ -4650,7 +4650,7 @@ module caurinus { >x : argurus.oreas kathleenae(): nigra.dolichurus { var x: nigra.dolichurus; () => { var y = this; }; return x; } ->kathleenae : () => nigra.dolichurus +>kathleenae : () => nigra.dolichurus >nigra : any >patas : any >caurinus : any @@ -4674,7 +4674,7 @@ module caurinus { >x : gabriellae.echinatus nigrovittatus(): caurinus.mahaganus>> { var x: caurinus.mahaganus>>; () => { var y = this; }; return x; } ->nigrovittatus : () => mahaganus>> +>nigrovittatus : () => caurinus.mahaganus>> >caurinus : any >gabriellae : any >petrophilus : any @@ -4751,7 +4751,7 @@ module howi { >stolzmanni : typeof sagitta.stolzmanni pennatus(): howi.marcanoi { var x: howi.marcanoi; () => { var y = this; }; return x; } ->pennatus : () => marcanoi +>pennatus : () => howi.marcanoi >howi : any >x : marcanoi >howi : any @@ -5096,7 +5096,7 @@ module nigra { >gracilis : gracilis weddellii(): nigra.dolichurus { var x: nigra.dolichurus; () => { var y = this; }; return x; } ->weddellii : () => dolichurus +>weddellii : () => nigra.dolichurus >nigra : any >dogramacii : any >julianae : any @@ -5138,7 +5138,7 @@ module nigra { >x : dogramacii.koepckeae rouxii(): nigra.gracilis, nigra.thalia> { var x: nigra.gracilis, nigra.thalia>; () => { var y = this; }; return x; } ->rouxii : () => gracilis, thalia> +>rouxii : () => nigra.gracilis, nigra.thalia> >nigra : any >argurus : any >macrorhinos : any @@ -5180,7 +5180,7 @@ module nigra { >x : rionegrensis.caniventer theresa(): macrorhinos.marmosurus, argurus.luctuosa>, nigra.dolichurus> { var x: macrorhinos.marmosurus, argurus.luctuosa>, nigra.dolichurus>; () => { var y = this; }; return x; } ->theresa : () => macrorhinos.marmosurus, argurus.luctuosa>, dolichurus> +>theresa : () => macrorhinos.marmosurus, argurus.luctuosa>, nigra.dolichurus> >macrorhinos : any >argurus : any >dammermani : any @@ -6078,7 +6078,7 @@ module argurus { >x : Lanthanum.jugularis cracens(): argurus.gilbertii { var x: argurus.gilbertii; () => { var y = this; }; return x; } ->cracens : () => gilbertii +>cracens : () => argurus.gilbertii >argurus : any >lavali : any >lutreolus : any @@ -6198,7 +6198,7 @@ module argurus { >x : dammermani.melanops nghetinhensis(): gabriellae.klossii { var x: gabriellae.klossii; () => { var y = this; }; return x; } ->nghetinhensis : () => gabriellae.klossii +>nghetinhensis : () => gabriellae.klossii >gabriellae : any >argurus : any >julianae : any @@ -6226,7 +6226,7 @@ module argurus { >x : samarensis.cahirinus univittatus(): argurus.peninsulae { var x: argurus.peninsulae; () => { var y = this; }; return x; } ->univittatus : () => peninsulae +>univittatus : () => argurus.peninsulae >argurus : any >x : peninsulae >argurus : any @@ -6655,7 +6655,7 @@ module sagitta { >x : samarensis.cahirinus, dogramacii.robustulus> simulator(): macrorhinos.marmosurus, macrorhinos.marmosurus, gabriellae.echinatus>, sagitta.stolzmanni>> { var x: macrorhinos.marmosurus, macrorhinos.marmosurus, gabriellae.echinatus>, sagitta.stolzmanni>>; () => { var y = this; }; return x; } ->simulator : () => macrorhinos.marmosurus, macrorhinos.marmosurus, gabriellae.echinatus>, stolzmanni>> +>simulator : () => macrorhinos.marmosurus, macrorhinos.marmosurus, gabriellae.echinatus>, sagitta.stolzmanni>> >macrorhinos : any >Lanthanum : any >dammermani : any @@ -6783,7 +6783,7 @@ module howi { >x : argurus.oreas zerda(): quasiater.wattsi, howi.coludo>> { var x: quasiater.wattsi, howi.coludo>>; () => { var y = this; }; return x; } ->zerda : () => quasiater.wattsi, coludo>> +>zerda : () => quasiater.wattsi, howi.coludo>> >quasiater : any >julianae : any >julianae : any @@ -6914,7 +6914,7 @@ module argurus { >x : julianae.steerii sondaicus(): samarensis.fuscus { var x: samarensis.fuscus; () => { var y = this; }; return x; } ->sondaicus : () => samarensis.fuscus +>sondaicus : () => samarensis.fuscus >samarensis : any >argurus : any >lavali : any @@ -6942,7 +6942,7 @@ module argurus { >x : petrophilus.rosalia cherriei(): ruatanica.Praseodymium { var x: ruatanica.Praseodymium; () => { var y = this; }; return x; } ->cherriei : () => ruatanica.Praseodymium +>cherriei : () => ruatanica.Praseodymium >ruatanica : any >Lanthanum : any >argurus : any @@ -7104,7 +7104,7 @@ module lutreolus { >x : macrorhinos.konganensis lemniscatus(): panglima.fundatus { var x: panglima.fundatus; () => { var y = this; }; return x; } ->lemniscatus : () => panglima.fundatus +>lemniscatus : () => panglima.fundatus >panglima : any >gabriellae : any >lutreolus : any @@ -7152,7 +7152,7 @@ module lutreolus { >x : julianae.galapagoensis monochromos(): howi.coludo { var x: howi.coludo; () => { var y = this; }; return x; } ->monochromos : () => howi.coludo +>monochromos : () => howi.coludo >howi : any >lavali : any >lutreolus : any @@ -7166,7 +7166,7 @@ module lutreolus { >x : howi.coludo purinus(): ruatanica.hector { var x: ruatanica.hector; () => { var y = this; }; return x; } ->purinus : () => ruatanica.hector +>purinus : () => ruatanica.hector >ruatanica : any >lutreolus : any >provocax : any @@ -7448,7 +7448,7 @@ module sagitta { >x : nigra.gracilis epimelas(): sagitta.stolzmanni { var x: sagitta.stolzmanni; () => { var y = this; }; return x; } ->epimelas : () => stolzmanni +>epimelas : () => sagitta.stolzmanni >sagitta : any >x : stolzmanni >sagitta : any @@ -7458,7 +7458,7 @@ module sagitta { >x : stolzmanni pittieri(): samarensis.fuscus { var x: samarensis.fuscus; () => { var y = this; }; return x; } ->pittieri : () => samarensis.fuscus +>pittieri : () => samarensis.fuscus >samarensis : any >quasiater : any >sagitta : any @@ -8238,7 +8238,7 @@ module lutreolus { >foina : foina tarfayensis(): lutreolus.punicus { var x: lutreolus.punicus; () => { var y = this; }; return x; } ->tarfayensis : () => punicus +>tarfayensis : () => lutreolus.punicus >lutreolus : any >x : punicus >lutreolus : any @@ -8390,7 +8390,7 @@ module lutreolus { >x : caurinus.psilurus argentiventer(): trivirgatus.mixtus { var x: trivirgatus.mixtus; () => { var y = this; }; return x; } ->argentiventer : () => trivirgatus.mixtus +>argentiventer : () => trivirgatus.mixtus >trivirgatus : any >gabriellae : any >lutreolus : any @@ -8458,7 +8458,7 @@ module lutreolus { >x : quasiater.carolinensis truncatus(): trivirgatus.lotor { var x: trivirgatus.lotor; () => { var y = this; }; return x; } ->truncatus : () => trivirgatus.lotor +>truncatus : () => trivirgatus.lotor >trivirgatus : any >sagitta : any >lutreolus : any @@ -8762,7 +8762,7 @@ module dammermani { >dammermani : any blarina(): dammermani.melanops { var x: dammermani.melanops; () => { var y = this; }; return x; } ->blarina : () => melanops +>blarina : () => dammermani.melanops >dammermani : any >x : melanops >dammermani : any @@ -8942,7 +8942,7 @@ module argurus { >uralensis : typeof patas.uralensis aitkeni(): trivirgatus.mixtus, panglima.amphibius> { var x: trivirgatus.mixtus, panglima.amphibius>; () => { var y = this; }; return x; } ->aitkeni : () => trivirgatus.mixtus, panglima.amphibius> +>aitkeni : () => trivirgatus.mixtus, panglima.amphibius> >trivirgatus : any >argurus : any >dogramacii : any @@ -9028,7 +9028,7 @@ module argurus { >x : trivirgatus.oconnelli cavernarum(): minutus.inez { var x: minutus.inez; () => { var y = this; }; return x; } ->cavernarum : () => minutus.inez +>cavernarum : () => minutus.inez >minutus : any >gabriellae : any >argurus : any @@ -9095,7 +9095,7 @@ module argurus { >x : lavali.wilsoni fernandezi(): dammermani.siberu, panglima.abidi> { var x: dammermani.siberu, panglima.abidi>; () => { var y = this; }; return x; } ->fernandezi : () => dammermani.siberu, panglima.abidi> +>fernandezi : () => dammermani.siberu, panglima.abidi> >dammermani : any >nigra : any >lutreolus : any @@ -9151,7 +9151,7 @@ module argurus { >x : chrysaeolus.sarasinorum tatei(): argurus.pygmaea> { var x: argurus.pygmaea>; () => { var y = this; }; return x; } ->tatei : () => pygmaea> +>tatei : () => argurus.pygmaea> >argurus : any >argurus : any >panglima : any @@ -9189,7 +9189,7 @@ module argurus { >x : trivirgatus.falconeri delator(): argurus.netscheri { var x: argurus.netscheri; () => { var y = this; }; return x; } ->delator : () => netscheri +>delator : () => argurus.netscheri >argurus : any >dogramacii : any >lavali : any @@ -9267,7 +9267,7 @@ module ruatanica { >gabriellae : any clara(): panglima.amphibius, argurus.dauricus> { var x: panglima.amphibius, argurus.dauricus>; () => { var y = this; }; return x; } ->clara : () => panglima.amphibius, argurus.dauricus> +>clara : () => panglima.amphibius, argurus.dauricus> >panglima : any >imperfecta : any >quasiater : any @@ -9792,7 +9792,7 @@ module caurinus { >punicus : typeof lutreolus.punicus socialis(): panglima.amphibius { var x: panglima.amphibius; () => { var y = this; }; return x; } ->socialis : () => panglima.amphibius +>socialis : () => panglima.amphibius >panglima : any >trivirgatus : any >caurinus : any diff --git a/tests/baselines/reference/restParametersWithArrayTypeAnnotations.types b/tests/baselines/reference/restParametersWithArrayTypeAnnotations.types index 10d1f2014af..99baf1b0a7c 100644 --- a/tests/baselines/reference/restParametersWithArrayTypeAnnotations.types +++ b/tests/baselines/reference/restParametersWithArrayTypeAnnotations.types @@ -71,18 +71,18 @@ var b = { function foo2(...x: Array) { } ->foo2 : (...x: string[]) => void +>foo2 : (...x: Array) => void >x : string[] var f3 = function foo(...x: Array) { } ->f3 : (...x: string[]) => void ->function foo(...x: Array) { } : (...x: string[]) => void ->foo : (...x: string[]) => void +>f3 : (...x: Array) => void +>function foo(...x: Array) { } : (...x: Array) => void +>foo : (...x: Array) => void >x : string[] var f4 = (...x: Array, ...y: Array) => { } ->f4 : (...x: string[], ...y: string[]) => void ->(...x: Array, ...y: Array) => { } : (...x: string[], ...y: string[]) => void +>f4 : (...x: Array, ...y: Array) => void +>(...x: Array, ...y: Array) => { } : (...x: Array, ...y: Array) => void >x : string[] >y : string[] @@ -90,7 +90,7 @@ class C2 { >C2 : C2 foo(...x: Array) { } ->foo : (...x: string[]) => void +>foo : (...x: Array) => void >x : string[] } @@ -99,39 +99,39 @@ interface I2 { >x : string[] foo(...x: Array, ...y: Array); ->foo : (...x: string[], ...y: string[]) => any +>foo : (...x: Array, ...y: Array) => any >x : string[] >y : string[] } var a2: { ->a2 : { (...x: string[]): any; foo(...x: string[]): any; } +>a2 : { (...x: Array): any; foo(...x: Array): any; } (...x: Array); >x : string[] foo(...x: Array); ->foo : (...x: string[]) => any +>foo : (...x: Array) => any >x : string[] } var b2 = { ->b2 : { foo(...x: string[]): void; a: (...x: string[], ...y: string[]) => void; b: (...x: string[]) => void; } ->{ foo(...x: Array) { }, a: function foo(...x: Array, ...y: Array) { }, b: (...x: Array) => { }} : { foo(...x: string[]): void; a: (...x: string[], ...y: string[]) => void; b: (...x: string[]) => void; } +>b2 : { foo(...x: Array): void; a: (...x: Array, ...y: Array) => void; b: (...x: Array) => void; } +>{ foo(...x: Array) { }, a: function foo(...x: Array, ...y: Array) { }, b: (...x: Array) => { }} : { foo(...x: Array): void; a: (...x: Array, ...y: Array) => void; b: (...x: Array) => void; } foo(...x: Array) { }, ->foo : (...x: string[]) => void +>foo : (...x: Array) => void >x : string[] a: function foo(...x: Array, ...y: Array) { }, ->a : (...x: string[], ...y: string[]) => void ->function foo(...x: Array, ...y: Array) { } : (...x: string[], ...y: string[]) => void ->foo : (...x: string[], ...y: string[]) => void +>a : (...x: Array, ...y: Array) => void +>function foo(...x: Array, ...y: Array) { } : (...x: Array, ...y: Array) => void +>foo : (...x: Array, ...y: Array) => void >x : string[] >y : string[] b: (...x: Array) => { } ->b : (...x: string[]) => void ->(...x: Array) => { } : (...x: string[]) => void +>b : (...x: Array) => void +>(...x: Array) => { } : (...x: Array) => void >x : string[] } diff --git a/tests/baselines/reference/returnTagTypeGuard.types b/tests/baselines/reference/returnTagTypeGuard.types index 214099b8eb3..a8211118ea9 100644 --- a/tests/baselines/reference/returnTagTypeGuard.types +++ b/tests/baselines/reference/returnTagTypeGuard.types @@ -86,7 +86,7 @@ function isBoolean(value) { /** @param {boolean | number} val */ function foo(val) { ->foo : (val: number | boolean) => void +>foo : (val: boolean | number) => void >val : number | boolean if (isBoolean(val)) { diff --git a/tests/baselines/reference/returnTypeParameterWithModules.types b/tests/baselines/reference/returnTypeParameterWithModules.types index d9546bda856..d3601048bce 100644 --- a/tests/baselines/reference/returnTypeParameterWithModules.types +++ b/tests/baselines/reference/returnTypeParameterWithModules.types @@ -3,7 +3,7 @@ module M1 { >M1 : typeof M1 export function reduce(ar, f, e?): Array { ->reduce : (ar: any, f: any, e?: any) => A[] +>reduce : (ar: any, f: any, e?: any) => Array >ar : any >f : any >e : any diff --git a/tests/baselines/reference/returnTypeTypeArguments.types b/tests/baselines/reference/returnTypeTypeArguments.types index ddd92a43db0..40a1326305f 100644 --- a/tests/baselines/reference/returnTypeTypeArguments.types +++ b/tests/baselines/reference/returnTypeTypeArguments.types @@ -152,7 +152,7 @@ class X } declare var a: { ->a : { p1: () => any; p2: { [idx: number]: any; }; p3: any[]; p4: I; p5: any; p6: () => any; p7: { [idx: number]: any; }; p8: any[]; p9: I; pa: any; } +>a : { p1: () => X; p2: { [idx: number]: any; }; p3: X[]; p4: I; p5: any; p6: () => Y; p7: { [idx: number]: any; }; p8: Y[]; p9: I; pa: any; } p1: () => X; >p1 : () => any diff --git a/tests/baselines/reference/reverseMappedPartiallyInferableTypes.types b/tests/baselines/reference/reverseMappedPartiallyInferableTypes.types index 49cd5cf8962..e2b8ba8b5fa 100644 --- a/tests/baselines/reference/reverseMappedPartiallyInferableTypes.types +++ b/tests/baselines/reference/reverseMappedPartiallyInferableTypes.types @@ -45,7 +45,7 @@ export type PropsDefinition = RecordPropsDefinition; declare function extend({ props }: { props: PropsDefinition }): PropsDefinition; ->extend : ({ props }: { props: RecordPropsDefinition; }) => RecordPropsDefinition +>extend : ({ props }: { props: PropsDefinition; }) => PropsDefinition >props : RecordPropsDefinition >props : RecordPropsDefinition diff --git a/tests/baselines/reference/slightlyIndirectedDeepObjectLiteralElaborations.types b/tests/baselines/reference/slightlyIndirectedDeepObjectLiteralElaborations.types index f8faa599524..260c6275ad7 100644 --- a/tests/baselines/reference/slightlyIndirectedDeepObjectLiteralElaborations.types +++ b/tests/baselines/reference/slightlyIndirectedDeepObjectLiteralElaborations.types @@ -1,10 +1,10 @@ === tests/cases/compiler/slightlyIndirectedDeepObjectLiteralElaborations.ts === interface Foo { a: { ->a : { b: { c: { d: string; }; }; } +>a : { b: { c: { d: string; };}; } b: { ->b : { c: { d: string; }; } +>b : { c: { d: string;}; } c: { >c : { d: string; } diff --git a/tests/baselines/reference/specializedOverloadWithRestParameters.types b/tests/baselines/reference/specializedOverloadWithRestParameters.types index 771a53d24dc..7bd6dd34759 100644 --- a/tests/baselines/reference/specializedOverloadWithRestParameters.types +++ b/tests/baselines/reference/specializedOverloadWithRestParameters.types @@ -9,7 +9,7 @@ class Derived1 extends Base { bar() { } } >bar : () => void function f(tagName: 'span', ...args): Derived1; // error ->f : { (tagName: "span", ...args: any[]): Derived1; (tagName: number, ...args: any[]): Base; } +>f : { (tagName: 'span', ...args: any[]): Derived1; (tagName: number, ...args: any[]): Base; } >tagName : "span" >args : any[] @@ -26,7 +26,7 @@ function f(tagName: any): Base { >null : null } function g(tagName: 'span', arg): Derived1; // error ->g : { (tagName: "span", arg: any): Derived1; (tagName: number, arg: any): Base; } +>g : { (tagName: 'span', arg: any): Derived1; (tagName: number, arg: any): Base; } >tagName : "span" >arg : any diff --git a/tests/baselines/reference/specializedSignatureAsCallbackParameter1.errors.txt b/tests/baselines/reference/specializedSignatureAsCallbackParameter1.errors.txt index 49f3e624768..412599e79a6 100644 --- a/tests/baselines/reference/specializedSignatureAsCallbackParameter1.errors.txt +++ b/tests/baselines/reference/specializedSignatureAsCallbackParameter1.errors.txt @@ -7,7 +7,7 @@ tests/cases/compiler/specializedSignatureAsCallbackParameter1.ts(7,1): error TS2 Argument of type '1' is not assignable to parameter of type 'string'. tests/cases/compiler/specializedSignatureAsCallbackParameter1.ts(8,1): error TS2769: No overload matches this call. Overload 1 of 2, '(a: number, cb: (x: number) => number): any', gave the following error. - Argument of type '(x: "hm") => number' is not assignable to parameter of type '(x: number) => number'. + Argument of type '(x: 'hm') => number' is not assignable to parameter of type '(x: number) => number'. Types of parameters 'x' and 'x' are incompatible. Type 'number' is not assignable to type '"hm"'. Overload 2 of 2, '(a: string, cb: (x: number) => number): any', gave the following error. @@ -34,7 +34,7 @@ tests/cases/compiler/specializedSignatureAsCallbackParameter1.ts(8,1): error TS2 ~~~~~~~~~~~~~~~~~~~~~ !!! error TS2769: No overload matches this call. !!! error TS2769: Overload 1 of 2, '(a: number, cb: (x: number) => number): any', gave the following error. -!!! error TS2769: Argument of type '(x: "hm") => number' is not assignable to parameter of type '(x: number) => number'. +!!! error TS2769: Argument of type '(x: 'hm') => number' is not assignable to parameter of type '(x: number) => number'. !!! error TS2769: Types of parameters 'x' and 'x' are incompatible. !!! error TS2769: Type 'number' is not assignable to type '"hm"'. !!! error TS2769: Overload 2 of 2, '(a: string, cb: (x: number) => number): any', gave the following error. diff --git a/tests/baselines/reference/specializedSignatureAsCallbackParameter1.types b/tests/baselines/reference/specializedSignatureAsCallbackParameter1.types index 24f18fab3e3..0eaacf5a2c0 100644 --- a/tests/baselines/reference/specializedSignatureAsCallbackParameter1.types +++ b/tests/baselines/reference/specializedSignatureAsCallbackParameter1.types @@ -35,7 +35,7 @@ x3(1, (x: 'hm') => 1); >x3(1, (x: 'hm') => 1) : any >x3 : { (a: number, cb: (x: number) => number): any; (a: string, cb: (x: number) => number): any; } >1 : 1 ->(x: 'hm') => 1 : (x: "hm") => number +>(x: 'hm') => 1 : (x: 'hm') => number >x : "hm" >1 : 1 diff --git a/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types b/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types index 98c34e9211e..ccdc7b1b2a3 100644 --- a/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types +++ b/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts === function foo(x: 'a'); ->foo : (x: "a") => any +>foo : (x: 'a') => any >x : "a" function foo(x: number) { } @@ -11,7 +11,7 @@ class C { >C : C foo(x: 'a'); ->foo : { (x: "a"): any; (x: number): any; } +>foo : { (x: 'a'): any; (x: number): any; } >x : "a" foo(x: number); @@ -27,7 +27,7 @@ class C2 { >C2 : C2 foo(x: 'a'); ->foo : { (x: "a"): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: T): any; } >x : "a" foo(x: T); @@ -43,7 +43,7 @@ class C3 { >C3 : C3 foo(x: 'a'); ->foo : { (x: "a"): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: T): any; } >x : "a" foo(x: T); @@ -63,7 +63,7 @@ interface I { >x : number foo(x: 'a'); ->foo : { (x: "a"): any; (x: number): any; } +>foo : { (x: 'a'): any; (x: number): any; } >x : "a" foo(x: number); @@ -79,7 +79,7 @@ interface I2 { >x : T foo(x: 'a'); ->foo : { (x: "a"): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: T): any; } >x : "a" foo(x: T); @@ -95,7 +95,7 @@ interface I3 { >x : T foo(x: 'a'); ->foo : { (x: "a"): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: T): any; } >x : "a" foo(x: T); @@ -104,7 +104,7 @@ interface I3 { } var a: { ->a : { (x: "a"): any; (x: number): any; foo(x: "a"): any; foo(x: number): any; } +>a : { (x: 'a'): any; (x: number): any; foo(x: 'a'): any; foo(x: number): any; } (x: 'a'); >x : "a" @@ -113,7 +113,7 @@ var a: { >x : number foo(x: 'a'); ->foo : { (x: "a"): any; (x: number): any; } +>foo : { (x: 'a'): any; (x: number): any; } >x : "a" foo(x: number); @@ -122,7 +122,7 @@ var a: { } var a2: { ->a2 : { (x: "a"): any; (x: T): any; foo(x: "a"): any; foo(x: T): any; } +>a2 : { (x: 'a'): any; (x: T): any; foo(x: 'a'): any; foo(x: T): any; } (x: 'a'); >x : "a" @@ -131,7 +131,7 @@ var a2: { >x : T foo(x: 'a'); ->foo : { (x: "a"): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: T): any; } >x : "a" foo(x: T); @@ -140,7 +140,7 @@ var a2: { } var a3: { ->a3 : { (x: "a"): any; (x: T): any; foo(x: "a"): any; foo(x: T): any; } +>a3 : { (x: 'a'): any; (x: T): any; foo(x: 'a'): any; foo(x: T): any; } (x: 'a'); >x : "a" @@ -149,7 +149,7 @@ var a3: { >x : T foo(x: 'a'); ->foo : { (x: "a"): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: T): any; } >x : "a" foo(x: T); diff --git a/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types b/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types index ee4af1f5d80..21aee39e5b1 100644 --- a/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types +++ b/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types @@ -3,7 +3,7 @@ // All the below should not be errors function foo(x: 'a'); ->foo : { (x: "a"): any; (x: string): any; } +>foo : { (x: 'a'): any; (x: string): any; } >x : "a" function foo(x: string); @@ -18,7 +18,7 @@ class C { >C : C foo(x: 'a'); ->foo : { (x: "a"): any; (x: string): any; } +>foo : { (x: 'a'): any; (x: string): any; } >x : "a" foo(x: string); @@ -34,7 +34,7 @@ class C2 { >C2 : C2 foo(x: 'a'); ->foo : { (x: "a"): any; (x: string): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: string): any; (x: T): any; } >x : "a" foo(x: string); @@ -54,7 +54,7 @@ class C3 { >C3 : C3 foo(x: 'a'); ->foo : { (x: "a"): any; (x: string): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: string): any; (x: T): any; } >x : "a" foo(x: string); @@ -81,7 +81,7 @@ interface I { >x : string foo(x: 'a'); ->foo : { (x: "a"): any; (x: string): any; (x: number): any; } +>foo : { (x: 'a'): any; (x: string): any; (x: number): any; } >x : "a" foo(x: string); @@ -104,7 +104,7 @@ interface I2 { >x : string foo(x: 'a'); ->foo : { (x: "a"): any; (x: string): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: string): any; (x: T): any; } >x : "a" foo(x: string); @@ -127,7 +127,7 @@ interface I3 { >x : T foo(x: 'a'); ->foo : { (x: "a"): any; (x: string): any; (x: T): any; } +>foo : { (x: 'a'): any; (x: string): any; (x: T): any; } >x : "a" foo(x: string); @@ -140,7 +140,7 @@ interface I3 { } var a: { ->a : { (x: string): any; (x: "a"): any; (x: number): any; foo(x: string): any; foo(x: "a"): any; foo(x: number): any; } +>a : { (x: string): any; (x: 'a'): any; (x: number): any; foo(x: string): any; foo(x: 'a'): any; foo(x: number): any; } (x: string); >x : string @@ -156,7 +156,7 @@ var a: { >x : string foo(x: 'a'); ->foo : { (x: string): any; (x: "a"): any; (x: number): any; } +>foo : { (x: string): any; (x: 'a'): any; (x: number): any; } >x : "a" foo(x: number); @@ -165,7 +165,7 @@ var a: { } var a2: { ->a2 : { (x: "a"): any; (x: string): any; (x: T): any; foo(x: string): any; foo(x: "a"): any; foo(x: T): any; } +>a2 : { (x: 'a'): any; (x: string): any; (x: T): any; foo(x: string): any; foo(x: 'a'): any; foo(x: T): any; } (x: 'a'); >x : "a" @@ -181,7 +181,7 @@ var a2: { >x : string foo(x: 'a'); ->foo : { (x: string): any; (x: "a"): any; (x: T): any; } +>foo : { (x: string): any; (x: 'a'): any; (x: T): any; } >x : "a" foo(x: T); @@ -190,7 +190,7 @@ var a2: { } var a3: { ->a3 : { (x: "a"): any; (x: T): any; (x: string): any; foo(x: string): any; foo(x: "a"): any; foo(x: T): any; } +>a3 : { (x: 'a'): any; (x: T): any; (x: string): any; foo(x: string): any; foo(x: 'a'): any; foo(x: T): any; } (x: 'a'); >x : "a" @@ -206,7 +206,7 @@ var a3: { >x : string foo(x: 'a'); ->foo : { (x: string): any; (x: "a"): any; (x: T): any; } +>foo : { (x: string): any; (x: 'a'): any; (x: T): any; } >x : "a" foo(x: T); diff --git a/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.types b/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.types index 18c3d0b0e75..de53ae0d034 100644 --- a/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.types +++ b/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.types @@ -14,6 +14,6 @@ declare function call any>( call(function* (a: 'a') { }); // error, 2nd argument required >call(function* (a: 'a') { }) : any >call : any>(fn: Fn, ...args: Parameters) => any ->function* (a: 'a') { } : (a: "a") => {} +>function* (a: 'a') { } : (a: 'a') => {} >a : "a" diff --git a/tests/baselines/reference/spreadOverwritesProperty.types b/tests/baselines/reference/spreadOverwritesProperty.types index 3118919a5f7..79d04e5febd 100644 --- a/tests/baselines/reference/spreadOverwritesProperty.types +++ b/tests/baselines/reference/spreadOverwritesProperty.types @@ -31,8 +31,8 @@ var unused3 = { b: 1, ...abq } >abq : { a: number; b?: number; } function g(obj: { x: number | undefined }) { ->g : (obj: { x: number; }) => { x: number; } ->obj : { x: number; } +>g : (obj: { x: number | undefined;}) => { x: number | undefined; } +>obj : { x: number | undefined; } >x : number return { x: 1, ...obj }; @@ -42,7 +42,7 @@ function g(obj: { x: number | undefined }) { >obj : { x: number; } } function h(obj: { x: number }) { ->h : (obj: { x: number; }) => { x: number; } +>h : (obj: { x: number;}) => { x: number; } >obj : { x: number; } >x : number diff --git a/tests/baselines/reference/spreadOverwritesPropertyStrict.types b/tests/baselines/reference/spreadOverwritesPropertyStrict.types index b063e28d7e5..72be86e2c6d 100644 --- a/tests/baselines/reference/spreadOverwritesPropertyStrict.types +++ b/tests/baselines/reference/spreadOverwritesPropertyStrict.types @@ -44,7 +44,7 @@ var unused5 = { ...abq, b: 1 } // ok >1 : 1 function g(obj: { x: number | undefined }) { ->g : (obj: { x: number | undefined; }) => { x: number | undefined; } +>g : (obj: { x: number | undefined;}) => { x: number | undefined; } >obj : { x: number | undefined; } >x : number | undefined @@ -55,7 +55,7 @@ function g(obj: { x: number | undefined }) { >obj : { x: number | undefined; } } function f(obj: { x: number } | undefined) { ->f : (obj: { x: number; } | undefined) => { x: number; } +>f : (obj: { x: number;} | undefined) => { x: number; } >obj : { x: number; } | undefined >x : number @@ -66,7 +66,7 @@ function f(obj: { x: number } | undefined) { >obj : { x: number; } | undefined } function h(obj: { x: number } | { x: string }) { ->h : (obj: { x: number; } | { x: string; }) => { x: number; } | { x: string; } +>h : (obj: { x: number;} | { x: string;}) => { x: number; } | { x: string; } >obj : { x: number; } | { x: string; } >x : number >x : string @@ -78,7 +78,7 @@ function h(obj: { x: number } | { x: string }) { >obj : { x: number; } | { x: string; } } function i(b: boolean, t: { command: string, ok: string }) { ->i : (b: boolean, t: { command: string; ok: string; }) => { command: string; ok: string; } | { command: string; } +>i : (b: boolean, t: { command: string; ok: string;}) => { command: string; ok: string; } | { command: string; } >b : boolean >t : { command: string; ok: string; } >command : string @@ -107,7 +107,7 @@ function j() { >"bye" : "bye" } function k(t: { command: string, ok: string }) { ->k : (t: { command: string; ok: string; }) => { command: string; ok: string; spoiler2: boolean; spoiler: boolean; } +>k : (t: { command: string; ok: string;}) => { command: string; ok: string; spoiler2: boolean; spoiler: boolean; } >t : { command: string; ok: string; } >command : string >ok : string diff --git a/tests/baselines/reference/spreadUnion3.types b/tests/baselines/reference/spreadUnion3.types index 9ea23212844..33eec98dc4b 100644 --- a/tests/baselines/reference/spreadUnion3.types +++ b/tests/baselines/reference/spreadUnion3.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/spread/spreadUnion3.ts === function f(x: { y: string } | undefined): { y: string } { ->f : (x: { y: string; } | undefined) => { y: string; } +>f : (x: { y: string;} | undefined) => { y: string;} >x : { y: string; } | undefined >y : string >y : string diff --git a/tests/baselines/reference/spyComparisonChecking.types b/tests/baselines/reference/spyComparisonChecking.types index 3401bc45ac4..c085d2d6ce7 100644 --- a/tests/baselines/reference/spyComparisonChecking.types +++ b/tests/baselines/reference/spyComparisonChecking.types @@ -24,14 +24,14 @@ type SpyObj = T & { } declare function createSpyObj( ->createSpyObj : (name: string, names: (keyof T)[]) => SpyObj +>createSpyObj : (name: string, names: Array) => SpyObj name: string, names: Array): SpyObj; >name : string >names : (keyof T)[] function mock(spyName: string, methodNames: Array): SpyObj { ->mock : (spyName: string, methodNames: (keyof T)[]) => SpyObj +>mock : (spyName: string, methodNames: Array) => SpyObj >spyName : string >methodNames : (keyof T)[] diff --git a/tests/baselines/reference/staticInheritance.types b/tests/baselines/reference/staticInheritance.types index 04c64281ba8..55b65f93865 100644 --- a/tests/baselines/reference/staticInheritance.types +++ b/tests/baselines/reference/staticInheritance.types @@ -1,6 +1,6 @@ === tests/cases/compiler/staticInheritance.ts === function doThing(x: { n: string }) { } ->doThing : (x: { n: string; }) => void +>doThing : (x: { n: string;}) => void >x : { n: string; } >n : string diff --git a/tests/baselines/reference/staticMethodReferencingTypeArgument1.types b/tests/baselines/reference/staticMethodReferencingTypeArgument1.types index 101b37ea9c8..74a896c65fe 100644 --- a/tests/baselines/reference/staticMethodReferencingTypeArgument1.types +++ b/tests/baselines/reference/staticMethodReferencingTypeArgument1.types @@ -17,7 +17,7 @@ module Editor { } static MakeHead(): List { ->MakeHead : () => List +>MakeHead : () => List var entry: List = new List(true, null); // can't access T here >entry : List diff --git a/tests/baselines/reference/strictFunctionTypes1.types b/tests/baselines/reference/strictFunctionTypes1.types index 2edd6e843b3..ac5deab52f3 100644 --- a/tests/baselines/reference/strictFunctionTypes1.types +++ b/tests/baselines/reference/strictFunctionTypes1.types @@ -97,7 +97,7 @@ const x11 = f3(never, fo, fx); // "def" // Repro from #21112 declare function foo(a: ReadonlyArray): T; ->foo : (a: readonly T[]) => T +>foo : (a: ReadonlyArray) => T >a : readonly T[] let x = foo([]); // never @@ -115,7 +115,7 @@ interface B extends A { b: string } >b : string declare function acceptUnion(x: A | number): void; ->acceptUnion : (x: number | A) => void +>acceptUnion : (x: A | number) => void >x : number | A declare function acceptA(x: A): void; diff --git a/tests/baselines/reference/strictTypeofUnionNarrowing.types b/tests/baselines/reference/strictTypeofUnionNarrowing.types index 8cd547bd16b..72cca62d055 100644 --- a/tests/baselines/reference/strictTypeofUnionNarrowing.types +++ b/tests/baselines/reference/strictTypeofUnionNarrowing.types @@ -1,6 +1,6 @@ === tests/cases/compiler/strictTypeofUnionNarrowing.ts === function stringify1(anything: { toString(): string } | undefined): string { ->stringify1 : (anything: { toString(): string; } | undefined) => string +>stringify1 : (anything: { toString(): string;} | undefined) => string >anything : { toString(): string; } | undefined >toString : () => string @@ -35,7 +35,7 @@ function stringify2(anything: {} | undefined): string { } function stringify3(anything: unknown | undefined): string { // should simplify to just `unknown` which should narrow fine ->stringify3 : (anything: unknown) => string +>stringify3 : (anything: unknown | undefined) => string >anything : unknown return typeof anything === "string" ? anything.toUpperCase() : ""; @@ -52,7 +52,7 @@ function stringify3(anything: unknown | undefined): string { // should simplify } function stringify4(anything: { toString?(): string } | undefined): string { ->stringify4 : (anything: { toString?(): string; } | undefined) => string +>stringify4 : (anything: { toString?(): string;} | undefined) => string >anything : { toString?(): string; } | undefined >toString : (() => string) | undefined diff --git a/tests/baselines/reference/stringEnumLiteralTypes1.types b/tests/baselines/reference/stringEnumLiteralTypes1.types index 7fa146aac97..bf7ab159be7 100644 --- a/tests/baselines/reference/stringEnumLiteralTypes1.types +++ b/tests/baselines/reference/stringEnumLiteralTypes1.types @@ -45,7 +45,7 @@ function f1() { } function f2(a: YesNo, b: UnknownYesNo, c: Choice) { ->f2 : (a: YesNo, b: Choice, c: Choice) => void +>f2 : (a: YesNo, b: UnknownYesNo, c: Choice) => void >a : YesNo >b : Choice >c : Choice @@ -147,7 +147,7 @@ declare function g(x: Choice): number; >x : Choice function f5(a: YesNo, b: UnknownYesNo, c: Choice) { ->f5 : (a: YesNo, b: Choice, c: Choice) => void +>f5 : (a: YesNo, b: UnknownYesNo, c: Choice) => void >a : YesNo >b : Choice >c : Choice @@ -244,7 +244,7 @@ function f11(x: YesNo) { } function f12(x: UnknownYesNo) { ->f12 : (x: Choice) => void +>f12 : (x: UnknownYesNo) => void >x : Choice if (x) { @@ -260,7 +260,7 @@ function f12(x: UnknownYesNo) { } function f13(x: UnknownYesNo) { ->f13 : (x: Choice) => void +>f13 : (x: UnknownYesNo) => void >x : Choice if (x === Choice.Yes) { diff --git a/tests/baselines/reference/stringEnumLiteralTypes2.types b/tests/baselines/reference/stringEnumLiteralTypes2.types index 0527d01cf2c..82e35193f03 100644 --- a/tests/baselines/reference/stringEnumLiteralTypes2.types +++ b/tests/baselines/reference/stringEnumLiteralTypes2.types @@ -45,7 +45,7 @@ function f1() { } function f2(a: YesNo, b: UnknownYesNo, c: Choice) { ->f2 : (a: YesNo, b: Choice, c: Choice) => void +>f2 : (a: YesNo, b: UnknownYesNo, c: Choice) => void >a : YesNo >b : Choice >c : Choice @@ -147,7 +147,7 @@ declare function g(x: Choice): number; >x : Choice function f5(a: YesNo, b: UnknownYesNo, c: Choice) { ->f5 : (a: YesNo, b: Choice, c: Choice) => void +>f5 : (a: YesNo, b: UnknownYesNo, c: Choice) => void >a : YesNo >b : Choice >c : Choice @@ -244,7 +244,7 @@ function f11(x: YesNo) { } function f12(x: UnknownYesNo) { ->f12 : (x: Choice) => void +>f12 : (x: UnknownYesNo) => void >x : Choice if (x) { @@ -260,7 +260,7 @@ function f12(x: UnknownYesNo) { } function f13(x: UnknownYesNo) { ->f13 : (x: Choice) => void +>f13 : (x: UnknownYesNo) => void >x : Choice if (x === Choice.Yes) { diff --git a/tests/baselines/reference/stringEnumLiteralTypes3.types b/tests/baselines/reference/stringEnumLiteralTypes3.types index 3c96f1f32b2..27fe0b2fb76 100644 --- a/tests/baselines/reference/stringEnumLiteralTypes3.types +++ b/tests/baselines/reference/stringEnumLiteralTypes3.types @@ -29,7 +29,7 @@ type UnknownYesNo = Choice.Unknown | Choice.Yes | Choice.No; >Choice : any function f1(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f1 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f1 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -57,7 +57,7 @@ function f1(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f2(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f2 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f2 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -85,7 +85,7 @@ function f2(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f3(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f3 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f3 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -113,7 +113,7 @@ function f3(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f4(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f4 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f4 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -141,7 +141,7 @@ function f4(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f5(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f5 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f5 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -233,7 +233,7 @@ function f5(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f6(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f6 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f6 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -325,7 +325,7 @@ function f6(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f7(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { ->f7 : (a: Choice.Yes, b: YesNo, c: Choice, d: Choice) => void +>f7 : (a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) => void >a : Choice.Yes >b : YesNo >c : Choice @@ -413,7 +413,7 @@ function f7(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) { } function f10(x: Yes): Yes { ->f10 : (x: Choice.Yes) => Choice.Yes +>f10 : (x: Yes) => Yes >x : Choice.Yes switch (x) { @@ -471,7 +471,7 @@ function f11(x: YesNo): YesNo { } function f12(x: UnknownYesNo): UnknownYesNo { ->f12 : (x: Choice) => Choice +>f12 : (x: UnknownYesNo) => UnknownYesNo >x : Choice switch (x) { diff --git a/tests/baselines/reference/stringLiteralType.types b/tests/baselines/reference/stringLiteralType.types index affa995c2f3..6a47e0ee79a 100644 --- a/tests/baselines/reference/stringLiteralType.types +++ b/tests/baselines/reference/stringLiteralType.types @@ -3,7 +3,7 @@ var x: 'hi'; >x : "hi" function f(x: 'hi'); ->f : { (x: "hi"): any; (x: string): any; } +>f : { (x: 'hi'): any; (x: string): any; } >x : "hi" function f(x: string); diff --git a/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types b/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types index be2231fdfb3..f5216a5b9ad 100644 --- a/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types +++ b/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types @@ -3,7 +3,7 @@ // ok function f1(x: 'a'); ->f1 : { (x: "a"): any; (x: string): any; } +>f1 : { (x: 'a'): any; (x: string): any; } >x : "a" function f1(x: string); @@ -16,7 +16,7 @@ function f1(x: string) { } // ok function f2(x: 'a'); ->f2 : { (x: "a"): any; (x: any): any; } +>f2 : { (x: 'a'): any; (x: any): any; } >x : "a" function f2(x: any); @@ -29,7 +29,7 @@ function f2(x: any) { } // errors function f3(x: 'a'); ->f3 : { (x: "a"): any; (x: Object): any; } +>f3 : { (x: 'a'): any; (x: Object): any; } >x : "a" function f3(x: Object); @@ -41,7 +41,7 @@ function f3(x: any) { } >x : any function f4(x: 'a'); ->f4 : { (x: "a"): any; (x: {}): any; } +>f4 : { (x: 'a'): any; (x: {}): any; } >x : "a" function f4(x: {}); @@ -53,7 +53,7 @@ function f4(x: any) { } >x : any function f5(x: 'a'); ->f5 : { (x: "a"): any; (x: number): any; } +>f5 : { (x: 'a'): any; (x: number): any; } >x : "a" function f5(x: number); @@ -65,7 +65,7 @@ function f5(x: any) { } >x : any function f6(x: 'a'); ->f6 : { (x: "a"): any; (x: boolean): any; } +>f6 : { (x: 'a'): any; (x: boolean): any; } >x : "a" function f6(x: boolean); @@ -77,7 +77,7 @@ function f6(x: any) { } >x : any function f7(x: 'a'); ->f7 : { (x: "a"): any; (x: Date): any; } +>f7 : { (x: 'a'): any; (x: Date): any; } >x : "a" function f7(x: Date); @@ -89,7 +89,7 @@ function f7(x: any) { } >x : any function f8(x: 'a'); ->f8 : { (x: "a"): any; (x: RegExp): any; } +>f8 : { (x: 'a'): any; (x: RegExp): any; } >x : "a" function f8(x: RegExp); @@ -101,7 +101,7 @@ function f8(x: any) { } >x : any function f9(x: 'a'); ->f9 : { (x: "a"): any; (x: () => {}): any; } +>f9 : { (x: 'a'): any; (x: () => {}): any; } >x : "a" function f9(x: () => {}); @@ -224,7 +224,7 @@ class C implements String { // BUG 831846 function f10(x: 'a'); ->f10 : { (x: "a"): any; (x: C): any; } +>f10 : { (x: 'a'): any; (x: C): any; } >x : "a" function f10(x: C); @@ -242,7 +242,7 @@ interface I extends String { // BUG 831846 function f11(x: 'a'); ->f11 : { (x: "a"): any; (x: I): any; } +>f11 : { (x: 'a'): any; (x: I): any; } >x : "a" function f11(x: I); @@ -254,7 +254,7 @@ function f11(x: any) { } >x : any function f12(x: 'a'); ->f12 : { (x: "a"): any; (x: T): any; } +>f12 : { (x: 'a'): any; (x: T): any; } >x : "a" function f12(x: T); @@ -266,7 +266,7 @@ function f12(x: any) { } >x : any function f13(x: 'a'); ->f13 : { (x: "a"): any; (x: T): any; } +>f13 : { (x: 'a'): any; (x: T): any; } >x : "a" function f13(x: T); @@ -282,7 +282,7 @@ enum E { A } >A : E.A function f14(x: 'a'); ->f14 : { (x: "a"): any; (x: E): any; } +>f14 : { (x: 'a'): any; (x: E): any; } >x : "a" function f14(x: E); @@ -294,7 +294,7 @@ function f14(x: any) { } >x : any function f15(x: 'a'); ->f15 : { (x: "a"): any; (x: U): any; } +>f15 : { (x: 'a'): any; (x: U): any; } >x : "a" function f15(x: U); @@ -306,7 +306,7 @@ function f15(x: any) { } >x : any function f16(x: 'a'); ->f16 : { (x: "a"): any; (x: U): any; } +>f16 : { (x: 'a'): any; (x: U): any; } >x : "a" function f16(x: U); diff --git a/tests/baselines/reference/stringLiteralTypesAsTags03.types b/tests/baselines/reference/stringLiteralTypesAsTags03.types index ef675ab39e7..517eaab2974 100644 --- a/tests/baselines/reference/stringLiteralTypesAsTags03.types +++ b/tests/baselines/reference/stringLiteralTypesAsTags03.types @@ -28,12 +28,12 @@ interface B extends Entity { // That way, we can avoid the need to look for a compatible overload // signature and simply check compatibility with the implementation. function hasKind(entity: Entity, kind: "A" | "A"): entity is A; ->hasKind : { (entity: Entity, kind: "A"): entity is A; (entity: Entity, kind: "B"): entity is B; } +>hasKind : { (entity: Entity, kind: "A" | "A"): entity is A; (entity: Entity, kind: "B"): entity is B; } >entity : Entity >kind : "A" function hasKind(entity: Entity, kind: "B" | "B"): entity is B; ->hasKind : { (entity: Entity, kind: "A"): entity is A; (entity: Entity, kind: "B"): entity is B; } +>hasKind : { (entity: Entity, kind: "A"): entity is A; (entity: Entity, kind: "B" | "B"): entity is B; } >entity : Entity >kind : "B" diff --git a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures.types b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures.types index 31ef3ce3f68..da855318503 100644 --- a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures.types +++ b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures.types @@ -2,18 +2,18 @@ // String literal types are only valid in overload signatures function foo(x: 'hi') { } ->foo : (x: "hi") => void +>foo : (x: 'hi') => void >x : "hi" var f = function foo(x: 'hi') { } ->f : (x: "hi") => void ->function foo(x: 'hi') { } : (x: "hi") => void ->foo : (x: "hi") => void +>f : (x: 'hi') => void +>function foo(x: 'hi') { } : (x: 'hi') => void +>foo : (x: 'hi') => void >x : "hi" var f2 = (x: 'hi', y: 'hi') => { } ->f2 : (x: "hi", y: "hi") => void ->(x: 'hi', y: 'hi') => { } : (x: "hi", y: "hi") => void +>f2 : (x: 'hi', y: 'hi') => void +>(x: 'hi', y: 'hi') => { } : (x: 'hi', y: 'hi') => void >x : "hi" >y : "hi" @@ -21,7 +21,7 @@ class C { >C : C foo(x: 'hi') { } ->foo : (x: "hi") => void +>foo : (x: 'hi') => void >x : "hi" } @@ -30,40 +30,40 @@ interface I { >x : "hi" foo(x: 'hi', y: 'hi'); ->foo : (x: "hi", y: "hi") => any +>foo : (x: 'hi', y: 'hi') => any >x : "hi" >y : "hi" } var a: { ->a : { (x: "hi"): any; foo(x: "hi"): any; } +>a : { (x: 'hi'): any; foo(x: 'hi'): any; } (x: 'hi'); >x : "hi" foo(x: 'hi'); ->foo : (x: "hi") => any +>foo : (x: 'hi') => any >x : "hi" } var b = { ->b : { foo(x: "hi"): void; a: (x: "hi", y: "hi") => void; b: (x: "hi") => void; } ->{ foo(x: 'hi') { }, a: function foo(x: 'hi', y: 'hi') { }, b: (x: 'hi') => { }} : { foo(x: "hi"): void; a: (x: "hi", y: "hi") => void; b: (x: "hi") => void; } +>b : { foo(x: 'hi'): void; a: (x: 'hi', y: 'hi') => void; b: (x: 'hi') => void; } +>{ foo(x: 'hi') { }, a: function foo(x: 'hi', y: 'hi') { }, b: (x: 'hi') => { }} : { foo(x: 'hi'): void; a: (x: 'hi', y: 'hi') => void; b: (x: 'hi') => void; } foo(x: 'hi') { }, ->foo : (x: "hi") => void +>foo : (x: 'hi') => void >x : "hi" a: function foo(x: 'hi', y: 'hi') { }, ->a : (x: "hi", y: "hi") => void ->function foo(x: 'hi', y: 'hi') { } : (x: "hi", y: "hi") => void ->foo : (x: "hi", y: "hi") => void +>a : (x: 'hi', y: 'hi') => void +>function foo(x: 'hi', y: 'hi') { } : (x: 'hi', y: 'hi') => void +>foo : (x: 'hi', y: 'hi') => void >x : "hi" >y : "hi" b: (x: 'hi') => { } ->b : (x: "hi") => void ->(x: 'hi') => { } : (x: "hi") => void +>b : (x: 'hi') => void +>(x: 'hi') => { } : (x: 'hi') => void >x : "hi" } diff --git a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.types b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.types index ed461631d09..14afe3d290b 100644 --- a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.types +++ b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.types @@ -29,18 +29,18 @@ interface I { >x : "hi" foo(x: 'a', y: 'a'); ->foo : { (x: "a", y: "a"): any; (x: "hi", y: "hi"): any; } +>foo : { (x: 'a', y: 'a'): any; (x: "hi", y: "hi"): any; } >x : "a" >y : "a" foo(x: 'hi', y: 'hi'); ->foo : { (x: "a", y: "a"): any; (x: "hi", y: "hi"): any; } +>foo : { (x: "a", y: "a"): any; (x: 'hi', y: 'hi'): any; } >x : "hi" >y : "hi" } var a: { ->a : { (x: "hi"): any; (x: "a"): any; foo(x: "hi"): any; foo(x: "a"): any; } +>a : { (x: 'hi'): any; (x: 'a'): any; foo(x: 'hi'): any; foo(x: 'a'): any; } (x: 'hi'); >x : "hi" @@ -49,24 +49,24 @@ var a: { >x : "a" foo(x: 'hi'); ->foo : { (x: "hi"): any; (x: "a"): any; } +>foo : { (x: 'hi'): any; (x: "a"): any; } >x : "hi" foo(x: 'a'); ->foo : { (x: "hi"): any; (x: "a"): any; } +>foo : { (x: "hi"): any; (x: 'a'): any; } >x : "a" } var b = { ->b : { foo(x: "hi"): void; foo(x: "a"): void; } ->{ foo(x: 'hi') { }, foo(x: 'a') { },} : { foo(x: "hi"): void; foo(x: "a"): void; } +>b : { foo(x: 'hi'): void; foo(x: 'a'): void; } +>{ foo(x: 'hi') { }, foo(x: 'a') { },} : { foo(x: 'hi'): void; foo(x: 'a'): void; } foo(x: 'hi') { }, ->foo : { (x: "hi"): void; (x: "a"): void; } +>foo : { (x: 'hi'): void; (x: "a"): void; } >x : "hi" foo(x: 'a') { }, ->foo : { (x: "hi"): void; (x: "a"): void; } +>foo : { (x: "hi"): void; (x: 'a'): void; } >x : "a" } diff --git a/tests/baselines/reference/stringLiteralTypesOverloads01.types b/tests/baselines/reference/stringLiteralTypesOverloads01.types index 50cec55a9be..cffe097468b 100644 --- a/tests/baselines/reference/stringLiteralTypesOverloads01.types +++ b/tests/baselines/reference/stringLiteralTypesOverloads01.types @@ -15,19 +15,19 @@ function getFalsyPrimitive(x: "boolean"): boolean; >x : "boolean" function getFalsyPrimitive(x: "boolean" | "string"): boolean | string; ->getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: PrimitiveName): string | number | boolean; } +>getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "boolean" | "string"): boolean | string; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: PrimitiveName): string | number | boolean; } >x : "string" | "boolean" function getFalsyPrimitive(x: "boolean" | "number"): boolean | number; ->getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: PrimitiveName): string | number | boolean; } +>getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "boolean" | "number"): boolean | number; (x: "string" | "number"): string | number; (x: PrimitiveName): string | number | boolean; } >x : "number" | "boolean" function getFalsyPrimitive(x: "number" | "string"): number | string; ->getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: PrimitiveName): string | number | boolean; } +>getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "number" | "string"): number | string; (x: PrimitiveName): string | number | boolean; } >x : "string" | "number" function getFalsyPrimitive(x: "number" | "string" | "boolean"): number | string | boolean; ->getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: PrimitiveName): string | number | boolean; } +>getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: "number" | "string" | "boolean"): number | string | boolean; } >x : PrimitiveName function getFalsyPrimitive(x: PrimitiveName): number | string | boolean { diff --git a/tests/baselines/reference/stringLiteralTypesOverloads02.types b/tests/baselines/reference/stringLiteralTypesOverloads02.types index 93c3316bc3a..463b845ed25 100644 --- a/tests/baselines/reference/stringLiteralTypesOverloads02.types +++ b/tests/baselines/reference/stringLiteralTypesOverloads02.types @@ -12,19 +12,19 @@ function getFalsyPrimitive(x: "boolean"): boolean; >x : "boolean" function getFalsyPrimitive(x: "boolean" | "string"): boolean | string; ->getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: "string" | "number" | "boolean"): string | number | boolean; } +>getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "boolean" | "string"): boolean | string; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: "string" | "number" | "boolean"): string | number | boolean; } >x : "string" | "boolean" function getFalsyPrimitive(x: "boolean" | "number"): boolean | number; ->getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: "string" | "number" | "boolean"): string | number | boolean; } +>getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "boolean" | "number"): boolean | number; (x: "string" | "number"): string | number; (x: "string" | "number" | "boolean"): string | number | boolean; } >x : "number" | "boolean" function getFalsyPrimitive(x: "number" | "string"): number | string; ->getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: "string" | "number" | "boolean"): string | number | boolean; } +>getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "number" | "string"): number | string; (x: "string" | "number" | "boolean"): string | number | boolean; } >x : "string" | "number" function getFalsyPrimitive(x: "number" | "string" | "boolean"): number | string | boolean; ->getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: "string" | "number" | "boolean"): string | number | boolean; } +>getFalsyPrimitive : { (x: "string"): string; (x: "number"): number; (x: "boolean"): boolean; (x: "string" | "boolean"): string | boolean; (x: "number" | "boolean"): number | boolean; (x: "string" | "number"): string | number; (x: "number" | "string" | "boolean"): number | string | boolean; } >x : "string" | "number" | "boolean" function getFalsyPrimitive(x: string): string | number | boolean { diff --git a/tests/baselines/reference/subclassThisTypeAssignable.types b/tests/baselines/reference/subclassThisTypeAssignable.types index 9608613f1ff..019f669c22e 100644 --- a/tests/baselines/reference/subclassThisTypeAssignable.types +++ b/tests/baselines/reference/subclassThisTypeAssignable.types @@ -37,7 +37,7 @@ class C implements ClassComponent { >C : C view(v: Vnode) { return 0; } ->view : (v: Vnode>) => number +>view : (v: Vnode) => number >v : Vnode> >0 : 0 } diff --git a/tests/baselines/reference/subtypingWithCallSignatures2.types b/tests/baselines/reference/subtypingWithCallSignatures2.types index c8ac07429f3..51bdbc5ed98 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures2.types +++ b/tests/baselines/reference/subtypingWithCallSignatures2.types @@ -21,7 +21,7 @@ class OtherDerived extends Base { bing: string; } >bing : string declare function foo1(a: (x: number) => number[]): typeof a; ->foo1 : { (a: (x: number) => number[]): (x: number) => number[]; (a: any): any; } +>foo1 : { (a: (x: number) => number[]): typeof a; (a: any): any; } >a : (x: number) => number[] >x : number >a : (x: number) => number[] @@ -31,7 +31,7 @@ declare function foo1(a: any): any; >a : any declare function foo2(a: (x: number) => string[]): typeof a; ->foo2 : { (a: (x: number) => string[]): (x: number) => string[]; (a: any): any; } +>foo2 : { (a: (x: number) => string[]): typeof a; (a: any): any; } >a : (x: number) => string[] >x : number >a : (x: number) => string[] @@ -41,7 +41,7 @@ declare function foo2(a: any): any; >a : any declare function foo3(a: (x: number) => void): typeof a; ->foo3 : { (a: (x: number) => void): (x: number) => void; (a: any): any; } +>foo3 : { (a: (x: number) => void): typeof a; (a: any): any; } >a : (x: number) => void >x : number >a : (x: number) => void @@ -51,7 +51,7 @@ declare function foo3(a: any): any; >a : any declare function foo4(a: (x: string, y: number) => string): typeof a; ->foo4 : { (a: (x: string, y: number) => string): (x: string, y: number) => string; (a: any): any; } +>foo4 : { (a: (x: string, y: number) => string): typeof a; (a: any): any; } >a : (x: string, y: number) => string >x : string >y : number @@ -62,7 +62,7 @@ declare function foo4(a: any): any; >a : any declare function foo5(a: (x: (arg: string) => number) => string): typeof a; ->foo5 : { (a: (x: (arg: string) => number) => string): (x: (arg: string) => number) => string; (a: any): any; } +>foo5 : { (a: (x: (arg: string) => number) => string): typeof a; (a: any): any; } >a : (x: (arg: string) => number) => string >x : (arg: string) => number >arg : string @@ -73,7 +73,7 @@ declare function foo5(a: any): any; >a : any declare function foo6(a: (x: (arg: Base) => Derived) => Base): typeof a; ->foo6 : { (a: (x: (arg: Base) => Derived) => Base): (x: (arg: Base) => Derived) => Base; (a: any): any; } +>foo6 : { (a: (x: (arg: Base) => Derived) => Base): typeof a; (a: any): any; } >a : (x: (arg: Base) => Derived) => Base >x : (arg: Base) => Derived >arg : Base @@ -84,7 +84,7 @@ declare function foo6(a: any): any; >a : any declare function foo7(a: (x: (arg: Base) => Derived) => (r: Base) => Derived): typeof a; ->foo7 : { (a: (x: (arg: Base) => Derived) => (r: Base) => Derived): (x: (arg: Base) => Derived) => (r: Base) => Derived; (a: any): any; } +>foo7 : { (a: (x: (arg: Base) => Derived) => (r: Base) => Derived): typeof a; (a: any): any; } >a : (x: (arg: Base) => Derived) => (r: Base) => Derived >x : (arg: Base) => Derived >arg : Base @@ -96,7 +96,7 @@ declare function foo7(a: any): any; >a : any declare function foo8(a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a; ->foo8 : { (a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; (a: any): any; } +>foo8 : { (a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a; (a: any): any; } >a : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived >x : (arg: Base) => Derived >arg : Base @@ -110,7 +110,7 @@ declare function foo8(a: any): any; >a : any declare function foo9(a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a; ->foo9 : { (a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; (a: any): any; } +>foo9 : { (a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a; (a: any): any; } >a : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived >x : (arg: Base) => Derived >arg : Base @@ -124,7 +124,7 @@ declare function foo9(a: any): any; >a : any declare function foo10(a: (...x: Derived[]) => Derived): typeof a; ->foo10 : { (a: (...x: Derived[]) => Derived): (...x: Derived[]) => Derived; (a: any): any; } +>foo10 : { (a: (...x: Derived[]) => Derived): typeof a; (a: any): any; } >a : (...x: Derived[]) => Derived >x : Derived[] >a : (...x: Derived[]) => Derived @@ -134,8 +134,8 @@ declare function foo10(a: any): any; >a : any declare function foo11(a: (x: { foo: string }, y: { foo: string; bar: string }) => Base): typeof a; ->foo11 : { (a: (x: { foo: string; }, y: { foo: string; bar: string; }) => Base): (x: { foo: string; }, y: { foo: string; bar: string; }) => Base; (a: any): any; } ->a : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>foo11 : { (a: (x: { foo: string;}, y: { foo: string; bar: string;}) => Base): typeof a; (a: any): any; } +>a : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -148,8 +148,8 @@ declare function foo11(a: any): any; >a : any declare function foo12(a: (x: Array, y: Array) => Array): typeof a; ->foo12 : { (a: (x: Base[], y: Derived2[]) => Derived[]): (x: Base[], y: Derived2[]) => Derived[]; (a: any): any; } ->a : (x: Base[], y: Derived2[]) => Derived[] +>foo12 : { (a: (x: Array, y: Array) => Array): typeof a; (a: any): any; } +>a : (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] >a : (x: Base[], y: Derived2[]) => Derived[] @@ -159,8 +159,8 @@ declare function foo12(a: any): any; >a : any declare function foo13(a: (x: Array, y: Array) => Array): typeof a; ->foo13 : { (a: (x: Base[], y: Derived[]) => Derived[]): (x: Base[], y: Derived[]) => Derived[]; (a: any): any; } ->a : (x: Base[], y: Derived[]) => Derived[] +>foo13 : { (a: (x: Array, y: Array) => Array): typeof a; (a: any): any; } +>a : (x: Array, y: Array) => Array >x : Base[] >y : Derived[] >a : (x: Base[], y: Derived[]) => Derived[] @@ -170,8 +170,8 @@ declare function foo13(a: any): any; >a : any declare function foo14(a: (x: { a: string; b: number }) => Object): typeof a; ->foo14 : { (a: (x: { a: string; b: number; }) => Object): (x: { a: string; b: number; }) => Object; (a: any): any; } ->a : (x: { a: string; b: number; }) => Object +>foo14 : { (a: (x: { a: string; b: number;}) => Object): typeof a; (a: any): any; } +>a : (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -182,7 +182,7 @@ declare function foo14(a: any): any; >a : any declare function foo15(a: { ->foo15 : { (a: { (x: number): number[]; (x: string): string[]; }): { (x: number): number[]; (x: string): string[]; }; (a: any): any; } +>foo15 : { (a: { (x: number): number[]; (x: string): string[]; }): typeof a; (a: any): any; } >a : { (x: number): number[]; (x: string): string[]; } (x: number): number[]; @@ -199,7 +199,7 @@ declare function foo15(a: any): any; >a : any declare function foo16(a: { ->foo16 : { (a: { (x: T): number[]; (x: U): number[]; }): { (x: T): number[]; (x: U): number[]; }; (a: any): any; } +>foo16 : { (a: { (x: T): number[]; (x: U): number[]; }): typeof a; (a: any): any; } >a : { (x: T): number[]; (x: U): number[]; } (x: T): number[]; @@ -216,7 +216,7 @@ declare function foo16(a: any): any; >a : any declare function foo17(a: { ->foo17 : { (a: { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; }): { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; }; (a: any): any; } +>foo17 : { (a: { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; }): typeof a; (a: any): any; } >a : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } (x: (a: number) => number): number[]; @@ -235,7 +235,7 @@ declare function foo17(a: any): any; >a : any declare function foo18(a: { ->foo18 : { (a: { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; }): { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; }; (a: any): any; } +>foo18 : { (a: { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; }): typeof a; (a: any): any; } >a : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } (x: { @@ -538,11 +538,11 @@ var r8b = [r8arg2, r8arg1]; >r8arg1 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U var r9arg1 = (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => null; ->r9arg1 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U ->(x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => null : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>r9arg1 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U +>(x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => null : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -622,8 +622,8 @@ var r11arg1 = (x: T, y: T) => x; >x : T var r11arg2 = (x: { foo: string }, y: { foo: string; bar: string }) => null; ->r11arg2 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base ->(x: { foo: string }, y: { foo: string; bar: string }) => null : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>r11arg2 : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base +>(x: { foo: string }, y: { foo: string; bar: string }) => null : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -651,16 +651,16 @@ var r11b = [r11arg2, r11arg1]; >r11arg1 : (x: T, y: T) => T var r12arg1 = >(x: Array, y: T) => >null; ->r12arg1 : (x: Base[], y: T) => Derived[] ->>(x: Array, y: T) => >null : (x: Base[], y: T) => Derived[] +>r12arg1 : (x: Array, y: T) => Derived[] +>>(x: Array, y: T) => >null : (x: Array, y: T) => Derived[] >x : Base[] >y : T >>null : Derived[] >null : null var r12arg2 = (x: Array, y: Array) => >null; ->r12arg2 : (x: Base[], y: Derived2[]) => Derived[] ->(x: Array, y: Array) => >null : (x: Base[], y: Derived2[]) => Derived[] +>r12arg2 : (x: Array, y: Array) => Derived[] +>(x: Array, y: Array) => >null : (x: Array, y: Array) => Derived[] >x : Base[] >y : Derived2[] >>null : Derived[] @@ -685,15 +685,15 @@ var r12b = [r12arg2, r12arg1]; >r12arg1 : (x: Base[], y: T) => Derived[] var r13arg1 = >(x: Array, y: T) => y; ->r13arg1 : (x: Base[], y: T) => T ->>(x: Array, y: T) => y : (x: Base[], y: T) => T +>r13arg1 : (x: Array, y: T) => T +>>(x: Array, y: T) => y : (x: Array, y: T) => T >x : Base[] >y : T >y : T var r13arg2 = (x: Array, y: Array) => >null; ->r13arg2 : (x: Base[], y: Derived[]) => Derived[] ->(x: Array, y: Array) => >null : (x: Base[], y: Derived[]) => Derived[] +>r13arg2 : (x: Array, y: Array) => Derived[] +>(x: Array, y: Array) => >null : (x: Array, y: Array) => Derived[] >x : Base[] >y : Derived[] >>null : Derived[] @@ -728,8 +728,8 @@ var r14arg1 = (x: { a: T; b: T }) => x.a; >a : T var r14arg2 = (x: { a: string; b: number }) => null; ->r14arg2 : (x: { a: string; b: number; }) => Object ->(x: { a: string; b: number }) => null : (x: { a: string; b: number; }) => Object +>r14arg2 : (x: { a: string; b: number;}) => Object +>(x: { a: string; b: number }) => null : (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number diff --git a/tests/baselines/reference/subtypingWithCallSignatures3.types b/tests/baselines/reference/subtypingWithCallSignatures3.types index dd84bbd0bf3..7116d132b7d 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures3.types +++ b/tests/baselines/reference/subtypingWithCallSignatures3.types @@ -71,8 +71,8 @@ module Errors { >a2 : any declare function foo11(a2: (x: { foo: string }, y: { foo: string; bar: string }) => Base): typeof a2; ->foo11 : { (a2: (x: { foo: string; }, y: { foo: string; bar: string; }) => Base): (x: { foo: string; }, y: { foo: string; bar: string; }) => Base; (a2: any): any; } ->a2 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>foo11 : { (a2: (x: { foo: string;}, y: { foo: string; bar: string;}) => Base): (x: { foo: string;}, y: { foo: string; bar: string;}) => Base; (a2: any): any; } +>a2 : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -85,8 +85,8 @@ module Errors { >a2 : any declare function foo12(a2: (x: Array, y: Array) => Array): typeof a2; ->foo12 : { (a2: (x: Base[], y: Derived2[]) => Derived[]): (x: Base[], y: Derived2[]) => Derived[]; (a2: any): any; } ->a2 : (x: Base[], y: Derived2[]) => Derived[] +>foo12 : { (a2: (x: Array, y: Array) => Array): (x: Array, y: Array) => Array; (a2: any): any; } +>a2 : (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] >a2 : (x: Base[], y: Derived2[]) => Derived[] @@ -96,8 +96,8 @@ module Errors { >a2 : any declare function foo15(a2: (x: { a: string; b: number }) => number): typeof a2; ->foo15 : { (a2: (x: { a: string; b: number; }) => number): (x: { a: string; b: number; }) => number; (a2: any): any; } ->a2 : (x: { a: string; b: number; }) => number +>foo15 : { (a2: (x: { a: string; b: number;}) => number): (x: { a: string; b: number;}) => number; (a2: any): any; } +>a2 : (x: { a: string; b: number;}) => number >x : { a: string; b: number; } >a : string >b : number @@ -242,11 +242,11 @@ module Errors { >r2arg2 : (x: (arg: Base) => Derived) => (r: Base) => Derived2 var r3arg = (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => null; ->r3arg : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U ->(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => null : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U +>r3arg : (x: (arg: T) => U, y: (arg2: { foo: number;}) => U) => (r: T) => U +>(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => null : (x: (arg: T) => U, y: (arg2: { foo: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: number; }) => U +>y : (arg2: { foo: number;}) => U >arg2 : { foo: number; } >foo : number >(r: T) => null : (r: T) => U @@ -325,8 +325,8 @@ module Errors { >null : null var r5arg2 = (x: { foo: string }, y: { foo: string; bar: string }) => null; ->r5arg2 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base ->(x: { foo: string }, y: { foo: string; bar: string }) => null : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>r5arg2 : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base +>(x: { foo: string }, y: { foo: string; bar: string }) => null : (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -354,16 +354,16 @@ module Errors { >r5arg2 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base var r6arg = (x: Array, y: Array) => >null; ->r6arg : (x: Base[], y: Derived2[]) => Derived[] ->(x: Array, y: Array) => >null : (x: Base[], y: Derived2[]) => Derived[] +>r6arg : (x: Array, y: Array) => Derived[] +>(x: Array, y: Array) => >null : (x: Array, y: Array) => Derived[] >x : Base[] >y : Derived2[] >>null : Derived[] >null : null var r6arg2 = >(x: Array, y: Array) => null; ->r6arg2 : (x: Base[], y: Base[]) => T ->>(x: Array, y: Array) => null : (x: Base[], y: Base[]) => T +>r6arg2 : (x: Array, y: Array) => T +>>(x: Array, y: Array) => null : (x: Array, y: Array) => T >x : Base[] >y : Base[] >null : T @@ -397,8 +397,8 @@ module Errors { >null : null var r7arg2 = (x: { a: string; b: number }) => 1; ->r7arg2 : (x: { a: string; b: number; }) => number ->(x: { a: string; b: number }) => 1 : (x: { a: string; b: number; }) => number +>r7arg2 : (x: { a: string; b: number;}) => number +>(x: { a: string; b: number }) => 1 : (x: { a: string; b: number;}) => number >x : { a: string; b: number; } >a : string >b : number diff --git a/tests/baselines/reference/subtypingWithCallSignaturesA.types b/tests/baselines/reference/subtypingWithCallSignaturesA.types index 66f0685db84..95b4c2d6bc4 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesA.types +++ b/tests/baselines/reference/subtypingWithCallSignaturesA.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesA.ts === declare function foo3(cb: (x: number) => number): typeof cb; ->foo3 : (cb: (x: number) => number) => (x: number) => number +>foo3 : (cb: (x: number) => number) => typeof cb >cb : (x: number) => number >x : number >cb : (x: number) => number diff --git a/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.types b/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.types index 984af284b99..ef8ad6a38b7 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.types +++ b/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.types @@ -57,7 +57,7 @@ module MemberWithCallSignature { interface Base { // T // M's a: { ->a : { (x: "a"): void; (x: string): void; } +>a : { (x: 'a'): void; (x: string): void; } (x: 'a'): void; >x : "a" @@ -66,7 +66,7 @@ module MemberWithCallSignature { >x : string } a2: { ->a2 : { (x: "a", y: number): void; (x: string, y: number): void; } +>a2 : { (x: 'a', y: number): void; (x: string, y: number): void; } (x: 'a', y: number): void; >x : "a" @@ -101,7 +101,7 @@ module MemberWithCallSignature { interface Base2 { // T // M's a: { ->a : { (x: "a"): number; (x: string): number; } +>a : { (x: 'a'): number; (x: string): number; } (x: 'a'): number; >x : "a" diff --git a/tests/baselines/reference/subtypingWithConstructSignatures2.types b/tests/baselines/reference/subtypingWithConstructSignatures2.types index 0d2ff802911..ef65ae549c7 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures2.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures2.types @@ -21,7 +21,7 @@ class OtherDerived extends Base { bing: string; } >bing : string declare function foo1(a: new (x: number) => number[]): typeof a; ->foo1 : { (a: new (x: number) => number[]): new (x: number) => number[]; (a: any): any; } +>foo1 : { (a: new (x: number) => number[]): typeof a; (a: any): any; } >a : new (x: number) => number[] >x : number >a : new (x: number) => number[] @@ -31,7 +31,7 @@ declare function foo1(a: any): any; >a : any declare function foo2(a: new (x: number) => string[]): typeof a; ->foo2 : { (a: new (x: number) => string[]): new (x: number) => string[]; (a: any): any; } +>foo2 : { (a: new (x: number) => string[]): typeof a; (a: any): any; } >a : new (x: number) => string[] >x : number >a : new (x: number) => string[] @@ -41,7 +41,7 @@ declare function foo2(a: any): any; >a : any declare function foo3(a: new (x: number) => void): typeof a; ->foo3 : { (a: new (x: number) => void): new (x: number) => void; (a: any): any; } +>foo3 : { (a: new (x: number) => void): typeof a; (a: any): any; } >a : new (x: number) => void >x : number >a : new (x: number) => void @@ -51,7 +51,7 @@ declare function foo3(a: any): any; >a : any declare function foo4(a: new (x: string, y: number) => string): typeof a; ->foo4 : { (a: new (x: string, y: number) => string): new (x: string, y: number) => string; (a: any): any; } +>foo4 : { (a: new (x: string, y: number) => string): typeof a; (a: any): any; } >a : new (x: string, y: number) => string >x : string >y : number @@ -62,7 +62,7 @@ declare function foo4(a: any): any; >a : any declare function foo5(a: new (x: new (arg: string) => number) => string): typeof a; ->foo5 : { (a: new (x: new (arg: string) => number) => string): new (x: new (arg: string) => number) => string; (a: any): any; } +>foo5 : { (a: new (x: new (arg: string) => number) => string): typeof a; (a: any): any; } >a : new (x: new (arg: string) => number) => string >x : new (arg: string) => number >arg : string @@ -73,7 +73,7 @@ declare function foo5(a: any): any; >a : any declare function foo6(a: new (x: new (arg: Base) => Derived) => Base): typeof a; ->foo6 : { (a: new (x: new (arg: Base) => Derived) => Base): new (x: new (arg: Base) => Derived) => Base; (a: any): any; } +>foo6 : { (a: new (x: new (arg: Base) => Derived) => Base): typeof a; (a: any): any; } >a : new (x: new (arg: Base) => Derived) => Base >x : new (arg: Base) => Derived >arg : Base @@ -84,7 +84,7 @@ declare function foo6(a: any): any; >a : any declare function foo7(a: new (x: new (arg: Base) => Derived) => new (r: Base) => Derived): typeof a; ->foo7 : { (a: new (x: new (arg: Base) => Derived) => new (r: Base) => Derived): new (x: new (arg: Base) => Derived) => new (r: Base) => Derived; (a: any): any; } +>foo7 : { (a: new (x: new (arg: Base) => Derived) => new (r: Base) => Derived): typeof a; (a: any): any; } >a : new (x: new (arg: Base) => Derived) => new (r: Base) => Derived >x : new (arg: Base) => Derived >arg : Base @@ -96,7 +96,7 @@ declare function foo7(a: any): any; >a : any declare function foo8(a: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): typeof a; ->foo8 : { (a: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived; (a: any): any; } +>foo8 : { (a: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): typeof a; (a: any): any; } >a : new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived >x : new (arg: Base) => Derived >arg : Base @@ -110,7 +110,7 @@ declare function foo8(a: any): any; >a : any declare function foo9(a: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): typeof a; ->foo9 : { (a: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived; (a: any): any; } +>foo9 : { (a: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): typeof a; (a: any): any; } >a : new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived >x : new (arg: Base) => Derived >arg : Base @@ -124,7 +124,7 @@ declare function foo9(a: any): any; >a : any declare function foo10(a: new (...x: Derived[]) => Derived): typeof a; ->foo10 : { (a: new (...x: Derived[]) => Derived): new (...x: Derived[]) => Derived; (a: any): any; } +>foo10 : { (a: new (...x: Derived[]) => Derived): typeof a; (a: any): any; } >a : new (...x: Derived[]) => Derived >x : Derived[] >a : new (...x: Derived[]) => Derived @@ -134,8 +134,8 @@ declare function foo10(a: any): any; >a : any declare function foo11(a: new (x: { foo: string }, y: { foo: string; bar: string }) => Base): typeof a; ->foo11 : { (a: new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base): new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base; (a: any): any; } ->a : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>foo11 : { (a: new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base): typeof a; (a: any): any; } +>a : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -148,8 +148,8 @@ declare function foo11(a: any): any; >a : any declare function foo12(a: new (x: Array, y: Array) => Array): typeof a; ->foo12 : { (a: new (x: Base[], y: Derived2[]) => Derived[]): new (x: Base[], y: Derived2[]) => Derived[]; (a: any): any; } ->a : new (x: Base[], y: Derived2[]) => Derived[] +>foo12 : { (a: new (x: Array, y: Array) => Array): typeof a; (a: any): any; } +>a : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] >a : new (x: Base[], y: Derived2[]) => Derived[] @@ -159,8 +159,8 @@ declare function foo12(a: any): any; >a : any declare function foo13(a: new (x: Array, y: Array) => Array): typeof a; ->foo13 : { (a: new (x: Base[], y: Derived[]) => Derived[]): new (x: Base[], y: Derived[]) => Derived[]; (a: any): any; } ->a : new (x: Base[], y: Derived[]) => Derived[] +>foo13 : { (a: new (x: Array, y: Array) => Array): typeof a; (a: any): any; } +>a : new (x: Array, y: Array) => Array >x : Base[] >y : Derived[] >a : new (x: Base[], y: Derived[]) => Derived[] @@ -170,8 +170,8 @@ declare function foo13(a: any): any; >a : any declare function foo14(a: new (x: { a: string; b: number }) => Object): typeof a; ->foo14 : { (a: new (x: { a: string; b: number; }) => Object): new (x: { a: string; b: number; }) => Object; (a: any): any; } ->a : new (x: { a: string; b: number; }) => Object +>foo14 : { (a: new (x: { a: string; b: number;}) => Object): typeof a; (a: any): any; } +>a : new (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -182,7 +182,7 @@ declare function foo14(a: any): any; >a : any declare function foo15(a: { ->foo15 : { (a: { new (x: number): number[]; new (x: string): string[]; }): { new (x: number): number[]; new (x: string): string[]; }; (a: any): any; } +>foo15 : { (a: { new (x: number): number[]; new (x: string): string[]; }): typeof a; (a: any): any; } >a : { new (x: number): number[]; new (x: string): string[]; } new (x: number): number[]; @@ -199,7 +199,7 @@ declare function foo15(a: any): any; >a : any declare function foo16(a: { ->foo16 : { (a: { new (x: T): number[]; new (x: U): number[]; }): { new (x: T): number[]; new (x: U): number[]; }; (a: any): any; } +>foo16 : { (a: { new (x: T): number[]; new (x: U): number[]; }): typeof a; (a: any): any; } >a : { new (x: T): number[]; new (x: U): number[]; } new (x: T): number[]; @@ -216,7 +216,7 @@ declare function foo16(a: any): any; >a : any declare function foo17(a: { ->foo17 : { (a: { new (x: (a: number) => number): number[]; new (x: (a: string) => string): string[]; }): { new (x: (a: number) => number): number[]; new (x: (a: string) => string): string[]; }; (a: any): any; } +>foo17 : { (a: { new (x: (a: number) => number): number[]; new (x: (a: string) => string): string[]; }): typeof a; (a: any): any; } >a : { new (x: (a: number) => number): number[]; new (x: (a: string) => string): string[]; } new (x: (a: number) => number): number[]; @@ -235,7 +235,7 @@ declare function foo17(a: any): any; >a : any declare function foo18(a: { ->foo18 : { (a: { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; }): { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; }; (a: any): any; } +>foo18 : { (a: { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; }): typeof a; (a: any): any; } >a : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } new (x: { @@ -492,10 +492,10 @@ var r8b = [r8arg2, r8arg1]; >r8arg1 : new (x: new (arg: T) => U, y: new (arg2: T) => U) => new (r: T) => U var r9arg1: new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => new (r: T) => U; ->r9arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U +>r9arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => new (r: T) => U >x : new (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -559,7 +559,7 @@ var r11arg1: new (x: T, y: T) => T; >y : T var r11arg2: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->r11arg2 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>r11arg2 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -585,12 +585,12 @@ var r11b = [r11arg2, r11arg1]; >r11arg1 : new (x: T, y: T) => T var r12arg1: new >(x: Array, y: T) => Array; ->r12arg1 : new (x: Base[], y: T) => Derived[] +>r12arg1 : new (x: Array, y: T) => Array >x : Base[] >y : T var r12arg2: new (x: Array, y: Array) => Array; ->r12arg2 : new (x: Base[], y: Derived2[]) => Derived[] +>r12arg2 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] @@ -613,12 +613,12 @@ var r12b = [r12arg2, r12arg1]; >r12arg1 : new (x: Base[], y: T) => Derived[] var r13arg1: new >(x: Array, y: T) => T; ->r13arg1 : new (x: Base[], y: T) => T +>r13arg1 : new (x: Array, y: T) => T >x : Base[] >y : T var r13arg2: new (x: Array, y: Array) => Array; ->r13arg2 : new (x: Base[], y: Derived[]) => Derived[] +>r13arg2 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived[] @@ -647,7 +647,7 @@ var r14arg1: new (x: { a: T; b: T }) => T; >b : T var r14arg2: new (x: { a: string; b: number }) => Object; ->r14arg2 : new (x: { a: string; b: number; }) => Object +>r14arg2 : new (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number diff --git a/tests/baselines/reference/subtypingWithConstructSignatures3.types b/tests/baselines/reference/subtypingWithConstructSignatures3.types index ec2290a5c53..5cf176caa09 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures3.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures3.types @@ -71,8 +71,8 @@ module Errors { >a2 : any declare function foo11(a2: new (x: { foo: string }, y: { foo: string; bar: string }) => Base): typeof a2; ->foo11 : { (a2: new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base): new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base; (a2: any): any; } ->a2 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>foo11 : { (a2: new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base): new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base; (a2: any): any; } +>a2 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -85,8 +85,8 @@ module Errors { >a2 : any declare function foo12(a2: new (x: Array, y: Array) => Array): typeof a2; ->foo12 : { (a2: new (x: Base[], y: Derived2[]) => Derived[]): new (x: Base[], y: Derived2[]) => Derived[]; (a2: any): any; } ->a2 : new (x: Base[], y: Derived2[]) => Derived[] +>foo12 : { (a2: new (x: Array, y: Array) => Array): new (x: Array, y: Array) => Array; (a2: any): any; } +>a2 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] >a2 : new (x: Base[], y: Derived2[]) => Derived[] @@ -96,8 +96,8 @@ module Errors { >a2 : any declare function foo15(a2: new (x: { a: string; b: number }) => number): typeof a2; ->foo15 : { (a2: new (x: { a: string; b: number; }) => number): new (x: { a: string; b: number; }) => number; (a2: any): any; } ->a2 : new (x: { a: string; b: number; }) => number +>foo15 : { (a2: new (x: { a: string; b: number;}) => number): new (x: { a: string; b: number;}) => number; (a2: any): any; } +>a2 : new (x: { a: string; b: number;}) => number >x : { a: string; b: number; } >a : string >b : number @@ -227,10 +227,10 @@ module Errors { >r2arg2 : new (x: new (arg: Base) => Derived) => new (r: Base) => Derived2 var r3arg1: new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U; ->r3arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U +>r3arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: number;}) => U) => new (r: T) => U >x : new (arg: T) => U >arg : T ->y : (arg2: { foo: number; }) => U +>y : (arg2: { foo: number;}) => U >arg2 : { foo: number; } >foo : number >r : T @@ -293,7 +293,7 @@ module Errors { >y : T var r5arg2: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->r5arg2 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>r5arg2 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -319,12 +319,12 @@ module Errors { >r5arg2 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base var r6arg1: new (x: Array, y: Array) => Array; ->r6arg1 : new (x: Base[], y: Derived2[]) => Derived[] +>r6arg1 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] var r6arg2: new >(x: Array, y: Array) => T; ->r6arg2 : new (x: Base[], y: Base[]) => T +>r6arg2 : new (x: Array, y: Array) => T >x : Base[] >y : Base[] @@ -353,7 +353,7 @@ module Errors { >b : T var r7arg2: new (x: { a: string; b: number }) => number; ->r7arg2 : new (x: { a: string; b: number; }) => number +>r7arg2 : new (x: { a: string; b: number;}) => number >x : { a: string; b: number; } >a : string >b : number diff --git a/tests/baselines/reference/subtypingWithConstructSignatures5.types b/tests/baselines/reference/subtypingWithConstructSignatures5.types index d86cfe1c51d..9b21db0ad20 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures5.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures5.types @@ -77,7 +77,7 @@ interface A { // T >x : Derived[] a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>a11 : new (x: { foo: string;}, y: { foo: string; bar: string;}) => Base >x : { foo: string; } >foo : string >y : { foo: string; bar: string; } @@ -85,17 +85,17 @@ interface A { // T >bar : string a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[] +>a12 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived2[] a13: new (x: Array, y: Array) => Array; ->a13 : new (x: Base[], y: Derived[]) => Derived[] +>a13 : new (x: Array, y: Array) => Array >x : Base[] >y : Derived[] a14: new (x: { a: string; b: number }) => Object; ->a14 : new (x: { a: string; b: number; }) => Object +>a14 : new (x: { a: string; b: number;}) => Object >x : { a: string; b: number; } >a : string >b : number @@ -152,10 +152,10 @@ interface I extends B { >r : T a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number;}) => U) => (r: T) => U >x : (arg: T) => U >arg : T ->y : (arg2: { foo: string; bing: number; }) => U +>y : (arg2: { foo: string; bing: number;}) => U >arg2 : { foo: string; bing: number; } >foo : string >bing : number @@ -171,12 +171,12 @@ interface I extends B { >y : T a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : new (x: Base[], y: T) => Derived[] +>a12 : new (x: Array, y: T) => Array >x : Base[] >y : T a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : new (x: Base[], y: T) => T +>a13 : new (x: Array, y: T) => T >x : Base[] >y : T diff --git a/tests/baselines/reference/subtypingWithConstructSignatures6.types b/tests/baselines/reference/subtypingWithConstructSignatures6.types index c169ea1ae88..fca54933e19 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures6.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures6.types @@ -107,7 +107,7 @@ interface I5 extends A { interface I7 extends A { a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>a11 : new (x: { foo: T;}, y: { foo: U; bar: U; }) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -117,7 +117,7 @@ interface I7 extends A { interface I9 extends A { a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[] +>a16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.types b/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.types index 1691a02b9f7..47a6c8e3f37 100644 --- a/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.types +++ b/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.types @@ -57,7 +57,7 @@ module MemberWithCallSignature { interface Base { // T // M's a: { ->a : { new (x: "a"): void; new (x: string): void; } +>a : { new (x: 'a'): void; new (x: string): void; } new (x: 'a'): void; >x : "a" @@ -66,7 +66,7 @@ module MemberWithCallSignature { >x : string } a2: { ->a2 : { new (x: "a", y: number): void; new (x: string, y: number): void; } +>a2 : { new (x: 'a', y: number): void; new (x: string, y: number): void; } new (x: 'a', y: number): void; >x : "a" @@ -101,7 +101,7 @@ module MemberWithCallSignature { interface Base2 { // T // M's a: { ->a : { new (x: "a"): number; new (x: string): number; } +>a : { new (x: 'a'): number; new (x: string): number; } new (x: 'a'): number; >x : "a" diff --git a/tests/baselines/reference/switchCaseCircularRefeference.types b/tests/baselines/reference/switchCaseCircularRefeference.types index 84b52e068d7..4927bbb2986 100644 --- a/tests/baselines/reference/switchCaseCircularRefeference.types +++ b/tests/baselines/reference/switchCaseCircularRefeference.types @@ -2,7 +2,7 @@ // Repro from #9507 function f(x: {a: "A", b} | {a: "C", e}) { ->f : (x: { a: "A"; b: any; } | { a: "C"; e: any; }) => void +>f : (x: { a: "A"; b;} | { a: "C"; e;}) => void >x : { a: "A"; b: any; } | { a: "C"; e: any; } >a : "A" >b : any diff --git a/tests/baselines/reference/symbolProperty21.types b/tests/baselines/reference/symbolProperty21.types index 5906f524535..da584b488f5 100644 --- a/tests/baselines/reference/symbolProperty21.types +++ b/tests/baselines/reference/symbolProperty21.types @@ -14,7 +14,7 @@ interface I { } declare function foo(p: I): { t: T; u: U }; ->foo : (p: I) => { t: T; u: U; } +>foo : (p: I) => { t: T; u: U;} >p : I >t : T >u : U diff --git a/tests/baselines/reference/symbolProperty35.types b/tests/baselines/reference/symbolProperty35.types index c212b180cc1..fb3b8420022 100644 --- a/tests/baselines/reference/symbolProperty35.types +++ b/tests/baselines/reference/symbolProperty35.types @@ -1,7 +1,7 @@ === tests/cases/conformance/es6/Symbols/symbolProperty35.ts === interface I1 { [Symbol.toStringTag](): { x: string } ->[Symbol.toStringTag] : () => { x: string; } +>[Symbol.toStringTag] : () => { x: string;} >Symbol.toStringTag : symbol >Symbol : SymbolConstructor >toStringTag : symbol @@ -9,7 +9,7 @@ interface I1 { } interface I2 { [Symbol.toStringTag](): { x: number } ->[Symbol.toStringTag] : () => { x: number; } +>[Symbol.toStringTag] : () => { x: number;} >Symbol.toStringTag : symbol >Symbol : SymbolConstructor >toStringTag : symbol diff --git a/tests/baselines/reference/symbolProperty41.types b/tests/baselines/reference/symbolProperty41.types index 76d47f90e47..4991af55277 100644 --- a/tests/baselines/reference/symbolProperty41.types +++ b/tests/baselines/reference/symbolProperty41.types @@ -3,7 +3,7 @@ class C { >C : C [Symbol.iterator](x: string): { x: string }; ->[Symbol.iterator] : { (x: string): { x: string; }; (x: "hello"): { x: string; hello: string; }; } +>[Symbol.iterator] : { (x: string): { x: string;}; (x: "hello"): { x: string; hello: string; }; } >Symbol.iterator : symbol >Symbol : SymbolConstructor >iterator : symbol @@ -11,7 +11,7 @@ class C { >x : string [Symbol.iterator](x: "hello"): { x: string; hello: string }; ->[Symbol.iterator] : { (x: string): { x: string; }; (x: "hello"): { x: string; hello: string; }; } +>[Symbol.iterator] : { (x: string): { x: string; }; (x: "hello"): { x: string; hello: string;}; } >Symbol.iterator : symbol >Symbol : SymbolConstructor >iterator : symbol diff --git a/tests/baselines/reference/taggedTemplateStringsWithManyCallAndMemberExpressions.types b/tests/baselines/reference/taggedTemplateStringsWithManyCallAndMemberExpressions.types index b9750440f00..7049ed1cbb7 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithManyCallAndMemberExpressions.types +++ b/tests/baselines/reference/taggedTemplateStringsWithManyCallAndMemberExpressions.types @@ -5,7 +5,7 @@ interface I { >subs : number[] member: { ->member : new (s: string) => new (n: number) => new () => boolean +>member : new (s: string) => new (n: number) => { new (): boolean;} new (s: string): { >s : string diff --git a/tests/baselines/reference/taggedTemplateStringsWithManyCallAndMemberExpressionsES6.types b/tests/baselines/reference/taggedTemplateStringsWithManyCallAndMemberExpressionsES6.types index c0018dc9ff2..365e824c76b 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithManyCallAndMemberExpressionsES6.types +++ b/tests/baselines/reference/taggedTemplateStringsWithManyCallAndMemberExpressionsES6.types @@ -5,7 +5,7 @@ interface I { >subs : number[] member: { ->member : new (s: string) => new (n: number) => new () => boolean +>member : new (s: string) => new (n: number) => { new (): boolean;} new (s: string): { >s : string diff --git a/tests/baselines/reference/targetTypeVoidFunc.types b/tests/baselines/reference/targetTypeVoidFunc.types index e29af71ee63..66f1e38b24c 100644 --- a/tests/baselines/reference/targetTypeVoidFunc.types +++ b/tests/baselines/reference/targetTypeVoidFunc.types @@ -1,6 +1,6 @@ === tests/cases/compiler/targetTypeVoidFunc.ts === function f1(): { new (): number; } { ->f1 : () => new () => number +>f1 : () => { new (): number;} return function () { return; } >function () { return; } : () => void diff --git a/tests/baselines/reference/thisConditionalOnMethodReturnOfGenericInstance.types b/tests/baselines/reference/thisConditionalOnMethodReturnOfGenericInstance.types index 8ec248f9d53..320647069db 100644 --- a/tests/baselines/reference/thisConditionalOnMethodReturnOfGenericInstance.types +++ b/tests/baselines/reference/thisConditionalOnMethodReturnOfGenericInstance.types @@ -11,7 +11,7 @@ class B extends A { >A : A method(): string | (this extends C ? undefined : null) { ->method : () => string | (this extends C ? undefined : null) +>method : () => string | (this extends C ? undefined : null) >null : null return ""; diff --git a/tests/baselines/reference/thisTypeInFunctions.types b/tests/baselines/reference/thisTypeInFunctions.types index 7082cad3941..84e4506cf29 100644 --- a/tests/baselines/reference/thisTypeInFunctions.types +++ b/tests/baselines/reference/thisTypeInFunctions.types @@ -37,7 +37,7 @@ class C { >m : number } explicitProperty(this: {n: number}, m: number): number { ->explicitProperty : (this: { n: number; }, m: number) => number +>explicitProperty : (this: { n: number;}, m: number) => number >this : { n: number; } >n : number >m : number @@ -77,7 +77,7 @@ interface I { >this : void explicitStructural(this: {a: number}): number; ->explicitStructural : (this: { a: number; }) => number +>explicitStructural : (this: { a: number;}) => number >this : { a: number; } >a : number @@ -90,7 +90,7 @@ interface I { >this : this } function explicitStructural(this: { y: number }, x: number): number { ->explicitStructural : (this: { y: number; }, x: number) => number +>explicitStructural : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number @@ -103,7 +103,7 @@ function explicitStructural(this: { y: number }, x: number): number { >y : number } function justThis(this: { y: number }): number { ->justThis : (this: { y: number; }) => number +>justThis : (this: { y: number;}) => number >this : { y: number; } >y : number @@ -236,9 +236,9 @@ impl.explicitThis = function () { return this.a; }; // parameter checking let ok: {y: number, f: (this: { y: number }, x: number) => number} = { y: 12, f: explicitStructural }; ->ok : { y: number; f: (this: { y: number; }, x: number) => number; } +>ok : { y: number; f: (this: { y: number;}, x: number) => number; } >y : number ->f : (this: { y: number; }, x: number) => number +>f : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number @@ -337,7 +337,7 @@ d.explicitThis(12); >12 : 12 let reconstructed: { ->reconstructed : { n: number; explicitThis(this: C, m: number): number; explicitC(this: C, m: number): number; explicitProperty: (this: { n: number; }, m: number) => number; explicitVoid(this: void, m: number): number; } +>reconstructed : { n: number; explicitThis(this: C, m: number): number; explicitC(this: C, m: number): number; explicitProperty: (this: { n: number;}, m: number) => number; explicitVoid(this: void, m: number): number; } n: number, >n : number @@ -353,7 +353,7 @@ let reconstructed: { >m : number explicitProperty: (this: {n : number}, m: number) => number, ->explicitProperty : (this: { n: number; }, m: number) => number +>explicitProperty : (this: { n: number;}, m: number) => number >this : { n: number; } >n : number >m : number @@ -422,11 +422,11 @@ explicitVoid(12); // assignment checking let unboundToSpecified: (this: { y: number }, x: number) => number = x => x + this.y; // ok, this:any ->unboundToSpecified : (this: { y: number; }, x: number) => number +>unboundToSpecified : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number ->x => x + this.y : (this: { y: number; }, x: number) => any +>x => x + this.y : (this: { y: number;}, x: number) => any >x : number >x + this.y : any >x : number @@ -435,18 +435,18 @@ let unboundToSpecified: (this: { y: number }, x: number) => number = x => x + th >y : any let specifiedToSpecified: (this: {y: number}, x: number) => number = explicitStructural; ->specifiedToSpecified : (this: { y: number; }, x: number) => number +>specifiedToSpecified : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number >explicitStructural : (this: { y: number; }, x: number) => number let anyToSpecified: (this: { y: number }, x: number) => number = function(x: number): number { return x + 12; }; ->anyToSpecified : (this: { y: number; }, x: number) => number +>anyToSpecified : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number ->function(x: number): number { return x + 12; } : (this: { y: number; }, x: number) => number +>function(x: number): number { return x + 12; } : (this: { y: number;}, x: number) => number >x : number >x + 12 : number >x : number @@ -472,14 +472,14 @@ let specifiedLambda: (this: void, x: number) => number = x => x + 12; >12 : 12 let unspecifiedLambdaToSpecified: (this: {y: number}, x: number) => number = unspecifiedLambda; ->unspecifiedLambdaToSpecified : (this: { y: number; }, x: number) => number +>unspecifiedLambdaToSpecified : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number >unspecifiedLambda : (x: number) => number let specifiedLambdaToSpecified: (this: {y: number}, x: number) => number = specifiedLambda; ->specifiedLambdaToSpecified : (this: { y: number; }, x: number) => number +>specifiedLambdaToSpecified : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number @@ -492,7 +492,7 @@ let explicitCFunction: (this: C, m: number) => number; >m : number let explicitPropertyFunction: (this: {n: number}, m: number) => number; ->explicitPropertyFunction : (this: { n: number; }, m: number) => number +>explicitPropertyFunction : (this: { n: number;}, m: number) => number >this : { n: number; } >n : number >m : number @@ -526,11 +526,11 @@ c.explicitProperty = explicitPropertyFunction; >explicitPropertyFunction : (this: { n: number; }, m: number) => number c.explicitProperty = function(this: {n: number}, m: number) { return this.n + m }; ->c.explicitProperty = function(this: {n: number}, m: number) { return this.n + m } : (this: { n: number; }, m: number) => number +>c.explicitProperty = function(this: {n: number}, m: number) { return this.n + m } : (this: { n: number;}, m: number) => number >c.explicitProperty : (this: { n: number; }, m: number) => number >c : C >explicitProperty : (this: { n: number; }, m: number) => number ->function(this: {n: number}, m: number) { return this.n + m } : (this: { n: number; }, m: number) => number +>function(this: {n: number}, m: number) { return this.n + m } : (this: { n: number;}, m: number) => number >this : { n: number; } >n : number >m : number @@ -874,7 +874,7 @@ function InterfaceThis(this: I) { >12 : 12 } function LiteralTypeThis(this: {x: string}) { ->LiteralTypeThis : (this: { x: string; }) => void +>LiteralTypeThis : (this: { x: string;}) => void >this : { x: string; } >x : string diff --git a/tests/baselines/reference/thisTypeInFunctionsNegative.types b/tests/baselines/reference/thisTypeInFunctionsNegative.types index 3a86203772f..078d63d87c7 100644 --- a/tests/baselines/reference/thisTypeInFunctionsNegative.types +++ b/tests/baselines/reference/thisTypeInFunctionsNegative.types @@ -41,7 +41,7 @@ class C { >m : number } explicitProperty(this: {n: number}, m: number): number { ->explicitProperty : (this: { n: number; }, m: number) => number +>explicitProperty : (this: { n: number;}, m: number) => number >this : { n: number; } >n : number >m : number @@ -110,7 +110,7 @@ interface I { >this : void explicitStructural(this: {a: number}): number; ->explicitStructural : (this: { a: number; }) => number +>explicitStructural : (this: { a: number;}) => number >this : { a: number; } >a : number @@ -187,7 +187,7 @@ implExplicitInterface(); // error, no 'a' in 'void' >implExplicitInterface : (this: I) => number function explicitStructural(this: { y: number }, x: number): number { ->explicitStructural : (this: { y: number; }, x: number) => number +>explicitStructural : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number @@ -200,7 +200,7 @@ function explicitStructural(this: { y: number }, x: number): number { >y : number } function propertyName(this: { y: number }, x: number): number { ->propertyName : (this: { y: number; }, x: number) => number +>propertyName : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number @@ -225,9 +225,9 @@ function voidThisSpecified(this: void, x: number): number { >notSpecified : any } let ok: {y: number, f: (this: { y: number }, x: number) => number} = { y: 12, explicitStructural }; ->ok : { y: number; f: (this: { y: number; }, x: number) => number; } +>ok : { y: number; f: (this: { y: number;}, x: number) => number; } >y : number ->f : (this: { y: number; }, x: number) => number +>f : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number @@ -237,9 +237,9 @@ let ok: {y: number, f: (this: { y: number }, x: number) => number} = { y: 12, ex >explicitStructural : (this: { y: number; }, x: number) => number let wrongPropertyType: {y: string, f: (this: { y: number }, x: number) => number} = { y: 'foo', explicitStructural }; ->wrongPropertyType : { y: string; f: (this: { y: number; }, x: number) => number; } +>wrongPropertyType : { y: string; f: (this: { y: number;}, x: number) => number; } >y : string ->f : (this: { y: number; }, x: number) => number +>f : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number @@ -249,9 +249,9 @@ let wrongPropertyType: {y: string, f: (this: { y: number }, x: number) => number >explicitStructural : (this: { y: number; }, x: number) => number let wrongPropertyName: {wrongName: number, f: (this: { y: number }, x: number) => number} = { wrongName: 12, explicitStructural }; ->wrongPropertyName : { wrongName: number; f: (this: { y: number; }, x: number) => number; } +>wrongPropertyName : { wrongName: number; f: (this: { y: number;}, x: number) => number; } >wrongName : number ->f : (this: { y: number; }, x: number) => number +>f : (this: { y: number;}, x: number) => number >this : { y: number; } >y : number >x : number @@ -392,7 +392,7 @@ let specifiedToVoid: (this: void, x: number) => number = explicitStructural; >explicitStructural : (this: { y: number; }, x: number) => number let reconstructed: { ->reconstructed : { n: number; explicitThis(this: C, m: number): number; explicitC(this: C, m: number): number; explicitProperty: (this: { n: number; }, m: number) => number; explicitVoid(this: void, m: number): number; } +>reconstructed : { n: number; explicitThis(this: C, m: number): number; explicitC(this: C, m: number): number; explicitProperty: (this: { n: number;}, m: number) => number; explicitVoid(this: void, m: number): number; } n: number, >n : number @@ -408,7 +408,7 @@ let reconstructed: { >m : number explicitProperty: (this: {n : number}, m: number) => number, ->explicitProperty : (this: { n: number; }, m: number) => number +>explicitProperty : (this: { n: number;}, m: number) => number >this : { n: number; } >n : number >m : number @@ -458,7 +458,7 @@ let d = new D(); >D : typeof D let explicitXProperty: (this: { x: number }, m: number) => number; ->explicitXProperty : (this: { x: number; }, m: number) => number +>explicitXProperty : (this: { x: number;}, m: number) => number >this : { x: number; } >x : number >m : number @@ -770,8 +770,8 @@ c.explicitProperty = (this, m) => m + this.n; >n : any const f2 = (this: {n: number}, m: number) => m + this.n; ->f2 : (this: { n: number; }, m: number) => any ->(this: {n: number}, m: number) => m + this.n : (this: { n: number; }, m: number) => any +>f2 : (this: { n: number;}, m: number) => any +>(this: {n: number}, m: number) => m + this.n : (this: { n: number;}, m: number) => any >this : { n: number; } >n : number >m : number @@ -782,8 +782,8 @@ const f2 = (this: {n: number}, m: number) => m + this.n; >n : any const f3 = async (this: {n: number}, m: number) => m + this.n; ->f3 : (this: { n: number; }, m: number) => Promise ->async (this: {n: number}, m: number) => m + this.n : (this: { n: number; }, m: number) => Promise +>f3 : (this: { n: number;}, m: number) => Promise +>async (this: {n: number}, m: number) => m + this.n : (this: { n: number;}, m: number) => Promise >this : { n: number; } >n : number >m : number @@ -794,8 +794,8 @@ const f3 = async (this: {n: number}, m: number) => m + this.n; >n : any const f4 = async (this: {n: number}, m: number) => m + this.n; ->f4 : (this: { n: number; }, m: number) => Promise ->async (this: {n: number}, m: number) => m + this.n : (this: { n: number; }, m: number) => Promise +>f4 : (this: { n: number;}, m: number) => Promise +>async (this: {n: number}, m: number) => m + this.n : (this: { n: number;}, m: number) => Promise >this : { n: number; } >n : number >m : number diff --git a/tests/baselines/reference/thisTypeSyntacticContext.types b/tests/baselines/reference/thisTypeSyntacticContext.types index e6996b0eb92..a66c623957d 100644 --- a/tests/baselines/reference/thisTypeSyntacticContext.types +++ b/tests/baselines/reference/thisTypeSyntacticContext.types @@ -1,14 +1,14 @@ === tests/cases/conformance/types/thisType/thisTypeSyntacticContext.ts === function f(this: { n: number }) { ->f : (this: { n: number; }) => void +>f : (this: { n: number;}) => void >this : { n: number; } >n : number } const o: { n: number, test?: (this: { n: number }) => void } = { n: 1 } ->o : { n: number; test?: (this: { n: number; }) => void; } +>o : { n: number; test?: (this: { n: number;}) => void; } >n : number ->test : (this: { n: number; }) => void +>test : (this: { n: number;}) => void >this : { n: number; } >n : number >{ n: 1 } : { n: number; } diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/incremental-declaration-doesnt-change/modifies-outfile-js-projects-and-concatenates-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/incremental-declaration-doesnt-change/modifies-outfile-js-projects-and-concatenates-them-correctly.js index 22e8a88b84e..41f3786c410 100644 --- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/incremental-declaration-doesnt-change/modifies-outfile-js-projects-and-concatenates-them-correctly.js +++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/incremental-declaration-doesnt-change/modifies-outfile-js-projects-and-concatenates-them-correctly.js @@ -185,7 +185,7 @@ function getVar() { }, { "pos": 220, - "end": 361, + "end": 377, "kind": "text" } ] @@ -241,11 +241,11 @@ type MyNominal = string & { }; ---------------------------------------------------------------------- -text: (220-361) +text: (220-377) /** * @return {keyof typeof variable} */ -declare function getVar(): "key"; +declare function getVar(): keyof typeof variable; declare namespace variable { const key: MyNominal; } diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/loads-js-based-projects-and-emits-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/loads-js-based-projects-and-emits-them-correctly.js index ac467643036..9b097517623 100644 --- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/loads-js-based-projects-and-emits-them-correctly.js +++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/loads-js-based-projects-and-emits-them-correctly.js @@ -115,7 +115,12 @@ exports.__esModule = true; /** * @return {keyof typeof variable} */ -export function getVar(): "key"; +export function getVar(): keyof typeof variable; +declare namespace variable { + export const key: MyNominal; +} +import { MyNominal } from "../sub-project"; +export {}; //// [/lib/sub-project-2/index.js] @@ -150,7 +155,7 @@ exports.getVar = getVar; }, "../../src/sub-project-2/index.js": { "version": "9520601400-import { MyNominal } from '../sub-project/index';\n\nconst variable = {\n key: /** @type {MyNominal} */('value'),\n};\n\n/**\n * @return {keyof typeof variable}\n */\nexport function getVar() {\n return 'key';\n}\n", - "signature": "-9866665538-/**\r\n * @return {keyof typeof variable}\r\n */\r\nexport function getVar(): \"key\";\r\n", + "signature": "-14896620483-/**\r\n * @return {keyof typeof variable}\r\n */\r\nexport function getVar(): keyof typeof variable;\r\ndeclare namespace variable {\r\n export const key: MyNominal;\r\n}\r\nimport { MyNominal } from \"../sub-project\";\r\nexport {};\r\n", "affectsGlobalScope": false } }, diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/loads-outfile-js-projects-and-concatenates-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/loads-outfile-js-projects-and-concatenates-them-correctly.js index 769da514d2e..562866d175f 100644 --- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/loads-outfile-js-projects-and-concatenates-them-correctly.js +++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/loads-outfile-js-projects-and-concatenates-them-correctly.js @@ -201,7 +201,7 @@ type MyNominal = string & { /** * @return {keyof typeof variable} */ -declare function getVar(): "key"; +declare function getVar(): keyof typeof variable; declare namespace variable { const key: MyNominal; } @@ -273,7 +273,7 @@ function getVar() { }, { "pos": 220, - "end": 361, + "end": 377, "kind": "text" } ] @@ -329,11 +329,11 @@ type MyNominal = string & { }; ---------------------------------------------------------------------- -text: (220-361) +text: (220-377) /** * @return {keyof typeof variable} */ -declare function getVar(): "key"; +declare function getVar(): keyof typeof variable; declare namespace variable { const key: MyNominal; } diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/modifies-outfile-js-projects-and-concatenates-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/modifies-outfile-js-projects-and-concatenates-them-correctly.js index 769da514d2e..562866d175f 100644 --- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/modifies-outfile-js-projects-and-concatenates-them-correctly.js +++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/initial-build/modifies-outfile-js-projects-and-concatenates-them-correctly.js @@ -201,7 +201,7 @@ type MyNominal = string & { /** * @return {keyof typeof variable} */ -declare function getVar(): "key"; +declare function getVar(): keyof typeof variable; declare namespace variable { const key: MyNominal; } @@ -273,7 +273,7 @@ function getVar() { }, { "pos": 220, - "end": 361, + "end": 377, "kind": "text" } ] @@ -329,11 +329,11 @@ type MyNominal = string & { }; ---------------------------------------------------------------------- -text: (220-361) +text: (220-377) /** * @return {keyof typeof variable} */ -declare function getVar(): "key"; +declare function getVar(): keyof typeof variable; declare namespace variable { const key: MyNominal; } diff --git a/tests/baselines/reference/tsxAttributeQuickinfoTypesSameAsObjectLiteral.types b/tests/baselines/reference/tsxAttributeQuickinfoTypesSameAsObjectLiteral.types index 945621f4559..6d10a51f958 100644 --- a/tests/baselines/reference/tsxAttributeQuickinfoTypesSameAsObjectLiteral.types +++ b/tests/baselines/reference/tsxAttributeQuickinfoTypesSameAsObjectLiteral.types @@ -11,8 +11,8 @@ namespace JSX { } const Foo = (props: { foo: "A" | "B" | "C" }) => {props.foo}; ->Foo : (props: { foo: "A" | "B" | "C"; }) => JSX.Element ->(props: { foo: "A" | "B" | "C" }) => {props.foo} : (props: { foo: "A" | "B" | "C"; }) => JSX.Element +>Foo : (props: { foo: "A" | "B" | "C";}) => JSX.Element +>(props: { foo: "A" | "B" | "C" }) => {props.foo} : (props: { foo: "A" | "B" | "C";}) => JSX.Element >props : { foo: "A" | "B" | "C"; } >foo : "A" | "B" | "C" >{props.foo} : JSX.Element diff --git a/tests/baselines/reference/tsxSfcReturnNull.types b/tests/baselines/reference/tsxSfcReturnNull.types index 262bce80c75..bb1618d5113 100644 --- a/tests/baselines/reference/tsxSfcReturnNull.types +++ b/tests/baselines/reference/tsxSfcReturnNull.types @@ -9,7 +9,7 @@ const Foo = (props: any) => null; >null : null function Greet(x: {name?: string}) { ->Greet : (x: { name?: string; }) => any +>Greet : (x: { name?: string;}) => any >x : { name?: string; } >name : string diff --git a/tests/baselines/reference/tsxSfcReturnNullStrictNullChecks.types b/tests/baselines/reference/tsxSfcReturnNullStrictNullChecks.types index 15b1dee69b1..932ebaf36e6 100644 --- a/tests/baselines/reference/tsxSfcReturnNullStrictNullChecks.types +++ b/tests/baselines/reference/tsxSfcReturnNullStrictNullChecks.types @@ -9,7 +9,7 @@ const Foo = (props: any) => null; >null : null function Greet(x: {name?: string}) { ->Greet : (x: { name?: string | undefined; }) => null +>Greet : (x: { name?: string;}) => null >x : { name?: string | undefined; } >name : string | undefined diff --git a/tests/baselines/reference/tsxSfcReturnUndefinedStrictNullChecks.types b/tests/baselines/reference/tsxSfcReturnUndefinedStrictNullChecks.types index 8b76cfd321a..e0ced6374f7 100644 --- a/tests/baselines/reference/tsxSfcReturnUndefinedStrictNullChecks.types +++ b/tests/baselines/reference/tsxSfcReturnUndefinedStrictNullChecks.types @@ -9,7 +9,7 @@ const Foo = (props: any) => undefined; >undefined : undefined function Greet(x: {name?: string}) { ->Greet : (x: { name?: string | undefined; }) => undefined +>Greet : (x: { name?: string;}) => undefined >x : { name?: string | undefined; } >name : string | undefined diff --git a/tests/baselines/reference/tsxSpreadChildren.types b/tests/baselines/reference/tsxSpreadChildren.types index a8b170455e5..1cccb9075da 100644 --- a/tests/baselines/reference/tsxSpreadChildren.types +++ b/tests/baselines/reference/tsxSpreadChildren.types @@ -21,7 +21,7 @@ interface TodoListProps { >todos : TodoProp[] } function Todo(prop: { key: number, todo: string }) { ->Todo : (prop: { key: number; todo: string; }) => JSX.Element +>Todo : (prop: { key: number; todo: string;}) => JSX.Element >prop : { key: number; todo: string; } >key : number >todo : string diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType.types b/tests/baselines/reference/tsxSpreadChildrenInvalidType.types index 190b88b7178..b8eb0487037 100644 --- a/tests/baselines/reference/tsxSpreadChildrenInvalidType.types +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType.types @@ -21,7 +21,7 @@ interface TodoListProps { >todos : TodoProp[] } function Todo(prop: { key: number, todo: string }) { ->Todo : (prop: { key: number; todo: string; }) => JSX.Element +>Todo : (prop: { key: number; todo: string;}) => JSX.Element >prop : { key: number; todo: string; } >key : number >todo : string diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentOverload1.types b/tests/baselines/reference/tsxStatelessFunctionComponentOverload1.types index 6f16e6d8084..d5429be5e48 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentOverload1.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentOverload1.types @@ -3,27 +3,27 @@ import React = require('react') >React : typeof React declare function OneThing(k: {yxx: string}): JSX.Element; ->OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>OneThing : { (k: { yxx: string;}): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } >k : { yxx: string; } >yxx : string >JSX : any declare function OneThing(k: {yxx1: string, children: string}): JSX.Element; ->OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string;}): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } >k : { yxx1: string; children: string; } >yxx1 : string >children : string >JSX : any declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; ->OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string;}): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } >l : { yy: number; yy1: string; } >yy : number >yy1 : string >JSX : any declare function OneThing(l: {yy: number, yy1: string, yy2: boolean}): JSX.Element; ->OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean;}): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } >l : { yy: number; yy1: string; yy2: boolean; } >yy : number >yy1 : string @@ -31,7 +31,7 @@ declare function OneThing(l: {yy: number, yy1: string, yy2: boolean}): JSX.Eleme >JSX : any declare function OneThing(l1: {data: string, "data-prop": boolean}): JSX.Element; ->OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean;}): JSX.Element; } >l1 : { data: string; "data-prop": boolean; } >data : string >"data-prop" : boolean @@ -81,21 +81,21 @@ declare function TestingOneThing({y1: string}): JSX.Element; >JSX : any declare function TestingOneThing(j: {"extra-data": string, yy?: string}): JSX.Element; ->TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string;}): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } >j : { "extra-data": string; yy?: string; } >"extra-data" : string >yy : string >JSX : any declare function TestingOneThing(n: {yy: number, direction?: number}): JSX.Element; ->TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number;}): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } >n : { yy: number; direction?: number; } >yy : number >direction : number >JSX : any declare function TestingOneThing(n: {yy: string, name: string}): JSX.Element; ->TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string;}): JSX.Element; } >n : { yy: string; name: string; } >yy : string >name : string @@ -142,14 +142,14 @@ const d5 = ; declare function TestingOptional(a: {y1?: string, y2?: number}): JSX.Element; ->TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>TestingOptional : { (a: { y1?: string; y2?: number;}): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } >a : { y1?: string; y2?: number; } >y1 : string >y2 : number >JSX : any declare function TestingOptional(a: {y1: boolean, y2?: number, y3: boolean}): JSX.Element; ->TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean;}): JSX.Element; } >a : { y1: boolean; y2?: number; y3: boolean; } >y1 : boolean >y2 : number diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentOverload2.types b/tests/baselines/reference/tsxStatelessFunctionComponentOverload2.types index 1a7c7d30599..b6d04116f5d 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentOverload2.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentOverload2.types @@ -7,7 +7,7 @@ declare function OneThing(): JSX.Element; >JSX : any declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; ->OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string;}): JSX.Element; } >l : { yy: number; yy1: string; } >yy : number >yy1 : string diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentOverload3.types b/tests/baselines/reference/tsxStatelessFunctionComponentOverload3.types index 9284a84b868..caf6460a00f 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentOverload3.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentOverload3.types @@ -8,7 +8,7 @@ declare function ZeroThingOrTwoThing(): JSX.Element; >JSX : any declare function ZeroThingOrTwoThing(l: {yy: number, yy1: string}, context: Context): JSX.Element; ->ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string; }, context: Context): JSX.Element; } +>ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string;}, context: Context): JSX.Element; } >l : { yy: number; yy1: string; } >yy : number >yy1 : string @@ -55,19 +55,19 @@ const two5 = ; // it is just any so >1000 : 1000 declare function ThreeThing(l: {y1: string}): JSX.Element; ->ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>ThreeThing : { (l: { y1: string;}): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } >l : { y1: string; } >y1 : string >JSX : any declare function ThreeThing(l: {y2: string}): JSX.Element; ->ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string;}): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } >l : { y2: string; } >y2 : string >JSX : any declare function ThreeThing(l: {yy: number, yy1: string}, context: Context, updater: any): JSX.Element; ->ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string;}, context: Context, updater: any): JSX.Element; } >l : { yy: number; yy1: string; } >yy : number >yy1 : string diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentOverload4.types b/tests/baselines/reference/tsxStatelessFunctionComponentOverload4.types index 059fb7672fd..3807bd29030 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentOverload4.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentOverload4.types @@ -7,7 +7,7 @@ declare function OneThing(): JSX.Element; >JSX : any declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; ->OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string;}): JSX.Element; } >l : { yy: number; yy1: string; } >yy : number >yy1 : string @@ -92,13 +92,13 @@ const c7 = ; // Should error as there is extra attribu >yy : true declare function TestingOneThing(j: {"extra-data": string}): JSX.Element; ->TestingOneThing : { (j: { "extra-data": string; }): JSX.Element; (n: { yy: string; direction?: number; }): JSX.Element; } +>TestingOneThing : { (j: { "extra-data": string;}): JSX.Element; (n: { yy: string; direction?: number; }): JSX.Element; } >j : { "extra-data": string; } >"extra-data" : string >JSX : any declare function TestingOneThing(n: {yy: string, direction?: number}): JSX.Element; ->TestingOneThing : { (j: { "extra-data": string; }): JSX.Element; (n: { yy: string; direction?: number; }): JSX.Element; } +>TestingOneThing : { (j: { "extra-data": string; }): JSX.Element; (n: { yy: string; direction?: number;}): JSX.Element; } >n : { yy: string; direction?: number; } >yy : string >direction : number @@ -119,14 +119,14 @@ const d2 = >direction : string declare function TestingOptional(a: {y1?: string, y2?: number}): JSX.Element; ->TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1?: string; y2?: number; children: JSX.Element; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>TestingOptional : { (a: { y1?: string; y2?: number;}): JSX.Element; (a: { y1?: string; y2?: number; children: JSX.Element; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } >a : { y1?: string; y2?: number; } >y1 : string >y2 : number >JSX : any declare function TestingOptional(a: {y1?: string, y2?: number, children: JSX.Element}): JSX.Element; ->TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1?: string; y2?: number; children: JSX.Element; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1?: string; y2?: number; children: JSX.Element;}): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } >a : { y1?: string; y2?: number; children: JSX.Element; } >y1 : string >y2 : number @@ -135,7 +135,7 @@ declare function TestingOptional(a: {y1?: string, y2?: number, children: JSX.Ele >JSX : any declare function TestingOptional(a: {y1: boolean, y2?: number, y3: boolean}): JSX.Element; ->TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1?: string; y2?: number; children: JSX.Element; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1?: string; y2?: number; children: JSX.Element; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean;}): JSX.Element; } >a : { y1: boolean; y2?: number; y3: boolean; } >y1 : boolean >y2 : number diff --git a/tests/baselines/reference/tsxStatelessFunctionComponents1.types b/tests/baselines/reference/tsxStatelessFunctionComponents1.types index 08e29302480..6e0a1107a34 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponents1.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponents1.types @@ -9,7 +9,7 @@ function EmptyPropSFC() { } function Greet(x: {name: string}) { ->Greet : (x: { name: string; }) => JSX.Element +>Greet : (x: { name: string;}) => JSX.Element >x : { name: string; } >name : string @@ -31,7 +31,7 @@ function Meet({name = 'world'}) { >div : any } function MeetAndGreet(k: {"prop-name": string}) { ->MeetAndGreet : (k: { "prop-name": string; }) => JSX.Element +>MeetAndGreet : (k: { "prop-name": string;}) => JSX.Element >k : { "prop-name": string; } >"prop-name" : string diff --git a/tests/baselines/reference/tsxStatelessFunctionComponents2.types b/tests/baselines/reference/tsxStatelessFunctionComponents2.types index 05fe1a8897b..6bc746821dc 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponents2.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponents2.types @@ -3,7 +3,7 @@ import React = require('react'); >React : typeof React function Greet(x: {name?: string}) { ->Greet : (x: { name?: string; }) => JSX.Element +>Greet : (x: { name?: string;}) => JSX.Element >x : { name?: string; } >name : string diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments1.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments1.types index da17aaf9062..9feac2ea248 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments1.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments1.types @@ -3,7 +3,7 @@ import React = require('react') >React : typeof React declare function ComponentWithTwoAttributes(l: {key1: K, value: V}): JSX.Element; ->ComponentWithTwoAttributes : (l: { key1: K; value: V; }) => JSX.Element +>ComponentWithTwoAttributes : (l: { key1: K; value: V;}) => JSX.Element >l : { key1: K; value: V; } >key1 : K >value : V diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types index 79345df0668..649f4da708b 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types @@ -3,14 +3,14 @@ import React = require('react') >React : typeof React declare function ComponentSpecific1(l: {prop: U, "ignore-prop": string}): JSX.Element; ->ComponentSpecific1 : (l: { prop: U; "ignore-prop": string; }) => JSX.Element +>ComponentSpecific1 : (l: { prop: U; "ignore-prop": string;}) => JSX.Element >l : { prop: U; "ignore-prop": string; } >prop : U >"ignore-prop" : string >JSX : any declare function ComponentSpecific2(l: {prop: U}): JSX.Element; ->ComponentSpecific2 : (l: { prop: U; }) => JSX.Element +>ComponentSpecific2 : (l: { prop: U;}) => JSX.Element >l : { prop: U; } >prop : U >JSX : any diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types index 5323cd4dd61..79ec56cc9b6 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types @@ -7,7 +7,7 @@ declare function OverloadComponent(): JSX.Element; >JSX : any declare function OverloadComponent(attr: {b: U, a?: string, "ignore-prop": boolean}): JSX.Element; ->OverloadComponent : { (): JSX.Element; (attr: { b: U; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } +>OverloadComponent : { (): JSX.Element; (attr: { b: U; a?: string; "ignore-prop": boolean;}): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } >attr : { b: U; a?: string; "ignore-prop": boolean; } >b : U >a : string @@ -15,7 +15,7 @@ declare function OverloadComponent(attr: {b: U, a?: string, "ignore-prop": bo >JSX : any declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; ->OverloadComponent : { (): JSX.Element; (attr: { b: U; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } +>OverloadComponent : { (): JSX.Element; (attr: { b: U; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T;}): JSX.Element; } >attr : { b: U; a: T; } >b : U >a : T diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types index 2e8c6f7b224..29ae53c3578 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types @@ -7,7 +7,7 @@ declare function OverloadComponent(): JSX.Element; >JSX : any declare function OverloadComponent(attr: {b: U, a: string, "ignore-prop": boolean}): JSX.Element; ->OverloadComponent : { (): JSX.Element; (attr: { b: U; a: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } +>OverloadComponent : { (): JSX.Element; (attr: { b: U; a: string; "ignore-prop": boolean;}): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } >attr : { b: U; a: string; "ignore-prop": boolean; } >b : U >a : string @@ -15,7 +15,7 @@ declare function OverloadComponent(attr: {b: U, a: string, "ignore-prop": boo >JSX : any declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; ->OverloadComponent : { (): JSX.Element; (attr: { b: U; a: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } +>OverloadComponent : { (): JSX.Element; (attr: { b: U; a: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T;}): JSX.Element; } >attr : { b: U; a: T; } >b : U >a : T diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types index 5af60aa9d77..ab00cba9d3a 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types @@ -27,13 +27,13 @@ function createComponent(arg: T) { } declare function ComponentSpecific(l: { prop: U }): JSX.Element; ->ComponentSpecific : (l: { prop: U; }) => JSX.Element +>ComponentSpecific : (l: { prop: U;}) => JSX.Element >l : { prop: U; } >prop : U >JSX : any declare function ComponentSpecific1(l: { prop: U, "ignore-prop": number }): JSX.Element; ->ComponentSpecific1 : (l: { prop: U; "ignore-prop": number; }) => JSX.Element +>ComponentSpecific1 : (l: { prop: U; "ignore-prop": number;}) => JSX.Element >l : { prop: U; "ignore-prop": number; } >prop : U >"ignore-prop" : number diff --git a/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.types b/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.types index 03ed388c8da..55fdd617e82 100644 --- a/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.types +++ b/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.types @@ -2,7 +2,7 @@ declare namespace JSX { interface Element { render(): Element | string | false; ->render : () => string | false | Element +>render : () => Element | string | false >false : false } } diff --git a/tests/baselines/reference/tsxTypeErrors.types b/tests/baselines/reference/tsxTypeErrors.types index e90b0fdf8c3..e9585272cf4 100644 --- a/tests/baselines/reference/tsxTypeErrors.types +++ b/tests/baselines/reference/tsxTypeErrors.types @@ -39,7 +39,7 @@ class MyClass { >MyClass : MyClass props: { ->props : { pt?: { x: number; y: number; }; name?: string; reqd: boolean; } +>props : { pt?: { x: number; y: number;}; name?: string; reqd: boolean; } pt?: { x: number; y: number; }; >pt : { x: number; y: number; } diff --git a/tests/baselines/reference/tsxUnionElementType1.types b/tests/baselines/reference/tsxUnionElementType1.types index 6033102882c..da1b3fb14db 100644 --- a/tests/baselines/reference/tsxUnionElementType1.types +++ b/tests/baselines/reference/tsxUnionElementType1.types @@ -3,7 +3,7 @@ import React = require('react'); >React : typeof React function SFC1(prop: { x: number }) { ->SFC1 : (prop: { x: number; }) => JSX.Element +>SFC1 : (prop: { x: number;}) => JSX.Element >prop : { x: number; } >x : number @@ -15,7 +15,7 @@ function SFC1(prop: { x: number }) { }; function SFC2(prop: { x: boolean }) { ->SFC2 : (prop: { x: boolean; }) => JSX.Element +>SFC2 : (prop: { x: boolean;}) => JSX.Element >prop : { x: boolean; } >x : boolean diff --git a/tests/baselines/reference/tsxUnionElementType2.types b/tests/baselines/reference/tsxUnionElementType2.types index 3b2df619596..377516d80dc 100644 --- a/tests/baselines/reference/tsxUnionElementType2.types +++ b/tests/baselines/reference/tsxUnionElementType2.types @@ -3,7 +3,7 @@ import React = require('react'); >React : typeof React function SFC1(prop: { x: number }) { ->SFC1 : (prop: { x: number; }) => JSX.Element +>SFC1 : (prop: { x: number;}) => JSX.Element >prop : { x: number; } >x : number @@ -15,7 +15,7 @@ function SFC1(prop: { x: number }) { }; function SFC2(prop: { x: boolean }) { ->SFC2 : (prop: { x: boolean; }) => JSX.Element +>SFC2 : (prop: { x: boolean;}) => JSX.Element >prop : { x: boolean; } >x : boolean diff --git a/tests/baselines/reference/tsxUnionElementType5.types b/tests/baselines/reference/tsxUnionElementType5.types index 091b86d4304..99bd38e75c3 100644 --- a/tests/baselines/reference/tsxUnionElementType5.types +++ b/tests/baselines/reference/tsxUnionElementType5.types @@ -21,7 +21,7 @@ function EmptySFC2() { } function SFC2(prop: { x: boolean }) { ->SFC2 : (prop: { x: boolean; }) => JSX.Element +>SFC2 : (prop: { x: boolean;}) => JSX.Element >prop : { x: boolean; } >x : boolean diff --git a/tests/baselines/reference/tsxUnionElementType6.types b/tests/baselines/reference/tsxUnionElementType6.types index db36bad01f0..acf85cf348d 100644 --- a/tests/baselines/reference/tsxUnionElementType6.types +++ b/tests/baselines/reference/tsxUnionElementType6.types @@ -21,7 +21,7 @@ function EmptySFC2() { } function SFC2(prop: { x: boolean }) { ->SFC2 : (prop: { x: boolean; }) => JSX.Element +>SFC2 : (prop: { x: boolean;}) => JSX.Element >prop : { x: boolean; } >x : boolean diff --git a/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types b/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types index d0be74dae84..8bf0f60b627 100644 --- a/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types +++ b/tests/baselines/reference/tsxUnionMemberChecksFilterDataProps.types @@ -5,13 +5,13 @@ import React, { ReactElement } from "react"; >ReactElement : any declare function NotHappy(props: ({ fixed?: boolean } | { value?: number })): ReactElement; ->NotHappy : (props: { fixed?: boolean; } | { value?: number; }) => React.ReactElement +>NotHappy : (props: ({ fixed?: boolean;} | { value?: number;})) => ReactElement >props : { fixed?: boolean; } | { value?: number; } >fixed : boolean >value : number declare function Happy(props: { fixed?: boolean, value?: number }): ReactElement; ->Happy : (props: { fixed?: boolean; value?: number; }) => React.ReactElement +>Happy : (props: { fixed?: boolean; value?: number;}) => ReactElement >props : { fixed?: boolean; value?: number; } >fixed : boolean >value : number diff --git a/tests/baselines/reference/typeAliases.types b/tests/baselines/reference/typeAliases.types index 3eff23307dc..6611e8357ec 100644 --- a/tests/baselines/reference/typeAliases.types +++ b/tests/baselines/reference/typeAliases.types @@ -122,7 +122,7 @@ var x13_2: T13 >x13_2 : I13 declare function foo13(t1: T1, t2: T13): void; ->foo13 : (t1: T1, t2: I13) => void +>foo13 : (t1: T1, t2: T13) => void >t1 : T1 >t2 : I13 @@ -145,7 +145,7 @@ var x14: T14; >x14 : string declare function foo14_1(x: T14): void; ->foo14_1 : (x: string) => void +>foo14_1 : (x: T14) => void >x : string declare function foo14_2(x: "click"): void; @@ -153,7 +153,7 @@ declare function foo14_2(x: "click"): void; >x : "click" declare function foo14_2(x: T14): void; ->foo14_2 : { (x: "click"): void; (x: string): void; } +>foo14_2 : { (x: "click"): void; (x: T14): void; } >x : string type Meters = number @@ -169,7 +169,7 @@ declare function f15(a: string): boolean; >a : string declare function f15(a: Meters): string; ->f15 : { (a: string): boolean; (a: number): string; } +>f15 : { (a: string): boolean; (a: Meters): string; } >a : number f15(E.x).toLowerCase(); diff --git a/tests/baselines/reference/typeArgInference.types b/tests/baselines/reference/typeArgInference.types index bc119fcd1f6..15a1b126621 100644 --- a/tests/baselines/reference/typeArgInference.types +++ b/tests/baselines/reference/typeArgInference.types @@ -1,7 +1,7 @@ === tests/cases/compiler/typeArgInference.ts === interface I { f(a1: { a: T; b: U }[], a2: { a: T; b: U }[]): { c: T; d: U }; ->f : (a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; } +>f : (a1: { a: T; b: U;}[], a2: { a: T; b: U;}[]) => { c: T; d: U;} >a1 : { a: T; b: U; }[] >a : T >b : U @@ -12,7 +12,7 @@ interface I { >d : U g(...arg: { a: T; b: U }[][]): { c: T; d: U }; ->g : (...arg: { a: T; b: U; }[][]) => { c: T; d: U; } +>g : (...arg: { a: T; b: U;}[][]) => { c: T; d: U;} >arg : { a: T; b: U; }[][] >a : T >b : U diff --git a/tests/baselines/reference/typeArgumentInferenceOrdering.types b/tests/baselines/reference/typeArgumentInferenceOrdering.types index 811e8c9622e..754d1aa8916 100644 --- a/tests/baselines/reference/typeArgumentInferenceOrdering.types +++ b/tests/baselines/reference/typeArgumentInferenceOrdering.types @@ -17,7 +17,7 @@ interface Goo { } function foo(f: { y: T }): T { return null } ->foo : (f: { y: T; }) => T +>foo : (f: { y: T;}) => T >f : { y: T; } >y : T >null : null diff --git a/tests/baselines/reference/typeFromPropertyAssignment35.types b/tests/baselines/reference/typeFromPropertyAssignment35.types index 678adb1ba53..4eebf48bbc1 100644 --- a/tests/baselines/reference/typeFromPropertyAssignment35.types +++ b/tests/baselines/reference/typeFromPropertyAssignment35.types @@ -1,7 +1,7 @@ === tests/cases/conformance/salsa/bug26877.js === /** @param {Emu.D} x */ function ollKorrect(x) { ->ollKorrect : (x: D) => void +>ollKorrect : (x: Emu.D) => void >x : D x._model diff --git a/tests/baselines/reference/typeFromPropertyAssignment6.types b/tests/baselines/reference/typeFromPropertyAssignment6.types index 2649b817155..7bcbddebe73 100644 --- a/tests/baselines/reference/typeFromPropertyAssignment6.types +++ b/tests/baselines/reference/typeFromPropertyAssignment6.types @@ -33,7 +33,7 @@ var msgs = Outer.i.messages() /** @param {Outer.Inner} inner */ function x(inner) { ->x : (inner: I) => void +>x : (inner: Outer.Inner) => void >inner : I } diff --git a/tests/baselines/reference/typeGuardConstructorClassAndNumber.types b/tests/baselines/reference/typeGuardConstructorClassAndNumber.types index d3ecf5d11e9..03caa6fd8c5 100644 --- a/tests/baselines/reference/typeGuardConstructorClassAndNumber.types +++ b/tests/baselines/reference/typeGuardConstructorClassAndNumber.types @@ -319,7 +319,7 @@ else { // Repro from #37660 function foo(instance: Function | object) { ->foo : (instance: object | Function) => number +>foo : (instance: Function | object) => number >instance : object | Function if (typeof instance === 'function') { diff --git a/tests/baselines/reference/typeGuardFunctionErrors.types b/tests/baselines/reference/typeGuardFunctionErrors.types index 5d5639f8a2c..8bc45f5f1f1 100644 --- a/tests/baselines/reference/typeGuardFunctionErrors.types +++ b/tests/baselines/reference/typeGuardFunctionErrors.types @@ -232,7 +232,7 @@ function b2(a: b is A) {}; >A : any function b3(): A | b is A { ->b3 : () => any +>b3 : () => A | b >is : any >A : typeof A diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.types index 1f36901d437..f88376b118f 100644 --- a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.types +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.types @@ -32,10 +32,10 @@ interface Square { interface Subshape { "0": { ->"0" : { sub: { under: { shape: Shape; }; }; } +>"0" : { sub: { under: { shape: Shape; };}; } sub: { ->sub : { under: { shape: Shape; }; } +>sub : { under: { shape: Shape;}; } under: { >under : { shape: Shape; } @@ -289,7 +289,7 @@ function check(z: Z, c: C) { } export function g(pair: [number, string?]): string { ->g : (pair: [number, (string | undefined)?]) => string +>g : (pair: [number, string?]) => string >pair : [number, (string | undefined)?] return pair[1] ? pair[1] : 'nope'; diff --git a/tests/baselines/reference/typeGuardNarrowsPrimitiveIntersection.types b/tests/baselines/reference/typeGuardNarrowsPrimitiveIntersection.types index a14629c3e2a..0a9ae9c4cf1 100644 --- a/tests/baselines/reference/typeGuardNarrowsPrimitiveIntersection.types +++ b/tests/baselines/reference/typeGuardNarrowsPrimitiveIntersection.types @@ -44,7 +44,7 @@ declare function isNonBlank2(value: string) : value is (string & Tag2); >value : string declare function doThis2(value: string & Tag2): void; ->doThis2 : (value: never) => void +>doThis2 : (value: string & Tag2) => void >value : never declare function doThat2(value: string) : void; diff --git a/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types b/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types index 9729de4bdf5..fbcbd82cf16 100644 --- a/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types +++ b/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types @@ -60,7 +60,7 @@ function f4(x: T) { } function f5(x: { s: string }) { ->f5 : (x: { s: string; }) => void +>f5 : (x: { s: string;}) => void >x : { s: string; } >s : string @@ -110,7 +110,7 @@ function f10(x: string | (() => string)) { } function f11(x: { s: string } | (() => string)) { ->f11 : (x: { s: string; } | (() => string)) => void +>f11 : (x: { s: string;} | (() => string)) => void >x : { s: string; } | (() => string) >s : string @@ -130,7 +130,7 @@ function f11(x: { s: string } | (() => string)) { } function f12(x: { s: string } | { n: number }) { ->f12 : (x: { s: string; } | { n: number; }) => void +>f12 : (x: { s: string;} | { n: number;}) => void >x : { s: string; } | { n: number; } >s : string >n : number diff --git a/tests/baselines/reference/typeGuardOfFromPropNameInUnionType.types b/tests/baselines/reference/typeGuardOfFromPropNameInUnionType.types index 6ba7ad088b2..f2c8a0f3498 100644 --- a/tests/baselines/reference/typeGuardOfFromPropNameInUnionType.types +++ b/tests/baselines/reference/typeGuardOfFromPropNameInUnionType.types @@ -66,7 +66,7 @@ function multipleClasses(x: A | B | C | D) { } function anonymousClasses(x: { a: string; } | { b: number; }) { ->anonymousClasses : (x: { a: string; } | { b: number; }) => void +>anonymousClasses : (x: { a: string;} | { b: number;}) => void >x : { a: string; } | { b: number; } >a : string >b : number diff --git a/tests/baselines/reference/typeGuardTypeOfUndefined.types b/tests/baselines/reference/typeGuardTypeOfUndefined.types index 750d44bb45c..79f87e101ca 100644 --- a/tests/baselines/reference/typeGuardTypeOfUndefined.types +++ b/tests/baselines/reference/typeGuardTypeOfUndefined.types @@ -217,7 +217,7 @@ function test8(a: boolean | void) { } function test9(a: boolean | number) { ->test9 : (a: number | boolean) => void +>test9 : (a: boolean | number) => void >a : number | boolean if (typeof a !== "undefined") { @@ -247,7 +247,7 @@ function test9(a: boolean | number) { } function test10(a: boolean | number) { ->test10 : (a: number | boolean) => void +>test10 : (a: boolean | number) => void >a : number | boolean if (typeof a === "undefined") { @@ -277,7 +277,7 @@ function test10(a: boolean | number) { } function test11(a: boolean | number) { ->test11 : (a: number | boolean) => void +>test11 : (a: boolean | number) => void >a : number | boolean if (typeof a === "undefined" || typeof a === "boolean") { @@ -301,7 +301,7 @@ function test11(a: boolean | number) { } function test12(a: boolean | number) { ->test12 : (a: number | boolean) => void +>test12 : (a: boolean | number) => void >a : number | boolean if (typeof a !== "undefined" && typeof a === "boolean") { @@ -325,7 +325,7 @@ function test12(a: boolean | number) { } function test13(a: boolean | number | void) { ->test13 : (a: number | boolean | void) => void +>test13 : (a: boolean | number | void) => void >a : number | boolean | void if (typeof a !== "undefined") { @@ -355,7 +355,7 @@ function test13(a: boolean | number | void) { } function test14(a: boolean | number | void) { ->test14 : (a: number | boolean | void) => void +>test14 : (a: boolean | number | void) => void >a : number | boolean | void if (typeof a === "undefined") { @@ -385,7 +385,7 @@ function test14(a: boolean | number | void) { } function test15(a: boolean | number | void) { ->test15 : (a: number | boolean | void) => void +>test15 : (a: boolean | number | void) => void >a : number | boolean | void if (typeof a === "undefined" || typeof a === "boolean") { @@ -409,7 +409,7 @@ function test15(a: boolean | number | void) { } function test16(a: boolean | number | void) { ->test16 : (a: number | boolean | void) => void +>test16 : (a: boolean | number | void) => void >a : number | boolean | void if (typeof a !== "undefined" && typeof a === "boolean") { diff --git a/tests/baselines/reference/typeGuardsDefeat.types b/tests/baselines/reference/typeGuardsDefeat.types index 90eb6c6db2d..45a1c0a39a7 100644 --- a/tests/baselines/reference/typeGuardsDefeat.types +++ b/tests/baselines/reference/typeGuardsDefeat.types @@ -2,7 +2,7 @@ // Also note that it is possible to defeat a type guard by calling a function that changes the // type of the guarded variable. function foo(x: number | string) { ->foo : (x: string | number) => number +>foo : (x: number | string) => number >x : string | number function f() { @@ -35,7 +35,7 @@ function foo(x: number | string) { } } function foo2(x: number | string) { ->foo2 : (x: string | number) => number +>foo2 : (x: number | string) => number >x : string | number if (typeof x === "string") { @@ -71,7 +71,7 @@ function foo2(x: number | string) { >f : () => number } function foo3(x: number | string) { ->foo3 : (x: string | number) => number +>foo3 : (x: number | string) => number >x : string | number if (typeof x === "string") { diff --git a/tests/baselines/reference/typeGuardsInConditionalExpression.types b/tests/baselines/reference/typeGuardsInConditionalExpression.types index f3b0a045e6b..bec6512da23 100644 --- a/tests/baselines/reference/typeGuardsInConditionalExpression.types +++ b/tests/baselines/reference/typeGuardsInConditionalExpression.types @@ -7,7 +7,7 @@ // provided the false expression contains no assignments to the variable or parameter. function foo(x: number | string) { ->foo : (x: string | number) => number +>foo : (x: number | string) => number >x : string | number return typeof x === "string" @@ -27,7 +27,7 @@ function foo(x: number | string) { >x : number } function foo2(x: number | string) { ->foo2 : (x: string | number) => string | number +>foo2 : (x: number | string) => string | number >x : string | number return typeof x === "string" @@ -50,7 +50,7 @@ function foo2(x: number | string) { >x : number } function foo3(x: number | string) { ->foo3 : (x: string | number) => number +>foo3 : (x: number | string) => number >x : string | number return typeof x === "string" @@ -73,7 +73,7 @@ function foo3(x: number | string) { >x : number } function foo4(x: number | string) { ->foo4 : (x: string | number) => string | number +>foo4 : (x: number | string) => string | number >x : string | number return typeof x === "string" @@ -96,7 +96,7 @@ function foo4(x: number | string) { >x : number } function foo5(x: number | string) { ->foo5 : (x: string | number) => string +>foo5 : (x: number | string) => string >x : string | number return typeof x === "string" @@ -119,7 +119,7 @@ function foo5(x: number | string) { >x : string } function foo6(x: number | string) { ->foo6 : (x: string | number) => string | number +>foo6 : (x: number | string) => string | number >x : string | number // Modify in both branches @@ -149,7 +149,7 @@ function foo6(x: number | string) { >x : string } function foo7(x: number | string | boolean) { ->foo7 : (x: string | number | boolean) => boolean +>foo7 : (x: number | string | boolean) => boolean >x : string | number | boolean return typeof x === "string" @@ -180,7 +180,7 @@ function foo7(x: number | string | boolean) { >10 : 10 } function foo8(x: number | string | boolean) { ->foo8 : (x: string | number | boolean) => boolean +>foo8 : (x: number | string | boolean) => boolean >x : string | number | boolean var b: number | boolean; @@ -223,7 +223,7 @@ function foo8(x: number | string | boolean) { >10 : 10 } function foo9(x: number | string) { ->foo9 : (x: string | number) => boolean +>foo9 : (x: number | string) => boolean >x : string | number var y = 10; @@ -257,7 +257,7 @@ function foo9(x: number | string) { >10 : 10 } function foo10(x: number | string | boolean) { ->foo10 : (x: string | number | boolean) => string +>foo10 : (x: number | string | boolean) => string >x : string | number | boolean // Mixing typeguards @@ -296,7 +296,7 @@ function foo10(x: number | string | boolean) { >toString : (radix?: number) => string } function foo11(x: number | string | boolean) { ->foo11 : (x: string | number | boolean) => string | number +>foo11 : (x: number | string | boolean) => string | number >x : string | number | boolean // Mixing typeguards @@ -339,7 +339,7 @@ function foo11(x: number | string | boolean) { >x : number } function foo12(x: number | string | boolean) { ->foo12 : (x: string | number | boolean) => number +>foo12 : (x: number | string | boolean) => number >x : string | number | boolean // Mixing typeguards diff --git a/tests/baselines/reference/typeGuardsInFunctionAndModuleBlock.types b/tests/baselines/reference/typeGuardsInFunctionAndModuleBlock.types index bf02447300f..b049cb528c1 100644 --- a/tests/baselines/reference/typeGuardsInFunctionAndModuleBlock.types +++ b/tests/baselines/reference/typeGuardsInFunctionAndModuleBlock.types @@ -2,7 +2,7 @@ // typeguards are scoped in function/module block function foo(x: number | string | boolean) { ->foo : (x: string | number | boolean) => string +>foo : (x: number | string | boolean) => string >x : string | number | boolean return typeof x === "string" @@ -46,7 +46,7 @@ function foo(x: number | string | boolean) { } (); } function foo2(x: number | string | boolean) { ->foo2 : (x: string | number | boolean) => string +>foo2 : (x: number | string | boolean) => string >x : string | number | boolean return typeof x === "string" @@ -92,7 +92,7 @@ function foo2(x: number | string | boolean) { >x : number | boolean } function foo3(x: number | string | boolean) { ->foo3 : (x: string | number | boolean) => string +>foo3 : (x: number | string | boolean) => string >x : string | number | boolean return typeof x === "string" @@ -136,7 +136,7 @@ function foo3(x: number | string | boolean) { })(); } function foo4(x: number | string | boolean) { ->foo4 : (x: string | number | boolean) => string +>foo4 : (x: number | string | boolean) => string >x : string | number | boolean return typeof x === "string" @@ -183,7 +183,7 @@ function foo4(x: number | string | boolean) { } // Type guards do not affect nested function declarations function foo5(x: number | string | boolean) { ->foo5 : (x: string | number | boolean) => void +>foo5 : (x: number | string | boolean) => void >x : string | number | boolean if (typeof x === "string") { diff --git a/tests/baselines/reference/typeGuardsInIfStatement.types b/tests/baselines/reference/typeGuardsInIfStatement.types index e2e0d19290c..25b1176f6ee 100644 --- a/tests/baselines/reference/typeGuardsInIfStatement.types +++ b/tests/baselines/reference/typeGuardsInIfStatement.types @@ -4,7 +4,7 @@ // In the false branch statement of an 'if' statement, // the type of a variable or parameter is narrowed by any type guard in the 'if' condition when false. function foo(x: number | string) { ->foo : (x: string | number) => number +>foo : (x: number | string) => number >x : string | number if (typeof x === "string") { @@ -25,7 +25,7 @@ function foo(x: number | string) { } } function foo2(x: number | string) { ->foo2 : (x: string | number) => number +>foo2 : (x: number | string) => number >x : string | number if (typeof x === "string") { @@ -48,7 +48,7 @@ function foo2(x: number | string) { } } function foo3(x: number | string) { ->foo3 : (x: string | number) => string | number +>foo3 : (x: number | string) => string | number >x : string | number if (typeof x === "string") { @@ -71,7 +71,7 @@ function foo3(x: number | string) { } } function foo4(x: number | string) { ->foo4 : (x: string | number) => string | number +>foo4 : (x: number | string) => string | number >x : string | number if (typeof x === "string") { @@ -94,7 +94,7 @@ function foo4(x: number | string) { } } function foo5(x: number | string) { ->foo5 : (x: string | number) => string +>foo5 : (x: number | string) => string >x : string | number if (typeof x === "string") { @@ -117,7 +117,7 @@ function foo5(x: number | string) { } } function foo6(x: number | string) { ->foo6 : (x: string | number) => string | number +>foo6 : (x: number | string) => string | number >x : string | number if (typeof x === "string") { @@ -145,7 +145,7 @@ function foo6(x: number | string) { } } function foo7(x: number | string | boolean) { ->foo7 : (x: string | number | boolean) => boolean +>foo7 : (x: number | string | boolean) => boolean >x : string | number | boolean if (typeof x === "string") { @@ -176,7 +176,7 @@ function foo7(x: number | string | boolean) { } } function foo8(x: number | string | boolean) { ->foo8 : (x: string | number | boolean) => boolean +>foo8 : (x: number | string | boolean) => boolean >x : string | number | boolean if (typeof x === "string") { @@ -213,7 +213,7 @@ function foo8(x: number | string | boolean) { } } function foo9(x: number | string) { ->foo9 : (x: string | number) => boolean +>foo9 : (x: number | string) => boolean >x : string | number var y = 10; @@ -247,7 +247,7 @@ function foo9(x: number | string) { } } function foo10(x: number | string | boolean) { ->foo10 : (x: string | number | boolean) => boolean +>foo10 : (x: number | string | boolean) => boolean >x : string | number | boolean // Mixing typeguard narrowing in if statement with conditional expression typeguard @@ -287,7 +287,7 @@ function foo10(x: number | string | boolean) { } } function foo11(x: number | string | boolean) { ->foo11 : (x: string | number | boolean) => string +>foo11 : (x: number | string | boolean) => string >x : string | number | boolean // Mixing typeguard narrowing in if statement with conditional expression typeguard @@ -349,7 +349,7 @@ function foo11(x: number | string | boolean) { } } function foo12(x: number | string | boolean) { ->foo12 : (x: string | number | boolean) => any +>foo12 : (x: number | string | boolean) => any >x : string | number | boolean // Mixing typeguard narrowing in if statement with conditional expression typeguard diff --git a/tests/baselines/reference/typeGuardsInRightOperandOfAndAndOperator.types b/tests/baselines/reference/typeGuardsInRightOperandOfAndAndOperator.types index 43766b1db12..b1b83309362 100644 --- a/tests/baselines/reference/typeGuardsInRightOperandOfAndAndOperator.types +++ b/tests/baselines/reference/typeGuardsInRightOperandOfAndAndOperator.types @@ -2,7 +2,7 @@ // In the right operand of a && operation, // the type of a variable or parameter is narrowed by any type guard in the left operand when true. function foo(x: number | string) { ->foo : (x: string | number) => boolean +>foo : (x: number | string) => boolean >x : string | number return typeof x === "string" && x.length === 10; // string @@ -18,7 +18,7 @@ function foo(x: number | string) { >10 : 10 } function foo2(x: number | string) { ->foo2 : (x: string | number) => number +>foo2 : (x: number | string) => number >x : string | number // modify x in right hand operand @@ -37,7 +37,7 @@ function foo2(x: number | string) { >x : number } function foo3(x: number | string) { ->foo3 : (x: string | number) => string +>foo3 : (x: number | string) => string >x : string | number // modify x in right hand operand with string type itself @@ -56,7 +56,7 @@ function foo3(x: number | string) { >x : string } function foo4(x: number | string | boolean) { ->foo4 : (x: string | number | boolean) => boolean +>foo4 : (x: number | string | boolean) => boolean >x : string | number | boolean return typeof x !== "string" // string | number | boolean @@ -77,7 +77,7 @@ function foo4(x: number | string | boolean) { >x : boolean } function foo5(x: number | string | boolean) { ->foo5 : (x: string | number | boolean) => boolean +>foo5 : (x: number | string | boolean) => boolean >x : string | number | boolean // usage of x or assignment to separate variable shouldn't cause narrowing of type to stop @@ -109,7 +109,7 @@ function foo5(x: number | string | boolean) { >x : true } function foo6(x: number | string | boolean) { ->foo6 : (x: string | number | boolean) => boolean +>foo6 : (x: number | string | boolean) => boolean >x : string | number | boolean // Mixing typeguard narrowing in if statement with conditional expression typeguard @@ -137,7 +137,7 @@ function foo6(x: number | string | boolean) { >10 : 10 } function foo7(x: number | string | boolean) { ->foo7 : (x: string | number | boolean) => string +>foo7 : (x: number | string | boolean) => string >x : string | number | boolean var y: number| boolean | string; diff --git a/tests/baselines/reference/typeGuardsInRightOperandOfOrOrOperator.types b/tests/baselines/reference/typeGuardsInRightOperandOfOrOrOperator.types index 8f381e115f5..af10a3ff9dc 100644 --- a/tests/baselines/reference/typeGuardsInRightOperandOfOrOrOperator.types +++ b/tests/baselines/reference/typeGuardsInRightOperandOfOrOrOperator.types @@ -3,7 +3,7 @@ // the type of a variable or parameter is narrowed by any type guard in the left operand when false, // provided the right operand contains no assignments to the variable or parameter. function foo(x: number | string) { ->foo : (x: string | number) => boolean +>foo : (x: number | string) => boolean >x : string | number return typeof x !== "string" || x.length === 10; // string @@ -19,7 +19,7 @@ function foo(x: number | string) { >10 : 10 } function foo2(x: number | string) { ->foo2 : (x: string | number) => number | true +>foo2 : (x: number | string) => number | true >x : string | number // modify x in right hand operand @@ -38,7 +38,7 @@ function foo2(x: number | string) { >x : number } function foo3(x: number | string) { ->foo3 : (x: string | number) => string | true +>foo3 : (x: number | string) => string | true >x : string | number // modify x in right hand operand with string type itself @@ -57,7 +57,7 @@ function foo3(x: number | string) { >x : string } function foo4(x: number | string | boolean) { ->foo4 : (x: string | number | boolean) => boolean +>foo4 : (x: number | string | boolean) => boolean >x : string | number | boolean return typeof x === "string" // string | number | boolean @@ -78,7 +78,7 @@ function foo4(x: number | string | boolean) { >x : boolean } function foo5(x: number | string | boolean) { ->foo5 : (x: string | number | boolean) => number | boolean +>foo5 : (x: number | string | boolean) => number | boolean >x : string | number | boolean // usage of x or assignment to separate variable shouldn't cause narrowing of type to stop @@ -110,7 +110,7 @@ function foo5(x: number | string | boolean) { >x : boolean } function foo6(x: number | string | boolean) { ->foo6 : (x: string | number | boolean) => boolean +>foo6 : (x: number | string | boolean) => boolean >x : string | number | boolean // Mixing typeguard @@ -138,7 +138,7 @@ function foo6(x: number | string | boolean) { >10 : 10 } function foo7(x: number | string | boolean) { ->foo7 : (x: string | number | boolean) => string | number | true +>foo7 : (x: number | string | boolean) => string | number | true >x : string | number | boolean var y: number| boolean | string; diff --git a/tests/baselines/reference/typeGuardsOnClassProperty.types b/tests/baselines/reference/typeGuardsOnClassProperty.types index 0c68086ab62..b0c354c8a27 100644 --- a/tests/baselines/reference/typeGuardsOnClassProperty.types +++ b/tests/baselines/reference/typeGuardsOnClassProperty.types @@ -58,7 +58,7 @@ class D { } var o: { ->o : { prop1: string | number; prop2: string | boolean; } +>o : { prop1: number | string; prop2: boolean | string; } prop1: number|string; >prop1 : string | number diff --git a/tests/baselines/reference/typeInferenceLiteralUnion.types b/tests/baselines/reference/typeInferenceLiteralUnion.types index de4637c52c5..5fc7807eb83 100644 --- a/tests/baselines/reference/typeInferenceLiteralUnion.types +++ b/tests/baselines/reference/typeInferenceLiteralUnion.types @@ -45,7 +45,7 @@ class NumCoercible { * Return the min and max simultaneously. */ export function extent(array: Array): [T | Primitive, T | Primitive] | [undefined, undefined] { ->extent : (array: (string | number | boolean | Date | T)[]) => [string | number | boolean | Date | T, string | number | boolean | Date | T] | [undefined, undefined] +>extent : (array: Array) => [T | Primitive, T | Primitive] | [undefined, undefined] >array : (string | number | boolean | Date | T)[] return [undefined, undefined]; diff --git a/tests/baselines/reference/typeName1.types b/tests/baselines/reference/typeName1.types index e4ee2798aee..b982c3c6d80 100644 --- a/tests/baselines/reference/typeName1.types +++ b/tests/baselines/reference/typeName1.types @@ -112,7 +112,7 @@ var x12:{z:I;x:boolean;y:(s:string)=>boolean;w:{ z:I;[s:string]:{ x; y; };[n:num >3 : 3 var x13:{ new(): number; new(n:number):number; x: string; w: {y: number;}; (): {}; } = 3; ->x13 : { (): {}; new (): number; new (n: number): number; x: string; w: { y: number; }; } +>x13 : { (): {}; new (): number; new (n: number): number; x: string; w: { y: number;}; } >n : number >x : string >w : { y: number; } diff --git a/tests/baselines/reference/typeParameterExtendsUnionConstraintDistributed.types b/tests/baselines/reference/typeParameterExtendsUnionConstraintDistributed.types index 4e81c9728c4..ba87f02355e 100644 --- a/tests/baselines/reference/typeParameterExtendsUnionConstraintDistributed.types +++ b/tests/baselines/reference/typeParameterExtendsUnionConstraintDistributed.types @@ -3,7 +3,7 @@ type A = 1 | 2; >A : A function f(a: T): A & T { return a; } // Shouldn't error ->f : (a: T) => (1 & T) | (2 & T) +>f : (a: T) => A & T >a : T >a : T @@ -11,7 +11,7 @@ type B = 2 | 3; >B : B function f2(ab: T & U): (A | B) & T & U { return ab; } // Also shouldn't error ->f2 : (ab: T & U) => (1 & T & U) | (2 & T & U) | (3 & T & U) +>f2 : (ab: T & U) => (A | B) & T & U >ab : T & U >ab : T & U diff --git a/tests/baselines/reference/typeParametersInStaticMethods.types b/tests/baselines/reference/typeParametersInStaticMethods.types index e08e8fbf072..527e36f90d4 100644 --- a/tests/baselines/reference/typeParametersInStaticMethods.types +++ b/tests/baselines/reference/typeParametersInStaticMethods.types @@ -3,8 +3,8 @@ class foo { >foo : foo static M(x: (x: T) => { x: { y: T } }) { ->M : (x: (x: any) => { x: { y: any; }; }) => void ->x : (x: any) => { x: { y: any; }; } +>M : (x: (x: any) => { x: { y: T;}; }) => void +>x : (x: any) => { x: { y: T;}; } >x : any >x : { y: any; } >y : any diff --git a/tests/baselines/reference/typePredicateStructuralMatch.types b/tests/baselines/reference/typePredicateStructuralMatch.types index 48cca07cf10..5235a14dc8d 100644 --- a/tests/baselines/reference/typePredicateStructuralMatch.types +++ b/tests/baselines/reference/typePredicateStructuralMatch.types @@ -33,7 +33,7 @@ type Results = Result[]; >Results : Results function isResponseInData(value: T | { data: T}): value is { data: T } { ->isResponseInData : (value: T | { data: T; }) => value is { data: T; } +>isResponseInData : (value: T | { data: T;}) => value is { data: T; } >value : T | { data: T; } >data : T >data : T @@ -47,7 +47,7 @@ function isResponseInData(value: T | { data: T}): value is { data: T } { } function getResults1(value: Results | { data: Results }): Results { ->getResults1 : (value: Results | { data: Results; }) => Results +>getResults1 : (value: Results | { data: Results;}) => Results >value : Results | { data: Results; } >data : Results @@ -63,7 +63,7 @@ function getResults1(value: Results | { data: Results }): Results { } function isPlainResponse(value: T | { data: T}): value is T { ->isPlainResponse : (value: T | { data: T; }) => value is T +>isPlainResponse : (value: T | { data: T;}) => value is T >value : T | { data: T; } >data : T @@ -77,7 +77,7 @@ function isPlainResponse(value: T | { data: T}): value is T { } function getResults2(value: Results | { data: Results }): Results { ->getResults2 : (value: Results | { data: Results; }) => Results +>getResults2 : (value: Results | { data: Results;}) => Results >value : Results | { data: Results; } >data : Results diff --git a/tests/baselines/reference/typePredicatesInUnion2.types b/tests/baselines/reference/typePredicatesInUnion2.types index 1d64c5602b5..5d4777474e2 100644 --- a/tests/baselines/reference/typePredicatesInUnion2.types +++ b/tests/baselines/reference/typePredicatesInUnion2.types @@ -8,7 +8,7 @@ declare function isNumber(x: any): x is number; >x : any declare function f(p: typeof isString | typeof isNumber): void; ->f : (p: ((x: any) => x is string) | ((x: any) => x is number)) => void +>f : (p: typeof isString | typeof isNumber) => void >p : ((x: any) => x is string) | ((x: any) => x is number) >isString : (x: any) => x is string >isNumber : (x: any) => x is number diff --git a/tests/baselines/reference/typeReferenceDirectives13.types b/tests/baselines/reference/typeReferenceDirectives13.types index bdd279aac4f..4f404d90ae9 100644 --- a/tests/baselines/reference/typeReferenceDirectives13.types +++ b/tests/baselines/reference/typeReferenceDirectives13.types @@ -5,7 +5,7 @@ import {$} from "./ref"; export interface A { x: () => typeof $ ->x : () => { x: number; } +>x : () => typeof $ >$ : { x: number; } } diff --git a/tests/baselines/reference/typedefTagWrapping.types b/tests/baselines/reference/typedefTagWrapping.types index 8b49439d7db..86d2a059272 100644 --- a/tests/baselines/reference/typedefTagWrapping.types +++ b/tests/baselines/reference/typedefTagWrapping.types @@ -12,7 +12,7 @@ * @returns {boolean} The return. */ function callIt(func, arg) { ->callIt : (func: (arg0: string) => boolean, arg: string) => boolean +>callIt : (func: Type1, arg: string) => boolean >func : (arg0: string) => boolean >arg : string @@ -37,7 +37,7 @@ function callIt(func, arg) { * @returns {string|number} The return. */ function check(obj) { ->check : (obj: { num: number; str: string; boo: boolean; }) => string | number +>check : (obj: Type2) => string | number >obj : { num: number; str: string; boo: boolean; } return obj.boo ? obj.num : obj.str; @@ -70,7 +70,7 @@ function check(obj) { * @returns {string|number} The return. */ function use1(func, bool, str, num) { ->use1 : (func: (arg0: boolean, arg1: string, arg2: number) => string | number, bool: boolean, str: string, num: number) => string | number +>use1 : (func: StringOrNumber1, bool: boolean, str: string, num: number) => string | number >func : (arg0: boolean, arg1: string, arg2: number) => string | number >bool : boolean >str : string @@ -102,7 +102,7 @@ function use1(func, bool, str, num) { * @returns {string|number} The return. */ function use2(func, bool, str, num) { ->use2 : (func: (arg0: boolean, arg1: string, arg2: number) => string | number, bool: boolean, str: string, num: number) => string | number +>use2 : (func: StringOrNumber2, bool: boolean, str: string, num: number) => string | number >func : (arg0: boolean, arg1: string, arg2: number) => string | number >bool : boolean >str : string @@ -134,7 +134,7 @@ function use2(func, bool, str, num) { * @returns {string|number} The return. */ function check5(obj) { ->check5 : (obj: { num: number; str: string; boo: boolean; }) => string | number +>check5 : (obj: Type5) => string | number >obj : { num: number; str: string; boo: boolean; } return obj.boo ? obj.num : obj.str; @@ -166,7 +166,7 @@ function check5(obj) { * @returns {*} The return. */ function check6(obj) { ->check6 : (obj: { foo: any; bar: any; }) => any +>check6 : (obj: Type6) => any >obj : { foo: any; bar: any; } return obj.foo; diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.1.types b/tests/baselines/reference/types.asyncGenerators.es2018.1.types index 3c6e51c56d2..5d8bc36979c 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.1.types +++ b/tests/baselines/reference/types.asyncGenerators.es2018.1.types @@ -194,7 +194,7 @@ const assignability10: () => AsyncIterable = async function * () { }; const assignability11: () => AsyncIterator = async function * () { ->assignability11 : () => AsyncIterator +>assignability11 : () => AsyncIterator >async function * () { yield 1;} : () => AsyncGenerator yield 1; @@ -203,7 +203,7 @@ const assignability11: () => AsyncIterator = async function * () { }; const assignability12: () => AsyncIterator = async function * () { ->assignability12 : () => AsyncIterator +>assignability12 : () => AsyncIterator >async function * () { yield Promise.resolve(1);} : () => AsyncGenerator yield Promise.resolve(1); @@ -216,7 +216,7 @@ const assignability12: () => AsyncIterator = async function * () { }; const assignability13: () => AsyncIterator = async function * () { ->assignability13 : () => AsyncIterator +>assignability13 : () => AsyncIterator >async function * () { yield* [1, 2];} : () => AsyncGenerator yield* [1, 2]; @@ -227,7 +227,7 @@ const assignability13: () => AsyncIterator = async function * () { }; const assignability14: () => AsyncIterator = async function * () { ->assignability14 : () => AsyncIterator +>assignability14 : () => AsyncIterator >async function * () { yield* [Promise.resolve(1)];} : () => AsyncGenerator yield* [Promise.resolve(1)]; @@ -241,7 +241,7 @@ const assignability14: () => AsyncIterator = async function * () { }; const assignability15: () => AsyncIterator = async function * () { ->assignability15 : () => AsyncIterator +>assignability15 : () => AsyncIterator >async function * () { yield* (async function * () { yield 1; })();} : () => AsyncGenerator yield* (async function * () { yield 1; })(); @@ -354,14 +354,14 @@ async function * explicitReturnType10(): AsyncIterable { >1 : 1 } async function * explicitReturnType11(): AsyncIterator { ->explicitReturnType11 : () => AsyncIterator +>explicitReturnType11 : () => AsyncIterator yield 1; >yield 1 : undefined >1 : 1 } async function * explicitReturnType12(): AsyncIterator { ->explicitReturnType12 : () => AsyncIterator +>explicitReturnType12 : () => AsyncIterator yield Promise.resolve(1); >yield Promise.resolve(1) : undefined @@ -372,7 +372,7 @@ async function * explicitReturnType12(): AsyncIterator { >1 : 1 } async function * explicitReturnType13(): AsyncIterator { ->explicitReturnType13 : () => AsyncIterator +>explicitReturnType13 : () => AsyncIterator yield* [1, 2]; >yield* [1, 2] : any @@ -381,7 +381,7 @@ async function * explicitReturnType13(): AsyncIterator { >2 : 2 } async function * explicitReturnType14(): AsyncIterator { ->explicitReturnType14 : () => AsyncIterator +>explicitReturnType14 : () => AsyncIterator yield* [Promise.resolve(1)]; >yield* [Promise.resolve(1)] : any @@ -393,7 +393,7 @@ async function * explicitReturnType14(): AsyncIterator { >1 : 1 } async function * explicitReturnType15(): AsyncIterator { ->explicitReturnType15 : () => AsyncIterator +>explicitReturnType15 : () => AsyncIterator yield* (async function * () { yield 1; })(); >yield* (async function * () { yield 1; })() : void diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.2.types b/tests/baselines/reference/types.asyncGenerators.es2018.2.types index 83524871199..e0069210d59 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.2.types +++ b/tests/baselines/reference/types.asyncGenerators.es2018.2.types @@ -94,7 +94,7 @@ const assignability6: () => AsyncIterable = async function * () { }; const assignability7: () => AsyncIterator = async function * () { ->assignability7 : () => AsyncIterator +>assignability7 : () => AsyncIterator >async function * () { yield "a";} : () => AsyncGenerator yield "a"; @@ -103,7 +103,7 @@ const assignability7: () => AsyncIterator = async function * () { }; const assignability8: () => AsyncIterator = async function * () { ->assignability8 : () => AsyncIterator +>assignability8 : () => AsyncIterator >async function * () { yield* ["a", "b"];} : () => AsyncGenerator yield* ["a", "b"]; @@ -114,7 +114,7 @@ const assignability8: () => AsyncIterator = async function * () { }; const assignability9: () => AsyncIterator = async function * () { ->assignability9 : () => AsyncIterator +>assignability9 : () => AsyncIterator >async function * () { yield* (async function * () { yield "a"; })();} : () => AsyncGenerator yield* (async function * () { yield "a"; })(); @@ -181,14 +181,14 @@ async function * explicitReturnType6(): AsyncIterable { >"a" : "a" } async function * explicitReturnType7(): AsyncIterator { ->explicitReturnType7 : () => AsyncIterator +>explicitReturnType7 : () => AsyncIterator yield "a"; >yield "a" : undefined >"a" : "a" } async function * explicitReturnType8(): AsyncIterator { ->explicitReturnType8 : () => AsyncIterator +>explicitReturnType8 : () => AsyncIterator yield* ["a", "b"]; >yield* ["a", "b"] : any @@ -197,7 +197,7 @@ async function * explicitReturnType8(): AsyncIterator { >"b" : "b" } async function * explicitReturnType9(): AsyncIterator { ->explicitReturnType9 : () => AsyncIterator +>explicitReturnType9 : () => AsyncIterator yield* (async function * () { yield "a"; })(); >yield* (async function * () { yield "a"; })() : void @@ -222,7 +222,7 @@ async function * explicitReturnType11(): Iterable { >1 : 1 } async function * explicitReturnType12(): Iterator { ->explicitReturnType12 : () => Iterator +>explicitReturnType12 : () => Iterator yield 1; >yield 1 : undefined diff --git a/tests/baselines/reference/typesWithSpecializedCallSignatures.types b/tests/baselines/reference/typesWithSpecializedCallSignatures.types index 4fba7575778..87b1f6ea89f 100644 --- a/tests/baselines/reference/typesWithSpecializedCallSignatures.types +++ b/tests/baselines/reference/typesWithSpecializedCallSignatures.types @@ -19,11 +19,11 @@ class C { >C : C foo(x: 'hi'): Derived1; ->foo : { (x: "hi"): Derived1; (x: "bye"): Derived2; (x: string): Base; } +>foo : { (x: 'hi'): Derived1; (x: "bye"): Derived2; (x: string): Base; } >x : "hi" foo(x: 'bye'): Derived2; ->foo : { (x: "hi"): Derived1; (x: "bye"): Derived2; (x: string): Base; } +>foo : { (x: "hi"): Derived1; (x: 'bye'): Derived2; (x: string): Base; } >x : "bye" foo(x: string): Base; @@ -45,11 +45,11 @@ var c = new C(); interface I { foo(x: 'hi'): Derived1; ->foo : { (x: "hi"): Derived1; (x: "bye"): Derived2; (x: string): Base; } +>foo : { (x: 'hi'): Derived1; (x: "bye"): Derived2; (x: string): Base; } >x : "hi" foo(x: 'bye'): Derived2; ->foo : { (x: "hi"): Derived1; (x: "bye"): Derived2; (x: string): Base; } +>foo : { (x: "hi"): Derived1; (x: 'bye'): Derived2; (x: string): Base; } >x : "bye" foo(x: string): Base; @@ -60,14 +60,14 @@ var i: I; >i : I var a: { ->a : { foo(x: "hi"): Derived1; foo(x: "bye"): Derived2; foo(x: string): Base; } +>a : { foo(x: 'hi'): Derived1; foo(x: 'bye'): Derived2; foo(x: string): Base; } foo(x: 'hi'): Derived1; ->foo : { (x: "hi"): Derived1; (x: "bye"): Derived2; (x: string): Base; } +>foo : { (x: 'hi'): Derived1; (x: "bye"): Derived2; (x: string): Base; } >x : "hi" foo(x: 'bye'): Derived2; ->foo : { (x: "hi"): Derived1; (x: "bye"): Derived2; (x: string): Base; } +>foo : { (x: "hi"): Derived1; (x: 'bye'): Derived2; (x: string): Base; } >x : "bye" foo(x: string): Base; diff --git a/tests/baselines/reference/typesWithSpecializedConstructSignatures.types b/tests/baselines/reference/typesWithSpecializedConstructSignatures.types index c57b6e4acd3..13b6a69882d 100644 --- a/tests/baselines/reference/typesWithSpecializedConstructSignatures.types +++ b/tests/baselines/reference/typesWithSpecializedConstructSignatures.types @@ -54,7 +54,7 @@ var i: I; >i : I var a: { ->a : { new (x: "hi"): Derived1; new (x: "bye"): Derived2; new (x: string): Base; } +>a : { new (x: 'hi'): Derived1; new (x: 'bye'): Derived2; new (x: string): Base; } new(x: 'hi'): Derived1; >x : "hi" diff --git a/tests/baselines/reference/umd-augmentation-1.types b/tests/baselines/reference/umd-augmentation-1.types index 4d4e31a64b4..0375f4763cf 100644 --- a/tests/baselines/reference/umd-augmentation-1.types +++ b/tests/baselines/reference/umd-augmentation-1.types @@ -90,7 +90,7 @@ declare module 'math2d' { // Add a method to the class interface Vector { reverse(): Math2d.Point; ->reverse : () => Point +>reverse : () => Math2d.Point >Math2d : any } } diff --git a/tests/baselines/reference/umd-augmentation-2.types b/tests/baselines/reference/umd-augmentation-2.types index f5806f71d96..1a48524c7ad 100644 --- a/tests/baselines/reference/umd-augmentation-2.types +++ b/tests/baselines/reference/umd-augmentation-2.types @@ -88,7 +88,7 @@ declare module 'math2d' { // Add a method to the class interface Vector { reverse(): Math2d.Point; ->reverse : () => Point +>reverse : () => Math2d.Point >Math2d : any } } diff --git a/tests/baselines/reference/umd-augmentation-3.types b/tests/baselines/reference/umd-augmentation-3.types index 78eeed163ce..a4878115dfd 100644 --- a/tests/baselines/reference/umd-augmentation-3.types +++ b/tests/baselines/reference/umd-augmentation-3.types @@ -99,7 +99,7 @@ declare module 'math2d' { // Add a method to the class interface Vector { reverse(): Math2d.Point; ->reverse : () => Point +>reverse : () => Math2d.Point >Math2d : any } } diff --git a/tests/baselines/reference/umd-augmentation-4.types b/tests/baselines/reference/umd-augmentation-4.types index cc86ab03b31..11fd7a71982 100644 --- a/tests/baselines/reference/umd-augmentation-4.types +++ b/tests/baselines/reference/umd-augmentation-4.types @@ -97,7 +97,7 @@ declare module 'math2d' { // Add a method to the class interface Vector { reverse(): Math2d.Point; ->reverse : () => Point +>reverse : () => Math2d.Point >Math2d : any } } diff --git a/tests/baselines/reference/undeclaredModuleError.types b/tests/baselines/reference/undeclaredModuleError.types index 0e4e6c3a409..5056cedc04a 100644 --- a/tests/baselines/reference/undeclaredModuleError.types +++ b/tests/baselines/reference/undeclaredModuleError.types @@ -3,13 +3,13 @@ import fs = require('fs'); >fs : any function readdir(path: string, accept: (stat: fs.Stats, name: string) => boolean, callback: (error: Error, results: { name: string; stat: fs.Stats; }[]) => void ) {} ->readdir : (path: string, accept: (stat: any, name: string) => boolean, callback: (error: Error, results: { name: string; stat: any; }[]) => void) => void +>readdir : (path: string, accept: (stat: any, name: string) => boolean, callback: (error: Error, results: { name: string; stat: fs.Stats;}[]) => void) => void >path : string >accept : (stat: any, name: string) => boolean >stat : any >fs : any >name : string ->callback : (error: Error, results: { name: string; stat: any; }[]) => void +>callback : (error: Error, results: { name: string; stat: fs.Stats;}[]) => void >error : Error >results : { name: string; stat: any; }[] >name : string diff --git a/tests/baselines/reference/undefinedArgumentInference.types b/tests/baselines/reference/undefinedArgumentInference.types index a3cc04c3dd1..c90cd16226a 100644 --- a/tests/baselines/reference/undefinedArgumentInference.types +++ b/tests/baselines/reference/undefinedArgumentInference.types @@ -1,6 +1,6 @@ === tests/cases/compiler/undefinedArgumentInference.ts === function foo1(f1: { x: T; y: T }): T { ->foo1 : (f1: { x: T; y: T; }) => T +>foo1 : (f1: { x: T; y: T;}) => T >f1 : { x: T; y: T; } >x : T >y : T diff --git a/tests/baselines/reference/undefinedTypeArgument2.types b/tests/baselines/reference/undefinedTypeArgument2.types index 129105353a7..f0dc97ef448 100644 --- a/tests/baselines/reference/undefinedTypeArgument2.types +++ b/tests/baselines/reference/undefinedTypeArgument2.types @@ -7,7 +7,7 @@ interface Query { >item : T selectMany(arraySelector: (item: T) => U[], resultSelector: (outer: T, inner: U) => R): Query; ->selectMany : { (selector: (item: T) => U[]): Query; (arraySelector: (item: T) => U[], resultSelector: (outer: T, inner: U) => any): Query; } +>selectMany : { (selector: (item: T) => U[]): Query; (arraySelector: (item: T) => U[], resultSelector: (outer: T, inner: U) => any): Query; } >arraySelector : (item: T) => U[] >item : T >resultSelector : (outer: T, inner: U) => any diff --git a/tests/baselines/reference/unionAndIntersectionInference1.types b/tests/baselines/reference/unionAndIntersectionInference1.types index 72d60545e6a..a150f94b853 100644 --- a/tests/baselines/reference/unionAndIntersectionInference1.types +++ b/tests/baselines/reference/unionAndIntersectionInference1.types @@ -10,7 +10,7 @@ var y: Y = undefined; >undefined : undefined function destructure( ->destructure : (something: Y | a, haveValue: (value: a) => r, haveY: (value: Y) => r) => r +>destructure : (something: a | Y, haveValue: (value: a) => r, haveY: (value: Y) => r) => r something: a | Y, >something : Y | a @@ -123,7 +123,7 @@ type Maybe = T | void; >Maybe : Maybe function get(x: U | void): U { ->get : (x: void | U) => U +>get : (x: U | void) => U >x : void | U return null; // just an example diff --git a/tests/baselines/reference/unionAndIntersectionInference2.types b/tests/baselines/reference/unionAndIntersectionInference2.types index a163b25ce28..4f87849c066 100644 --- a/tests/baselines/reference/unionAndIntersectionInference2.types +++ b/tests/baselines/reference/unionAndIntersectionInference2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/typeRelationships/typeInference/unionAndIntersectionInference2.ts === declare function f1(x: T | string): T; ->f1 : (x: string | T) => T +>f1 : (x: T | string) => T >x : string | T var a1: string; @@ -45,7 +45,7 @@ f1(e1); // number | boolean >e1 : string | number | boolean declare function f2(x: T & { name: string }): T; ->f2 : (x: T & { name: string; }) => T +>f2 : (x: T & { name: string;}) => T >x : T & { name: string; } >name : string diff --git a/tests/baselines/reference/unionAndIntersectionInference3.types b/tests/baselines/reference/unionAndIntersectionInference3.types index 05cb9368f83..978abccf488 100644 --- a/tests/baselines/reference/unionAndIntersectionInference3.types +++ b/tests/baselines/reference/unionAndIntersectionInference3.types @@ -5,7 +5,7 @@ type Maybe = T | undefined; >Maybe : Maybe declare function concatMaybe(...args: (Maybe | Maybe[])[]): T[]; ->concatMaybe : (...args: (T | Maybe[] | undefined)[]) => T[] +>concatMaybe : (...args: (Maybe | Maybe[])[]) => T[] >args : (T | Maybe[] | undefined)[] concatMaybe([1, 2, 3], 4); @@ -157,7 +157,7 @@ export interface RouteComponentProps { route: string } >route : string declare function withRouter< ->withRouter :

>(component: (C & FunctionComponent

) | (C & ComponentClass

)) => ComponentClass>> +>withRouter :

>(component: C & ComponentType

) => ComponentClass> P extends RouteComponentProps, C extends ComponentType

@@ -187,7 +187,7 @@ type AB = { a: T } | { b: T }; // T & AB normalizes to T & { a: U } | T & { b: U } below declare function foo(obj: T & AB): [T, U]; ->foo : (obj: (T & { a: U; }) | (T & { b: U; })) => [T, U] +>foo : (obj: T & AB) => [T, U] >obj : (T & { a: U; }) | (T & { b: U; }) declare let ab: AB; diff --git a/tests/baselines/reference/unionExcessPropertyCheckNoApparentPropTypeMismatchErrors.types b/tests/baselines/reference/unionExcessPropertyCheckNoApparentPropTypeMismatchErrors.types index 83bd83d6ec1..1a9d8985573 100644 --- a/tests/baselines/reference/unionExcessPropertyCheckNoApparentPropTypeMismatchErrors.types +++ b/tests/baselines/reference/unionExcessPropertyCheckNoApparentPropTypeMismatchErrors.types @@ -9,9 +9,9 @@ interface INumberDictionary { } declare function forEach(from: IStringDictionary | INumberDictionary, callback: (entry: { key: any; value: T; }, remove: () => void) => any); ->forEach : (from: IStringDictionary | INumberDictionary, callback: (entry: { key: any; value: T; }, remove: () => void) => any) => any +>forEach : (from: IStringDictionary | INumberDictionary, callback: (entry: { key: any; value: T;}, remove: () => void) => any) => any >from : IStringDictionary | INumberDictionary ->callback : (entry: { key: any; value: T; }, remove: () => void) => any +>callback : (entry: { key: any; value: T;}, remove: () => void) => any >entry : { key: any; value: T; } >key : any >value : T diff --git a/tests/baselines/reference/unionOfFunctionAndSignatureIsCallable.types b/tests/baselines/reference/unionOfFunctionAndSignatureIsCallable.types index 96e49d80d50..310007e15cd 100644 --- a/tests/baselines/reference/unionOfFunctionAndSignatureIsCallable.types +++ b/tests/baselines/reference/unionOfFunctionAndSignatureIsCallable.types @@ -1,6 +1,6 @@ === tests/cases/compiler/unionOfFunctionAndSignatureIsCallable.ts === function f1(c1: Function, c2: () => object, callable: typeof c1 | typeof c2) { ->f1 : (c1: Function, c2: () => object, callable: Function | (() => object)) => void +>f1 : (c1: Function, c2: () => object, callable: typeof c1 | typeof c2) => void >c1 : Function >c2 : () => object >callable : Function | (() => object) diff --git a/tests/baselines/reference/unionTypeReduction2.types b/tests/baselines/reference/unionTypeReduction2.types index 5342ab692ab..740ee289100 100644 --- a/tests/baselines/reference/unionTypeReduction2.types +++ b/tests/baselines/reference/unionTypeReduction2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/union/unionTypeReduction2.ts === function f1(x: { f(): void }, y: { f(x?: string): void }) { ->f1 : (x: { f(): void; }, y: { f(x?: string | undefined): void; }) => void +>f1 : (x: { f(): void;}, y: { f(x?: string | undefined): void; }) => void >x : { f(): void; } >f : () => void >y : { f(x?: string | undefined): void; } @@ -140,8 +140,8 @@ function f5(x: (x: string | undefined) => void, y: (x?: 'hello') => void) { } function f6(x: (x: 'hello' | undefined) => void, y: (x?: string) => void) { ->f6 : (x: (x: "hello" | undefined) => void, y: (x?: string | undefined) => void) => void ->x : (x: "hello" | undefined) => void +>f6 : (x: (x: 'hello' | undefined) => void, y: (x?: string | undefined) => void) => void +>x : (x: 'hello' | undefined) => void >x : "hello" | undefined >y : (x?: string | undefined) => void >x : string | undefined diff --git a/tests/baselines/reference/unionTypeWithIndexAndTuple.types b/tests/baselines/reference/unionTypeWithIndexAndTuple.types index 6b7ec0d3659..b1e6d64425c 100644 --- a/tests/baselines/reference/unionTypeWithIndexAndTuple.types +++ b/tests/baselines/reference/unionTypeWithIndexAndTuple.types @@ -7,7 +7,7 @@ interface I { >someOtherProperty : number } function f(args: ["a"] | I) { } ->f : (args: I | ["a"]) => void +>f : (args: ["a"] | I) => void >args : I | ["a"] f(["a"]); diff --git a/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.types b/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.types index 4faece19194..d9433e91766 100644 --- a/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.types +++ b/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.types @@ -1,8 +1,8 @@ === tests/cases/compiler/unionTypeWithRecursiveSubtypeReduction3.ts === var a27: { prop: number } | { prop: T27 }; ->a27 : { prop: number; } | { prop: { prop: number; } | any; } +>a27 : { prop: number; } | { prop: T27; } >prop : number ->prop : { prop: number; } | { prop: { prop: number; } | any; } +>prop : { prop: number; } | { prop: T27; } type T27 = typeof a27; >T27 : { prop: number; } | { prop: { prop: number; } | any; } diff --git a/tests/baselines/reference/uniqueSymbols.types b/tests/baselines/reference/uniqueSymbols.types index a321593c11a..5635789d2a7 100644 --- a/tests/baselines/reference/uniqueSymbols.types +++ b/tests/baselines/reference/uniqueSymbols.types @@ -107,7 +107,7 @@ function funcReturnVarCall() { return varCall; } // function return value with type query function funcReturnConstCallWithTypeQuery(): typeof constCall { return constCall; } ->funcReturnConstCallWithTypeQuery : () => unique symbol +>funcReturnConstCallWithTypeQuery : () => typeof constCall >constCall : unique symbol >constCall : unique symbol @@ -129,7 +129,7 @@ function* genFuncYieldVarCall() { yield varCall; } // generator function yield with return type query function* genFuncYieldConstCallWithTypeQuery(): IterableIterator { yield constCall; } ->genFuncYieldConstCallWithTypeQuery : () => IterableIterator +>genFuncYieldConstCallWithTypeQuery : () => IterableIterator >constCall : unique symbol >yield constCall : undefined >constCall : unique symbol @@ -432,12 +432,12 @@ declare function f(x: T): T; >x : T declare function g(x: typeof s): void; ->g : { (x: unique symbol): void; (x: unique symbol): void; } +>g : { (x: typeof s): void; (x: unique symbol): void; } >x : unique symbol >s : unique symbol declare function g(x: typeof N.s): void; ->g : { (x: unique symbol): void; (x: unique symbol): void; } +>g : { (x: unique symbol): void; (x: typeof N.s): void; } >x : unique symbol >N.s : unique symbol >N : typeof N @@ -795,23 +795,23 @@ class C1 { interface Context { method1(): typeof s; ->method1 : () => unique symbol +>method1 : () => typeof s >s : unique symbol method2(): Promise; ->method2 : () => Promise +>method2 : () => Promise >s : unique symbol method3(): AsyncIterableIterator; ->method3 : () => AsyncIterableIterator +>method3 : () => AsyncIterableIterator >s : unique symbol method4(): IterableIterator; ->method4 : () => IterableIterator +>method4 : () => IterableIterator >s : unique symbol method5(p?: typeof s): typeof s; ->method5 : (p?: unique symbol) => unique symbol +>method5 : (p?: typeof s) => typeof s >p : unique symbol >s : unique symbol >s : unique symbol @@ -865,11 +865,11 @@ const o3: Context = { // allowed when not emitting declarations const o4 = { ->o4 : { method1(p: unique symbol): unique symbol; method2(p: unique symbol): unique symbol; } ->{ method1(p: typeof s): typeof s { return p; }, method2(p: I["readonlyType"]): I["readonlyType"] { return p; }} : { method1(p: unique symbol): unique symbol; method2(p: unique symbol): unique symbol; } +>o4 : { method1(p: typeof s): typeof s; method2(p: I["readonlyType"]): I["readonlyType"]; } +>{ method1(p: typeof s): typeof s { return p; }, method2(p: I["readonlyType"]): I["readonlyType"] { return p; }} : { method1(p: typeof s): typeof s; method2(p: I["readonlyType"]): I["readonlyType"]; } method1(p: typeof s): typeof s { ->method1 : (p: unique symbol) => unique symbol +>method1 : (p: typeof s) => typeof s >p : unique symbol >s : unique symbol >s : unique symbol @@ -879,7 +879,7 @@ const o4 = { }, method2(p: I["readonlyType"]): I["readonlyType"] { ->method2 : (p: unique symbol) => unique symbol +>method2 : (p: I["readonlyType"]) => I["readonlyType"] >p : unique symbol return p; @@ -892,7 +892,7 @@ const ce0 = class { >class { method1(p: typeof s): typeof s { return p; } method2(p: I["readonlyType"]): I["readonlyType"] { return p; }} : typeof ce0 method1(p: typeof s): typeof s { ->method1 : (p: unique symbol) => unique symbol +>method1 : (p: typeof s) => typeof s >p : unique symbol >s : unique symbol >s : unique symbol @@ -901,7 +901,7 @@ const ce0 = class { >p : unique symbol } method2(p: I["readonlyType"]): I["readonlyType"] { ->method2 : (p: unique symbol) => unique symbol +>method2 : (p: I["readonlyType"]) => I["readonlyType"] >p : unique symbol return p; @@ -910,9 +910,9 @@ const ce0 = class { }; function funcInferredReturnType(obj: { method(p: typeof s): void }) { ->funcInferredReturnType : (obj: { method(p: unique symbol): void; }) => { method(p: unique symbol): void; } ->obj : { method(p: unique symbol): void; } ->method : (p: unique symbol) => void +>funcInferredReturnType : (obj: { method(p: typeof s): void; }) => { method(p: typeof s): void; } +>obj : { method(p: typeof s): void; } +>method : (p: typeof s) => void >p : unique symbol >s : unique symbol diff --git a/tests/baselines/reference/uniqueSymbolsDeclarations.types b/tests/baselines/reference/uniqueSymbolsDeclarations.types index bacdafc5680..5854038ca97 100644 --- a/tests/baselines/reference/uniqueSymbolsDeclarations.types +++ b/tests/baselines/reference/uniqueSymbolsDeclarations.types @@ -100,7 +100,7 @@ function funcReturnVarCall() { return varCall; } // function return value with type query function funcReturnConstCallWithTypeQuery(): typeof constCall { return constCall; } ->funcReturnConstCallWithTypeQuery : () => unique symbol +>funcReturnConstCallWithTypeQuery : () => typeof constCall >constCall : unique symbol >constCall : unique symbol @@ -122,7 +122,7 @@ function* genFuncYieldVarCall() { yield varCall; } // generator function yield with return type query function* genFuncYieldConstCallWithTypeQuery(): IterableIterator { yield constCall; } ->genFuncYieldConstCallWithTypeQuery : () => IterableIterator +>genFuncYieldConstCallWithTypeQuery : () => IterableIterator >constCall : unique symbol >yield constCall : undefined >constCall : unique symbol @@ -425,12 +425,12 @@ declare function f(x: T): T; >x : T declare function g(x: typeof s): void; ->g : { (x: unique symbol): void; (x: unique symbol): void; } +>g : { (x: typeof s): void; (x: unique symbol): void; } >x : unique symbol >s : unique symbol declare function g(x: typeof N.s): void; ->g : { (x: unique symbol): void; (x: unique symbol): void; } +>g : { (x: unique symbol): void; (x: typeof N.s): void; } >x : unique symbol >N.s : unique symbol >N : typeof N @@ -788,23 +788,23 @@ class C1 { interface Context { method1(): typeof s; ->method1 : () => unique symbol +>method1 : () => typeof s >s : unique symbol method2(): Promise; ->method2 : () => Promise +>method2 : () => Promise >s : unique symbol method3(): AsyncIterableIterator; ->method3 : () => AsyncIterableIterator +>method3 : () => AsyncIterableIterator >s : unique symbol method4(): IterableIterator; ->method4 : () => IterableIterator +>method4 : () => IterableIterator >s : unique symbol method5(p?: typeof s): typeof s; ->method5 : (p?: unique symbol) => unique symbol +>method5 : (p?: typeof s) => typeof s >p : unique symbol >s : unique symbol >s : unique symbol diff --git a/tests/baselines/reference/uniqueSymbolsDeclarationsErrors.types b/tests/baselines/reference/uniqueSymbolsDeclarationsErrors.types index c531f9756e5..dc135a10d10 100644 --- a/tests/baselines/reference/uniqueSymbolsDeclarationsErrors.types +++ b/tests/baselines/reference/uniqueSymbolsDeclarationsErrors.types @@ -8,11 +8,11 @@ interface I { readonly readonlyType: unique symbol; } // not allowed when emitting declarations export const obj = { ->obj : { method1(p: unique symbol): unique symbol; method2(p: unique symbol): unique symbol; } ->{ method1(p: typeof s): typeof s { return p; }, method2(p: I["readonlyType"]): I["readonlyType"] { return p; }} : { method1(p: unique symbol): unique symbol; method2(p: unique symbol): unique symbol; } +>obj : { method1(p: typeof s): typeof s; method2(p: I["readonlyType"]): I["readonlyType"]; } +>{ method1(p: typeof s): typeof s { return p; }, method2(p: I["readonlyType"]): I["readonlyType"] { return p; }} : { method1(p: typeof s): typeof s; method2(p: I["readonlyType"]): I["readonlyType"]; } method1(p: typeof s): typeof s { ->method1 : (p: unique symbol) => unique symbol +>method1 : (p: typeof s) => typeof s >p : unique symbol >s : unique symbol >s : unique symbol @@ -22,7 +22,7 @@ export const obj = { }, method2(p: I["readonlyType"]): I["readonlyType"] { ->method2 : (p: unique symbol) => unique symbol +>method2 : (p: I["readonlyType"]) => I["readonlyType"] >p : unique symbol return p; @@ -35,7 +35,7 @@ export const classExpression = class { >class { method1(p: typeof s): typeof s { return p; } method2(p: I["readonlyType"]): I["readonlyType"] { return p; }} : typeof classExpression method1(p: typeof s): typeof s { ->method1 : (p: unique symbol) => unique symbol +>method1 : (p: typeof s) => typeof s >p : unique symbol >s : unique symbol >s : unique symbol @@ -44,7 +44,7 @@ export const classExpression = class { >p : unique symbol } method2(p: I["readonlyType"]): I["readonlyType"] { ->method2 : (p: unique symbol) => unique symbol +>method2 : (p: I["readonlyType"]) => I["readonlyType"] >p : unique symbol return p; @@ -53,9 +53,9 @@ export const classExpression = class { }; export function funcInferredReturnType(obj: { method(p: typeof s): void }) { ->funcInferredReturnType : (obj: { method(p: unique symbol): void; }) => { method(p: unique symbol): void; } ->obj : { method(p: unique symbol): void; } ->method : (p: unique symbol) => void +>funcInferredReturnType : (obj: { method(p: typeof s): void; }) => { method(p: typeof s): void; } +>obj : { method(p: typeof s): void; } +>method : (p: typeof s) => void >p : unique symbol >s : unique symbol diff --git a/tests/baselines/reference/uniqueSymbolsErrors.types b/tests/baselines/reference/uniqueSymbolsErrors.types index 64a1f337430..09f03a8ee11 100644 --- a/tests/baselines/reference/uniqueSymbolsErrors.types +++ b/tests/baselines/reference/uniqueSymbolsErrors.types @@ -12,18 +12,18 @@ declare var invalidVarType: unique symbol; // function arguments and return types declare function invalidArgType(arg: unique symbol): void; ->invalidArgType : (arg: symbol) => void +>invalidArgType : (arg: unique symbol) => void >arg : symbol declare function invalidRestArgType(...arg: (unique symbol)[]): void; ->invalidRestArgType : (...arg: symbol[]) => void +>invalidRestArgType : (...arg: (unique symbol)[]) => void >arg : symbol[] declare function invalidReturnType(): unique symbol; ->invalidReturnType : () => symbol +>invalidReturnType : () => unique symbol declare function invalidThisType(this: unique symbol): void; ->invalidThisType : (this: symbol) => void +>invalidThisType : (this: unique symbol) => void >this : symbol declare function invalidTypePredicate(n: any): n is unique symbol; @@ -50,18 +50,18 @@ class InvalidClass { >invalidPropertyType : symbol invalidArgType(arg: unique symbol): void { return; } ->invalidArgType : (arg: symbol) => void +>invalidArgType : (arg: unique symbol) => void >arg : symbol invalidRestArgType(...args: (unique symbol)[]): void { return; } ->invalidRestArgType : (...args: symbol[]) => void +>invalidRestArgType : (...args: (unique symbol)[]) => void >args : symbol[] invalidReturnType(): unique symbol { return; } ->invalidReturnType : () => symbol +>invalidReturnType : () => unique symbol invalidThisType(this: unique symbol): void { return; } ->invalidThisType : (this: symbol) => void +>invalidThisType : (this: unique symbol) => void >this : symbol invalidTypePredicate(n: any): n is unique symbol { return; } @@ -85,18 +85,18 @@ class InvalidClass { >invalidStaticPropertyType : symbol static invalidStaticArgType(arg: unique symbol): void { return; } ->invalidStaticArgType : (arg: symbol) => void +>invalidStaticArgType : (arg: unique symbol) => void >arg : symbol static invalidStaticRestArgType(...args: (unique symbol)[]): void { return; } ->invalidStaticRestArgType : (...args: symbol[]) => void +>invalidStaticRestArgType : (...args: (unique symbol)[]) => void >args : symbol[] static invalidStaticReturnType(): unique symbol { return; } ->invalidStaticReturnType : () => symbol +>invalidStaticReturnType : () => unique symbol static invalidStaticThisType(this: unique symbol): void { return; } ->invalidStaticThisType : (this: symbol) => void +>invalidStaticThisType : (this: unique symbol) => void >this : symbol static invalidStaticTypePredicate(n: any): n is unique symbol { return; } @@ -123,18 +123,18 @@ interface InvalidInterface { >invalidPropertyType : symbol invalidArgType(arg: unique symbol): void; ->invalidArgType : (arg: symbol) => void +>invalidArgType : (arg: unique symbol) => void >arg : symbol invalidRestArgType(...args: (unique symbol)[]): void; ->invalidRestArgType : (...args: symbol[]) => void +>invalidRestArgType : (...args: (unique symbol)[]) => void >args : symbol[] invalidReturnType(): unique symbol; ->invalidReturnType : () => symbol +>invalidReturnType : () => unique symbol invalidThisType(this: unique symbol); ->invalidThisType : (this: symbol) => any +>invalidThisType : (this: unique symbol) => any >this : symbol invalidTypePredicate(n: any): n is unique symbol @@ -156,18 +156,18 @@ type InvalidTypeLiteral = { >invalidPropertyType : symbol invalidArgType(arg: unique symbol): void; ->invalidArgType : (arg: symbol) => void +>invalidArgType : (arg: unique symbol) => void >arg : symbol invalidRestArgType(...args: (unique symbol)[]): void; ->invalidRestArgType : (...args: symbol[]) => void +>invalidRestArgType : (...args: (unique symbol)[]) => void >args : symbol[] invalidReturnType(): unique symbol; ->invalidReturnType : () => symbol +>invalidReturnType : () => unique symbol invalidThisType(this: unique symbol); ->invalidThisType : (this: symbol) => any +>invalidThisType : (this: unique symbol) => any >this : symbol invalidTypePredicate(n: any): n is unique symbol diff --git a/tests/baselines/reference/unknownType2.types b/tests/baselines/reference/unknownType2.types index ce3332138d5..72ac152771c 100644 --- a/tests/baselines/reference/unknownType2.types +++ b/tests/baselines/reference/unknownType2.types @@ -523,7 +523,7 @@ function switchTestLiterals(x: unknown) { } function switchTestObjects(x: unknown, y: () => void, z: { prop: number }) { ->switchTestObjects : (x: unknown, y: () => void, z: { prop: number; }) => void +>switchTestObjects : (x: unknown, y: () => void, z: { prop: number;}) => void >x : unknown >y : () => void >z : { prop: number; } diff --git a/tests/baselines/reference/unusedParameterUsedInTypeOf.types b/tests/baselines/reference/unusedParameterUsedInTypeOf.types index 8e0cef7962b..da21df2fd4a 100644 --- a/tests/baselines/reference/unusedParameterUsedInTypeOf.types +++ b/tests/baselines/reference/unusedParameterUsedInTypeOf.types @@ -1,6 +1,6 @@ === tests/cases/compiler/unusedParameterUsedInTypeOf.ts === function f1 (a: number, b: typeof a) { ->f1 : (a: number, b: number) => number +>f1 : (a: number, b: typeof a) => number >a : number >b : number >a : number diff --git a/tests/baselines/reference/varArgParamTypeCheck.types b/tests/baselines/reference/varArgParamTypeCheck.types index 9cd2fad7aca..f7d8b8d7011 100644 --- a/tests/baselines/reference/varArgParamTypeCheck.types +++ b/tests/baselines/reference/varArgParamTypeCheck.types @@ -1,6 +1,6 @@ === tests/cases/compiler/varArgParamTypeCheck.ts === function sequence(...sequences:{():void;}[]) { ->sequence : (...sequences: (() => void)[]) => void +>sequence : (...sequences: { (): void;}[]) => void >sequences : (() => void)[] } diff --git a/tests/baselines/reference/varRequireFromJavascript.types b/tests/baselines/reference/varRequireFromJavascript.types index 813c38898c5..7537eecb639 100644 --- a/tests/baselines/reference/varRequireFromJavascript.types +++ b/tests/baselines/reference/varRequireFromJavascript.types @@ -25,7 +25,7 @@ crunch.n * @param {ex.Crunch} wrap */ function f(wrap) { ->f : (wrap: import("tests/cases/conformance/salsa/ex").Crunch) => void +>f : (wrap: ex.Crunch) => void >wrap : import("tests/cases/conformance/salsa/ex").Crunch wrap.n diff --git a/tests/baselines/reference/varRequireFromTypescript.types b/tests/baselines/reference/varRequireFromTypescript.types index 7010bfaf1a8..cb7c44cfc84 100644 --- a/tests/baselines/reference/varRequireFromTypescript.types +++ b/tests/baselines/reference/varRequireFromTypescript.types @@ -26,7 +26,7 @@ crunch.n * @param {ex.Crunch} wrap */ function f(greatest, wrap) { ->f : (greatest: import("tests/cases/conformance/salsa/ex").Greatest, wrap: import("tests/cases/conformance/salsa/ex").Crunch) => void +>f : (greatest: ex.Greatest, wrap: ex.Crunch) => void >greatest : import("tests/cases/conformance/salsa/ex").Greatest >wrap : import("tests/cases/conformance/salsa/ex").Crunch diff --git a/tests/baselines/reference/vardecl.types b/tests/baselines/reference/vardecl.types index 4a72683a35b..88cd1cd77cc 100644 --- a/tests/baselines/reference/vardecl.types +++ b/tests/baselines/reference/vardecl.types @@ -71,10 +71,10 @@ var c : { } var d: { ->d : { foo?(): { x: number; }; } +>d : { foo?(): { x: number;}; } foo? (): { ->foo : () => { x: number; } +>foo : () => { x: number;} x: number; >x : number @@ -83,10 +83,10 @@ var d: { } var d3: { ->d3 : { foo(): { x: number; y: number; }; } +>d3 : { foo(): { x: number; y: number;}; } foo(): { ->foo : () => { x: number; y: number; } +>foo : () => { x: number; y: number;} x: number; >x : number @@ -98,10 +98,10 @@ var d3: { } var d2: { ->d2 : { foo(): { x: number; }; } +>d2 : { foo(): { x: number;}; } foo (): { ->foo : () => { x: number; } +>foo : () => { x: number;} x: number; >x : number @@ -124,7 +124,7 @@ var d4: { >d4 : { foo(n: string, x: { x: number; y: number; }): { x: number; y: number; }; } foo(n: string, x: { x: number; y: number; }): { ->foo : (n: string, x: { x: number; y: number; }) => { x: number; y: number; } +>foo : (n: string, x: { x: number; y: number;}) => { x: number; y: number;} >n : string >x : { x: number; y: number; } >x : number diff --git a/tests/baselines/reference/variance.types b/tests/baselines/reference/variance.types index 210c00aee96..08ee1053b3d 100644 --- a/tests/baselines/reference/variance.types +++ b/tests/baselines/reference/variance.types @@ -39,7 +39,7 @@ class Bar { >instance : Bar[] cast(_name: ([T] extends [string] ? string : string)) { } ->cast : (_name: [T] extends [string] ? string : string) => void +>cast : (_name: ([T] extends [string] ? string : string)) => void >_name : [T] extends [string] ? string : string pushThis() { diff --git a/tests/baselines/reference/vueLikeDataAndPropsInference.types b/tests/baselines/reference/vueLikeDataAndPropsInference.types index 13f40a37a78..2e813ca45fa 100644 --- a/tests/baselines/reference/vueLikeDataAndPropsInference.types +++ b/tests/baselines/reference/vueLikeDataAndPropsInference.types @@ -46,13 +46,13 @@ declare function test(fn: ThisTypedOptions): void; >fn : ThisTypedOptions declare function test(fn: Options): void; ->test : { (fn: ThisTypedOptions): void; (fn: Options<(this: Instance) => object, {}>): void; } +>test : { (fn: ThisTypedOptions): void; (fn: Options): void; } >fn : Options<(this: Instance) => object, {}> test({ >test({ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }}) : void >test : { (fn: ThisTypedOptions): void; (fn: Options<(this: Instance) => object, {}>): void; } ->{ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }} : { props: { foo: string; }; data(this: Readonly<{ foo: string; }> & Instance): { bar: boolean; }; watch: { foo(newVal: string, oldVal: string): void; }; } +>{ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }} : { props: { foo: string; }; data(this: Readonly<{ foo: string; }> & Instance): { bar: boolean;}; watch: { foo(newVal: string, oldVal: string): void; }; } props: { >props : { foo: string; } @@ -65,7 +65,7 @@ test({ }, data(): { bar: boolean } { ->data : (this: Readonly<{ foo: string; }> & Instance) => { bar: boolean; } +>data : (this: Readonly<{ foo: string; }> & Instance) => { bar: boolean;} >bar : boolean return { diff --git a/tests/baselines/reference/vueLikeDataAndPropsInference2.types b/tests/baselines/reference/vueLikeDataAndPropsInference2.types index 6900535285a..92e63c6ff3b 100644 --- a/tests/baselines/reference/vueLikeDataAndPropsInference2.types +++ b/tests/baselines/reference/vueLikeDataAndPropsInference2.types @@ -47,13 +47,13 @@ declare function test(fn: ThisTypedOptions): void; >fn : ThisTypedOptions declare function test(fn: Options): void; ->test : { (fn: ThisTypedOptions): void; (fn: Options object), PropsDefinition>>): void; } +>test : { (fn: ThisTypedOptions): void; (fn: Options): void; } >fn : Options object), PropsDefinition>> test({ >test({ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }}) : void >test : { (fn: ThisTypedOptions): void; (fn: Options object), PropsDefinition>>): void; } ->{ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }} : { props: { foo: string; }; data(this: Readonly<{ foo: string; }> & Instance): { bar: boolean; }; watch: { foo(newVal: string, oldVal: string): void; }; } +>{ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }} : { props: { foo: string; }; data(this: Readonly<{ foo: string; }> & Instance): { bar: boolean;}; watch: { foo(newVal: string, oldVal: string): void; }; } props: { >props : { foo: string; } @@ -66,7 +66,7 @@ test({ }, data(): { bar: boolean } { ->data : (this: Readonly<{ foo: string; }> & Instance) => { bar: boolean; } +>data : (this: Readonly<{ foo: string; }> & Instance) => { bar: boolean;} >bar : boolean return { diff --git a/tests/baselines/reference/weakType.types b/tests/baselines/reference/weakType.types index 58438c8dca2..d2256478521 100644 --- a/tests/baselines/reference/weakType.types +++ b/tests/baselines/reference/weakType.types @@ -85,7 +85,7 @@ type ChangeOptions = ConfigurableStartEnd & InsertOptions; >ChangeOptions : ChangeOptions function del(options: ConfigurableStartEnd = {}, ->del : (options?: ConfigurableStartEnd, error?: { error?: number; }) => void +>del : (options?: ConfigurableStartEnd, error?: { error?: number;}) => void >options : ConfigurableStartEnd >{} : {} @@ -148,7 +148,7 @@ type Weak = { } } declare let propertiesWrong: { ->propertiesWrong : { properties: { wrong: string; }; } +>propertiesWrong : { properties: { wrong: string;}; } properties: { >properties : { wrong: string; } diff --git a/tests/baselines/reference/widenToAny1.types b/tests/baselines/reference/widenToAny1.types index a77794b1e5a..b87c49df236 100644 --- a/tests/baselines/reference/widenToAny1.types +++ b/tests/baselines/reference/widenToAny1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/widenToAny1.ts === function foo1(f1: { x: T; y: T }): T { ->foo1 : (f1: { x: T; y: T; }) => T +>foo1 : (f1: { x: T; y: T;}) => T >f1 : { x: T; y: T; } >x : T >y : T diff --git a/tests/baselines/reference/widenedTypes.types b/tests/baselines/reference/widenedTypes.types index 93d99d0f82c..f6cb1d237ec 100644 --- a/tests/baselines/reference/widenedTypes.types +++ b/tests/baselines/reference/widenedTypes.types @@ -71,7 +71,7 @@ u[3] = ""; >"" : "" var ob: { x: typeof undefined } = { x: "" }; ->ob : { x: any; } +>ob : { x: typeof undefined; } >x : any >undefined : undefined >{ x: "" } : { x: string; } diff --git a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsUniqueSymbolUsage.ts b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsUniqueSymbolUsage.ts new file mode 100644 index 00000000000..b47b41b0338 --- /dev/null +++ b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsUniqueSymbolUsage.ts @@ -0,0 +1,19 @@ +// @allowJs: true +// @checkJs: true +// @declaration: true +// @emitDeclarationOnly: true +// @lib: es2017 +// @filename: a.js +export const kSymbol = Symbol("my-symbol"); + +/** + * @typedef {{[kSymbol]: true}} WithSymbol + */ +// @filename: b.js +/** + * @returns {import('./a').WithSymbol} + * @param {import('./a').WithSymbol} value + */ +export function b(value) { + return value; +} diff --git a/tests/cases/fourslash/codeFixChangeJSDocSyntax15.ts b/tests/cases/fourslash/codeFixChangeJSDocSyntax15.ts index f6d59a88f55..62c621b84d8 100644 --- a/tests/cases/fourslash/codeFixChangeJSDocSyntax15.ts +++ b/tests/cases/fourslash/codeFixChangeJSDocSyntax15.ts @@ -1,10 +1,9 @@ /// //// var f = <[|function(number?): number|]>(x => x); -// note: without --strict, number? --> number, not number | null verify.codeFix({ description: "Change 'function(number?): number' to '(arg0: number) => number'", errorCode: 8020, index: 0, - newRangeContent: "(arg0: number) => number", + newRangeContent: "(arg0: number | null) => number", }); diff --git a/tests/cases/fourslash/completionForStringLiteral4.ts b/tests/cases/fourslash/completionForStringLiteral4.ts index 4c2cbecf52f..605b3b3891d 100644 --- a/tests/cases/fourslash/completionForStringLiteral4.ts +++ b/tests/cases/fourslash/completionForStringLiteral4.ts @@ -15,7 +15,7 @@ goTo.marker('1'); verify.quickInfoExists(); -verify.quickInfoIs('function f(p1: "literal", p2: "literal", p3: "other1" | "other2", p4: number | "literal", p5: true | 12): string', 'I am documentation'); +verify.quickInfoIs('function f(p1: \'literal\', p2: "literal", p3: \'other1\' | \'other2\', p4: \'literal\' | number, p5: 12 | true): string', 'I am documentation'); const replacementSpan = test.ranges()[0] verify.completions({ marker: "2", exact: [ diff --git a/tests/cases/fourslash/quickInfoForOverloadOnConst1.ts b/tests/cases/fourslash/quickInfoForOverloadOnConst1.ts index de06e2480c5..15c51a86433 100644 --- a/tests/cases/fourslash/quickInfoForOverloadOnConst1.ts +++ b/tests/cases/fourslash/quickInfoForOverloadOnConst1.ts @@ -20,13 +20,13 @@ ////c.x1(1, (x/*10*/x) => { return 1; } ); verify.quickInfos({ - 1: "(method) I.x1(a: number, callback: (x: \"hi\") => number): any", - 2: "(method) C.x1(a: number, callback: (x: \"hi\") => number): any", - 3: "(parameter) callback: (x: \"hi\") => number", + 1: "(method) I.x1(a: number, callback: (x: 'hi') => number): any", + 2: "(method) C.x1(a: number, callback: (x: 'hi') => number): any", + 3: "(parameter) callback: (x: 'hi') => number", 4: "(method) C.x1(a: number, callback: (x: \"hi\") => number): any", 5: "(parameter) callback: (x: string) => number", 6: "(parameter) callback: (x: string) => number", - 7: "(method) C.x1(a: number, callback: (x: \"hi\") => number): any", + 7: "(method) C.x1(a: number, callback: (x: 'hi') => number): any", 8: "(parameter) xx: \"hi\"", 9: "(parameter) xx: \"bye\"", 10: "(parameter) xx: \"hi\"" diff --git a/tests/cases/fourslash/server/jsdocCallbackTag.ts b/tests/cases/fourslash/server/jsdocCallbackTag.ts index 1d754c08608..315ad0ee173 100644 --- a/tests/cases/fourslash/server/jsdocCallbackTag.ts +++ b/tests/cases/fourslash/server/jsdocCallbackTag.ts @@ -30,9 +30,9 @@ verify.quickInfoIs("var t: FooHandler"); goTo.marker("2"); verify.quickInfoIs("var t2: FooHandler2"); goTo.marker("3"); -verify.quickInfoIs("type FooHandler2 = (eventName?: string, eventName2?: string) => any", "- What, another one?"); +verify.quickInfoIs("type FooHandler2 = (eventName?: string | undefined, eventName2?: string) => any", "- What, another one?"); goTo.marker("8"); -verify.quickInfoIs("type FooHandler = (eventName: string, eventName2: string | number, eventName3: any) => number", "- A kind of magic"); +verify.quickInfoIs("type FooHandler = (eventName: string, eventName2: number | string, eventName3: any) => number", "- A kind of magic"); verify.signatureHelp({ marker: '4', text: "t(eventName: string, eventName2: string | number, eventName3: any): number",

{ interface Props { children?: (items: {x: number}) => void ->children : ((items: { x: number; }) => void) | undefined +>children : ((items: { x: number;}) => void) | undefined >items : { x: number; } >x : number } diff --git a/tests/baselines/reference/intersectionReduction.types b/tests/baselines/reference/intersectionReduction.types index 7bb24e68351..8c4ee05051b 100644 --- a/tests/baselines/reference/intersectionReduction.types +++ b/tests/baselines/reference/intersectionReduction.types @@ -183,7 +183,7 @@ type E = { kind: 'e', foo: unknown }; >foo : unknown declare function f10(x: { foo: T }): T; ->f10 : (x: { foo: T; }) => T +>f10 : (x: { foo: T;}) => T >x : { foo: T; } >foo : T @@ -283,8 +283,8 @@ t2 = t1; // Repro from #36736 const f1 = (t: "a" | ("b" & "c")): "a" => t; ->f1 : (t: "a") => "a" ->(t: "a" | ("b" & "c")): "a" => t : (t: "a") => "a" +>f1 : (t: "a" | ("b" & "c")) => "a" +>(t: "a" | ("b" & "c")): "a" => t : (t: "a" | ("b" & "c")) => "a" >t : "a" >t : "a" @@ -296,21 +296,21 @@ type Container = { } const f2 = (t: Container<"a"> | (Container<"b"> & Container<"c">)): Container<"a"> => t; ->f2 : (t: Container<"a">) => Container<"a"> ->(t: Container<"a"> | (Container<"b"> & Container<"c">)): Container<"a"> => t : (t: Container<"a">) => Container<"a"> +>f2 : (t: Container<"a"> | (Container<"b"> & Container<"c">)) => Container<"a"> +>(t: Container<"a"> | (Container<"b"> & Container<"c">)): Container<"a"> => t : (t: Container<"a"> | (Container<"b"> & Container<"c">)) => Container<"a"> >t : Container<"a"> >t : Container<"a"> const f3 = (t: Container<"a"> | (Container<"b"> & { dataB: boolean } & Container<"a">)): Container<"a"> => t; ->f3 : (t: Container<"a">) => Container<"a"> ->(t: Container<"a"> | (Container<"b"> & { dataB: boolean } & Container<"a">)): Container<"a"> => t : (t: Container<"a">) => Container<"a"> +>f3 : (t: Container<"a"> | (Container<"b"> & { dataB: boolean;} & Container<"a">)) => Container<"a"> +>(t: Container<"a"> | (Container<"b"> & { dataB: boolean } & Container<"a">)): Container<"a"> => t : (t: Container<"a"> | (Container<"b"> & { dataB: boolean;} & Container<"a">)) => Container<"a"> >t : Container<"a"> >dataB : boolean >t : Container<"a"> const f4 = (t: number | (Container<"b"> & { dataB: boolean } & Container<"a">)): number => t; ->f4 : (t: number) => number ->(t: number | (Container<"b"> & { dataB: boolean } & Container<"a">)): number => t : (t: number) => number +>f4 : (t: number | (Container<"b"> & { dataB: boolean;} & Container<"a">)) => number +>(t: number | (Container<"b"> & { dataB: boolean } & Container<"a">)): number => t : (t: number | (Container<"b"> & { dataB: boolean;} & Container<"a">)) => number >t : number >dataB : boolean >t : number diff --git a/tests/baselines/reference/intersectionReductionStrict.types b/tests/baselines/reference/intersectionReductionStrict.types index 73ad61fb9cc..4c7b5b0b4c3 100644 --- a/tests/baselines/reference/intersectionReductionStrict.types +++ b/tests/baselines/reference/intersectionReductionStrict.types @@ -250,8 +250,8 @@ t2 = t1; // Repro from #36736 const f1 = (t: "a" | ("b" & "c")): "a" => t; ->f1 : (t: "a") => "a" ->(t: "a" | ("b" & "c")): "a" => t : (t: "a") => "a" +>f1 : (t: "a" | ("b" & "c")) => "a" +>(t: "a" | ("b" & "c")): "a" => t : (t: "a" | ("b" & "c")) => "a" >t : "a" >t : "a" @@ -263,21 +263,21 @@ type Container = { } const f2 = (t: Container<"a"> | (Container<"b"> & Container<"c">)): Container<"a"> => t; ->f2 : (t: Container<"a">) => Container<"a"> ->(t: Container<"a"> | (Container<"b"> & Container<"c">)): Container<"a"> => t : (t: Container<"a">) => Container<"a"> +>f2 : (t: Container<"a"> | (Container<"b"> & Container<"c">)) => Container<"a"> +>(t: Container<"a"> | (Container<"b"> & Container<"c">)): Container<"a"> => t : (t: Container<"a"> | (Container<"b"> & Container<"c">)) => Container<"a"> >t : Container<"a"> >t : Container<"a"> const f3 = (t: Container<"a"> | (Container<"b"> & { dataB: boolean } & Container<"a">)): Container<"a"> => t; ->f3 : (t: Container<"a">) => Container<"a"> ->(t: Container<"a"> | (Container<"b"> & { dataB: boolean } & Container<"a">)): Container<"a"> => t : (t: Container<"a">) => Container<"a"> +>f3 : (t: Container<"a"> | (Container<"b"> & { dataB: boolean;} & Container<"a">)) => Container<"a"> +>(t: Container<"a"> | (Container<"b"> & { dataB: boolean } & Container<"a">)): Container<"a"> => t : (t: Container<"a"> | (Container<"b"> & { dataB: boolean;} & Container<"a">)) => Container<"a"> >t : Container<"a"> >dataB : boolean >t : Container<"a"> const f4 = (t: number | (Container<"b"> & { dataB: boolean } & Container<"a">)): number => t; ->f4 : (t: number) => number ->(t: number | (Container<"b"> & { dataB: boolean } & Container<"a">)): number => t : (t: number) => number +>f4 : (t: number | (Container<"b"> & { dataB: boolean;} & Container<"a">)) => number +>(t: number | (Container<"b"> & { dataB: boolean } & Container<"a">)): number => t : (t: number | (Container<"b"> & { dataB: boolean;} & Container<"a">)) => number >t : number >dataB : boolean >t : number diff --git a/tests/baselines/reference/intersectionTypeInference1.types b/tests/baselines/reference/intersectionTypeInference1.types index e21049f2833..a4f1b259c31 100644 --- a/tests/baselines/reference/intersectionTypeInference1.types +++ b/tests/baselines/reference/intersectionTypeInference1.types @@ -6,8 +6,8 @@ function alert(s: string) {} >s : string const parameterFn = (props:{store:string}) => alert(props.store) ->parameterFn : (props: { store: string; }) => void ->(props:{store:string}) => alert(props.store) : (props: { store: string; }) => void +>parameterFn : (props: { store: string;}) => void +>(props:{store:string}) => alert(props.store) : (props: { store: string;}) => void >props : { store: string; } >store : string >alert(props.store) : void @@ -19,7 +19,7 @@ const parameterFn = (props:{store:string}) => alert(props.store) const brokenFunction = (f: (p: {dispatch: number} & OwnProps) => void) => (o: OwnProps) => o >brokenFunction : (f: (p: { dispatch: number; } & OwnProps) => void) => (o: OwnProps) => OwnProps >(f: (p: {dispatch: number} & OwnProps) => void) => (o: OwnProps) => o : (f: (p: { dispatch: number; } & OwnProps) => void) => (o: OwnProps) => OwnProps ->f : (p: { dispatch: number; } & OwnProps) => void +>f : (p: { dispatch: number;} & OwnProps) => void >p : { dispatch: number; } & OwnProps >dispatch : number >(o: OwnProps) => o : (o: OwnProps) => OwnProps diff --git a/tests/baselines/reference/intersectionTypeInference2.types b/tests/baselines/reference/intersectionTypeInference2.types index d34b8545a9f..073f14d92ab 100644 --- a/tests/baselines/reference/intersectionTypeInference2.types +++ b/tests/baselines/reference/intersectionTypeInference2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/intersection/intersectionTypeInference2.ts === declare function f(x: { prop: T }): T; ->f : (x: { prop: T; }) => T +>f : (x: { prop: T;}) => T >x : { prop: T; } >prop : T @@ -10,7 +10,7 @@ declare const a: { prop: string } & { prop: number }; >prop : number declare const b: { prop: string & number }; ->b : { prop: never; } +>b : { prop: string & number; } >prop : never f(a); // never diff --git a/tests/baselines/reference/intersectionTypeMembers.types b/tests/baselines/reference/intersectionTypeMembers.types index 817fa044624..a48e05243d8 100644 --- a/tests/baselines/reference/intersectionTypeMembers.types +++ b/tests/baselines/reference/intersectionTypeMembers.types @@ -99,7 +99,7 @@ var n = f(42); interface D { nested: { doublyNested: { d: string; }, different: { e: number } }; ->nested : { doublyNested: { d: string; }; different: { e: number; }; } +>nested : { doublyNested: { d: string;}; different: { e: number;}; } >doublyNested : { d: string; } >d : string >different : { e: number; } @@ -107,7 +107,7 @@ interface D { } interface E { nested: { doublyNested: { f: string; }, other: {g: number } }; ->nested : { doublyNested: { f: string; }; other: { g: number; }; } +>nested : { doublyNested: { f: string;}; other: { g: number;}; } >doublyNested : { f: string; } >f : string >other : { g: number; } @@ -151,14 +151,14 @@ const de: D & E = { // Additional test case with >2 doubly nested members so fix for #31441 is tested w/ excess props interface F { nested: { doublyNested: { g: string; } } ->nested : { doublyNested: { g: string; }; } +>nested : { doublyNested: { g: string;}; } >doublyNested : { g: string; } >g : string } interface G { nested: { doublyNested: { h: string; } } ->nested : { doublyNested: { h: string; }; } +>nested : { doublyNested: { h: string;}; } >doublyNested : { h: string; } >h : string } diff --git a/tests/baselines/reference/intersectionWithUnionConstraint.types b/tests/baselines/reference/intersectionWithUnionConstraint.types index 0f9e9974bed..b209913e75b 100644 --- a/tests/baselines/reference/intersectionWithUnionConstraint.types +++ b/tests/baselines/reference/intersectionWithUnionConstraint.types @@ -47,7 +47,7 @@ type T1 = (string | number | undefined) & (string | null | undefined); // strin >null : null function f3(x: T & (number | object | undefined)) { ->f3 : (x: (T & undefined) | (T & number) | (T & object)) => void +>f3 : (x: T & (number | object | undefined)) => void >x : (T & undefined) | (T & number) | (T & object) const y: number | undefined = x; @@ -56,7 +56,7 @@ function f3(x: T & (number | object | und } function f4(x: T & (number | object)) { ->f4 : (x: (T & number) | (T & object)) => void +>f4 : (x: T & (number | object)) => void >x : (T & number) | (T & object) const y: number = x; diff --git a/tests/baselines/reference/invariantGenericErrorElaboration.types b/tests/baselines/reference/invariantGenericErrorElaboration.types index e13a70f81e0..67f336786f9 100644 --- a/tests/baselines/reference/invariantGenericErrorElaboration.types +++ b/tests/baselines/reference/invariantGenericErrorElaboration.types @@ -39,7 +39,7 @@ interface Constraint> extends Runtype { >underlying : A check: (x: A['witness']) => void, ->check : (x: A["witness"]) => void +>check : (x: A['witness']) => void >x : A["witness"] } diff --git a/tests/baselines/reference/ipromise2.types b/tests/baselines/reference/ipromise2.types index 6bc89915940..58fa2c26566 100644 --- a/tests/baselines/reference/ipromise2.types +++ b/tests/baselines/reference/ipromise2.types @@ -2,7 +2,7 @@ declare module Windows.Foundation { export interface IPromise { then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } >success : (value: T) => IPromise >value : T >error : (error: any) => IPromise @@ -13,7 +13,7 @@ declare module Windows.Foundation { >Foundation : any then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } >success : (value: T) => IPromise >value : T >error : (error: any) => U @@ -24,7 +24,7 @@ declare module Windows.Foundation { >Foundation : any then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } >success : (value: T) => U >value : T >error : (error: any) => IPromise @@ -35,7 +35,7 @@ declare module Windows.Foundation { >Foundation : any then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } >success : (value: T) => U >value : T >error : (error: any) => U diff --git a/tests/baselines/reference/ipromise4.types b/tests/baselines/reference/ipromise4.types index a739381dcbb..1d9d1e749f4 100644 --- a/tests/baselines/reference/ipromise4.types +++ b/tests/baselines/reference/ipromise4.types @@ -2,7 +2,7 @@ declare module Windows.Foundation { export interface IPromise { then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } >success : (value: T) => IPromise >value : T >error : (error: any) => IPromise @@ -13,7 +13,7 @@ declare module Windows.Foundation { >Foundation : any then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } >success : (value: T) => IPromise >value : T >error : (error: any) => U @@ -24,7 +24,7 @@ declare module Windows.Foundation { >Foundation : any then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } >success : (value: T) => U >value : T >error : (error: any) => IPromise @@ -35,7 +35,7 @@ declare module Windows.Foundation { >Foundation : any then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } >success : (value: T) => U >value : T >error : (error: any) => U diff --git a/tests/baselines/reference/iteratorSpreadInCall5.types b/tests/baselines/reference/iteratorSpreadInCall5.types index 6120f036645..f6b2c632c28 100644 --- a/tests/baselines/reference/iteratorSpreadInCall5.types +++ b/tests/baselines/reference/iteratorSpreadInCall5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInCall5.ts === function foo(...s: (symbol | string)[]) { } ->foo : (...s: (string | symbol)[]) => void +>foo : (...s: (symbol | string)[]) => void >s : (string | symbol)[] class SymbolIterator { diff --git a/tests/baselines/reference/iteratorSpreadInCall6.types b/tests/baselines/reference/iteratorSpreadInCall6.types index 61994603057..cd834cfa625 100644 --- a/tests/baselines/reference/iteratorSpreadInCall6.types +++ b/tests/baselines/reference/iteratorSpreadInCall6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInCall6.ts === function foo(...s: (symbol | number)[]) { } ->foo : (...s: (number | symbol)[]) => void +>foo : (...s: (symbol | number)[]) => void >s : (number | symbol)[] class SymbolIterator { diff --git a/tests/baselines/reference/jsDeclarationsEnumTag.js b/tests/baselines/reference/jsDeclarationsEnumTag.js index 1c0643ec65b..80019f4b45d 100644 --- a/tests/baselines/reference/jsDeclarationsEnumTag.js +++ b/tests/baselines/reference/jsDeclarationsEnumTag.js @@ -108,7 +108,7 @@ exports.ff = ff; * @param {Second} s * @param {Fs} f */ -export function consume(t: string, s: number, f: (arg0: number) => number): void; +export function consume(t: Target, s: Second, f: Fs): void; /** @param {string} s */ export function ff(s: string): any; export type Target = string; diff --git a/tests/baselines/reference/jsDeclarationsEnumTag.types b/tests/baselines/reference/jsDeclarationsEnumTag.types index 642ee7d6490..dfbf01b95ba 100644 --- a/tests/baselines/reference/jsDeclarationsEnumTag.types +++ b/tests/baselines/reference/jsDeclarationsEnumTag.types @@ -69,7 +69,7 @@ export const Fs = { * @param {Fs} f */ export function consume(t,s,f) { ->consume : (t: string, s: number, f: (arg0: number) => number) => void +>consume : (t: Target, s: Second, f: Fs) => void >t : string >s : number >f : (arg0: number) => number diff --git a/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types b/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types index 2da7b7bfb8f..310e11820ed 100644 --- a/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types +++ b/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types @@ -142,7 +142,7 @@ Object.defineProperty(module.exports.f, "self", { value: module.exports.f }); * @param {{y: typeof module.exports.b}} b */ function g(a, b) { ->g : (a: { x: string; }, b: { y: () => void; }) => void +>g : (a: { x: string;}, b: { y: () => void; }) => void >a : { x: string; } >b : { y: () => void; } @@ -175,7 +175,7 @@ Object.defineProperty(module.exports, "g", { value: g }); * @param {{y: typeof module.exports.b}} b */ function hh(a, b) { ->hh : (a: { x: string; }, b: { y: () => void; }) => void +>hh : (a: { x: string;}, b: { y: () => void; }) => void >a : { x: string; } >b : { y: () => void; } diff --git a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.js b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.js index f34ad068989..77aa60d12f7 100644 --- a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.js +++ b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.js @@ -216,7 +216,7 @@ declare class Context { * @param {HookHandler=} handle * @returns {State} */ - construct(input: Input, handle?: (arg: Context) => void): State; + construct(input: Input, handle?: HookHandler | undefined): State; } declare namespace Context { export { Timer, Hook, HookHandler, Input, State }; @@ -225,15 +225,19 @@ declare namespace Context { * Input type definition */ type Input = { - timer: import("./timer"); - hook: import("./hook"); + timer: Timer; + hook: Hook; }; +/** + * Imports + */ +type HookHandler = (arg: Context) => void; /** * State type definition */ type State = { - timer: import("./timer"); - hook: import("./hook"); + timer: Timer; + hook: Hook; }; /** * Imports @@ -243,10 +247,6 @@ type Timer = import("./timer"); * Imports */ type Hook = import("./hook"); -/** - * Imports - */ -type HookHandler = (arg: Context) => void; //// [hook.d.ts] export = Hook; /** @@ -255,7 +255,7 @@ export = Hook; /** * @param {HookHandler} handle */ -declare function Hook(handle: (arg: import("./context")) => void): void; +declare function Hook(handle: HookHandler): void; declare class Hook { /** * @typedef {(arg: import("./context")) => void} HookHandler @@ -263,7 +263,7 @@ declare class Hook { /** * @param {HookHandler} handle */ - constructor(handle: (arg: import("./context")) => void); + constructor(handle: HookHandler); handle: (arg: import("./context")) => void; } declare namespace Hook { diff --git a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.types b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.types index 3c8a5f800d5..8b533ee2919 100644 --- a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.types +++ b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.types @@ -105,11 +105,11 @@ function Context(input) { >input : Input } Context.prototype = { ->Context.prototype = { /** * @param {Input} input * @param {HookHandler=} handle * @returns {State} */ construct(input, handle = () => void 0) { return input; }} : { construct(input: Input, handle?: (arg: Context) => void): State; } ->Context.prototype : { construct(input: Input, handle?: (arg: Context) => void): State; } +>Context.prototype = { /** * @param {Input} input * @param {HookHandler=} handle * @returns {State} */ construct(input, handle = () => void 0) { return input; }} : { construct(input: Input, handle?: HookHandler | undefined): State; } +>Context.prototype : { construct(input: Input, handle?: HookHandler | undefined): State; } >Context : typeof Context >prototype : { construct(input: Input, handle?: (arg: Context) => void): State; } ->{ /** * @param {Input} input * @param {HookHandler=} handle * @returns {State} */ construct(input, handle = () => void 0) { return input; }} : { construct(input: Input, handle?: (arg: Context) => void): State; } +>{ /** * @param {Input} input * @param {HookHandler=} handle * @returns {State} */ construct(input, handle = () => void 0) { return input; }} : { construct(input: Input, handle?: HookHandler | undefined): State; } /** * @param {Input} input @@ -117,7 +117,7 @@ Context.prototype = { * @returns {State} */ construct(input, handle = () => void 0) { ->construct : (input: Input, handle?: (arg: Context) => void) => State +>construct : (input: Input, handle?: HookHandler | undefined) => State >input : Input >handle : (arg: Context) => void >() => void 0 : () => any diff --git a/tests/baselines/reference/jsDeclarationsFunctions.types b/tests/baselines/reference/jsDeclarationsFunctions.types index 72d67885c2d..67af6648e07 100644 --- a/tests/baselines/reference/jsDeclarationsFunctions.types +++ b/tests/baselines/reference/jsDeclarationsFunctions.types @@ -70,7 +70,7 @@ f.self = f; * @param {{y: typeof b}} b */ function g(a, b) { ->g : (a: { x: string; }, b: { y: typeof import("tests/cases/conformance/jsdoc/declarations/index").b; }) => void +>g : (a: { x: string;}, b: { y: typeof import("tests/cases/conformance/jsdoc/declarations/index").b; }) => void >a : { x: string; } >b : { y: typeof import("tests/cases/conformance/jsdoc/declarations/index").b; } @@ -93,7 +93,7 @@ export { g }; * @param {{y: typeof b}} b */ function hh(a, b) { ->hh : (a: { x: string; }, b: { y: typeof import("tests/cases/conformance/jsdoc/declarations/index").b; }) => void +>hh : (a: { x: string;}, b: { y: typeof import("tests/cases/conformance/jsdoc/declarations/index").b; }) => void >a : { x: string; } >b : { y: typeof import("tests/cases/conformance/jsdoc/declarations/index").b; } diff --git a/tests/baselines/reference/jsDeclarationsFunctionsCjs.types b/tests/baselines/reference/jsDeclarationsFunctionsCjs.types index 19c69151cd4..15bba1a331d 100644 --- a/tests/baselines/reference/jsDeclarationsFunctionsCjs.types +++ b/tests/baselines/reference/jsDeclarationsFunctionsCjs.types @@ -128,7 +128,7 @@ module.exports.f.self = module.exports.f; * @param {{y: typeof module.exports.b}} b */ function g(a, b) { ->g : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void +>g : (a: { x: string;}, b: { y: { (): void; cat: string; }; }) => void >a : { x: string; } >b : { y: { (): void; cat: string; }; } @@ -157,7 +157,7 @@ module.exports.g = g; * @param {{y: typeof module.exports.b}} b */ function hh(a, b) { ->hh : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void +>hh : (a: { x: string;}, b: { y: { (): void; cat: string; }; }) => void >a : { x: string; } >b : { y: { (): void; cat: string; }; } diff --git a/tests/baselines/reference/jsDeclarationsReactComponents.js b/tests/baselines/reference/jsDeclarationsReactComponents.js index 025a96addda..fc9efa409d6 100644 --- a/tests/baselines/reference/jsDeclarationsReactComponents.js +++ b/tests/baselines/reference/jsDeclarationsReactComponents.js @@ -216,7 +216,7 @@ declare const TabbedShowLayout: { }; } & ((props?: { elem: string; -}) => JSX.Element); +} | undefined) => JSX.Element); //// [jsDeclarationsReactComponents4.d.ts] export default TabbedShowLayout; declare function TabbedShowLayout(prop: { diff --git a/tests/baselines/reference/jsDeclarationsReactComponents.types b/tests/baselines/reference/jsDeclarationsReactComponents.types index 260eedaff26..4934a173b93 100644 --- a/tests/baselines/reference/jsDeclarationsReactComponents.types +++ b/tests/baselines/reference/jsDeclarationsReactComponents.types @@ -143,8 +143,8 @@ import React from "react"; >React : typeof React const TabbedShowLayout = (/** @type {{className: string}}*/prop) => { ->TabbedShowLayout : { (prop: { className: string; }): JSX.Element; defaultProps: { tabs: string; }; } ->(/** @type {{className: string}}*/prop) => { return (