From a15c3d649e0f35458aef50a414a235ac8ade5bee Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 5 Jun 2025 09:15:01 -0700 Subject: [PATCH 1/2] (do not merge, bad implementation) ignore narrowing of let, hackily --- src/compiler/checker.ts | 222 +++++++++++++++++++++------------------- 1 file changed, 116 insertions(+), 106 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 073c0d46d7b4e..f47dcac3f49c8 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -41533,114 +41533,124 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { cancellationToken.throwIfCancellationRequested(); } } - switch (kind) { - case SyntaxKind.Identifier: - return checkIdentifier(node as Identifier, checkMode); - case SyntaxKind.PrivateIdentifier: - return checkPrivateIdentifierExpression(node as PrivateIdentifier); - case SyntaxKind.ThisKeyword: - return checkThisExpression(node); - case SyntaxKind.SuperKeyword: - return checkSuperExpression(node); - case SyntaxKind.NullKeyword: - return nullWideningType; - case SyntaxKind.NoSubstitutionTemplateLiteral: - case SyntaxKind.StringLiteral: - return hasSkipDirectInferenceFlag(node) ? - blockedStringType : - getFreshTypeOfLiteralType(getStringLiteralType((node as StringLiteralLike).text)); - case SyntaxKind.NumericLiteral: - checkGrammarNumericLiteral(node as NumericLiteral); - return getFreshTypeOfLiteralType(getNumberLiteralType(+(node as NumericLiteral).text)); - case SyntaxKind.BigIntLiteral: - checkGrammarBigIntLiteral(node as BigIntLiteral); - return getFreshTypeOfLiteralType(getBigIntLiteralType({ - negative: false, - base10Value: parsePseudoBigInt((node as BigIntLiteral).text), - })); - case SyntaxKind.TrueKeyword: - return trueType; - case SyntaxKind.FalseKeyword: - return falseType; - case SyntaxKind.TemplateExpression: - return checkTemplateExpression(node as TemplateExpression); - case SyntaxKind.RegularExpressionLiteral: - return checkRegularExpressionLiteral(node as RegularExpressionLiteral); - case SyntaxKind.ArrayLiteralExpression: - return checkArrayLiteral(node as ArrayLiteralExpression, checkMode, forceTuple); - case SyntaxKind.ObjectLiteralExpression: - return checkObjectLiteral(node as ObjectLiteralExpression, checkMode); - case SyntaxKind.PropertyAccessExpression: - return checkPropertyAccessExpression(node as PropertyAccessExpression, checkMode); - case SyntaxKind.QualifiedName: - return checkQualifiedName(node as QualifiedName, checkMode); - case SyntaxKind.ElementAccessExpression: - return checkIndexedAccess(node as ElementAccessExpression, checkMode); - case SyntaxKind.CallExpression: - if ((node as CallExpression).expression.kind === SyntaxKind.ImportKeyword) { - return checkImportCallExpression(node as ImportCall); - } + if (node.parent.kind === SyntaxKind.VariableDeclaration && (node.parent as VariableDeclaration).type && !(node.parent.parent.flags & NodeFlags.Const)) { + const src = work(); + const target = getTypeFromTypeNode((node.parent as VariableDeclaration).type!); + checkTypeRelatedTo(src, target, assignableRelation, node); + return target; + } else { + return work(); + } + function work() { + switch (kind) { + case SyntaxKind.Identifier: + return checkIdentifier(node as Identifier, checkMode); + case SyntaxKind.PrivateIdentifier: + return checkPrivateIdentifierExpression(node as PrivateIdentifier); + case SyntaxKind.ThisKeyword: + return checkThisExpression(node); + case SyntaxKind.SuperKeyword: + return checkSuperExpression(node); + case SyntaxKind.NullKeyword: + return nullWideningType; + case SyntaxKind.NoSubstitutionTemplateLiteral: + case SyntaxKind.StringLiteral: + return hasSkipDirectInferenceFlag(node) ? + blockedStringType : + getFreshTypeOfLiteralType(getStringLiteralType((node as StringLiteralLike).text)); + case SyntaxKind.NumericLiteral: + checkGrammarNumericLiteral(node as NumericLiteral); + return getFreshTypeOfLiteralType(getNumberLiteralType(+(node as NumericLiteral).text)); + case SyntaxKind.BigIntLiteral: + checkGrammarBigIntLiteral(node as BigIntLiteral); + return getFreshTypeOfLiteralType(getBigIntLiteralType({ + negative: false, + base10Value: parsePseudoBigInt((node as BigIntLiteral).text), + })); + case SyntaxKind.TrueKeyword: + return trueType; + case SyntaxKind.FalseKeyword: + return falseType; + case SyntaxKind.TemplateExpression: + return checkTemplateExpression(node as TemplateExpression); + case SyntaxKind.RegularExpressionLiteral: + return checkRegularExpressionLiteral(node as RegularExpressionLiteral); + case SyntaxKind.ArrayLiteralExpression: + return checkArrayLiteral(node as ArrayLiteralExpression, checkMode, forceTuple); + case SyntaxKind.ObjectLiteralExpression: + return checkObjectLiteral(node as ObjectLiteralExpression, checkMode); + case SyntaxKind.PropertyAccessExpression: + return checkPropertyAccessExpression(node as PropertyAccessExpression, checkMode); + case SyntaxKind.QualifiedName: + return checkQualifiedName(node as QualifiedName, checkMode); + case SyntaxKind.ElementAccessExpression: + return checkIndexedAccess(node as ElementAccessExpression, checkMode); + case SyntaxKind.CallExpression: + if ((node as CallExpression).expression.kind === SyntaxKind.ImportKeyword) { + return checkImportCallExpression(node as ImportCall); + } // falls through - case SyntaxKind.NewExpression: - return checkCallExpression(node as CallExpression, checkMode); - case SyntaxKind.TaggedTemplateExpression: - return checkTaggedTemplateExpression(node as TaggedTemplateExpression); - case SyntaxKind.ParenthesizedExpression: - return checkParenthesizedExpression(node as ParenthesizedExpression, checkMode); - case SyntaxKind.ClassExpression: - return checkClassExpression(node as ClassExpression); - case SyntaxKind.FunctionExpression: - case SyntaxKind.ArrowFunction: - return checkFunctionExpressionOrObjectLiteralMethod(node as FunctionExpression | ArrowFunction, checkMode); - case SyntaxKind.TypeOfExpression: - return checkTypeOfExpression(node as TypeOfExpression); - case SyntaxKind.TypeAssertionExpression: - case SyntaxKind.AsExpression: - return checkAssertion(node as AssertionExpression, checkMode); - case SyntaxKind.NonNullExpression: - return checkNonNullAssertion(node as NonNullExpression); - case SyntaxKind.ExpressionWithTypeArguments: - return checkExpressionWithTypeArguments(node as ExpressionWithTypeArguments); - case SyntaxKind.SatisfiesExpression: - return checkSatisfiesExpression(node as SatisfiesExpression); - case SyntaxKind.MetaProperty: - return checkMetaProperty(node as MetaProperty); - case SyntaxKind.DeleteExpression: - return checkDeleteExpression(node as DeleteExpression); - case SyntaxKind.VoidExpression: - return checkVoidExpression(node as VoidExpression); - case SyntaxKind.AwaitExpression: - return checkAwaitExpression(node as AwaitExpression); - case SyntaxKind.PrefixUnaryExpression: - return checkPrefixUnaryExpression(node as PrefixUnaryExpression); - case SyntaxKind.PostfixUnaryExpression: - return checkPostfixUnaryExpression(node as PostfixUnaryExpression); - case SyntaxKind.BinaryExpression: - return checkBinaryExpression(node as BinaryExpression, checkMode); - case SyntaxKind.ConditionalExpression: - return checkConditionalExpression(node as ConditionalExpression, checkMode); - case SyntaxKind.SpreadElement: - return checkSpreadExpression(node as SpreadElement, checkMode); - case SyntaxKind.OmittedExpression: - return undefinedWideningType; - case SyntaxKind.YieldExpression: - return checkYieldExpression(node as YieldExpression); - case SyntaxKind.SyntheticExpression: - return checkSyntheticExpression(node as SyntheticExpression); - case SyntaxKind.JsxExpression: - return checkJsxExpression(node as JsxExpression, checkMode); - case SyntaxKind.JsxElement: - return checkJsxElement(node as JsxElement, checkMode); - case SyntaxKind.JsxSelfClosingElement: - return checkJsxSelfClosingElement(node as JsxSelfClosingElement, checkMode); - case SyntaxKind.JsxFragment: - return checkJsxFragment(node as JsxFragment); - case SyntaxKind.JsxAttributes: - return checkJsxAttributes(node as JsxAttributes, checkMode); - case SyntaxKind.JsxOpeningElement: - Debug.fail("Shouldn't ever directly check a JsxOpeningElement"); + case SyntaxKind.NewExpression: + return checkCallExpression(node as CallExpression, checkMode); + case SyntaxKind.TaggedTemplateExpression: + return checkTaggedTemplateExpression(node as TaggedTemplateExpression); + case SyntaxKind.ParenthesizedExpression: + return checkParenthesizedExpression(node as ParenthesizedExpression, checkMode); + case SyntaxKind.ClassExpression: + return checkClassExpression(node as ClassExpression); + case SyntaxKind.FunctionExpression: + case SyntaxKind.ArrowFunction: + return checkFunctionExpressionOrObjectLiteralMethod(node as FunctionExpression | ArrowFunction, checkMode); + case SyntaxKind.TypeOfExpression: + return checkTypeOfExpression(node as TypeOfExpression); + case SyntaxKind.TypeAssertionExpression: + case SyntaxKind.AsExpression: + return checkAssertion(node as AssertionExpression, checkMode); + case SyntaxKind.NonNullExpression: + return checkNonNullAssertion(node as NonNullExpression); + case SyntaxKind.ExpressionWithTypeArguments: + return checkExpressionWithTypeArguments(node as ExpressionWithTypeArguments); + case SyntaxKind.SatisfiesExpression: + return checkSatisfiesExpression(node as SatisfiesExpression); + case SyntaxKind.MetaProperty: + return checkMetaProperty(node as MetaProperty); + case SyntaxKind.DeleteExpression: + return checkDeleteExpression(node as DeleteExpression); + case SyntaxKind.VoidExpression: + return checkVoidExpression(node as VoidExpression); + case SyntaxKind.AwaitExpression: + return checkAwaitExpression(node as AwaitExpression); + case SyntaxKind.PrefixUnaryExpression: + return checkPrefixUnaryExpression(node as PrefixUnaryExpression); + case SyntaxKind.PostfixUnaryExpression: + return checkPostfixUnaryExpression(node as PostfixUnaryExpression); + case SyntaxKind.BinaryExpression: + return checkBinaryExpression(node as BinaryExpression, checkMode); + case SyntaxKind.ConditionalExpression: + return checkConditionalExpression(node as ConditionalExpression, checkMode); + case SyntaxKind.SpreadElement: + return checkSpreadExpression(node as SpreadElement, checkMode); + case SyntaxKind.OmittedExpression: + return undefinedWideningType; + case SyntaxKind.YieldExpression: + return checkYieldExpression(node as YieldExpression); + case SyntaxKind.SyntheticExpression: + return checkSyntheticExpression(node as SyntheticExpression); + case SyntaxKind.JsxExpression: + return checkJsxExpression(node as JsxExpression, checkMode); + case SyntaxKind.JsxElement: + return checkJsxElement(node as JsxElement, checkMode); + case SyntaxKind.JsxSelfClosingElement: + return checkJsxSelfClosingElement(node as JsxSelfClosingElement, checkMode); + case SyntaxKind.JsxFragment: + return checkJsxFragment(node as JsxFragment); + case SyntaxKind.JsxAttributes: + return checkJsxAttributes(node as JsxAttributes, checkMode); + case SyntaxKind.JsxOpeningElement: + Debug.fail("Shouldn't ever directly check a JsxOpeningElement"); + } + return errorType; } - return errorType; } // DECLARATION AND STATEMENT TYPE CHECKING From ec3b4d15b0c2c34e7c1b83c08c0abce1df666fee Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 5 Jun 2025 09:15:25 -0700 Subject: [PATCH 2/2] Baselines --- ...assHeritageListMemberTypeAnnotations.types | 8 +- ...essibleTypeInTypeParameterConstraint.types | 8 +- ...assHeritageListMemberTypeAnnotations.types | 8 +- ...essibleTypeInTypeParameterConstraint.types | 8 +- ...cessibleTypesInMemberTypeAnnotations.types | 4 +- ...leWithAccessibleTypeInTypeAnnotation.types | 4 +- ...WithInaccessibleTypeInTypeAnnotation.types | 8 +- ...oduleWithExportedAndNonExportedEnums.types | 8 +- ...ithExportedAndNonExportedImportAlias.types | 4 +- ...NonInitializedExportInInternalModule.types | 8 +- ...AndNonExportedLocalVarsOfTheSameName.types | 8 +- ...chWithExportedLocalVarsOfTheSameName.types | 8 +- ...ithTheSameNameAndDifferentCommonRoot.types | 4 +- ...ulesWithTheSameNameAndSameCommonRoot.types | 4 +- .../reference/VariableDeclaration10_es6.types | 4 +- ...aliasDoesNotDuplicateSignatures.errors.txt | 8 +- .../aliasDoesNotDuplicateSignatures.types | 12 +- .../aliasOnMergedModuleInterface.types | 4 +- .../reference/aliasUsageInArray.types | 4 +- .../reference/aliasUsageInObjectLiteral.types | 10 +- .../reference/aliasUsageInOrExpression.types | 4 +- .../reference/aliasUsageInVarAssignment.types | 4 +- .../ambientClassDeclarationWithExtends.types | 4 +- .../reference/ambiguousOverload.errors.txt | 8 +- .../reference/ambiguousOverload.types | 4 +- .../amdImportNotAsPrimaryExpression.types | 4 +- .../reference/anyAssignableToEveryType.types | 45 +- .../argumentExpressionContextualTyping.types | 8 +- .../arityAndOrderCompatibility01.errors.txt | 60 +- .../arityAndOrderCompatibility01.types | 66 +-- .../reference/arrayAssignmentTest1.errors.txt | 16 +- .../reference/arrayAssignmentTest1.types | 50 +- .../reference/arrayAssignmentTest2.types | 34 +- .../reference/arrayAssignmentTest4.types | 4 +- .../reference/arrayAssignmentTest5.errors.txt | 4 +- .../reference/arrayAssignmentTest5.types | 8 +- .../reference/arrayBestCommonTypes.types | 22 +- tests/baselines/reference/arrayConcat2.types | 4 +- tests/baselines/reference/arrayLiteral.types | 8 +- ...teralExpressionContextualTyping.errors.txt | 16 +- ...rayLiteralExpressionContextualTyping.types | 16 +- .../reference/arrayLiteralInference.types | 8 +- .../arrayLiteralTypeInference.errors.txt | 24 +- .../reference/arrayLiteralTypeInference.types | 20 +- .../reference/arrayLiterals.errors.txt | 17 +- tests/baselines/reference/arrayLiterals.types | 12 +- .../reference/arrayLiterals2ES5.types | 12 +- .../reference/arrayLiterals2ES6.types | 12 +- .../reference/arrayLiterals3.errors.txt | 34 +- .../baselines/reference/arrayLiterals3.types | 22 +- .../reference/arraySigChecking.errors.txt | 8 +- .../reference/arraySigChecking.types | 4 +- tests/baselines/reference/assign1.types | 4 +- .../reference/assignAnyToEveryType.types | 36 +- ...nSharedArrayBufferToArrayBuffer.errors.txt | 4 +- ...assignSharedArrayBufferToArrayBuffer.types | 4 +- tests/baselines/reference/assignToFn.types | 4 +- ...ignToObjectTypeWithPrototypeProperty.types | 4 +- ...signingFromObjectToAnythingElse.errors.txt | 4 +- .../assigningFromObjectToAnythingElse.types | 12 +- ...gningFunctionToTupleIssuesError.errors.txt | 4 +- .../assigningFunctionToTupleIssuesError.types | 4 +- .../reference/assignmentCompatBug2.types | 4 +- .../reference/assignmentCompatForEnums.types | 3 +- ...signmentCompatWithDiscriminatedUnion.types | 8 +- ...assignmentCompatWithEnumIndexer.errors.txt | 4 +- .../assignmentCompatWithEnumIndexer.types | 4 +- .../assignmentCompatWithObjectMembers3.types | 8 +- ...ntCompatWithObjectMembersOptionality.types | 4 +- ...tCompatWithObjectMembersOptionality2.types | 4 +- .../reference/assignmentCompatability1.types | 4 +- .../reference/assignmentCompatability10.types | 4 +- .../reference/assignmentCompatability11.types | 4 +- .../reference/assignmentCompatability12.types | 4 +- .../reference/assignmentCompatability13.types | 4 +- .../reference/assignmentCompatability14.types | 4 +- .../reference/assignmentCompatability15.types | 4 +- .../reference/assignmentCompatability16.types | 4 +- .../reference/assignmentCompatability17.types | 4 +- .../reference/assignmentCompatability18.types | 4 +- .../reference/assignmentCompatability19.types | 4 +- .../reference/assignmentCompatability2.types | 4 +- .../reference/assignmentCompatability20.types | 4 +- .../reference/assignmentCompatability21.types | 4 +- .../reference/assignmentCompatability22.types | 4 +- .../reference/assignmentCompatability23.types | 4 +- .../reference/assignmentCompatability24.types | 4 +- .../reference/assignmentCompatability25.types | 4 +- .../reference/assignmentCompatability26.types | 4 +- .../reference/assignmentCompatability27.types | 4 +- .../reference/assignmentCompatability28.types | 4 +- .../reference/assignmentCompatability29.types | 4 +- .../reference/assignmentCompatability3.types | 4 +- .../reference/assignmentCompatability30.types | 4 +- .../reference/assignmentCompatability31.types | 4 +- .../reference/assignmentCompatability32.types | 4 +- .../reference/assignmentCompatability33.types | 4 +- .../reference/assignmentCompatability34.types | 4 +- .../reference/assignmentCompatability35.types | 4 +- .../reference/assignmentCompatability36.types | 4 +- .../reference/assignmentCompatability37.types | 4 +- .../reference/assignmentCompatability38.types | 4 +- .../reference/assignmentCompatability39.types | 4 +- .../reference/assignmentCompatability4.types | 4 +- .../reference/assignmentCompatability40.types | 4 +- .../reference/assignmentCompatability41.types | 4 +- .../reference/assignmentCompatability42.types | 4 +- .../reference/assignmentCompatability43.types | 8 +- .../reference/assignmentCompatability5.types | 8 +- .../reference/assignmentCompatability6.types | 8 +- .../reference/assignmentCompatability7.types | 8 +- .../reference/assignmentCompatability8.types | 4 +- .../reference/assignmentCompatability9.types | 4 +- ...assignmentGenericLookupTypeNarrowing.types | 2 +- .../assignmentNonObjectTypeConstraints.types | 4 +- ...tionalBrandedStringTemplateOrMapping.types | 16 +- .../assignmentToInstantiationExpression.types | 4 +- .../reference/assignmentToObject.errors.txt | 4 +- .../reference/assignmentToObject.types | 8 +- .../assignmentToObjectAndFunction.errors.txt | 18 +- .../assignmentToObjectAndFunction.types | 24 +- .../asyncGeneratorPromiseNextType.types | 8 +- ...eAssignmentCompatIndexSignature.errors.txt | 10 +- ...edTypeAssignmentCompatIndexSignature.types | 8 +- ...thOnlyCallOrConstructSignatures.errors.txt | 1 - ...pesWithOnlyCallOrConstructSignatures.types | 4 +- .../baselines/reference/badArraySyntax.types | 12 +- ...stCommonTypeOfConditionalExpressions.types | 8 +- .../bestCommonTypeWithContextualTyping.types | 16 +- tests/baselines/reference/bigintWithLib.types | 12 +- .../reference/bigintWithoutLib.types | 24 +- .../bitwiseNotOperatorWithAnyOtherType.types | 4 +- .../reference/boolInsteadOfBoolean.types | 4 +- .../baselines/reference/callOnInstance.types | 4 +- ...rloadViaElementAccessExpression.errors.txt | 8 +- ...llOverloadViaElementAccessExpression.types | 4 +- .../cannotInvokeNewOnIndexExpression.types | 4 +- tests/baselines/reference/castTest.types | 3 +- tests/baselines/reference/castingTuple.types | 12 +- .../checkInfiniteExpansionTermination2.types | 4 +- .../circularInferredTypeOfVariable.types | 4 +- ...bstractConstructorAssignability.errors.txt | 8 +- ...lassAbstractConstructorAssignability.types | 6 +- .../classAbstractInstantiations2.errors.txt | 4 +- .../classAbstractInstantiations2.types | 6 +- .../classAppearsToHaveMembersOfObject.types | 8 +- .../classSideInheritance3.errors.txt | 8 +- .../reference/classSideInheritance3.types | 8 +- .../reference/classWithEmptyBody.types | 8 +- .../reference/classWithPrivateProperty.types | 16 +- .../classWithProtectedProperty.types | 14 +- .../reference/classWithPublicProperty.types | 14 +- .../commaOperatorLeftSideUnused.types | 4 +- ...maOperatorOtherInvalidOperation.errors.txt | 8 +- .../commaOperatorOtherInvalidOperation.types | 2 +- .../reference/commentsdoNotEmitComments.types | 8 +- ...commonJSImportNotAsPrimaryExpression.types | 4 +- .../commonTypeIntersection.errors.txt | 8 +- .../reference/commonTypeIntersection.types | 4 +- ...opertyNamesContextualType10_ES5.errors.txt | 15 +- ...tedPropertyNamesContextualType10_ES5.types | 4 +- ...opertyNamesContextualType10_ES6.errors.txt | 15 +- ...tedPropertyNamesContextualType10_ES6.types | 4 +- ...utedPropertyNamesContextualType1_ES5.types | 4 +- ...utedPropertyNamesContextualType1_ES6.types | 4 +- ...utedPropertyNamesContextualType2_ES5.types | 4 +- ...utedPropertyNamesContextualType2_ES6.types | 4 +- ...utedPropertyNamesContextualType3_ES5.types | 4 +- ...utedPropertyNamesContextualType3_ES6.types | 4 +- ...utedPropertyNamesContextualType4_ES5.types | 4 +- ...utedPropertyNamesContextualType4_ES6.types | 4 +- ...utedPropertyNamesContextualType5_ES5.types | 4 +- ...utedPropertyNamesContextualType5_ES6.types | 4 +- ...ropertyNamesContextualType8_ES5.errors.txt | 15 +- ...utedPropertyNamesContextualType8_ES5.types | 4 +- ...ropertyNamesContextualType8_ES6.errors.txt | 15 +- ...utedPropertyNamesContextualType8_ES6.types | 4 +- ...ropertyNamesContextualType9_ES5.errors.txt | 15 +- ...utedPropertyNamesContextualType9_ES5.types | 4 +- ...ropertyNamesContextualType9_ES6.errors.txt | 15 +- ...utedPropertyNamesContextualType9_ES6.types | 4 +- .../conditionalExpression1.errors.txt | 4 +- .../reference/conditionalExpression1.types | 4 +- .../conditionalOperatorWithIdenticalBCT.types | 19 +- ...onalOperatorWithoutIdenticalBCT.errors.txt | 20 +- ...nditionalOperatorWithoutIdenticalBCT.types | 24 +- .../reference/conditionalTypes1.types | 4 +- .../conditionalTypesSimplifyWhenTrivial.types | 24 +- .../reference/constDeclarations-scopes.types | 8 +- .../reference/constEnumPropertyAccess1.types | 4 +- .../reference/constructorAsType.errors.txt | 4 +- .../reference/constructorAsType.types | 4 +- ...structorWithIncompleteTypeAnnotation.types | 8 +- ...contextualOverloadListFromArrayUnion.types | 4 +- ...contextualSigInstantiationRestParams.types | 4 +- .../reference/contextualThisType.types | 4 +- .../reference/contextualTypeAny.errors.txt | 11 +- .../reference/contextualTypeAny.types | 8 +- .../contextualTypeArrayReturnType.types | 4 +- .../contextualTypeShouldBeLiteral.types | 16 +- .../contextualTypeWithTuple.errors.txt | 8 +- .../reference/contextualTypeWithTuple.types | 38 +- ...xtualTypeWithUnionTypeCallSignatures.types | 20 +- ...tualTypeWithUnionTypeIndexSignatures.types | 40 +- .../contextualTypeWithUnionTypeMembers.types | 40 +- ...lTypeWithUnionTypeObjectLiteral.errors.txt | 77 ++- ...extualTypeWithUnionTypeObjectLiteral.types | 46 +- .../reference/contextualTyping.errors.txt | 4 +- .../reference/contextualTyping.types | 38 +- .../reference/contextualTyping1.types | 2 +- .../reference/contextualTyping13.types | 2 +- .../reference/contextualTyping16.types | 2 +- .../reference/contextualTyping17.types | 2 +- .../reference/contextualTyping19.types | 2 +- .../reference/contextualTyping2.types | 4 +- .../reference/contextualTyping20.types | 2 +- .../reference/contextualTyping21.types | 2 +- .../reference/contextualTyping22.types | 2 +- .../reference/contextualTyping6.types | 2 +- .../reference/contextualTyping9.errors.txt | 8 +- .../reference/contextualTyping9.types | 4 +- ...TypingArrayDestructuringWithDefaults.types | 12 +- ...ontextualTypingOfArrayLiterals1.errors.txt | 13 +- .../contextualTypingOfArrayLiterals1.types | 4 +- ...textualTypingOfConditionalExpression.types | 8 +- ...lTypingOfConditionalExpression2.errors.txt | 4 +- ...extualTypingOfConditionalExpression2.types | 4 +- .../contextuallyTypedBindingInitializer.types | 4 +- ...uallyTypedBindingInitializerNegative.types | 4 +- .../contextuallyTypingOrOperator.types | 4 +- .../contextuallyTypingOrOperator2.types | 4 +- ...ontextuallyTypingRestParameters.errors.txt | 8 +- .../contextuallyTypingRestParameters.types | 10 +- .../reference/controlFlowAliasing.errors.txt | 8 +- .../reference/controlFlowAliasing.types | 12 +- ...ntrolFlowAssignmentPatternOrder.errors.txt | 109 ++++ .../controlFlowAssignmentPatternOrder.types | 192 +++--- .../reference/controlFlowBindingElement.types | 20 +- .../controlFlowBindingPatternOrder.errors.txt | 17 +- .../controlFlowBindingPatternOrder.types | 72 +-- .../controlFlowBreakContinueWithLabel.types | 8 +- .../reference/controlFlowCommaOperator.types | 16 +- .../reference/controlFlowDeleteOperator.types | 4 +- .../controlFlowDestructuringDeclaration.types | 120 ++-- .../reference/controlFlowElementAccess.types | 4 +- .../controlFlowForCatchAndFinally.types | 8 +- .../controlFlowForInStatement2.types | 4 +- ...ForStatementContinueIntoIncrementor1.types | 4 +- .../controlFlowIterationErrorsAsync.types | 12 +- .../reference/controlFlowLoopAnalysis.types | 4 +- .../controlFlowNoIntermediateErrors.types | 8 +- .../controlFlowSelfReferentialLoop.types | 8 +- .../controlFlowWithIncompleteTypes.errors.txt | 35 ++ .../controlFlowWithIncompleteTypes.symbols | 2 - .../controlFlowWithIncompleteTypes.types | 36 +- ...ertyIsRelatableToTargetProperty.errors.txt | 4 +- .../declFileTypeAnnotationParenType.types | 6 +- .../declFileTypeAnnotationTupleType.types | 2 +- .../declFileTypeAnnotationUnionType.types | 2 +- .../declarationEmitInferredTypeAlias1.types | 4 +- .../declarationEmitInferredTypeAlias2.types | 4 +- .../declarationEmitInferredTypeAlias3.types | 4 +- .../declarationEmitInferredTypeAlias5.types | 2 +- .../declarationEmitInferredTypeAlias6.types | 4 +- .../declarationEmitInferredTypeAlias7.types | 2 +- .../decrementOperatorWithAnyOtherType.types | 4 +- ...torWithAnyOtherTypeInvalidOperations.types | 4 +- .../reference/deepComparisons.errors.txt | 12 +- ...laborationsIntoArrowExpressions.errors.txt | 13 +- ...deepElaborationsIntoArrowExpressions.types | 4 +- ...efaultArgsInFunctionExpressions.errors.txt | 4 +- .../defaultArgsInFunctionExpressions.types | 8 +- .../definiteAssignmentAssertions.types | 4 +- .../reference/deleteOperator1.errors.txt | 4 +- .../baselines/reference/deleteOperator1.types | 8 +- .../deleteOperatorWithAnyOtherType.types | 4 +- .../baselines/reference/deleteReadonly.types | 8 +- .../dependentDestructuredVariables.types | 16 +- ...ypeCallingBaseImplWithOptionalParams.types | 4 +- ...rivedTypeDoesNotRequireExtendsClause.types | 4 +- ...ArrayBindingPatternAndAssignment1ES5.types | 12 +- ...dingPatternAndAssignment1ES5iterable.types | 12 +- ...ArrayBindingPatternAndAssignment1ES6.types | 12 +- ...rayBindingPatternAndAssignment2.errors.txt | 18 +- ...ingArrayBindingPatternAndAssignment2.types | 12 +- .../destructuringControlFlow.symbols | 2 + .../reference/destructuringControlFlow.types | 18 +- ...bjectBindingPatternAndAssignment1ES5.types | 9 +- ...bjectBindingPatternAndAssignment1ES6.types | 9 +- ...ectBindingPatternAndAssignment3.errors.txt | 6 +- ...ngObjectBindingPatternAndAssignment3.types | 12 +- .../destructuringReassignsRightHandSide.types | 3 +- ...destructuringVariableDeclaration1ES5.types | 12 +- ...uringVariableDeclaration1ES5iterable.types | 12 +- ...destructuringVariableDeclaration1ES6.types | 12 +- ...structuringVariableDeclaration2.errors.txt | 31 +- .../destructuringVariableDeclaration2.types | 10 +- .../directDependenceBetweenTypeAliases.types | 4 +- ...discriminantNarrowingCouldBeCircular.types | 8 +- .../discriminatedUnionErrorMessage.types | 4 +- ...utiveConditionalTypeConstraints.errors.txt | 24 +- ...stributiveConditionalTypeConstraints.types | 36 +- ...denAtObjectLiteralPropertyAssignment.types | 4 +- ...UnderStringLiteralAssignability.errors.txt | 4 +- ...oubleUnderStringLiteralAssignability.types | 4 +- .../reference/downlevelLetConst10.types | 4 +- .../duplicateErrorAssignability.types | 2 +- .../duplicateErrorClassExpression.types | 2 +- .../reference/duplicateLocalVariable1.types | 4 +- ...riableDeclarationRemoveCommentsFalse.types | 13 +- .../reference/enumAssignability.errors.txt | 52 +- .../reference/enumAssignability.types | 76 +-- .../reference/enumAssignmentCompat.errors.txt | 28 +- .../reference/enumAssignmentCompat.types | 54 +- .../enumAssignmentCompat2.errors.txt | 28 +- .../reference/enumAssignmentCompat2.types | 54 +- .../enumAssignmentCompat5.errors.txt | 4 +- .../reference/enumAssignmentCompat5.types | 16 +- tests/baselines/reference/enumBasics.types | 8 +- .../baselines/reference/enumOperations.types | 7 +- .../equalityWithIntersectionTypes01.types | 8 +- .../reference/equalityWithUnionTypes01.types | 20 +- .../errorForUsingPropertyOfTypeAsType01.types | 40 +- .../errorForUsingPropertyOfTypeAsType02.types | 8 +- ...tedIndexTypesNoConstraintElaboration.types | 4 +- ...rrorMessagesIntersectionTypes01.errors.txt | 12 +- .../errorMessagesIntersectionTypes01.types | 4 +- ...rrorMessagesIntersectionTypes02.errors.txt | 12 +- .../errorMessagesIntersectionTypes02.types | 4 +- ...orOnContextuallyTypedReturnType.errors.txt | 4 +- .../errorOnContextuallyTypedReturnType.types | 4 +- .../errorWithTruncatedType.errors.txt | 4 +- .../reference/errorWithTruncatedType.types | 4 +- .../errorsWithInvokablesInUnions01.errors.txt | 8 +- .../errorsWithInvokablesInUnions01.types | 8 +- tests/baselines/reference/es6ClassTest8.types | 3 +- ...veryTypeWithAnnotationAndInitializer.types | 29 +- ...AnnotationAndInvalidInitializer.errors.txt | 72 +-- ...eWithAnnotationAndInvalidInitializer.types | 56 +- .../excessPropertyCheckWithEmptyObject.types | 8 +- .../excessPropertyCheckWithUnions.types | 4 +- ...tyChecksWithNestedIntersections.errors.txt | 42 +- ...ropertyChecksWithNestedIntersections.types | 24 +- .../excessPropertyErrorForFunctionTypes.types | 4 +- .../excessPropertyErrorsSuppressed.types | 4 +- ...xhaustiveSwitchCheckCircularity.errors.txt | 5 +- .../exhaustiveSwitchCheckCircularity.types | 12 +- .../expandoFunctionNestedAssigments.types | 4 +- .../reference/exportAssignTypes.types | 8 +- .../exportAssignmentInternalModule.types | 7 +- .../reference/exportImportAlias.types | 8 +- .../exportImportNonInstantiatedModule.types | 4 +- .../exportNonInitializedVariablesAMD.types | 8 +- ...xportNonInitializedVariablesCommonJS.types | 8 +- .../exportNonInitializedVariablesES6.types | 8 +- .../exportNonInitializedVariablesSystem.types | 8 +- .../exportNonInitializedVariablesUMD.types | 8 +- .../reference/exportNonVisibleType.types | 4 +- ...endAndImplementTheSameBaseType2.errors.txt | 8 +- .../extendAndImplementTheSameBaseType2.types | 4 +- .../reference/extendBooleanInterface.types | 8 +- .../reference/extendGenericArray.errors.txt | 4 +- .../reference/extendGenericArray.types | 4 +- .../reference/extendGenericArray2.errors.txt | 4 +- .../reference/extendGenericArray2.types | 8 +- .../reference/extendNumberInterface.types | 8 +- .../reference/extendStringInterface.types | 8 +- ...ndingClassFromAliasAndUsageInIndexer.types | 8 +- .../baselines/reference/externSemantics.types | 4 +- .../reference/externalModuleAssignToVar.types | 12 +- .../externalModuleExportingGenericClass.types | 8 +- .../reference/fatArrowfunctionAsType.types | 4 +- .../reference/filterNamespace_import.types | 8 +- .../flowControlTypeGuardThenSwitch.types | 4 +- tests/baselines/reference/for-of36.types | 4 +- tests/baselines/reference/for-of44.types | 4 +- tests/baselines/reference/for.types | 4 +- tests/baselines/reference/forStatements.types | 29 +- .../forStatementsMultipleValidDecl.types | 10 +- ...unctionCallOnConstrainedTypeVariable.types | 8 +- .../functionExpressionContextualTyping1.types | 20 +- .../reference/functionImplementations.types | 34 +- .../baselines/reference/functionLiteral.types | 2 +- .../functionLiteralForOverloads.types | 16 +- .../functionLiteralForOverloads2.types | 12 +- ...ctionSignatureAssignmentCompat1.errors.txt | 1 - .../functionSignatureAssignmentCompat1.types | 8 +- .../functionTypeArgumentArrayAssignment.types | 4 +- ...functionTypeArgumentAssignmentCompat.types | 4 +- ...thAnyReturnTypeAndNoReturnExpression.types | 4 +- .../reference/generatedContextualTyping.types | 560 +++++++++--------- .../generatorReturnTypeInference.types | 12 +- ...eneratorReturnTypeInferenceNonStrict.types | 12 +- .../reference/generatorTypeCheck25.errors.txt | 4 +- .../reference/generatorTypeCheck25.types | 4 +- .../reference/generatorTypeCheck32.types | 4 +- tests/baselines/reference/generic.errors.txt | 4 +- tests/baselines/reference/generic.types | 16 +- tests/baselines/reference/genericArray0.types | 4 +- .../reference/genericArrayMethods1.errors.txt | 4 +- ...AssignmentCompatWithInterfaces1.errors.txt | 29 +- ...nericAssignmentCompatWithInterfaces1.types | 8 +- ...icCallWithGenericSignatureArguments2.types | 8 +- ...lWithObjectTypeArgsAndIndexersErrors.types | 2 +- ...llWithObjectTypeArgsAndStringIndexer.types | 8 +- .../genericCloneReturnTypes2.errors.txt | 4 +- ...ericConstructInvocationWithNoTypeArg.types | 4 +- .../reference/genericFunctionInference1.types | 8 +- .../reference/genericGetter.errors.txt | 4 +- tests/baselines/reference/genericGetter.types | 4 +- .../reference/genericGetter3.errors.txt | 4 +- .../baselines/reference/genericGetter3.types | 8 +- .../genericInheritedDefaultConstructors.types | 4 +- .../reference/genericIsNeverEmptyObject.types | 4 +- .../reference/genericRestParameters3.types | 4 +- ...genericTupleWithSimplifiableElements.types | 16 +- .../reference/genericTypeAliases.types | 4 +- .../genericTypeAssertions1.errors.txt | 8 +- .../genericTypeAssertions2.errors.txt | 8 +- .../reference/genericTypeAssertions6.types | 4 +- ...cTypeWithNonGenericBaseMisMatch.errors.txt | 4 +- ...enericTypeWithNonGenericBaseMisMatch.types | 4 +- .../genericsAndHigherOrderFunctions.types | 4 +- .../genericsWithoutTypeParameters1.types | 8 +- ...pliedReturnTypeAndFunctionClassMerge.types | 3 +- .../reference/gettersAndSetters.types | 4 +- .../heterogeneousArrayLiterals.types | 20 +- .../reference/ignoredJsxAttributes.errors.txt | 14 +- .../reference/ignoredJsxAttributes.types | 4 +- .../implicitAnyAnyReturningFunction.types | 6 +- .../reference/implicitAnyWidenToAny.types | 24 +- .../reference/importAliasIdentifiers.types | 8 +- .../importAliasInModuleAugmentation.types | 4 +- ...tCallExpressionCheckReturntype1.errors.txt | 4 +- ...importCallExpressionCheckReturntype1.types | 6 +- ...importCallExpressionDeclarationEmit3.types | 8 +- ...portCallExpressionReturnPromiseOfAny.types | 8 +- .../reference/importClause_default.types | 4 +- .../reference/importTsBeforeDTs.types | 4 +- .../reference/importTypeAmbient.types | 6 +- .../reference/importTypeGenericTypes.types | 6 +- .../baselines/reference/importTypeLocal.types | 6 +- .../reference/importTypeLocalMissing.types | 12 +- .../importsNotUsedAsValues_error.types | 16 +- .../inKeywordTypeguard(strict=false).types | 32 +- .../inKeywordTypeguard(strict=true).types | 32 +- .../incompatibleGenericTypes.errors.txt | 4 +- .../reference/incompatibleGenericTypes.types | 4 +- .../reference/incompatibleTypes.errors.txt | 8 +- .../reference/incompatibleTypes.types | 12 +- .../reference/incrementOnNullAssertion.types | 4 +- .../incrementOperatorWithAnyOtherType.types | 4 +- ...torWithAnyOtherTypeInvalidOperations.types | 4 +- .../reference/indexSignatureTypeCheck.types | 4 +- .../reference/indexSignatureTypeCheck2.types | 4 +- .../reference/indexWithUndefinedAndNull.types | 8 +- ...WithUndefinedAndNullStrictNullChecks.types | 8 +- .../indexedAccessConstraints.errors.txt | 4 +- .../reference/indexedAccessConstraints.types | 4 +- tests/baselines/reference/indexer.types | 4 +- tests/baselines/reference/indexer3.types | 4 +- tests/baselines/reference/indexerA.types | 4 +- .../reference/indexerWithTuple.types | 8 +- ...inferFromGenericFunctionReturnTypes2.types | 8 +- ...inferFromGenericFunctionReturnTypes3.types | 20 +- .../reference/inferSecondaryParameter.types | 7 +- .../reference/inferTypePredicates.errors.txt | 16 +- .../reference/inferTypePredicates.types | 14 +- .../baselines/reference/inferenceLimit.types | 4 +- .../infinitelyExpandingBaseTypes2.types | 2 +- ...infinitelyExpandingTypeAssignability.types | 2 +- .../innerTypeCheckOfLambdaArgument.errors.txt | 4 +- .../innerTypeCheckOfLambdaArgument.types | 4 +- .../instantiateContextualTypes.types | 4 +- .../reference/instantiatedModule.types | 8 +- .../reference/intTypeCheck.errors.txt | 116 ++-- tests/baselines/reference/intTypeCheck.types | 206 +++---- tests/baselines/reference/interface0.types | 4 +- .../reference/interfaceAssignmentCompat.types | 8 +- .../reference/interfaceDeclaration1.types | 4 +- .../reference/interfaceExtendingClass.types | 4 +- .../interfaceImplementation1.errors.txt | 4 +- .../reference/interfaceImplementation1.types | 4 +- .../interfaceWithPropertyOfEveryType.types | 4 +- .../reference/internalAliasEnum.types | 8 +- ...AliasEnumInsideLocalModuleWithExport.types | 8 +- ...asEnumInsideLocalModuleWithoutExport.types | 8 +- ...eLocalModuleWithoutExportAccessError.types | 8 +- ...asEnumInsideTopLevelModuleWithExport.types | 8 +- ...numInsideTopLevelModuleWithoutExport.types | 8 +- .../intersectionPropertyCheck.errors.txt | 13 +- .../reference/intersectionPropertyCheck.types | 8 +- .../reference/intersectionReduction.types | 4 +- ...intersectionWithUnionConstraint.errors.txt | 20 +- .../intersectionWithUnionConstraint.types | 18 +- .../reference/intrinsicKeyword.types | 4 +- .../invalidBooleanAssignments.errors.txt | 28 +- .../reference/invalidBooleanAssignments.types | 34 +- .../invalidModuleWithVarStatements.types | 12 +- .../invalidNumberAssignments.errors.txt | 28 +- .../reference/invalidNumberAssignments.types | 30 +- .../invalidStringAssignments.errors.txt | 32 +- .../reference/invalidStringAssignments.types | 34 +- .../invalidVoidAssignments.errors.txt | 28 +- .../reference/invalidVoidAssignments.types | 32 +- tests/baselines/reference/isLiteral1.types | 4 +- .../isolatedDeclarationErrorsClasses.types | 8 +- .../reference/iterableContextualTyping1.types | 4 +- .../iteratorSpreadInArray5.errors.txt | 10 +- .../reference/iteratorSpreadInArray5.types | 4 +- .../jsdocDisallowedInTypescript.errors.txt | 6 +- .../jsdocDisallowedInTypescript.types | 24 +- .../reference/keyofAndIndexedAccess.types | 4 +- .../reference/keyofAndIndexedAccess2.types | 8 +- .../keyofAndIndexedAccessErrors.types | 8 +- ...eyofGenericExtendingClassDoubleLayer.types | 4 +- .../keyofIsLiteralContexualType.errors.txt | 14 +- .../keyofIsLiteralContexualType.types | 8 +- tests/baselines/reference/keywordField.types | 3 +- .../reference/letDeclarations-es5-1.types | 8 +- .../reference/letDeclarations-es5.types | 8 +- .../reference/letDeclarations-scopes.types | 4 +- .../baselines/reference/letDeclarations.types | 8 +- .../letIdentifierInElementAccess01.types | 3 +- ...teralFreshnessPropagationOnNarrowing.types | 28 +- tests/baselines/reference/literalTypes2.types | 4 +- tests/baselines/reference/localTypes1.types | 8 +- .../logicalNotOperatorWithAnyOtherType.types | 4 +- ...gicalOrExpressionIsContextuallyTyped.types | 4 +- .../logicalOrOperatorWithTypeParameters.types | 16 +- .../reference/looseThisTypeInFunctions.types | 8 +- tests/baselines/reference/m7Bugs.types | 2 +- ...mappedTypeAsClauseRelationships.errors.txt | 16 +- .../mappedTypeAsClauseRelationships.types | 24 +- .../mappedTypeConstraints2.errors.txt | 4 +- .../reference/mappedTypeConstraints2.types | 12 +- .../reference/mappedTypeErrors.errors.txt | 33 +- .../reference/mappedTypeErrors.types | 24 +- .../mappedTypeIndexedAccess.errors.txt | 26 +- .../reference/mappedTypeIndexedAccess.types | 8 +- .../reference/mappedTypeRelationships.types | 6 +- .../reference/mappedTypeWithAny.errors.txt | 4 +- .../reference/mappedTypeWithAny.types | 8 +- tests/baselines/reference/mappedTypes2.types | 4 +- .../reference/mappedTypes5.errors.txt | 12 +- tests/baselines/reference/mappedTypes5.types | 76 +-- .../baselines/reference/maxConstraints.types | 4 +- .../reference/mergedDeclarations7.errors.txt | 4 +- ...ExplicitTypeParameterAndArgumentType.types | 4 +- .../reference/modifierParenCast.types | 12 +- .../moduleClassArrayCodeGenTest.types | 8 +- .../reference/multiCallOverloads.types | 8 +- .../reference/multipleNumericIndexers.types | 4 +- .../reference/multipleStringIndexers.types | 4 +- tests/baselines/reference/multivar.types | 8 +- .../reference/namespaceImportTypeQuery.types | 4 +- .../reference/namespaceImportTypeQuery2.types | 4 +- .../reference/namespaceImportTypeQuery3.types | 4 +- .../reference/namespaceImportTypeQuery4.types | 4 +- .../narrowingPastLastAssignment.types | 8 +- .../negateOperatorWithAnyOtherType.types | 4 +- .../nestedExcessPropertyChecking.errors.txt | 8 +- .../nestedExcessPropertyChecking.types | 12 +- .../reference/nestedFreshLiteral.errors.txt | 8 +- .../reference/nestedFreshLiteral.types | 4 +- tests/baselines/reference/nestedModules.types | 4 +- .../reference/neverTypeErrors1.types | 4 +- .../reference/noEmitOnError.errors.txt | 4 +- tests/baselines/reference/noEmitOnError.types | 4 +- .../reference/noImplicitAnyForIn.types | 4 +- ...licitAnyFunctionExpressionAssignment.types | 8 +- .../reference/noImplicitAnyIndexing.types | 8 +- .../noImplicitAnyIndexingSuppressed.types | 8 +- .../noImplicitAnyStringIndexerOnObject.types | 4 +- .../reference/noImplicitThisFunctions.types | 4 +- .../reference/nonArrayRestArgs.types | 4 +- .../nonPrimitiveAndTypeVariables.errors.txt | 8 +- .../nonPrimitiveAndTypeVariables.types | 16 +- .../nonPrimitiveAsProperty.errors.txt | 11 +- .../reference/nonPrimitiveAsProperty.types | 6 +- .../reference/nonPrimitiveAssignError.types | 12 +- .../nonPrimitiveInGeneric.errors.txt | 4 +- .../reference/nonPrimitiveInGeneric.types | 12 +- .../nonPrimitiveRhsSideOfInExpression.types | 4 +- .../nonPrimitiveUnionIntersection.errors.txt | 14 +- .../nonPrimitiveUnionIntersection.types | 20 +- tests/baselines/reference/null.types | 4 +- ...UndefinedTypeGuardIsOrderIndependent.types | 4 +- .../numberAssignableToEnumInsideUnion.types | 4 +- ...rConstrainsPropertyDeclarations.errors.txt | 7 +- ...ndexerConstrainsPropertyDeclarations.types | 4 +- ...ConstrainsPropertyDeclarations2.errors.txt | 7 +- ...dexerConstrainsPropertyDeclarations2.types | 4 +- .../numericIndexerConstraint1.errors.txt | 4 +- .../reference/numericIndexerConstraint1.types | 4 +- .../reference/numericIndexerConstraint4.types | 4 +- .../numericIndexerConstraint5.errors.txt | 4 +- .../reference/numericIndexerConstraint5.types | 4 +- .../numericIndexerTyping1.errors.txt | 8 +- .../reference/numericIndexerTyping1.types | 8 +- .../numericIndexerTyping2.errors.txt | 8 +- .../reference/numericIndexerTyping2.types | 8 +- .../reference/numericIndexingResults.types | 8 +- .../reference/numericLiteralTypes1.types | 10 +- .../reference/numericLiteralTypes2.types | 10 +- ...cLiteralsWithTrailingDecimalPoints01.types | 4 +- ...cLiteralsWithTrailingDecimalPoints02.types | 4 +- ...ectCreationOfElementAccessExpression.types | 4 +- .../objectLitStructuralTypeMismatch.types | 4 +- .../objectLiteralExcessProperties.errors.txt | 23 +- .../objectLiteralExcessProperties.types | 44 +- .../objectLiteralFreshnessWithSpread.types | 4 +- .../objectLiteralIndexerErrors.errors.txt | 11 +- .../objectLiteralIndexerErrors.types | 4 +- .../objectLiteralIndexerNoImplicitAny.types | 4 +- .../reference/objectLiteralIndexers.types | 4 +- ...LiteralShorthandPropertiesAssignment.types | 10 +- ...eralShorthandPropertiesAssignmentES6.types | 10 +- ...alShorthandPropertiesAssignmentError.types | 12 +- ...nmentErrorFromMissingIdentifier.errors.txt | 4 +- ...AssignmentErrorFromMissingIdentifier.types | 12 +- ...lShorthandPropertiesFunctionArgument.types | 8 +- ...ShorthandPropertiesFunctionArgument2.types | 8 +- ...tLiteralWithNumericPropertyName.errors.txt | 13 +- ...objectLiteralWithNumericPropertyName.types | 4 +- ...LiteralsAgainstUnionsOfArrays01.errors.txt | 16 +- ...bjectLiteralsAgainstUnionsOfArrays01.types | 4 +- tests/baselines/reference/objectRest.types | 4 +- tests/baselines/reference/objectSpread.types | 80 +-- .../objectSpreadComputedProperty.types | 8 +- .../reference/objectSpreadNegative.errors.txt | 4 +- .../reference/objectSpreadNegative.types | 36 +- .../objectSpreadStrictNull.errors.txt | 12 +- .../reference/objectSpreadStrictNull.types | 24 +- ...CallSignatureAppearsToBeFunctionType.types | 16 +- ...atureHidingMembersOfExtendedFunction.types | 16 +- ...CallSignatureHidingMembersOfFunction.types | 16 +- ...ructSignatureAppearsToBeFunctionType.types | 24 +- ...atureHidingMembersOfExtendedFunction.types | 16 +- ...ructSignatureHidingMembersOfFunction.types | 16 +- ...ectTypesIdentityWithNumericIndexers1.types | 4 +- ...ectTypesIdentityWithNumericIndexers2.types | 4 +- ...ectTypesIdentityWithNumericIndexers3.types | 4 +- ...bjectTypesIdentityWithStringIndexers.types | 4 +- ...jectTypesIdentityWithStringIndexers2.types | 4 +- .../operatorsAndIntersectionTypes.types | 8 +- .../reference/optionalParamArgsTest.types | 2 +- .../optionalParamAssignmentCompat.errors.txt | 1 - .../optionalParamAssignmentCompat.types | 8 +- .../optionalPropertiesTest.errors.txt | 8 +- .../reference/optionalPropertiesTest.types | 24 +- ...ssignableToStringIndexSignature.errors.txt | 4 +- ...ertyAssignableToStringIndexSignature.types | 12 +- ...erEagerReturnTypeSpecialization.errors.txt | 7 +- .../overEagerReturnTypeSpecialization.types | 2 +- .../baselines/reference/overload1.errors.txt | 4 +- tests/baselines/reference/overload1.types | 4 +- .../overloadOnConstAsTypeAnnotation.types | 2 +- ...ObjectLiteralImplementingAnInterface.types | 4 +- .../overloadOnConstNoAnyImplementation.types | 4 +- ...verloadOnConstNoStringImplementation.types | 4 +- ...overloadResolutionOverNonCTObjectLit.types | 4 +- .../overloadingOnConstants1.errors.txt | 16 +- .../reference/overloadingOnConstants1.types | 10 +- .../reference/overloadingOnConstants2.types | 2 +- ...lutionWithConstraintCheckingDeferred.types | 12 +- ...meterInitializersForwardReferencing1.types | 16 +- ...rInitializersForwardReferencing1_es6.types | 16 +- .../parenthesizedContexualTyping1.types | 12 +- .../parenthesizedContexualTyping2.types | 16 +- .../reference/parserES5ForOfStatement7.types | 8 +- ...orRecovery_IncompleteMemberVariable1.types | 4 +- ...orRecovery_IncompleteMemberVariable2.types | 4 +- .../reference/parserForInStatement7.types | 8 +- .../reference/parserForOfStatement7.types | 8 +- ...parserGenericsInVariableDeclaration1.types | 24 +- tests/baselines/reference/parserModule1.types | 4 +- .../parserObjectCreation1.errors.txt | 4 +- .../reference/parserObjectCreation1.types | 4 +- .../reference/parserRealSource1.types | 4 +- .../reference/parserRealSource14.types | 16 +- .../reference/parserRealSource2.types | 16 +- .../reference/parserRealSource4.types | 8 +- .../reference/parserRealSource6.types | 20 +- .../reference/parserRealSource7.types | 24 +- .../reference/parserRealSource8.types | 28 +- tests/baselines/reference/parserharness.types | 56 +- .../plusOperatorWithAnyOtherType.types | 4 +- .../reference/primaryExpressionMods.types | 4 +- .../reference/primitiveMembers.types | 20 +- .../privateNameAccessorsAccess.types | 4 +- .../reference/privateNameMethodAccess.types | 4 +- .../reference/privateNamesAndkeyof.types | 4 +- .../baselines/reference/propertyAccess.types | 12 +- ...ccessOnTypeParameterWithConstraints4.types | 8 +- ...ccessOnTypeParameterWithConstraints5.types | 4 +- ...opertyParameterWithQuestionMark.errors.txt | 4 +- .../propertyParameterWithQuestionMark.types | 8 +- tests/baselines/reference/qualify.errors.txt | 32 +- tests/baselines/reference/qualify.types | 30 +- .../baselines/reference/readonlyMembers.types | 12 +- .../recursiveBaseConstructorCreation3.types | 4 +- .../recursiveFunctionTypes.errors.txt | 12 +- .../reference/recursiveFunctionTypes.types | 12 +- .../recursiveIdenticalAssignment.types | 2 +- .../reference/recursiveTypeComparison.types | 4 +- .../reference/recursiveTypeReferences1.types | 4 +- .../referenceSatisfiesExpression.types | 4 +- .../reference/reorderProperties.types | 2 +- ...RelativeWithoutExtensionResolvesToTs.types | 4 +- .../restParameterNoTypeAnnotation.types | 3 +- .../signatureCombiningRestParameters2.types | 4 +- .../reference/sourceMap-Comments.types | 4 +- .../sourceMap-FileWithComments.types | 4 +- .../baselines/reference/sourceMapSample.types | 4 +- .../sourceMapValidationClasses.types | 4 +- ...nDestructuringForArrayBindingPattern.types | 12 +- ...DestructuringForArrayBindingPattern2.types | 12 +- ...gForArrayBindingPatternDefaultValues.types | 12 +- ...ForArrayBindingPatternDefaultValues2.types | 12 +- ...DestructuringForObjectBindingPattern.types | 8 +- ...estructuringForObjectBindingPattern2.types | 8 +- ...ForObjectBindingPatternDefaultValues.types | 8 +- ...orObjectBindingPatternDefaultValues2.types | 8 +- ...estructuringForOfArrayBindingPattern.types | 16 +- ...structuringForOfArrayBindingPattern2.types | 16 +- ...orOfArrayBindingPatternDefaultValues.types | 16 +- ...rOfArrayBindingPatternDefaultValues2.types | 16 +- ...structuringForOfObjectBindingPattern.types | 8 +- ...tructuringForOfObjectBindingPattern2.types | 8 +- ...rOfObjectBindingPatternDefaultValues.types | 8 +- ...OfObjectBindingPatternDefaultValues2.types | 8 +- ...gParameterNestedObjectBindingPattern.types | 4 +- ...tedObjectBindingPatternDefaultValues.types | 4 +- ...cturingParameterObjectBindingPattern.types | 4 +- ...terObjectBindingPatternDefaultValues.types | 4 +- ...cturingParametertArrayBindingPattern.types | 4 +- ...turingParametertArrayBindingPattern2.types | 4 +- ...tertArrayBindingPatternDefaultValues.types | 4 +- ...ertArrayBindingPatternDefaultValues2.types | 4 +- ...dationDestructuringVariableStatement.types | 8 +- ...ationDestructuringVariableStatement1.types | 8 +- ...VariableStatementArrayBindingPattern.types | 8 +- ...ariableStatementArrayBindingPattern2.types | 8 +- ...ariableStatementArrayBindingPattern3.types | 16 +- ...mentArrayBindingPatternDefaultValues.types | 8 +- ...entArrayBindingPatternDefaultValues2.types | 8 +- ...entArrayBindingPatternDefaultValues3.types | 16 +- ...turingVariableStatementDefaultValues.types | 8 +- ...eStatementNestedObjectBindingPattern.types | 8 +- ...bjectBindingPatternWithDefaultValues.types | 8 +- ...cializationsShouldNotAffectEachOther.types | 4 +- .../specializedInheritedConstructors1.types | 4 +- tests/baselines/reference/spreadMethods.types | 4 +- .../reference/spreadUnion3.errors.txt | 4 +- tests/baselines/reference/spreadUnion3.types | 8 +- .../staticFieldWithInterfaceContext.types | 44 +- .../staticInterfaceAssignmentCompat.types | 2 +- .../reference/staticMemberExportAccess.types | 4 +- ...cMemberOfAnotherClassAssignment.errors.txt | 4 +- ...PublicMemberOfAnotherClassAssignment.types | 6 +- ...rConstrainsPropertyDeclarations.errors.txt | 58 +- ...ndexerConstrainsPropertyDeclarations.types | 4 +- ...ConstrainsPropertyDeclarations2.errors.txt | 25 +- ...dexerConstrainsPropertyDeclarations2.types | 4 +- .../reference/stringIndexingResults.types | 4 +- ...lTypesAndLogicalOrExpressions01.errors.txt | 4 +- ...iteralTypesAndLogicalOrExpressions01.types | 4 +- ...alTypesAndParenthesizedExpressions01.types | 4 +- .../stringLiteralTypesAndTuples01.types | 8 +- .../stringLiteralTypesAsTags01.types | 4 +- .../stringLiteralTypesAsTags02.types | 4 +- .../stringLiteralTypesAsTags03.types | 4 +- .../stringLiteralTypesInUnionTypes01.types | 8 +- .../stringLiteralTypesInUnionTypes02.types | 8 +- .../stringLiteralTypesInUnionTypes03.types | 4 +- .../stringLiteralTypesInUnionTypes04.types | 8 +- .../stringLiteralTypesTypePredicates01.types | 4 +- ...teralTypesWithTemplateStrings02.errors.txt | 7 +- ...ingLiteralTypesWithTemplateStrings02.types | 4 +- ...ngLiteralTypesWithVariousOperators01.types | 4 +- ...ngLiteralTypesWithVariousOperators02.types | 4 +- .../subtypingWithOptionalProperties.types | 4 +- .../reference/superElementAccess.types | 2 +- .../reference/superPropertyAccess.types | 4 +- .../switchCasesExpressionTypeMismatch.types | 4 +- .../reference/symbolProperty10.errors.txt | 4 +- .../reference/symbolProperty10.types | 2 +- .../reference/symbolProperty11.types | 2 +- .../reference/symbolProperty12.errors.txt | 4 +- .../reference/symbolProperty12.types | 2 +- .../reference/symbolProperty20.types | 4 +- .../reference/symbolProperty9.errors.txt | 4 +- .../baselines/reference/symbolProperty9.types | 2 +- ...mplateStringsWithOverloadResolution3.types | 4 +- ...teStringsWithOverloadResolution3_ES6.types | 4 +- .../reference/targetTypeCastTest.types | 4 +- .../reference/targetTypeObjectLiteral.types | 2 +- .../baselines/reference/targetTypeTest1.types | 4 +- .../baselines/reference/targetTypeTest2.types | 4 +- .../reference/targetTypeTest3.errors.txt | 15 +- .../baselines/reference/targetTypeTest3.types | 4 +- .../reference/targetTypingOnFunctions.types | 2 +- .../reference/templateLiteralTypes1.types | 4 +- .../reference/templateLiteralTypes2.types | 20 +- .../reference/templateLiteralTypes8.types | 8 +- .../reference/thisTypeInFunctions.types | 30 +- .../thisTypeInFunctionsNegative.errors.txt | 4 +- .../thisTypeInFunctionsNegative.types | 24 +- .../reference/thisTypeInObjectLiterals.types | 4 +- .../reference/thisTypeInObjectLiterals2.types | 16 +- .../thisWhenTypeCheckFails.errors.txt | 4 +- .../tryCatchFinallyControlFlow.types | 116 ++-- .../reference/ts-expect-error.errors.txt | 4 +- .../baselines/reference/ts-expect-error.types | 26 +- .../baselines/reference/ts-ignore.errors.txt | 4 +- tests/baselines/reference/ts-ignore.types | 16 +- .../when-preserveWatchOutput-is-not-used.js | 28 +- ...veWatchOutput-is-passed-on-command-line.js | 28 +- ...BuildOnErrors-is-passed-on-command-line.js | 28 +- .../tscWatch/resolutionCache/caching-works.js | 4 +- ...-directives,-they-are-handled-correcrly.js | 4 +- ...-file-is-open-gerErr-with-sync-commands.js | 8 +- ...-when-the-depedency-file-is-open-getErr.js | 4 +- ...depedency-file-is-open-geterrForProject.js | 4 +- ...-file-is-open-gerErr-with-sync-commands.js | 8 +- ...-when-the-depedency-file-is-open-getErr.js | 4 +- ...depedency-file-is-open-geterrForProject.js | 4 +- .../tsxStatelessFunctionComponents3.types | 8 +- .../baselines/reference/tsxUnionSpread.types | 8 +- .../reference/tupleElementTypes1.types | 4 +- tests/baselines/reference/tupleTypes.types | 2 +- tests/baselines/reference/typeAliases.types | 4 +- ...notationBestCommonTypeInArrayLiteral.types | 4 +- ...faultUsesConstraintOnCircularDefault.types | 8 +- ...ouldDisallowNonGenericOverloads.errors.txt | 8 +- ...ntsShouldDisallowNonGenericOverloads.types | 4 +- ...ypeAssertionsWithIntersectionTypes01.types | 8 +- .../typeAssertionsWithUnionTypes01.types | 12 +- .../typeAssignabilityErrorMessage.errors.txt | 4 +- .../typeAssignabilityErrorMessage.types | 2 +- ...InsideFunctionExpressionInArray.errors.txt | 4 +- ...ckingInsideFunctionExpressionInArray.types | 4 +- .../reference/typeGuardFunction.types | 4 +- .../typeGuardFunctionOfFormThis.types | 4 +- .../typeGuardFunctionOfFormThisErrors.types | 8 +- .../reference/typeGuardInClass.errors.txt | 8 +- .../reference/typeGuardInClass.types | 8 +- .../reference/typeGuardOfFormInstanceOf.types | 4 +- ...typeGuardOfFormInstanceOfOnInterface.types | 4 +- .../reference/typeGuardOfFormIsType.types | 4 +- .../typeGuardOfFormIsTypeOnInterfaces.types | 4 +- .../reference/typeGuardOfFormThisMember.types | 4 +- .../typeGuardOfFormThisMemberErrors.types | 4 +- .../typeGuardOfFormTypeOfBoolean.types | 8 +- .../typeGuardOfFormTypeOfNumber.types | 16 +- .../typeGuardOfFormTypeOfOther.errors.txt | 4 +- .../typeGuardOfFormTypeOfOther.types | 12 +- .../typeGuardOfFormTypeOfString.types | 8 +- .../reference/typeGuardsAsAssertions.types | 124 ++-- .../reference/typeGuardsOnClassProperty.types | 4 +- .../reference/typeGuardsTypeParameters.types | 16 +- .../reference/typeGuardsWithAny.types | 4 +- tests/baselines/reference/typeInfer1.types | 8 +- tests/baselines/reference/typeMatch1.types | 16 +- tests/baselines/reference/typeMatch2.types | 4 +- .../baselines/reference/typeName1.errors.txt | 64 +- tests/baselines/reference/typeName1.types | 58 +- .../reference/typeOfOperator1.errors.txt | 4 +- .../baselines/reference/typeOfOperator1.types | 8 +- ...emberNarrowedWithLoopAntecedent.errors.txt | 4 +- ...anceMemberNarrowedWithLoopAntecedent.types | 8 +- ...ConstrainedToOuterTypeParameter.errors.txt | 4 +- ...meterConstrainedToOuterTypeParameter.types | 2 +- ...eterConstrainedToOuterTypeParameter2.types | 2 +- .../typeSatisfaction_contextualTyping2.types | 4 +- tests/baselines/reference/typeVal.types | 4 +- .../baselines/reference/typeofInterface.types | 2 +- .../reference/typeofInternalModules.types | 4 +- .../typeofOperatorWithAnyOtherType.types | 4 +- .../reference/typeofSimple.errors.txt | 4 +- tests/baselines/reference/typeofSimple.types | 2 +- tests/baselines/reference/typeofThis.types | 40 +- .../typeofThisWithImplicitThis.types | 3 +- ...yExternalModuleStillHasInstance.errors.txt | 4 +- ...esOnlyExternalModuleStillHasInstance.types | 8 +- .../typesWithPrivateConstructor.types | 16 +- .../typesWithProtectedConstructor.types | 16 +- .../typesWithPublicConstructor.errors.txt | 8 +- .../typesWithPublicConstructor.types | 16 +- tests/baselines/reference/umd2.types | 8 +- tests/baselines/reference/umd8.types | 4 +- .../undefinedAssignableToEveryType.types | 63 +- .../reference/underscoreMapFirst.types | 7 +- .../unionAndIntersectionInference1.types | 8 +- .../unionTypeFromArrayLiteral.errors.txt | 4 +- .../reference/unionTypeFromArrayLiteral.types | 8 +- ...eWithRecursiveSubtypeReduction3.errors.txt | 4 +- ...onTypeWithRecursiveSubtypeReduction3.types | 4 +- ...IndexInObjectWithIndexSignature.errors.txt | 11 +- ...llowsIndexInObjectWithIndexSignature.types | 8 +- .../reference/unknownControlFlow.errors.txt | 4 +- .../reference/unknownControlFlow.types | 16 +- .../reference/unknownType1.errors.txt | 28 +- tests/baselines/reference/unknownType1.types | 36 +- tests/baselines/reference/unknownType2.types | 4 +- .../reference/unknownTypeErrors.types | 4 +- .../unmatchedParameterPositions.types | 8 +- ...ypedFunctionCallsWithTypeParameters1.types | 4 +- .../reference/unusedImportDeclaration.types | 4 +- .../reference/useBeforeDeclaration.types | 2 +- .../useObjectValuesAndEntries1.types | 4 +- ...usingDeclarationsWithObjectLiterals1.types | 4 +- ...oduleWithExportImportInValuePosition.types | 4 +- .../reference/validBooleanAssignments.types | 15 +- .../validMultipleVariableDeclarations.types | 10 +- .../reference/validNumberAssignments.types | 9 +- .../reference/validStringAssignments.types | 7 +- .../reference/validUndefinedAssignments.types | 15 +- tests/baselines/reference/varBlock.types | 4 +- tests/baselines/reference/vardecl.types | 8 +- ...aratorResolvedDuringContextualTyping.types | 4 +- .../reference/variadicTuples2.errors.txt | 4 +- .../baselines/reference/variadicTuples2.types | 4 +- .../baselines/reference/variadicTuples3.types | 12 +- .../voidFunctionAssignmentCompat.types | 8 +- tests/baselines/reference/voidOperator1.types | 7 +- .../voidOperatorWithAnyOtherType.types | 4 +- .../voidParamAssignmentCompatibility.types | 4 +- tests/baselines/reference/weakType.errors.txt | 4 +- tests/baselines/reference/weakType.types | 8 +- .../reference/widenToAny1.errors.txt | 4 +- tests/baselines/reference/widenToAny1.types | 2 +- .../reference/widenToAny2.errors.txt | 4 +- tests/baselines/reference/widenToAny2.types | 2 +- .../reference/widenedTypes.errors.txt | 19 +- tests/baselines/reference/widenedTypes.types | 14 +- .../baselines/reference/wideningTuples2.types | 2 +- .../yieldInForInInDownlevelGenerator.types | 3 +- 939 files changed, 5393 insertions(+), 5068 deletions(-) create mode 100644 tests/baselines/reference/controlFlowAssignmentPatternOrder.errors.txt create mode 100644 tests/baselines/reference/controlFlowWithIncompleteTypes.errors.txt diff --git a/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types b/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types index 51fb4a932f2a4..608bff1afc711 100644 --- a/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types +++ b/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types @@ -21,8 +21,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -46,8 +46,8 @@ module A { export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; >Origin3d : Point3d > : ^^^^^^^ ->{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0, z: 0 } : Point3d +> : ^^^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.types b/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.types index 63ad5111ad3aa..53a1b82280145 100644 --- a/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.types +++ b/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.types @@ -21,8 +21,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -46,8 +46,8 @@ module A { export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; >Origin3d : Point3d > : ^^^^^^^ ->{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0, z: 0 } : Point3d +> : ^^^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types b/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types index b7815335623c1..d779c352de2b8 100644 --- a/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types +++ b/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types @@ -18,8 +18,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -38,8 +38,8 @@ module A { export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; >Origin3d : Point3d > : ^^^^^^^ ->{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0, z: 0 } : Point3d +> : ^^^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.types b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.types index d524b106b6e82..4ab9a3b2a9e72 100644 --- a/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.types +++ b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.types @@ -18,8 +18,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -38,8 +38,8 @@ module A { export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; >Origin3d : Point3d > : ^^^^^^^ ->{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0, z: 0 } : Point3d +> : ^^^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.types b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.types index 1ede2d434df65..fa51f4e5135c3 100644 --- a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.types +++ b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.types @@ -19,8 +19,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.types b/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.types index b95b6f74f915f..f001fc0328aca 100644 --- a/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.types +++ b/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.types @@ -19,8 +19,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.types b/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.types index 0b78f671e138d..f238ce2a46b89 100644 --- a/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.types +++ b/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.types @@ -19,8 +19,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -40,8 +40,8 @@ module A { export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; >Origin3d : Point3d > : ^^^^^^^ ->{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0, z: 0 } : Point3d +> : ^^^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/ModuleWithExportedAndNonExportedEnums.types b/tests/baselines/reference/ModuleWithExportedAndNonExportedEnums.types index 218eae8eb05db..409719b2cefc2 100644 --- a/tests/baselines/reference/ModuleWithExportedAndNonExportedEnums.types +++ b/tests/baselines/reference/ModuleWithExportedAndNonExportedEnums.types @@ -28,16 +28,16 @@ var a: A.Color = A.Color.Red; > : ^^^^^^^ >A : any > : ^^^ ->A.Color.Red : A.Color.Red -> : ^^^^^^^^^^^ +>A.Color.Red : A.Color +> : ^^^^^^^ >A.Color : typeof A.Color > : ^^^^^^^^^^^^^^ >A : typeof A > : ^^^^^^^^ >Color : typeof A.Color > : ^^^^^^^^^^^^^^ ->Red : A.Color.Red -> : ^^^^^^^^^^^ +>Red : A.Color +> : ^^^^^^^ // error not exported var b = A.Day.Monday; diff --git a/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.types b/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.types index 2c9bcc56bbbf0..71b562a1babda 100644 --- a/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.types +++ b/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.types @@ -60,8 +60,8 @@ module Geometry { > : ^^^^^^^^^^^^ >Points : any > : ^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Points.Point +> : ^^^^^^^^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/NonInitializedExportInInternalModule.types b/tests/baselines/reference/NonInitializedExportInInternalModule.types index a1da3d7d020f9..3a63cacd2cb66 100644 --- a/tests/baselines/reference/NonInitializedExportInInternalModule.types +++ b/tests/baselines/reference/NonInitializedExportInInternalModule.types @@ -106,14 +106,14 @@ module Inner { export var c1: string = 'a'; >c1 : string > : ^^^^^^ ->'a' : "a" -> : ^^^ +>'a' : string +> : ^^^^^^ export let d1: number = 1; >d1 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ class D {} >D : D diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types index df868ced09330..b634662a6d5e0 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types @@ -49,8 +49,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -70,8 +70,8 @@ module A { var Origin: string = "0,0"; >Origin : string > : ^^^^^^ ->"0,0" : "0,0" -> : ^^^^^ +>"0,0" : string +> : ^^^^^^ export module Utils { >Utils : typeof Utils diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types index cf8deaad9704a..b60ae09a753bd 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types @@ -50,8 +50,8 @@ export module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -71,8 +71,8 @@ export module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types index 1e0e29ec3dd25..91f19186c031f 100644 --- a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types +++ b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types @@ -70,8 +70,8 @@ module otherRoot { > : ^^^ >A : any > : ^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Root.A.Point +> : ^^^^^^^^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types index 2e2e43b4cc31d..7a0b58ba436b2 100644 --- a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types +++ b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types @@ -56,8 +56,8 @@ module A { export var Origin: Point = { x: 0, y: 0 }; >Origin : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/VariableDeclaration10_es6.types b/tests/baselines/reference/VariableDeclaration10_es6.types index e2666c8e64be7..0614609252e27 100644 --- a/tests/baselines/reference/VariableDeclaration10_es6.types +++ b/tests/baselines/reference/VariableDeclaration10_es6.types @@ -4,6 +4,6 @@ let a: number = 1 >a : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ diff --git a/tests/baselines/reference/aliasDoesNotDuplicateSignatures.errors.txt b/tests/baselines/reference/aliasDoesNotDuplicateSignatures.errors.txt index 979e9bf750676..04804b202bedb 100644 --- a/tests/baselines/reference/aliasDoesNotDuplicateSignatures.errors.txt +++ b/tests/baselines/reference/aliasDoesNotDuplicateSignatures.errors.txt @@ -1,5 +1,5 @@ -user.ts(3,5): error TS2322: Type '() => void' is not assignable to type 'string'. -user.ts(4,5): error TS2322: Type '() => void' is not assignable to type 'string'. +user.ts(3,18): error TS2322: Type '() => void' is not assignable to type 'string'. +user.ts(4,18): error TS2322: Type '() => void' is not assignable to type 'string'. ==== demo.d.ts (0 errors) ==== @@ -14,8 +14,8 @@ user.ts(4,5): error TS2322: Type '() => void' is not assignable to type 'string' import { f } from 'demoModule'; // Assign an incorrect type here to see the type of 'f'. let x1: string = demoNS.f; - ~~ + ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'string'. let x2: string = f; - ~~ + ~ !!! error TS2322: Type '() => void' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/aliasDoesNotDuplicateSignatures.types b/tests/baselines/reference/aliasDoesNotDuplicateSignatures.types index 955d897549428..f40377203779c 100644 --- a/tests/baselines/reference/aliasDoesNotDuplicateSignatures.types +++ b/tests/baselines/reference/aliasDoesNotDuplicateSignatures.types @@ -32,16 +32,16 @@ import { f } from 'demoModule'; let x1: string = demoNS.f; >x1 : string > : ^^^^^^ ->demoNS.f : () => void -> : ^^^^^^ +>demoNS.f : string +> : ^^^^^^ >demoNS : typeof demoNS > : ^^^^^^^^^^^^^ ->f : () => void -> : ^^^^^^ +>f : string +> : ^^^^^^ let x2: string = f; >x2 : string > : ^^^^^^ ->f : () => void -> : ^^^^^^ +>f : string +> : ^^^^^^ diff --git a/tests/baselines/reference/aliasOnMergedModuleInterface.types b/tests/baselines/reference/aliasOnMergedModuleInterface.types index 66f175425ae42..d2cc4c2056a93 100644 --- a/tests/baselines/reference/aliasOnMergedModuleInterface.types +++ b/tests/baselines/reference/aliasOnMergedModuleInterface.types @@ -27,8 +27,8 @@ var x: foo.A = foo.bar("hello"); // foo.A should be ok but foo.bar should be err > : ^^^^^ >foo : any > : ^^^ ->foo.bar("hello") : any -> : ^^^ +>foo.bar("hello") : foo.A +> : ^^^^^ >foo.bar : any > : ^^^ >foo : any diff --git a/tests/baselines/reference/aliasUsageInArray.types b/tests/baselines/reference/aliasUsageInArray.types index 6e1da835cc7c8..9b2432b72fa65 100644 --- a/tests/baselines/reference/aliasUsageInArray.types +++ b/tests/baselines/reference/aliasUsageInArray.types @@ -24,8 +24,8 @@ interface IHasVisualizationModel { var xs: IHasVisualizationModel[] = [moduleA]; >xs : IHasVisualizationModel[] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->[moduleA] : (typeof moduleA)[] -> : ^^^^^^^^^^^^^^^^^^ +>[moduleA] : IHasVisualizationModel[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >moduleA : typeof moduleA > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/aliasUsageInObjectLiteral.types b/tests/baselines/reference/aliasUsageInObjectLiteral.types index 9d490d7516f7b..6e31c88d83437 100644 --- a/tests/baselines/reference/aliasUsageInObjectLiteral.types +++ b/tests/baselines/reference/aliasUsageInObjectLiteral.types @@ -28,7 +28,7 @@ var a: { x: typeof moduleA } = { x: moduleA }; >moduleA : typeof moduleA > : ^^^^^^^^^^^^^^ >{ x: moduleA } : { x: typeof moduleA; } -> : ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >x : typeof moduleA > : ^^^^^^^^^^^^^^ >moduleA : typeof moduleA @@ -39,8 +39,8 @@ var b: { x: IHasVisualizationModel } = { x: moduleA }; > : ^^^^^ ^^^ >x : IHasVisualizationModel > : ^^^^^^^^^^^^^^^^^^^^^^ ->{ x: moduleA } : { x: typeof moduleA; } -> : ^^^^^^^^^^^^^^^^^^^^^^ +>{ x: moduleA } : { x: IHasVisualizationModel; } +> : ^^^^^ ^^^ >x : typeof moduleA > : ^^^^^^^^^^^^^^ >moduleA : typeof moduleA @@ -53,8 +53,8 @@ var c: { y: { z: IHasVisualizationModel } } = { y: { z: moduleA } }; > : ^^^^^ ^^^ >z : IHasVisualizationModel > : ^^^^^^^^^^^^^^^^^^^^^^ ->{ y: { z: moduleA } } : { y: { z: typeof moduleA; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ y: { z: moduleA } } : { y: { z: IHasVisualizationModel; }; } +> : ^^^^^ ^^^ >y : { z: typeof moduleA; } > : ^^^^^^^^^^^^^^^^^^^^^^ >{ z: moduleA } : { z: typeof moduleA; } diff --git a/tests/baselines/reference/aliasUsageInOrExpression.types b/tests/baselines/reference/aliasUsageInOrExpression.types index f79acc30c5c75..5bcab1dd24601 100644 --- a/tests/baselines/reference/aliasUsageInOrExpression.types +++ b/tests/baselines/reference/aliasUsageInOrExpression.types @@ -77,8 +77,8 @@ var f: { x: IHasVisualizationModel } = <{ x: IHasVisualizationModel }>null ? { x > : ^^^^^ ^^^ >x : IHasVisualizationModel > : ^^^^^^^^^^^^^^^^^^^^^^ -><{ x: IHasVisualizationModel }>null ? { x: moduleA } : null : { x: typeof moduleA; } -> : ^^^^^^^^^^^^^^^^^^^^^^ +><{ x: IHasVisualizationModel }>null ? { x: moduleA } : null : { x: IHasVisualizationModel; } +> : ^^^^^ ^^^ ><{ x: IHasVisualizationModel }>null : { x: IHasVisualizationModel; } > : ^^^^^ ^^^ >x : IHasVisualizationModel diff --git a/tests/baselines/reference/aliasUsageInVarAssignment.types b/tests/baselines/reference/aliasUsageInVarAssignment.types index 0b1fe2d70f4fb..f2065019a5693 100644 --- a/tests/baselines/reference/aliasUsageInVarAssignment.types +++ b/tests/baselines/reference/aliasUsageInVarAssignment.types @@ -29,8 +29,8 @@ var m: typeof moduleA = i; > : ^^^^^^^^^^^^^^ >moduleA : typeof moduleA > : ^^^^^^^^^^^^^^ ->i : IHasVisualizationModel -> : ^^^^^^^^^^^^^^^^^^^^^^ +>i : typeof moduleA +> : ^^^^^^^^^^^^^^ === aliasUsageInVarAssignment_backbone.ts === export class Model { diff --git a/tests/baselines/reference/ambientClassDeclarationWithExtends.types b/tests/baselines/reference/ambientClassDeclarationWithExtends.types index 91d2becd24a3a..e104ba9a68691 100644 --- a/tests/baselines/reference/ambientClassDeclarationWithExtends.types +++ b/tests/baselines/reference/ambientClassDeclarationWithExtends.types @@ -32,7 +32,7 @@ declare class D extends C { } var d: C = new D(); >d : C > : ^ ->new D() : D +>new D() : C > : ^ >D : typeof D > : ^^^^^^^^ @@ -60,7 +60,7 @@ declare class F extends E { } var f: E = new F(); >f : E > : ^ ->new F() : F +>new F() : E > : ^ >F : typeof F > : ^^^^^^^^ diff --git a/tests/baselines/reference/ambiguousOverload.errors.txt b/tests/baselines/reference/ambiguousOverload.errors.txt index 0583cac1dc0b1..d401d2b8f6a33 100644 --- a/tests/baselines/reference/ambiguousOverload.errors.txt +++ b/tests/baselines/reference/ambiguousOverload.errors.txt @@ -1,5 +1,5 @@ -ambiguousOverload.ts(5,5): error TS2322: Type 'number' is not assignable to type 'string'. -ambiguousOverload.ts(11,5): error TS2322: Type 'string' is not assignable to type 'number'. +ambiguousOverload.ts(5,17): error TS2322: Type 'number' is not assignable to type 'string'. +ambiguousOverload.ts(11,18): error TS2322: Type 'string' is not assignable to type 'number'. ==== ambiguousOverload.ts (2 errors) ==== @@ -8,7 +8,7 @@ ambiguousOverload.ts(11,5): error TS2322: Type 'string' is not assignable to typ function foof(bar: any): any { return bar }; var x: number = foof("s", null); var y: string = foof("s", null); - ~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. function foof2(bar: string, x): string; @@ -16,5 +16,5 @@ ambiguousOverload.ts(11,5): error TS2322: Type 'string' is not assignable to typ function foof2(bar: any): any { return bar }; var x2: string = foof2("s", null); var y2: number = foof2("s", null); - ~~ + ~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/ambiguousOverload.types b/tests/baselines/reference/ambiguousOverload.types index 4b5d582073603..5ead13f1f2dda 100644 --- a/tests/baselines/reference/ambiguousOverload.types +++ b/tests/baselines/reference/ambiguousOverload.types @@ -38,7 +38,7 @@ var x: number = foof("s", null); var y: string = foof("s", null); >y : string > : ^^^^^^ ->foof("s", null) : number +>foof("s", null) : string > : ^^^^^^ >foof : { (bar: string, y: any): number; (bar: string, x: any): string; } > : ^^^ ^^ ^^ ^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^ ^^^ @@ -82,7 +82,7 @@ var x2: string = foof2("s", null); var y2: number = foof2("s", null); >y2 : number > : ^^^^^^ ->foof2("s", null) : string +>foof2("s", null) : number > : ^^^^^^ >foof2 : { (bar: string, x: any): string; (bar: string, y: any): number; } > : ^^^ ^^ ^^ ^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^ ^^^ diff --git a/tests/baselines/reference/amdImportNotAsPrimaryExpression.types b/tests/baselines/reference/amdImportNotAsPrimaryExpression.types index 1a62f69c11011..77f6cf8b8d224 100644 --- a/tests/baselines/reference/amdImportNotAsPrimaryExpression.types +++ b/tests/baselines/reference/amdImportNotAsPrimaryExpression.types @@ -45,8 +45,8 @@ var y: typeof foo.C1.s1 = false; > : ^^^^^^^^^^^^^ >s1 : boolean > : ^^^^^^^ ->false : false -> : ^^^^^ +>false : boolean +> : ^^^^^^^ var z: foo.M1.I2; >z : f.I2 diff --git a/tests/baselines/reference/anyAssignableToEveryType.types b/tests/baselines/reference/anyAssignableToEveryType.types index e298b59a6d888..8363e1b6e2b3e 100644 --- a/tests/baselines/reference/anyAssignableToEveryType.types +++ b/tests/baselines/reference/anyAssignableToEveryType.types @@ -38,22 +38,26 @@ var ae: E; var b: number = a; >b : number > : ^^^^^^ ->a : any +>a : number +> : ^^^^^^ var c: string = a; >c : string > : ^^^^^^ ->a : any +>a : string +> : ^^^^^^ var d: boolean = a; >d : boolean > : ^^^^^^^ ->a : any +>a : boolean +> : ^^^^^^^ var e: Date = a; >e : Date > : ^^^^ ->a : any +>a : Date +> : ^^^^ var f: any = a; >f : any @@ -62,34 +66,40 @@ var f: any = a; var g: void = a; >g : void > : ^^^^ ->a : any +>a : void +> : ^^^^ var h: Object = a; >h : Object > : ^^^^^^ ->a : any +>a : Object +> : ^^^^^^ var i: {} = a; >i : {} > : ^^ ->a : any +>a : {} +> : ^^ var j: () => {} = a; >j : () => {} > : ^^^^^^ ->a : any +>a : () => {} +> : ^^^^^^ var k: Function = a; >k : Function > : ^^^^^^^^ ->a : any +>a : Function +> : ^^^^^^^^ var l: (x: number) => string = a; >l : (x: number) => string > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->a : any +>a : (x: number) => string +> : ^ ^^ ^^^^^ ac = a; >ac = a : any @@ -112,31 +122,36 @@ ae = a; var m: number[] = a; >m : number[] > : ^^^^^^^^ ->a : any +>a : number[] +> : ^^^^^^^^ var n: { foo: string } = a; >n : { foo: string; } > : ^^^^^^^ ^^^ >foo : string > : ^^^^^^ ->a : any +>a : { foo: string; } +> : ^^^^^^^ ^^^ var o: (x: T) => T = a; >o : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : T > : ^ ->a : any +>a : (x: T) => T +> : ^ ^^ ^^ ^^^^^ var p: Number = a; >p : Number > : ^^^^^^ ->a : any +>a : Number +> : ^^^^^^ var q: String = a; >q : String > : ^^^^^^ ->a : any +>a : String +> : ^^^^^^ function foo(x: T, y: U, z: V) { >foo : (x: T, y: U, z: V) => void diff --git a/tests/baselines/reference/argumentExpressionContextualTyping.types b/tests/baselines/reference/argumentExpressionContextualTyping.types index 16a04fc21512e..76e5a282279f5 100644 --- a/tests/baselines/reference/argumentExpressionContextualTyping.types +++ b/tests/baselines/reference/argumentExpressionContextualTyping.types @@ -95,8 +95,8 @@ var o1: { x: [string, number], y: { c: boolean, d: string, e: number } } = { x: > : ^^^^^^ >e : number > : ^^^^^^ ->{ x: ["string", 1], y: { c: true, d: "world", e: 3 } } : { x: [string, number]; y: { c: true; d: string; e: number; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: ["string", 1], y: { c: true, d: "world", e: 3 } } : { x: [string, number]; y: { c: boolean; d: string; e: number; }; } +> : ^^^^^ ^^^^^ ^^^ >x : [string, number] > : ^^^^^^^^^^^^^^^^ >["string", 1] : [string, number] @@ -177,8 +177,8 @@ var array = ["string", 1, true]; var tuple: [string, number, boolean] = ["string", 1, true]; >tuple : [string, number, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->["string", 1, true] : [string, number, true] -> : ^^^^^^^^^^^^^^^^^^^^^^ +>["string", 1, true] : [string, number, boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >"string" : "string" > : ^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt b/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt index b4e4cdbcf67a4..3eed9af260ee3 100644 --- a/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt +++ b/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt @@ -1,32 +1,32 @@ arityAndOrderCompatibility01.ts(15,12): error TS2493: Tuple type '[string, number]' of length '2' has no element at index '2'. arityAndOrderCompatibility01.ts(17,5): error TS2461: Type '{ 0: string; 1: number; length: 2; }' is not an array type. -arityAndOrderCompatibility01.ts(18,5): error TS2322: Type '[string, number]' is not assignable to type '[number, number, number]'. +arityAndOrderCompatibility01.ts(18,36): error TS2322: Type '[string, number]' is not assignable to type '[number, number, number]'. Source has 2 element(s) but target requires 3. -arityAndOrderCompatibility01.ts(19,5): error TS2741: Property '2' is missing in type 'StrNum' but required in type '[number, number, number]'. -arityAndOrderCompatibility01.ts(20,5): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number, number, number]'. -arityAndOrderCompatibility01.ts(21,5): error TS2322: Type '[string, number]' is not assignable to type '[string, number, number]'. +arityAndOrderCompatibility01.ts(19,36): error TS2741: Property '2' is missing in type 'StrNum' but required in type '[number, number, number]'. +arityAndOrderCompatibility01.ts(20,36): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number, number, number]'. +arityAndOrderCompatibility01.ts(21,36): error TS2322: Type '[string, number]' is not assignable to type '[string, number, number]'. Source has 2 element(s) but target requires 3. -arityAndOrderCompatibility01.ts(22,5): error TS2741: Property '2' is missing in type 'StrNum' but required in type '[string, number, number]'. -arityAndOrderCompatibility01.ts(23,5): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[string, number, number]'. -arityAndOrderCompatibility01.ts(24,5): error TS2322: Type '[string, number]' is not assignable to type '[number]'. +arityAndOrderCompatibility01.ts(22,36): error TS2741: Property '2' is missing in type 'StrNum' but required in type '[string, number, number]'. +arityAndOrderCompatibility01.ts(23,36): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[string, number, number]'. +arityAndOrderCompatibility01.ts(24,20): error TS2322: Type '[string, number]' is not assignable to type '[number]'. Source has 2 element(s) but target allows only 1. -arityAndOrderCompatibility01.ts(25,5): error TS2322: Type 'StrNum' is not assignable to type '[number]'. +arityAndOrderCompatibility01.ts(25,20): error TS2322: Type 'StrNum' is not assignable to type '[number]'. Types of property '0' are incompatible. Type 'string' is not assignable to type 'number'. -arityAndOrderCompatibility01.ts(26,5): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number]'. -arityAndOrderCompatibility01.ts(27,5): error TS2322: Type '[string, number]' is not assignable to type '[string]'. +arityAndOrderCompatibility01.ts(26,20): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number]'. +arityAndOrderCompatibility01.ts(27,20): error TS2322: Type '[string, number]' is not assignable to type '[string]'. Source has 2 element(s) but target allows only 1. -arityAndOrderCompatibility01.ts(28,5): error TS2322: Type 'StrNum' is not assignable to type '[string]'. +arityAndOrderCompatibility01.ts(28,20): error TS2322: Type 'StrNum' is not assignable to type '[string]'. Types of property 'length' are incompatible. Type '2' is not assignable to type '1'. -arityAndOrderCompatibility01.ts(29,5): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[string]'. -arityAndOrderCompatibility01.ts(30,5): error TS2322: Type '[string, number]' is not assignable to type '[number, string]'. +arityAndOrderCompatibility01.ts(29,20): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[string]'. +arityAndOrderCompatibility01.ts(30,28): error TS2322: Type '[string, number]' is not assignable to type '[number, string]'. Type at position 0 in source is not compatible with type at position 0 in target. Type 'string' is not assignable to type 'number'. -arityAndOrderCompatibility01.ts(31,5): error TS2322: Type 'StrNum' is not assignable to type '[number, string]'. +arityAndOrderCompatibility01.ts(31,28): error TS2322: Type 'StrNum' is not assignable to type '[number, string]'. Types of property '0' are incompatible. Type 'string' is not assignable to type 'number'. -arityAndOrderCompatibility01.ts(32,5): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number, string]'. +arityAndOrderCompatibility01.ts(32,28): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number, string]'. ==== arityAndOrderCompatibility01.ts (17 errors) ==== @@ -52,61 +52,61 @@ arityAndOrderCompatibility01.ts(32,5): error TS2322: Type '{ 0: string; 1: numbe ~~~~~~~~~ !!! error TS2461: Type '{ 0: string; 1: number; length: 2; }' is not an array type. var j1: [number, number, number] = x; - ~~ + ~ !!! error TS2322: Type '[string, number]' is not assignable to type '[number, number, number]'. !!! error TS2322: Source has 2 element(s) but target requires 3. var j2: [number, number, number] = y; - ~~ + ~ !!! error TS2741: Property '2' is missing in type 'StrNum' but required in type '[number, number, number]'. var j3: [number, number, number] = z; - ~~ + ~ !!! error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number, number, number]'. var k1: [string, number, number] = x; - ~~ + ~ !!! error TS2322: Type '[string, number]' is not assignable to type '[string, number, number]'. !!! error TS2322: Source has 2 element(s) but target requires 3. var k2: [string, number, number] = y; - ~~ + ~ !!! error TS2741: Property '2' is missing in type 'StrNum' but required in type '[string, number, number]'. var k3: [string, number, number] = z; - ~~ + ~ !!! error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[string, number, number]'. var l1: [number] = x; - ~~ + ~ !!! error TS2322: Type '[string, number]' is not assignable to type '[number]'. !!! error TS2322: Source has 2 element(s) but target allows only 1. var l2: [number] = y; - ~~ + ~ !!! error TS2322: Type 'StrNum' is not assignable to type '[number]'. !!! error TS2322: Types of property '0' are incompatible. !!! error TS2322: Type 'string' is not assignable to type 'number'. var l3: [number] = z; - ~~ + ~ !!! error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number]'. var m1: [string] = x; - ~~ + ~ !!! error TS2322: Type '[string, number]' is not assignable to type '[string]'. !!! error TS2322: Source has 2 element(s) but target allows only 1. var m2: [string] = y; - ~~ + ~ !!! error TS2322: Type 'StrNum' is not assignable to type '[string]'. !!! error TS2322: Types of property 'length' are incompatible. !!! error TS2322: Type '2' is not assignable to type '1'. var m3: [string] = z; - ~~ + ~ !!! error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[string]'. var n1: [number, string] = x; - ~~ + ~ !!! error TS2322: Type '[string, number]' is not assignable to type '[number, string]'. !!! error TS2322: Type at position 0 in source is not compatible with type at position 0 in target. !!! error TS2322: Type 'string' is not assignable to type 'number'. var n2: [number, string] = y; - ~~ + ~ !!! error TS2322: Type 'StrNum' is not assignable to type '[number, string]'. !!! error TS2322: Types of property '0' are incompatible. !!! error TS2322: Type 'string' is not assignable to type 'number'. var n3: [number, string] = z; - ~~ + ~ !!! error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number, string]'. var o1: [string, number] = x; var o2: [string, number] = y; diff --git a/tests/baselines/reference/arityAndOrderCompatibility01.types b/tests/baselines/reference/arityAndOrderCompatibility01.types index 5c37248c3ebc0..cc49ab0c1f4a0 100644 --- a/tests/baselines/reference/arityAndOrderCompatibility01.types +++ b/tests/baselines/reference/arityAndOrderCompatibility01.types @@ -73,92 +73,92 @@ var [g, h, i] = z; var j1: [number, number, number] = x; >j1 : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->x : [string, number] -> : ^^^^^^^^^^^^^^^^ +>x : [number, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ var j2: [number, number, number] = y; >j2 : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->y : StrNum -> : ^^^^^^ +>y : [number, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ var j3: [number, number, number] = z; >j3 : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->z : { 0: string; 1: number; length: 2; } -> : ^^^^^ ^^^^^ ^^^^^^^^^^ ^^^ +>z : [number, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ var k1: [string, number, number] = x; >k1 : [string, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->x : [string, number] -> : ^^^^^^^^^^^^^^^^ +>x : [string, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ var k2: [string, number, number] = y; >k2 : [string, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->y : StrNum -> : ^^^^^^ +>y : [string, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ var k3: [string, number, number] = z; >k3 : [string, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->z : { 0: string; 1: number; length: 2; } -> : ^^^^^ ^^^^^ ^^^^^^^^^^ ^^^ +>z : [string, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ var l1: [number] = x; >l1 : [number] > : ^^^^^^^^ ->x : [string, number] -> : ^^^^^^^^^^^^^^^^ +>x : [number] +> : ^^^^^^^^ var l2: [number] = y; >l2 : [number] > : ^^^^^^^^ ->y : StrNum -> : ^^^^^^ +>y : [number] +> : ^^^^^^^^ var l3: [number] = z; >l3 : [number] > : ^^^^^^^^ ->z : { 0: string; 1: number; length: 2; } -> : ^^^^^ ^^^^^ ^^^^^^^^^^ ^^^ +>z : [number] +> : ^^^^^^^^ var m1: [string] = x; >m1 : [string] > : ^^^^^^^^ ->x : [string, number] -> : ^^^^^^^^^^^^^^^^ +>x : [string] +> : ^^^^^^^^ var m2: [string] = y; >m2 : [string] > : ^^^^^^^^ ->y : StrNum -> : ^^^^^^ +>y : [string] +> : ^^^^^^^^ var m3: [string] = z; >m3 : [string] > : ^^^^^^^^ ->z : { 0: string; 1: number; length: 2; } -> : ^^^^^ ^^^^^ ^^^^^^^^^^ ^^^ +>z : [string] +> : ^^^^^^^^ var n1: [number, string] = x; >n1 : [number, string] > : ^^^^^^^^^^^^^^^^ ->x : [string, number] +>x : [number, string] > : ^^^^^^^^^^^^^^^^ var n2: [number, string] = y; >n2 : [number, string] > : ^^^^^^^^^^^^^^^^ ->y : StrNum -> : ^^^^^^ +>y : [number, string] +> : ^^^^^^^^^^^^^^^^ var n3: [number, string] = z; >n3 : [number, string] > : ^^^^^^^^^^^^^^^^ ->z : { 0: string; 1: number; length: 2; } -> : ^^^^^ ^^^^^ ^^^^^^^^^^ ^^^ +>z : [number, string] +> : ^^^^^^^^^^^^^^^^ var o1: [string, number] = x; >o1 : [string, number] @@ -169,12 +169,12 @@ var o1: [string, number] = x; var o2: [string, number] = y; >o2 : [string, number] > : ^^^^^^^^^^^^^^^^ ->y : StrNum -> : ^^^^^^ +>y : [string, number] +> : ^^^^^^^^^^^^^^^^ var o3: [string, number] = y; >o3 : [string, number] > : ^^^^^^^^^^^^^^^^ ->y : StrNum -> : ^^^^^^ +>y : [string, number] +> : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/arrayAssignmentTest1.errors.txt b/tests/baselines/reference/arrayAssignmentTest1.errors.txt index c22688b1bdb46..9bf035f4fe362 100644 --- a/tests/baselines/reference/arrayAssignmentTest1.errors.txt +++ b/tests/baselines/reference/arrayAssignmentTest1.errors.txt @@ -1,7 +1,7 @@ -arrayAssignmentTest1.ts(46,5): error TS2741: Property 'IM1' is missing in type 'undefined[]' but required in type 'I1'. -arrayAssignmentTest1.ts(47,5): error TS2739: Type 'undefined[]' is missing the following properties from type 'C1': IM1, C1M1 -arrayAssignmentTest1.ts(48,5): error TS2739: Type 'undefined[]' is missing the following properties from type 'C2': C2M1, IM1, C1M1 -arrayAssignmentTest1.ts(49,5): error TS2741: Property 'CM3M1' is missing in type 'undefined[]' but required in type 'C3'. +arrayAssignmentTest1.ts(46,20): error TS2741: Property 'IM1' is missing in type 'undefined[]' but required in type 'I1'. +arrayAssignmentTest1.ts(47,20): error TS2739: Type 'undefined[]' is missing the following properties from type 'C1': IM1, C1M1 +arrayAssignmentTest1.ts(48,20): error TS2739: Type 'undefined[]' is missing the following properties from type 'C2': C2M1, IM1, C1M1 +arrayAssignmentTest1.ts(49,20): error TS2741: Property 'CM3M1' is missing in type 'undefined[]' but required in type 'C3'. arrayAssignmentTest1.ts(60,1): error TS2322: Type 'C3[]' is not assignable to type 'I1[]'. Property 'IM1' is missing in type 'C3' but required in type 'I1'. arrayAssignmentTest1.ts(64,1): error TS2322: Type 'I1[]' is not assignable to type 'C1[]'. @@ -75,17 +75,17 @@ arrayAssignmentTest1.ts(85,1): error TS2740: Type 'I1' is missing the following var arr_c3: C3[] = []; var i1_error: I1 = []; // should be an error - is - ~~~~~~~~ + ~~ !!! error TS2741: Property 'IM1' is missing in type 'undefined[]' but required in type 'I1'. !!! related TS2728 arrayAssignmentTest1.ts:2:2: 'IM1' is declared here. var c1_error: C1 = []; // should be an error - is - ~~~~~~~~ + ~~ !!! error TS2739: Type 'undefined[]' is missing the following properties from type 'C1': IM1, C1M1 var c2_error: C2 = []; // should be an error - is - ~~~~~~~~ + ~~ !!! error TS2739: Type 'undefined[]' is missing the following properties from type 'C2': C2M1, IM1, C1M1 var c3_error: C3 = []; // should be an error - is - ~~~~~~~~ + ~~ !!! error TS2741: Property 'CM3M1' is missing in type 'undefined[]' but required in type 'C3'. !!! related TS2728 arrayAssignmentTest1.ts:14:5: 'CM3M1' is declared here. diff --git a/tests/baselines/reference/arrayAssignmentTest1.types b/tests/baselines/reference/arrayAssignmentTest1.types index 12cc59410518e..ee9f41d00d32d 100644 --- a/tests/baselines/reference/arrayAssignmentTest1.types +++ b/tests/baselines/reference/arrayAssignmentTest1.types @@ -68,7 +68,7 @@ var c1 : C1 = new C1(); var i1 : I1 = c1; >i1 : I1 > : ^^ ->c1 : C1 +>c1 : I1 > : ^^ var c2 : C2 = new C2(); @@ -110,74 +110,74 @@ var f1 = function () { return new C1();} var arr_any: any[] = []; >arr_any : any[] > : ^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : any[] +> : ^^^^^ var arr_i1: I1[] = []; >arr_i1 : I1[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : I1[] +> : ^^^^ var arr_c1: C1[] = []; >arr_c1 : C1[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C1[] +> : ^^^^ var arr_c2: C2[] = []; >arr_c2 : C2[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C2[] +> : ^^^^ var arr_i1_2: I1[] = []; >arr_i1_2 : I1[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : I1[] +> : ^^^^ var arr_c1_2: C1[] = []; >arr_c1_2 : C1[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C1[] +> : ^^^^ var arr_c2_2: C2[] = []; >arr_c2_2 : C2[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C2[] +> : ^^^^ var arr_c3: C3[] = []; >arr_c3 : C3[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C3[] +> : ^^^^ var i1_error: I1 = []; // should be an error - is >i1_error : I1 > : ^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : I1 +> : ^^ var c1_error: C1 = []; // should be an error - is >c1_error : C1 > : ^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C1 +> : ^^ var c2_error: C2 = []; // should be an error - is >c2_error : C2 > : ^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C2 +> : ^^ var c3_error: C3 = []; // should be an error - is >c3_error : C3 > : ^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C3 +> : ^^ arr_any = arr_i1; // should be ok - is diff --git a/tests/baselines/reference/arrayAssignmentTest2.types b/tests/baselines/reference/arrayAssignmentTest2.types index 8c40774610916..db60938d75467 100644 --- a/tests/baselines/reference/arrayAssignmentTest2.types +++ b/tests/baselines/reference/arrayAssignmentTest2.types @@ -68,7 +68,7 @@ var c1 : C1 = new C1(); var i1 : I1 = c1; >i1 : I1 > : ^^ ->c1 : C1 +>c1 : I1 > : ^^ var c2 : C2 = new C2(); @@ -110,50 +110,50 @@ var f1 = function () { return new C1();} var arr_any: any[] = []; >arr_any : any[] > : ^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : any[] +> : ^^^^^ var arr_i1: I1[] = []; >arr_i1 : I1[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : I1[] +> : ^^^^ var arr_c1: C1[] = []; >arr_c1 : C1[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C1[] +> : ^^^^ var arr_c2: C2[] = []; >arr_c2 : C2[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C2[] +> : ^^^^ var arr_i1_2: I1[] = []; >arr_i1_2 : I1[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : I1[] +> : ^^^^ var arr_c1_2: C1[] = []; >arr_c1_2 : C1[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C1[] +> : ^^^^ var arr_c2_2: C2[] = []; >arr_c2_2 : C2[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C2[] +> : ^^^^ var arr_c3: C3[] = []; >arr_c3 : C3[] > : ^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : C3[] +> : ^^^^ // "clean up error" occurs at this point arr_c3 = arr_c2_2; // should be an error - is diff --git a/tests/baselines/reference/arrayAssignmentTest4.types b/tests/baselines/reference/arrayAssignmentTest4.types index 580591e39cf6f..82e34381f33bd 100644 --- a/tests/baselines/reference/arrayAssignmentTest4.types +++ b/tests/baselines/reference/arrayAssignmentTest4.types @@ -45,8 +45,8 @@ var o1 = {one : 1}; var arr_any: any[] = []; >arr_any : any[] > : ^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : any[] +> : ^^^^^ arr_any = function () { return null;} // should be an error - is >arr_any = function () { return null;} : () => any diff --git a/tests/baselines/reference/arrayAssignmentTest5.errors.txt b/tests/baselines/reference/arrayAssignmentTest5.errors.txt index a8263630deaa9..4c3b980efcaec 100644 --- a/tests/baselines/reference/arrayAssignmentTest5.errors.txt +++ b/tests/baselines/reference/arrayAssignmentTest5.errors.txt @@ -1,4 +1,4 @@ -arrayAssignmentTest5.ts(23,17): error TS2322: Type 'IToken[]' is not assignable to type 'IStateToken[]'. +arrayAssignmentTest5.ts(23,39): error TS2322: Type 'IToken[]' is not assignable to type 'IStateToken[]'. Property 'state' is missing in type 'IToken' but required in type 'IStateToken'. @@ -26,7 +26,7 @@ arrayAssignmentTest5.ts(23,17): error TS2322: Type 'IToken[]' is not assignable public onEnter(line:string, state:IState, offset:number):IAction { var lineTokens:ILineTokens= this.tokenize(line, state, true); var tokens:IStateToken[]= lineTokens.tokens; - ~~~~~~ + ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'IToken[]' is not assignable to type 'IStateToken[]'. !!! error TS2322: Property 'state' is missing in type 'IToken' but required in type 'IStateToken'. !!! related TS2728 arrayAssignmentTest5.ts:8:9: 'state' is declared here. diff --git a/tests/baselines/reference/arrayAssignmentTest5.types b/tests/baselines/reference/arrayAssignmentTest5.types index 66d7ddf30c234..14c2b0f6f40e8 100644 --- a/tests/baselines/reference/arrayAssignmentTest5.types +++ b/tests/baselines/reference/arrayAssignmentTest5.types @@ -84,12 +84,12 @@ module Test { var tokens:IStateToken[]= lineTokens.tokens; >tokens : IStateToken[] > : ^^^^^^^^^^^^^ ->lineTokens.tokens : IToken[] -> : ^^^^^^^^ +>lineTokens.tokens : IStateToken[] +> : ^^^^^^^^^^^^^ >lineTokens : ILineTokens > : ^^^^^^^^^^^ ->tokens : IToken[] -> : ^^^^^^^^ +>tokens : IStateToken[] +> : ^^^^^^^^^^^^^ if (tokens.length === 0) { >tokens.length === 0 : boolean diff --git a/tests/baselines/reference/arrayBestCommonTypes.types b/tests/baselines/reference/arrayBestCommonTypes.types index 2ed7f2c9d8fa3..76bf473e21f78 100644 --- a/tests/baselines/reference/arrayBestCommonTypes.types +++ b/tests/baselines/reference/arrayBestCommonTypes.types @@ -398,8 +398,8 @@ module EmptyTypes { > : ^^^^^^ >y : base > : ^^^^ ->[{ x: 7, y: new derived() }, { x: 5, y: new base() }] : { x: number; y: derived; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ x: 7, y: new derived() }, { x: 5, y: new base() }] : { x: number; y: base; }[] +> : ^^^^^ ^^^^^ ^^^^^ >{ x: 7, y: new derived() } : { x: number; y: derived; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -432,8 +432,8 @@ module EmptyTypes { > : ^^^^^^^ >y : base > : ^^^^ ->[{ x: true, y: new derived() }, { x: false, y: new base() }] : ({ x: true; y: derived; } | { x: false; y: base; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ x: true, y: new derived() }, { x: false, y: new base() }] : { x: boolean; y: base; }[] +> : ^^^^^ ^^^^^ ^^^^^ >{ x: true, y: new derived() } : { x: true; y: derived; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : true @@ -466,8 +466,8 @@ module EmptyTypes { > : ^^^^^^ >y : base > : ^^^^ ->[{ x: undefined, y: new base() }, { x: '', y: new derived() }] : { x: string; y: derived; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ x: undefined, y: new base() }, { x: '', y: new derived() }] : { x: string; y: base; }[] +> : ^^^^^ ^^^^^ ^^^^^ >{ x: undefined, y: new base() } : { x: undefined; y: base; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : undefined @@ -1081,7 +1081,7 @@ module NonEmptyTypes { >y : base > : ^^^^ >[{ x: 7, y: new derived() }, { x: 5, y: new base() }] : { x: number; y: base; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^^^ >{ x: 7, y: new derived() } : { x: number; y: derived; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -1114,8 +1114,8 @@ module NonEmptyTypes { > : ^^^^^^^ >y : base > : ^^^^ ->[{ x: true, y: new derived() }, { x: false, y: new base() }] : ({ x: true; y: derived; } | { x: false; y: base; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ x: true, y: new derived() }, { x: false, y: new base() }] : { x: boolean; y: base; }[] +> : ^^^^^ ^^^^^ ^^^^^ >{ x: true, y: new derived() } : { x: true; y: derived; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : true @@ -1148,8 +1148,8 @@ module NonEmptyTypes { > : ^^^^^^ >y : base > : ^^^^ ->[{ x: undefined, y: new base() }, { x: '', y: new derived() }] : ({ x: undefined; y: base; } | { x: string; y: derived; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ x: undefined, y: new base() }, { x: '', y: new derived() }] : { x: string; y: base; }[] +> : ^^^^^ ^^^^^ ^^^^^ >{ x: undefined, y: new base() } : { x: undefined; y: base; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : undefined diff --git a/tests/baselines/reference/arrayConcat2.types b/tests/baselines/reference/arrayConcat2.types index df756cdf2d284..db6d9266f8aa5 100644 --- a/tests/baselines/reference/arrayConcat2.types +++ b/tests/baselines/reference/arrayConcat2.types @@ -4,8 +4,8 @@ var a: string[] = []; >a : string[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : string[] +> : ^^^^^^^^ a.concat("hello", 'world'); >a.concat("hello", 'world') : string[] diff --git a/tests/baselines/reference/arrayLiteral.types b/tests/baselines/reference/arrayLiteral.types index d1651fe6d2754..aebeae0281183 100644 --- a/tests/baselines/reference/arrayLiteral.types +++ b/tests/baselines/reference/arrayLiteral.types @@ -48,14 +48,14 @@ var y = new Array(); var x2: number[] = []; >x2 : number[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : number[] +> : ^^^^^^^^ var x2: number[] = new Array(1); >x2 : number[] > : ^^^^^^^^ ->new Array(1) : any[] -> : ^^^^^ +>new Array(1) : number[] +> : ^^^^^^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt b/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt index 4fe70d48c4631..e8218f1a9f7ba 100644 --- a/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt +++ b/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt @@ -1,10 +1,10 @@ -arrayLiteralExpressionContextualTyping.ts(6,5): error TS2322: Type '[number, number, number, number]' is not assignable to type '[number, number, number]'. +arrayLiteralExpressionContextualTyping.ts(6,37): error TS2322: Type '[number, number, number, number]' is not assignable to type '[number, number, number]'. Source has 4 element(s) but target allows only 3. -arrayLiteralExpressionContextualTyping.ts(7,5): error TS2322: Type '[number, number, number, string]' is not assignable to type '[string | number, string | number, string | number]'. +arrayLiteralExpressionContextualTyping.ts(7,59): error TS2322: Type '[number, number, number, string]' is not assignable to type '[string | number, string | number, string | number]'. Source has 4 element(s) but target allows only 3. -arrayLiteralExpressionContextualTyping.ts(8,5): error TS2322: Type '[number, number, number, string]' is not assignable to type '[number, number, number]'. +arrayLiteralExpressionContextualTyping.ts(8,38): error TS2322: Type '[number, number, number, string]' is not assignable to type '[number, number, number]'. Source has 4 element(s) but target allows only 3. -arrayLiteralExpressionContextualTyping.ts(14,5): error TS2322: Type '[number, number, number, number, number, number]' is not assignable to type '[number, number, number]'. +arrayLiteralExpressionContextualTyping.ts(14,37): error TS2322: Type '[number, number, number, number, number, number]' is not assignable to type '[number, number, number]'. Source has 6 element(s) but target allows only 3. @@ -15,15 +15,15 @@ arrayLiteralExpressionContextualTyping.ts(14,5): error TS2322: Type '[number, nu var array = [1, 2, 3]; var array1 = [true, 2, 3]; // Contextual type by the numeric index type of the contextual type var tup: [number, number, number] = [1, 2, 3, 4]; - ~~~ + ~~~~~~~~~~~~ !!! error TS2322: Type '[number, number, number, number]' is not assignable to type '[number, number, number]'. !!! error TS2322: Source has 4 element(s) but target allows only 3. var tup1: [number|string, number|string, number|string] = [1, 2, 3, "string"]; - ~~~~ + ~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '[number, number, number, string]' is not assignable to type '[string | number, string | number, string | number]'. !!! error TS2322: Source has 4 element(s) but target allows only 3. var tup2: [number, number, number] = [1, 2, 3, "string"]; // Error - ~~~~ + ~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '[number, number, number, string]' is not assignable to type '[number, number, number]'. !!! error TS2322: Source has 4 element(s) but target allows only 3. @@ -32,7 +32,7 @@ arrayLiteralExpressionContextualTyping.ts(14,5): error TS2322: Type '[number, nu var spr = [1, 2, 3, ...array]; var spr1 = [1, 2, 3, ...tup]; var spr2:[number, number, number] = [1, 2, 3, ...tup]; // Error - ~~~~ + ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '[number, number, number, number, number, number]' is not assignable to type '[number, number, number]'. !!! error TS2322: Source has 6 element(s) but target allows only 3. \ No newline at end of file diff --git a/tests/baselines/reference/arrayLiteralExpressionContextualTyping.types b/tests/baselines/reference/arrayLiteralExpressionContextualTyping.types index 72918ef0fd04d..4bd484318c655 100644 --- a/tests/baselines/reference/arrayLiteralExpressionContextualTyping.types +++ b/tests/baselines/reference/arrayLiteralExpressionContextualTyping.types @@ -31,8 +31,8 @@ var array1 = [true, 2, 3]; // Contextual type by the numeric index type of the var tup: [number, number, number] = [1, 2, 3, 4]; >tup : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->[1, 2, 3, 4] : [number, number, number, number] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, 2, 3, 4] : [number, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -45,8 +45,8 @@ var tup: [number, number, number] = [1, 2, 3, 4]; var tup1: [number|string, number|string, number|string] = [1, 2, 3, "string"]; >tup1 : [string | number, string | number, string | number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->[1, 2, 3, "string"] : [number, number, number, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, 2, 3, "string"] : [string | number, string | number, string | number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -59,8 +59,8 @@ var tup1: [number|string, number|string, number|string] = [1, 2, 3, "string"]; var tup2: [number, number, number] = [1, 2, 3, "string"]; // Error >tup2 : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->[1, 2, 3, "string"] : [number, number, number, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, 2, 3, "string"] : [number, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -107,8 +107,8 @@ var spr1 = [1, 2, 3, ...tup]; var spr2:[number, number, number] = [1, 2, 3, ...tup]; // Error >spr2 : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->[1, 2, 3, ...tup] : [number, number, number, number, number, number] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, 2, 3, ...tup] : [number, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/arrayLiteralInference.types b/tests/baselines/reference/arrayLiteralInference.types index 6520794bbf907..be02c75c7676e 100644 --- a/tests/baselines/reference/arrayLiteralInference.types +++ b/tests/baselines/reference/arrayLiteralInference.types @@ -190,8 +190,8 @@ let b1: { x: boolean }[] = foo({ x: true }, { x: false }); > : ^^^^^ ^^^^^ >x : boolean > : ^^^^^^^ ->foo({ x: true }, { x: false }) : ({ x: true; } | { x: false; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>foo({ x: true }, { x: false }) : { x: boolean; }[] +> : ^^^^^ ^^^^^ >foo : (...args: T[]) => T[] > : ^ ^^^^^ ^^ ^^^^^ >{ x: true } : { x: true; } @@ -210,8 +210,8 @@ let b1: { x: boolean }[] = foo({ x: true }, { x: false }); let b2: boolean[][] = foo([true], [false]); >b2 : boolean[][] > : ^^^^^^^^^^^ ->foo([true], [false]) : (true[] | false[])[] -> : ^^^^^^^^^^^^^^^^^^^^ +>foo([true], [false]) : boolean[][] +> : ^^^^^^^^^^^ >foo : (...args: T[]) => T[] > : ^ ^^^^^ ^^ ^^^^^ >[true] : true[] diff --git a/tests/baselines/reference/arrayLiteralTypeInference.errors.txt b/tests/baselines/reference/arrayLiteralTypeInference.errors.txt index c30590f70707a..caf622582755d 100644 --- a/tests/baselines/reference/arrayLiteralTypeInference.errors.txt +++ b/tests/baselines/reference/arrayLiteralTypeInference.errors.txt @@ -1,10 +1,12 @@ -arrayLiteralTypeInference.ts(14,14): error TS2353: Object literal may only specify known properties, and 'trueness' does not exist in type 'Action'. -arrayLiteralTypeInference.ts(15,14): error TS2353: Object literal may only specify known properties, and 'name' does not exist in type 'Action'. -arrayLiteralTypeInference.ts(31,18): error TS2353: Object literal may only specify known properties, and 'trueness' does not exist in type '{ id: number; }'. -arrayLiteralTypeInference.ts(32,18): error TS2353: Object literal may only specify known properties, and 'name' does not exist in type '{ id: number; }'. +arrayLiteralTypeInference.ts(14,14): error TS2322: Type '({ id: number; trueness: boolean; } | { id: number; name: string; })[]' is not assignable to type 'Action[]'. + Type '{ id: number; trueness: boolean; } | { id: number; name: string; }' is not assignable to type 'Action'. + Object literal may only specify known properties, and 'trueness' does not exist in type 'Action'. +arrayLiteralTypeInference.ts(31,18): error TS2322: Type '({ id: number; trueness: boolean; } | { id: number; name: string; })[]' is not assignable to type '{ id: number; }[]'. + Type '{ id: number; trueness: boolean; } | { id: number; name: string; }' is not assignable to type '{ id: number; }'. + Object literal may only specify known properties, and 'trueness' does not exist in type '{ id: number; }'. -==== arrayLiteralTypeInference.ts (4 errors) ==== +==== arrayLiteralTypeInference.ts (2 errors) ==== class Action { id: number; } @@ -20,10 +22,10 @@ arrayLiteralTypeInference.ts(32,18): error TS2353: Object literal may only speci var x1: Action[] = [ { id: 2, trueness: false }, ~~~~~~~~ -!!! error TS2353: Object literal may only specify known properties, and 'trueness' does not exist in type 'Action'. +!!! error TS2322: Type '({ id: number; trueness: boolean; } | { id: number; name: string; })[]' is not assignable to type 'Action[]'. +!!! error TS2322: Type '{ id: number; trueness: boolean; } | { id: number; name: string; }' is not assignable to type 'Action'. +!!! error TS2322: Object literal may only specify known properties, and 'trueness' does not exist in type 'Action'. { id: 3, name: "three" } - ~~~~ -!!! error TS2353: Object literal may only specify known properties, and 'name' does not exist in type 'Action'. ] var x2: Action[] = [ @@ -41,10 +43,10 @@ arrayLiteralTypeInference.ts(32,18): error TS2353: Object literal may only speci [ { id: 2, trueness: false }, ~~~~~~~~ -!!! error TS2353: Object literal may only specify known properties, and 'trueness' does not exist in type '{ id: number; }'. +!!! error TS2322: Type '({ id: number; trueness: boolean; } | { id: number; name: string; })[]' is not assignable to type '{ id: number; }[]'. +!!! error TS2322: Type '{ id: number; trueness: boolean; } | { id: number; name: string; }' is not assignable to type '{ id: number; }'. +!!! error TS2322: Object literal may only specify known properties, and 'trueness' does not exist in type '{ id: number; }'. { id: 3, name: "three" } - ~~~~ -!!! error TS2353: Object literal may only specify known properties, and 'name' does not exist in type '{ id: number; }'. ] var z2: { id: number }[] = diff --git a/tests/baselines/reference/arrayLiteralTypeInference.types b/tests/baselines/reference/arrayLiteralTypeInference.types index 2bca065e13b64..27000b6ce3eb1 100644 --- a/tests/baselines/reference/arrayLiteralTypeInference.types +++ b/tests/baselines/reference/arrayLiteralTypeInference.types @@ -35,8 +35,8 @@ class ActionB extends Action { var x1: Action[] = [ >x1 : Action[] > : ^^^^^^^^ ->[ { id: 2, trueness: false }, { id: 3, name: "three" }] : ({ id: number; trueness: boolean; } | { id: number; name: string; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[ { id: 2, trueness: false }, { id: 3, name: "three" }] : Action[] +> : ^^^^^^^^ { id: 2, trueness: false }, >{ id: 2, trueness: false } : { id: number; trueness: boolean; } @@ -67,8 +67,8 @@ var x1: Action[] = [ var x2: Action[] = [ >x2 : Action[] > : ^^^^^^^^ ->[ new ActionA(), new ActionB()] : (ActionA | ActionB)[] -> : ^^^^^^^^^^^^^^^^^^^^^ +>[ new ActionA(), new ActionB()] : Action[] +> : ^^^^^^^^ new ActionA(), >new ActionA() : ActionA @@ -117,8 +117,8 @@ var z1: { id: number }[] = > : ^^^^^^ [ ->[ { id: 2, trueness: false }, { id: 3, name: "three" } ] : ({ id: number; trueness: boolean; } | { id: number; name: string; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[ { id: 2, trueness: false }, { id: 3, name: "three" } ] : { id: number; }[] +> : ^^^^^^ ^^^^^ { id: 2, trueness: false }, >{ id: 2, trueness: false } : { id: number; trueness: boolean; } @@ -153,8 +153,8 @@ var z2: { id: number }[] = > : ^^^^^^ [ ->[ new ActionA(), new ActionB() ] : (ActionA | ActionB)[] -> : ^^^^^^^^^^^^^^^^^^^^^ +>[ new ActionA(), new ActionB() ] : { id: number; }[] +> : ^^^^^^ ^^^^^ new ActionA(), >new ActionA() : ActionA @@ -177,8 +177,8 @@ var z3: { id: number }[] = > : ^^^^^^ [ ->[ new Action(), new ActionA(), new ActionB() ] : Action[] -> : ^^^^^^^^ +>[ new Action(), new ActionA(), new ActionB() ] : { id: number; }[] +> : ^^^^^^ ^^^^^ new Action(), >new Action() : Action diff --git a/tests/baselines/reference/arrayLiterals.errors.txt b/tests/baselines/reference/arrayLiterals.errors.txt index 715df255793ad..224b26d9f2f4a 100644 --- a/tests/baselines/reference/arrayLiterals.errors.txt +++ b/tests/baselines/reference/arrayLiterals.errors.txt @@ -1,8 +1,10 @@ -arrayLiterals.ts(24,77): error TS2353: Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'. -arrayLiterals.ts(24,101): error TS2353: Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'. +arrayLiterals.ts(24,77): error TS2322: Type '({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[]' is not assignable to type '{ [n: number]: { a: string; b: number; }; }'. + 'number' index signatures are incompatible. + Type '{ a: string; b: number; c: string; } | { a: string; b: number; c: number; }' is not assignable to type '{ a: string; b: number; }'. + Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'. -==== arrayLiterals.ts (2 errors) ==== +==== arrayLiterals.ts (1 errors) ==== // Empty array literal with no contextual type has type Undefined[] var arr1= [[], [1], ['']]; @@ -28,11 +30,10 @@ arrayLiterals.ts(24,101): error TS2353: Object literal may only specify known pr // Contextual type C with numeric index signature makes array literal of EveryType E of type BCT(E,C)[] var context1: { [n: number]: { a: string; b: number; }; } = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }]; ~ -!!! error TS2353: Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'. -!!! related TS6501 arrayLiterals.ts:24:17: The expected type comes from this index signature. - ~ -!!! error TS2353: Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'. -!!! related TS6501 arrayLiterals.ts:24:17: The expected type comes from this index signature. +!!! error TS2322: Type '({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[]' is not assignable to type '{ [n: number]: { a: string; b: number; }; }'. +!!! error TS2322: 'number' index signatures are incompatible. +!!! error TS2322: Type '{ a: string; b: number; c: string; } | { a: string; b: number; c: number; }' is not assignable to type '{ a: string; b: number; }'. +!!! error TS2322: Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'. var context2 = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }]; // Contextual type C with numeric index signature of type Base makes array literal of Derived have type Base[] diff --git a/tests/baselines/reference/arrayLiterals.types b/tests/baselines/reference/arrayLiterals.types index 5b4d21f2acf5b..1de4e0a2b495b 100644 --- a/tests/baselines/reference/arrayLiterals.types +++ b/tests/baselines/reference/arrayLiterals.types @@ -137,8 +137,8 @@ var context1: { [n: number]: { a: string; b: number; }; } = [{ a: '', b: 0, c: ' > : ^^^^^^ >b : number > : ^^^^^^ ->[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : { [n: number]: { a: string; b: number; }; } +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^ >{ a: '', b: 0, c: '' } : { a: string; b: number; c: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : string @@ -228,8 +228,8 @@ class Derived2 extends Base { private n }; var context3: Base[] = [new Derived1(), new Derived2()]; >context3 : Base[] > : ^^^^^^ ->[new Derived1(), new Derived2()] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[new Derived1(), new Derived2()] : Base[] +> : ^^^^^^ >new Derived1() : Derived1 > : ^^^^^^^^ >Derived1 : typeof Derived1 @@ -243,8 +243,8 @@ var context3: Base[] = [new Derived1(), new Derived2()]; var context4: Base[] = [new Derived1(), new Derived1()]; >context4 : Base[] > : ^^^^^^ ->[new Derived1(), new Derived1()] : Derived1[] -> : ^^^^^^^^^^ +>[new Derived1(), new Derived1()] : Base[] +> : ^^^^^^ >new Derived1() : Derived1 > : ^^^^^^^^ >Derived1 : typeof Derived1 diff --git a/tests/baselines/reference/arrayLiterals2ES5.types b/tests/baselines/reference/arrayLiterals2ES5.types index 9aafa39a92202..9fce13ce834ab 100644 --- a/tests/baselines/reference/arrayLiterals2ES5.types +++ b/tests/baselines/reference/arrayLiterals2ES5.types @@ -102,8 +102,8 @@ var a5 = [...a0, , ] var b0: [any, any, any] = [undefined, null, undefined]; >b0 : [any, any, any] > : ^^^^^^^^^^^^^^^ ->[undefined, null, undefined] : [undefined, null, undefined] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[undefined, null, undefined] : [any, any, any] +> : ^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ >undefined : undefined @@ -261,8 +261,8 @@ var d2: number[] = [...temp1]; var d3: myArray = [...temp1]; >d3 : myArray > : ^^^^^^^ ->[...temp1] : number[] -> : ^^^^^^^^ +>[...temp1] : myArray +> : ^^^^^^^ >...temp1 : number > : ^^^^^^ >temp1 : number[] @@ -271,8 +271,8 @@ var d3: myArray = [...temp1]; var d4: myArray2 = [...temp, ...temp1]; >d4 : myArray2 > : ^^^^^^^^ ->[...temp, ...temp1] : (string | number)[] -> : ^^^^^^^^^^^^^^^^^^^ +>[...temp, ...temp1] : myArray2 +> : ^^^^^^^^ >...temp : string > : ^^^^^^ >temp : string[] diff --git a/tests/baselines/reference/arrayLiterals2ES6.types b/tests/baselines/reference/arrayLiterals2ES6.types index dedb8257fb63a..e55f1c1fcd46c 100644 --- a/tests/baselines/reference/arrayLiterals2ES6.types +++ b/tests/baselines/reference/arrayLiterals2ES6.types @@ -102,8 +102,8 @@ var a5 = [...a0, , ] var b0: [any, any, any] = [undefined, null, undefined]; >b0 : [any, any, any] > : ^^^^^^^^^^^^^^^ ->[undefined, null, undefined] : [undefined, null, undefined] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[undefined, null, undefined] : [any, any, any] +> : ^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ >undefined : undefined @@ -245,8 +245,8 @@ var d2: number[] = [...temp1]; var d3: myArray = [...temp1]; >d3 : myArray > : ^^^^^^^ ->[...temp1] : number[] -> : ^^^^^^^^ +>[...temp1] : myArray +> : ^^^^^^^ >...temp1 : number > : ^^^^^^ >temp1 : number[] @@ -255,8 +255,8 @@ var d3: myArray = [...temp1]; var d4: myArray2 = [...temp, ...temp1]; >d4 : myArray2 > : ^^^^^^^^ ->[...temp, ...temp1] : (string | number)[] -> : ^^^^^^^^^^^^^^^^^^^ +>[...temp, ...temp1] : myArray2 +> : ^^^^^^^^ >...temp : string > : ^^^^^^ >temp : string[] diff --git a/tests/baselines/reference/arrayLiterals3.errors.txt b/tests/baselines/reference/arrayLiterals3.errors.txt index 1c96065df876e..c16b4c460fe89 100644 --- a/tests/baselines/reference/arrayLiterals3.errors.txt +++ b/tests/baselines/reference/arrayLiterals3.errors.txt @@ -1,18 +1,18 @@ -arrayLiterals3.ts(10,5): error TS2322: Type '[]' is not assignable to type '[any, any, any]'. +arrayLiterals3.ts(10,27): error TS2322: Type '[]' is not assignable to type '[any, any, any]'. Source has 0 element(s) but target requires 3. -arrayLiterals3.ts(11,38): error TS2322: Type 'string' is not assignable to type 'boolean'. -arrayLiterals3.ts(11,48): error TS2322: Type 'number' is not assignable to type 'string'. -arrayLiterals3.ts(11,51): error TS2322: Type 'boolean' is not assignable to type 'number'. -arrayLiterals3.ts(17,5): error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'. +arrayLiterals3.ts(11,37): error TS2322: Type '[string, number, boolean]' is not assignable to type '[boolean, string, number]'. + Type at position 0 in source is not compatible with type at position 0 in target. + Type 'string' is not assignable to type 'boolean'. +arrayLiterals3.ts(17,34): error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'. Source has 4 element(s) but target allows only 2. -arrayLiterals3.ts(33,5): error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'. +arrayLiterals3.ts(33,36): error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'. Target requires 3 element(s) but source may have fewer. -arrayLiterals3.ts(34,5): error TS2322: Type '(string | number)[]' is not assignable to type 'myArray'. +arrayLiterals3.ts(34,19): error TS2322: Type '(string | number)[]' is not assignable to type 'myArray'. Type 'string | number' is not assignable to type 'Number'. Type 'string' is not assignable to type 'Number'. -==== arrayLiterals3.ts (7 errors) ==== +==== arrayLiterals3.ts (5 errors) ==== // Each element expression in a non-empty array literal is processed as follows: // - If the array literal contains no spread elements, and if the array literal is contextually typed (section 4.19) // by a type T and T has a property with the numeric name N, where N is the index of the element expression in the array literal, @@ -23,23 +23,21 @@ arrayLiterals3.ts(34,5): error TS2322: Type '(string | number)[]' is not assigna // the resulting type is a tuple type constructed from the types of the element expressions. var a0: [any, any, any] = []; // Error - ~~ + ~~ !!! error TS2322: Type '[]' is not assignable to type '[any, any, any]'. !!! error TS2322: Source has 0 element(s) but target requires 3. var a1: [boolean, string, number] = ["string", 1, true]; // Error - ~~~~~~~~ -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. - ~~~~ -!!! error TS2322: Type 'boolean' is not assignable to type 'number'. + ~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '[string, number, boolean]' is not assignable to type '[boolean, string, number]'. +!!! error TS2322: Type at position 0 in source is not compatible with type at position 0 in target. +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. // The resulting type an array literal expression is determined as follows: // - If the array literal contains no spread elements and is an array assignment pattern in a destructuring assignment (section 4.17.1), // the resulting type is a tuple type constructed from the types of the element expressions. var [b1, b2]: [number, number] = [1, 2, "string", true]; - ~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'. !!! error TS2322: Source has 4 element(s) but target allows only 2. @@ -58,11 +56,11 @@ arrayLiterals3.ts(34,5): error TS2322: Type '(string | number)[]' is not assigna interface myArray2 extends Array { } var c0: tup = [...temp2]; // Error var c1: [number, number, number] = [...temp1]; // Error cannot assign number[] to [number, number, number] - ~~ + ~~~~~~~~~~ !!! error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'. !!! error TS2322: Target requires 3 element(s) but source may have fewer. var c2: myArray = [...temp1, ...temp]; // Error cannot assign (number|string)[] to number[] - ~~ + ~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '(string | number)[]' is not assignable to type 'myArray'. !!! error TS2322: Type 'string | number' is not assignable to type 'Number'. !!! error TS2322: Type 'string' is not assignable to type 'Number'. diff --git a/tests/baselines/reference/arrayLiterals3.types b/tests/baselines/reference/arrayLiterals3.types index a1ea1c432147b..d05dc9d6c7cb7 100644 --- a/tests/baselines/reference/arrayLiterals3.types +++ b/tests/baselines/reference/arrayLiterals3.types @@ -13,13 +13,13 @@ var a0: [any, any, any] = []; // Error >a0 : [any, any, any] > : ^^^^^^^^^^^^^^^ ->[] : [] -> : ^^ +>[] : [any, any, any] +> : ^^^^^^^^^^^^^^^ var a1: [boolean, string, number] = ["string", 1, true]; // Error >a1 : [boolean, string, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->["string", 1, true] : [string, number, boolean] +>["string", 1, true] : [boolean, string, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >"string" : "string" > : ^^^^^^^^ @@ -37,8 +37,8 @@ var [b1, b2]: [number, number] = [1, 2, "string", true]; > : ^^^^^^ >b2 : number > : ^^^^^^ ->[1, 2, "string", true] : [number, number, string, boolean] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, 2, "string", true] : [number, number] +> : ^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -109,8 +109,8 @@ interface myArray2 extends Array { } var c0: tup = [...temp2]; // Error >c0 : tup > : ^^^ ->[...temp2] : [number[], string[]] -> : ^^^^^^^^^^^^^^^^^^^^ +>[...temp2] : tup +> : ^^^ >...temp2 : number[] | string[] > : ^^^^^^^^^^^^^^^^^^^ >temp2 : [number[], string[]] @@ -119,8 +119,8 @@ var c0: tup = [...temp2]; // Error var c1: [number, number, number] = [...temp1]; // Error cannot assign number[] to [number, number, number] >c1 : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->[...temp1] : number[] -> : ^^^^^^^^ +>[...temp1] : [number, number, number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >...temp1 : number > : ^^^^^^ >temp1 : number[] @@ -129,8 +129,8 @@ var c1: [number, number, number] = [...temp1]; // Error cannot assign number[ var c2: myArray = [...temp1, ...temp]; // Error cannot assign (number|string)[] to number[] >c2 : myArray > : ^^^^^^^ ->[...temp1, ...temp] : (string | number)[] -> : ^^^^^^^^^^^^^^^^^^^ +>[...temp1, ...temp] : myArray +> : ^^^^^^^ >...temp1 : number > : ^^^^^^ >temp1 : number[] diff --git a/tests/baselines/reference/arraySigChecking.errors.txt b/tests/baselines/reference/arraySigChecking.errors.txt index e1b1746de5889..e765d5dfe1300 100644 --- a/tests/baselines/reference/arraySigChecking.errors.txt +++ b/tests/baselines/reference/arraySigChecking.errors.txt @@ -1,5 +1,6 @@ arraySigChecking.ts(11,17): error TS1268: An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type. -arraySigChecking.ts(18,27): error TS2322: Type 'void' is not assignable to type 'string'. +arraySigChecking.ts(18,26): error TS2322: Type 'void[]' is not assignable to type 'string[]'. + Type 'void' is not assignable to type 'string'. arraySigChecking.ts(22,13): error TS2322: Type 'number' is not assignable to type 'number[]'. arraySigChecking.ts(22,16): error TS2322: Type 'number' is not assignable to type 'number[]'. @@ -25,8 +26,9 @@ arraySigChecking.ts(22,16): error TS2322: Type 'number' is not assignable to typ } var myVar: myInt; var strArray: string[] = [myVar.voidFn()]; - ~~~~~~~~~~~~~~ -!!! error TS2322: Type 'void' is not assignable to type 'string'. + ~~~~~~~~~~~~~~~~ +!!! error TS2322: Type 'void[]' is not assignable to type 'string[]'. +!!! error TS2322: Type 'void' is not assignable to type 'string'. var myArray: number[][][]; diff --git a/tests/baselines/reference/arraySigChecking.types b/tests/baselines/reference/arraySigChecking.types index 0161cac12d147..fffcd4c087081 100644 --- a/tests/baselines/reference/arraySigChecking.types +++ b/tests/baselines/reference/arraySigChecking.types @@ -43,8 +43,8 @@ var myVar: myInt; var strArray: string[] = [myVar.voidFn()]; >strArray : string[] > : ^^^^^^^^ ->[myVar.voidFn()] : void[] -> : ^^^^^^ +>[myVar.voidFn()] : string[] +> : ^^^^^^^^ >myVar.voidFn() : void > : ^^^^ >myVar.voidFn : () => void diff --git a/tests/baselines/reference/assign1.types b/tests/baselines/reference/assign1.types index b801da8afa8a3..7404591638236 100644 --- a/tests/baselines/reference/assign1.types +++ b/tests/baselines/reference/assign1.types @@ -18,8 +18,8 @@ module M { var x:I={salt:2,pepper:0}; >x : I > : ^ ->{salt:2,pepper:0} : { salt: number; pepper: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{salt:2,pepper:0} : I +> : ^ >salt : number > : ^^^^^^ >2 : 2 diff --git a/tests/baselines/reference/assignAnyToEveryType.types b/tests/baselines/reference/assignAnyToEveryType.types index ae14349981f21..0dc769fc425eb 100644 --- a/tests/baselines/reference/assignAnyToEveryType.types +++ b/tests/baselines/reference/assignAnyToEveryType.types @@ -10,26 +10,26 @@ var x: any; var a: number = x; >a : number > : ^^^^^^ ->x : any -> : ^^^ +>x : number +> : ^^^^^^ var b: boolean = x; >b : boolean > : ^^^^^^^ ->x : any -> : ^^^ +>x : boolean +> : ^^^^^^^ var c: string = x; >c : string > : ^^^^^^ ->x : any -> : ^^^ +>x : string +> : ^^^^^^ var d: void = x; >d : void > : ^^^^ ->x : any -> : ^^^ +>x : void +> : ^^^^ var e = null; >e : any @@ -69,8 +69,8 @@ enum E { var g: E = x; >g : E > : ^ ->x : any -> : ^^^ +>x : E +> : ^ var g2 = E.A; >g2 : E @@ -102,8 +102,8 @@ class C { var h: C = x; >h : C > : ^ ->x : any -> : ^^^ +>x : C +> : ^ interface I { foo: string; @@ -114,22 +114,22 @@ interface I { var i: I = x; >i : I > : ^ ->x : any -> : ^^^ +>x : I +> : ^ var j: { (): string } = x; >j : () => string > : ^^^^^^ ->x : any -> : ^^^ +>x : () => string +> : ^^^^^^ var j2: { (x: T): string } = x; >j2 : (x: T) => string > : ^ ^^ ^^ ^^^^^ >x : T > : ^ ->x : any -> : ^^^ +>x : (x: T) => string +> : ^ ^^ ^^ ^^^^^ module M { >M : typeof M diff --git a/tests/baselines/reference/assignSharedArrayBufferToArrayBuffer.errors.txt b/tests/baselines/reference/assignSharedArrayBufferToArrayBuffer.errors.txt index cc22119ec5064..d9b93d5120ac8 100644 --- a/tests/baselines/reference/assignSharedArrayBufferToArrayBuffer.errors.txt +++ b/tests/baselines/reference/assignSharedArrayBufferToArrayBuffer.errors.txt @@ -1,11 +1,11 @@ -assignSharedArrayBufferToArrayBuffer.ts(1,5): error TS2322: Type 'SharedArrayBuffer' is not assignable to type 'ArrayBuffer'. +assignSharedArrayBufferToArrayBuffer.ts(1,24): error TS2322: Type 'SharedArrayBuffer' is not assignable to type 'ArrayBuffer'. Types of property '[Symbol.toStringTag]' are incompatible. Type '"SharedArrayBuffer"' is not assignable to type '"ArrayBuffer"'. ==== assignSharedArrayBufferToArrayBuffer.ts (1 errors) ==== var foo: ArrayBuffer = new SharedArrayBuffer(1024); // should error - ~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'SharedArrayBuffer' is not assignable to type 'ArrayBuffer'. !!! error TS2322: Types of property '[Symbol.toStringTag]' are incompatible. !!! error TS2322: Type '"SharedArrayBuffer"' is not assignable to type '"ArrayBuffer"'. \ No newline at end of file diff --git a/tests/baselines/reference/assignSharedArrayBufferToArrayBuffer.types b/tests/baselines/reference/assignSharedArrayBufferToArrayBuffer.types index 1f6b881dfb452..8f8edd3d4f0b0 100644 --- a/tests/baselines/reference/assignSharedArrayBufferToArrayBuffer.types +++ b/tests/baselines/reference/assignSharedArrayBufferToArrayBuffer.types @@ -4,8 +4,8 @@ var foo: ArrayBuffer = new SharedArrayBuffer(1024); // should error >foo : ArrayBuffer > : ^^^^^^^^^^^ ->new SharedArrayBuffer(1024) : SharedArrayBuffer -> : ^^^^^^^^^^^^^^^^^ +>new SharedArrayBuffer(1024) : ArrayBuffer +> : ^^^^^^^^^^^ >SharedArrayBuffer : SharedArrayBufferConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1024 : 1024 diff --git a/tests/baselines/reference/assignToFn.types b/tests/baselines/reference/assignToFn.types index 937706d252e55..099c1716a4998 100644 --- a/tests/baselines/reference/assignToFn.types +++ b/tests/baselines/reference/assignToFn.types @@ -16,8 +16,8 @@ module M { var x:I={ f:function(n) { return true; } }; >x : I > : ^ ->{ f:function(n) { return true; } } : { f: (n: number) => true; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +>{ f:function(n) { return true; } } : I +> : ^ >f : (n: number) => true > : ^ ^^^^^^^^^^^^^^^^^ >function(n) { return true; } : (n: number) => true diff --git a/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.types b/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.types index 3eca376f65a75..b2aca10972bdc 100644 --- a/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.types +++ b/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.types @@ -20,6 +20,6 @@ var x: {prototype: XEvent} = XEvent; > : ^^^^^^^^^^^^^ ^^^ >prototype : XEvent > : ^^^^^^ ->XEvent : typeof XEvent -> : ^^^^^^^^^^^^^ +>XEvent : { prototype: XEvent; } +> : ^^^^^^^^^^^^^ ^^^ diff --git a/tests/baselines/reference/assigningFromObjectToAnythingElse.errors.txt b/tests/baselines/reference/assigningFromObjectToAnythingElse.errors.txt index a0210cdf806d0..545b419ce04d6 100644 --- a/tests/baselines/reference/assigningFromObjectToAnythingElse.errors.txt +++ b/tests/baselines/reference/assigningFromObjectToAnythingElse.errors.txt @@ -2,7 +2,7 @@ assigningFromObjectToAnythingElse.ts(3,1): error TS2696: The 'Object' type is as Type 'Object' is missing the following properties from type 'RegExp': exec, test, source, global, and 4 more. assigningFromObjectToAnythingElse.ts(5,31): error TS2558: Expected 0 type arguments, but got 1. assigningFromObjectToAnythingElse.ts(6,31): error TS2558: Expected 0 type arguments, but got 1. -assigningFromObjectToAnythingElse.ts(8,5): error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? +assigningFromObjectToAnythingElse.ts(8,16): error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? Type 'Object' is missing the following properties from type 'Error': name, message @@ -22,7 +22,7 @@ assigningFromObjectToAnythingElse.ts(8,5): error TS2696: The 'Object' type is as !!! error TS2558: Expected 0 type arguments, but got 1. var w: Error = new Object(); - ~ + ~~~~~~~~~~~~ !!! error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? !!! error TS2696: Type 'Object' is missing the following properties from type 'Error': name, message \ No newline at end of file diff --git a/tests/baselines/reference/assigningFromObjectToAnythingElse.types b/tests/baselines/reference/assigningFromObjectToAnythingElse.types index ac2b3e1d33cb6..abbbf219c54fe 100644 --- a/tests/baselines/reference/assigningFromObjectToAnythingElse.types +++ b/tests/baselines/reference/assigningFromObjectToAnythingElse.types @@ -20,8 +20,8 @@ y = x; var a: String = Object.create(""); >a : String > : ^^^^^^ ->Object.create("") : any -> : ^^^ +>Object.create("") : String +> : ^^^^^^ >Object.create : { (o: object | null): any; (o: object | null, properties: PropertyDescriptorMap & ThisType): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >Object : ObjectConstructor @@ -34,8 +34,8 @@ var a: String = Object.create(""); var c: String = Object.create(1); >c : String > : ^^^^^^ ->Object.create(1) : any -> : ^^^ +>Object.create(1) : String +> : ^^^^^^ >Object.create : { (o: object | null): any; (o: object | null, properties: PropertyDescriptorMap & ThisType): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >Object : ObjectConstructor @@ -48,8 +48,8 @@ var c: String = Object.create(1); var w: Error = new Object(); >w : Error > : ^^^^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : Error +> : ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/assigningFunctionToTupleIssuesError.errors.txt b/tests/baselines/reference/assigningFunctionToTupleIssuesError.errors.txt index bf6d4bb644b08..82b3b99465c5f 100644 --- a/tests/baselines/reference/assigningFunctionToTupleIssuesError.errors.txt +++ b/tests/baselines/reference/assigningFunctionToTupleIssuesError.errors.txt @@ -1,8 +1,8 @@ -assigningFunctionToTupleIssuesError.ts(2,5): error TS2322: Type '() => void' is not assignable to type '[string]'. +assigningFunctionToTupleIssuesError.ts(2,19): error TS2322: Type '() => void' is not assignable to type '[string]'. ==== assigningFunctionToTupleIssuesError.ts (1 errors) ==== declare let a: () => void; let b: [string] = a; - ~ + ~ !!! error TS2322: Type '() => void' is not assignable to type '[string]'. \ No newline at end of file diff --git a/tests/baselines/reference/assigningFunctionToTupleIssuesError.types b/tests/baselines/reference/assigningFunctionToTupleIssuesError.types index 194cfd3e6d470..8c4825d8063be 100644 --- a/tests/baselines/reference/assigningFunctionToTupleIssuesError.types +++ b/tests/baselines/reference/assigningFunctionToTupleIssuesError.types @@ -8,6 +8,6 @@ declare let a: () => void; let b: [string] = a; >b : [string] > : ^^^^^^^^ ->a : () => void -> : ^^^^^^ +>a : [string] +> : ^^^^^^^^ diff --git a/tests/baselines/reference/assignmentCompatBug2.types b/tests/baselines/reference/assignmentCompatBug2.types index acaf0e92847ce..eae1029230820 100644 --- a/tests/baselines/reference/assignmentCompatBug2.types +++ b/tests/baselines/reference/assignmentCompatBug2.types @@ -6,8 +6,8 @@ var b2: { b: number;} = { a: 0 }; // error > : ^^^^^ ^^^ >b : number > : ^^^^^^ ->{ a: 0 } : { a: number; } -> : ^^^^^^^^^^^^^^ +>{ a: 0 } : { b: number; } +> : ^^^^^ ^^^ >a : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/assignmentCompatForEnums.types b/tests/baselines/reference/assignmentCompatForEnums.types index 725eccec49696..2a378da0372bd 100644 --- a/tests/baselines/reference/assignmentCompatForEnums.types +++ b/tests/baselines/reference/assignmentCompatForEnums.types @@ -35,7 +35,8 @@ function foo() { var x: TokenType = list['one']; >x : TokenType > : ^^^^^^^^^ ->list['one'] : error +>list['one'] : TokenType +> : ^^^^^^^^^ >list : {} > : ^^ >'one' : "one" diff --git a/tests/baselines/reference/assignmentCompatWithDiscriminatedUnion.types b/tests/baselines/reference/assignmentCompatWithDiscriminatedUnion.types index be6617683be64..3570411439eef 100644 --- a/tests/baselines/reference/assignmentCompatWithDiscriminatedUnion.types +++ b/tests/baselines/reference/assignmentCompatWithDiscriminatedUnion.types @@ -822,14 +822,14 @@ namespace GH58603 { let x1: Foo = obj; >x1 : Foo > : ^^^ ->obj : { kind: "a" | "b"; value: number | undefined; } -> : ^^^^^^^^ ^^^^^^^^^ ^^^ +>obj : Foo +> : ^^^ let x2: Foo = { kind: obj.kind, value: obj.value }; >x2 : Foo > : ^^^ ->{ kind: obj.kind, value: obj.value } : { kind: "a" | "b"; value: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ kind: obj.kind, value: obj.value } : Foo +> : ^^^ >kind : "a" | "b" > : ^^^^^^^^^ >obj.kind : "a" | "b" diff --git a/tests/baselines/reference/assignmentCompatWithEnumIndexer.errors.txt b/tests/baselines/reference/assignmentCompatWithEnumIndexer.errors.txt index ccd8de984384c..3b1d46226c931 100644 --- a/tests/baselines/reference/assignmentCompatWithEnumIndexer.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithEnumIndexer.errors.txt @@ -1,4 +1,4 @@ -assignmentCompatWithEnumIndexer.ts(5,5): error TS2741: Property '[E.A]' is missing in type '{}' but required in type 'Record'. +assignmentCompatWithEnumIndexer.ts(5,27): error TS2741: Property '[E.A]' is missing in type '{}' but required in type 'Record'. ==== assignmentCompatWithEnumIndexer.ts (1 errors) ==== @@ -7,6 +7,6 @@ assignmentCompatWithEnumIndexer.ts(5,5): error TS2741: Property '[E.A]' is missi } let foo: Record = {} - ~~~ + ~~ !!! error TS2741: Property '[E.A]' is missing in type '{}' but required in type 'Record'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithEnumIndexer.types b/tests/baselines/reference/assignmentCompatWithEnumIndexer.types index 187c670c1626d..452a0b616c535 100644 --- a/tests/baselines/reference/assignmentCompatWithEnumIndexer.types +++ b/tests/baselines/reference/assignmentCompatWithEnumIndexer.types @@ -13,6 +13,6 @@ enum E { let foo: Record = {} >foo : Record > : ^^^^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : Record +> : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers3.types b/tests/baselines/reference/assignmentCompatWithObjectMembers3.types index bb79deec89706..6fd3f2b897e7d 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembers3.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers3.types @@ -63,8 +63,8 @@ var b: { foo: string; baz?: string } var a2: S2 = { foo: '' }; >a2 : S2 > : ^^ ->{ foo: '' } : { foo: string; } -> : ^^^^^^^^^^^^^^^^ +>{ foo: '' } : S2 +> : ^^ >foo : string > : ^^^^^^ >'' : "" @@ -73,8 +73,8 @@ var a2: S2 = { foo: '' }; var b2: T2 = { foo: '' }; >b2 : T2 > : ^^ ->{ foo: '' } : { foo: string; } -> : ^^^^^^^^^^^^^^^^ +>{ foo: '' } : T2 +> : ^^ >foo : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality.types b/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality.types index 6526c6d55f9db..f25957185381e 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality.types @@ -50,8 +50,8 @@ module TargetHasOptional { > : ^^^^^^^^ ^^^ >a : { opt?: Base; } > : ^^^^^^^^ ^^^ ->{ opt: new Base() } : { opt: Base; } -> : ^^^^^^^^^^^^^^ +>{ opt: new Base() } : { opt?: Base; } +> : ^^^^^^^^ ^^^ >opt : Base > : ^^^^ >new Base() : Base diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality2.types b/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality2.types index f5fee1c0730d1..fd29f544af23a 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality2.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality2.types @@ -51,8 +51,8 @@ module TargetHasOptional { > : ^^^^^^^^ ^^^ >a : { opt?: Base; } > : ^^^^^^^^ ^^^ ->{ opt: new Base() } : { opt: Base; } -> : ^^^^^^^^^^^^^^ +>{ opt: new Base() } : { opt?: Base; } +> : ^^^^^^^^ ^^^ >opt : Base > : ^^^^ >new Base() : Base diff --git a/tests/baselines/reference/assignmentCompatability1.types b/tests/baselines/reference/assignmentCompatability1.types index f94f26c52c056..c8b7ced942393 100644 --- a/tests/baselines/reference/assignmentCompatability1.types +++ b/tests/baselines/reference/assignmentCompatability1.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability10.types b/tests/baselines/reference/assignmentCompatability10.types index 6763bf7704992..12013ef5224ed 100644 --- a/tests/baselines/reference/assignmentCompatability10.types +++ b/tests/baselines/reference/assignmentCompatability10.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability11.types b/tests/baselines/reference/assignmentCompatability11.types index d42af43b41c75..f5a017e37da26 100644 --- a/tests/baselines/reference/assignmentCompatability11.types +++ b/tests/baselines/reference/assignmentCompatability11.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability12.types b/tests/baselines/reference/assignmentCompatability12.types index 63247587df0a4..1bd57fe1c311f 100644 --- a/tests/baselines/reference/assignmentCompatability12.types +++ b/tests/baselines/reference/assignmentCompatability12.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability13.types b/tests/baselines/reference/assignmentCompatability13.types index 80565d89114be..4afbe5e925765 100644 --- a/tests/baselines/reference/assignmentCompatability13.types +++ b/tests/baselines/reference/assignmentCompatability13.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability14.types b/tests/baselines/reference/assignmentCompatability14.types index 8c23f7d587be3..74718ca95af72 100644 --- a/tests/baselines/reference/assignmentCompatability14.types +++ b/tests/baselines/reference/assignmentCompatability14.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability15.types b/tests/baselines/reference/assignmentCompatability15.types index 0c5fbff2361b3..f9c93dfbd4258 100644 --- a/tests/baselines/reference/assignmentCompatability15.types +++ b/tests/baselines/reference/assignmentCompatability15.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability16.types b/tests/baselines/reference/assignmentCompatability16.types index 57c13f369a287..e976c6e6b69f8 100644 --- a/tests/baselines/reference/assignmentCompatability16.types +++ b/tests/baselines/reference/assignmentCompatability16.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability17.types b/tests/baselines/reference/assignmentCompatability17.types index 2a4887eb49cf4..4ce9622ff7518 100644 --- a/tests/baselines/reference/assignmentCompatability17.types +++ b/tests/baselines/reference/assignmentCompatability17.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability18.types b/tests/baselines/reference/assignmentCompatability18.types index 13c5ecc99a1b4..3d328b6c54c57 100644 --- a/tests/baselines/reference/assignmentCompatability18.types +++ b/tests/baselines/reference/assignmentCompatability18.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability19.types b/tests/baselines/reference/assignmentCompatability19.types index 99952b4b5015f..c6c929b035162 100644 --- a/tests/baselines/reference/assignmentCompatability19.types +++ b/tests/baselines/reference/assignmentCompatability19.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability2.types b/tests/baselines/reference/assignmentCompatability2.types index f35cbfccb0d0e..ac54e4e878943 100644 --- a/tests/baselines/reference/assignmentCompatability2.types +++ b/tests/baselines/reference/assignmentCompatability2.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability20.types b/tests/baselines/reference/assignmentCompatability20.types index 1d9be3931ef3a..a5c02fd4a9ad0 100644 --- a/tests/baselines/reference/assignmentCompatability20.types +++ b/tests/baselines/reference/assignmentCompatability20.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability21.types b/tests/baselines/reference/assignmentCompatability21.types index bf75ed9509617..075596f09b677 100644 --- a/tests/baselines/reference/assignmentCompatability21.types +++ b/tests/baselines/reference/assignmentCompatability21.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability22.types b/tests/baselines/reference/assignmentCompatability22.types index 97858c30b7cea..071abcb992e54 100644 --- a/tests/baselines/reference/assignmentCompatability22.types +++ b/tests/baselines/reference/assignmentCompatability22.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability23.types b/tests/baselines/reference/assignmentCompatability23.types index 0bb44a107fc55..24f66e26aa02a 100644 --- a/tests/baselines/reference/assignmentCompatability23.types +++ b/tests/baselines/reference/assignmentCompatability23.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability24.types b/tests/baselines/reference/assignmentCompatability24.types index 4e964a3a6dfcb..f011fe3106e6a 100644 --- a/tests/baselines/reference/assignmentCompatability24.types +++ b/tests/baselines/reference/assignmentCompatability24.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability25.types b/tests/baselines/reference/assignmentCompatability25.types index 260d0de3586b5..0805aeb86c6c5 100644 --- a/tests/baselines/reference/assignmentCompatability25.types +++ b/tests/baselines/reference/assignmentCompatability25.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability26.types b/tests/baselines/reference/assignmentCompatability26.types index a8b9af810d7c4..5c43a97ad6452 100644 --- a/tests/baselines/reference/assignmentCompatability26.types +++ b/tests/baselines/reference/assignmentCompatability26.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability27.types b/tests/baselines/reference/assignmentCompatability27.types index 650081348d5a1..f472c0f48e676 100644 --- a/tests/baselines/reference/assignmentCompatability27.types +++ b/tests/baselines/reference/assignmentCompatability27.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability28.types b/tests/baselines/reference/assignmentCompatability28.types index 28ffa9e19000e..d2807fd33275d 100644 --- a/tests/baselines/reference/assignmentCompatability28.types +++ b/tests/baselines/reference/assignmentCompatability28.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability29.types b/tests/baselines/reference/assignmentCompatability29.types index 00b3166741639..28ec6a6c85401 100644 --- a/tests/baselines/reference/assignmentCompatability29.types +++ b/tests/baselines/reference/assignmentCompatability29.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability3.types b/tests/baselines/reference/assignmentCompatability3.types index 33a797448411a..59adf71704bc7 100644 --- a/tests/baselines/reference/assignmentCompatability3.types +++ b/tests/baselines/reference/assignmentCompatability3.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability30.types b/tests/baselines/reference/assignmentCompatability30.types index bb9795b0b9b7e..d66e60f8fa804 100644 --- a/tests/baselines/reference/assignmentCompatability30.types +++ b/tests/baselines/reference/assignmentCompatability30.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability31.types b/tests/baselines/reference/assignmentCompatability31.types index a9eb60e83b522..3ef92fc8b9f4d 100644 --- a/tests/baselines/reference/assignmentCompatability31.types +++ b/tests/baselines/reference/assignmentCompatability31.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability32.types b/tests/baselines/reference/assignmentCompatability32.types index 69b6e1cab8f5c..0bf00b47f2624 100644 --- a/tests/baselines/reference/assignmentCompatability32.types +++ b/tests/baselines/reference/assignmentCompatability32.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability33.types b/tests/baselines/reference/assignmentCompatability33.types index 216500a14bad4..42129c42e81d0 100644 --- a/tests/baselines/reference/assignmentCompatability33.types +++ b/tests/baselines/reference/assignmentCompatability33.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability34.types b/tests/baselines/reference/assignmentCompatability34.types index 874597fae32b1..55b284908c1ac 100644 --- a/tests/baselines/reference/assignmentCompatability34.types +++ b/tests/baselines/reference/assignmentCompatability34.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability35.types b/tests/baselines/reference/assignmentCompatability35.types index ab25e79b1fcb4..224aa48b8dbe8 100644 --- a/tests/baselines/reference/assignmentCompatability35.types +++ b/tests/baselines/reference/assignmentCompatability35.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability36.types b/tests/baselines/reference/assignmentCompatability36.types index 0e27341b17cbd..16aa2431a7be0 100644 --- a/tests/baselines/reference/assignmentCompatability36.types +++ b/tests/baselines/reference/assignmentCompatability36.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability37.types b/tests/baselines/reference/assignmentCompatability37.types index 7b765f2c7a564..ede1a401d3a29 100644 --- a/tests/baselines/reference/assignmentCompatability37.types +++ b/tests/baselines/reference/assignmentCompatability37.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability38.types b/tests/baselines/reference/assignmentCompatability38.types index 1f31f968295f7..3449e2b0fbf00 100644 --- a/tests/baselines/reference/assignmentCompatability38.types +++ b/tests/baselines/reference/assignmentCompatability38.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability39.types b/tests/baselines/reference/assignmentCompatability39.types index c7229cb8ba052..fedf69460213a 100644 --- a/tests/baselines/reference/assignmentCompatability39.types +++ b/tests/baselines/reference/assignmentCompatability39.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability4.types b/tests/baselines/reference/assignmentCompatability4.types index 0259d4f5aaa72..88d7b5747d2e6 100644 --- a/tests/baselines/reference/assignmentCompatability4.types +++ b/tests/baselines/reference/assignmentCompatability4.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability40.types b/tests/baselines/reference/assignmentCompatability40.types index 0deb2c655681d..5ee52532d8fe1 100644 --- a/tests/baselines/reference/assignmentCompatability40.types +++ b/tests/baselines/reference/assignmentCompatability40.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability41.types b/tests/baselines/reference/assignmentCompatability41.types index c01158ad1a3ba..a7eb466dabb23 100644 --- a/tests/baselines/reference/assignmentCompatability41.types +++ b/tests/baselines/reference/assignmentCompatability41.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability42.types b/tests/baselines/reference/assignmentCompatability42.types index bd3efc5b9680f..fb44acd488a5d 100644 --- a/tests/baselines/reference/assignmentCompatability42.types +++ b/tests/baselines/reference/assignmentCompatability42.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability43.types b/tests/baselines/reference/assignmentCompatability43.types index cc449ba6aa849..2f864e58b8a68 100644 --- a/tests/baselines/reference/assignmentCompatability43.types +++ b/tests/baselines/reference/assignmentCompatability43.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 @@ -36,8 +36,8 @@ module __test2__ { > : ^ >obj2 : interfaceTwo > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1, two: "a" } : { one: number; two: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ one: 1, two: "a" } : interfaceTwo +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability5.types b/tests/baselines/reference/assignmentCompatability5.types index 673b41dbfd4ca..5b7bdf6d6f74e 100644 --- a/tests/baselines/reference/assignmentCompatability5.types +++ b/tests/baselines/reference/assignmentCompatability5.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 @@ -34,8 +34,8 @@ module __test2__ { > : ^ >obj1 : interfaceOne > : ^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceOne +> : ^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability6.types b/tests/baselines/reference/assignmentCompatability6.types index 5b773aaec63a2..49895b7f27fa1 100644 --- a/tests/baselines/reference/assignmentCompatability6.types +++ b/tests/baselines/reference/assignmentCompatability6.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 @@ -34,8 +34,8 @@ module __test2__ { > : ^ >obj3 : interfaceWithOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ } : {} -> : ^^ +>{ } : interfaceWithOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ export var __val__obj3 = obj3; >__val__obj3 : interfaceWithOptional diff --git a/tests/baselines/reference/assignmentCompatability7.types b/tests/baselines/reference/assignmentCompatability7.types index 308d8da9bb635..592d9ca37d53f 100644 --- a/tests/baselines/reference/assignmentCompatability7.types +++ b/tests/baselines/reference/assignmentCompatability7.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 @@ -36,8 +36,8 @@ module __test2__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability8.types b/tests/baselines/reference/assignmentCompatability8.types index 5995c8b4ad1e1..97b4074b3b4e4 100644 --- a/tests/baselines/reference/assignmentCompatability8.types +++ b/tests/baselines/reference/assignmentCompatability8.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatability9.types b/tests/baselines/reference/assignmentCompatability9.types index d09d4151efc1c..f390c44b600c8 100644 --- a/tests/baselines/reference/assignmentCompatability9.types +++ b/tests/baselines/reference/assignmentCompatability9.types @@ -12,8 +12,8 @@ module __test1__ { > : ^ >obj4 : interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ one: 1 } : { one: number; } -> : ^^^^^^^^^^^^^^^^ +>{ one: 1 } : interfaceWithPublicAndOptional +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types b/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types index de7504bed4c23..3a72791cb51b2 100644 --- a/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types +++ b/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types @@ -9,7 +9,7 @@ let mappedObject: {[K in "foo"]: null | {x: string}} = {foo: {x: "hello"}}; >x : string > : ^^^^^^ >{foo: {x: "hello"}} : { foo: { x: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^ >foo : { x: string; } > : ^^^^^^^^^^^^^^ >{x: "hello"} : { x: string; } diff --git a/tests/baselines/reference/assignmentNonObjectTypeConstraints.types b/tests/baselines/reference/assignmentNonObjectTypeConstraints.types index 8924c51561a2e..973105dc2f847 100644 --- a/tests/baselines/reference/assignmentNonObjectTypeConstraints.types +++ b/tests/baselines/reference/assignmentNonObjectTypeConstraints.types @@ -20,8 +20,8 @@ function foo(x: T) { var y: number = x; // Ok >y : number > : ^^^^^^ ->x : T -> : ^ +>x : number +> : ^^^^^^ } foo(5); diff --git a/tests/baselines/reference/assignmentToConditionalBrandedStringTemplateOrMapping.types b/tests/baselines/reference/assignmentToConditionalBrandedStringTemplateOrMapping.types index 61dc9b88001e7..4a6924e521500 100644 --- a/tests/baselines/reference/assignmentToConditionalBrandedStringTemplateOrMapping.types +++ b/tests/baselines/reference/assignmentToConditionalBrandedStringTemplateOrMapping.types @@ -6,16 +6,16 @@ let a: (() => T extends `${'a' & { a: 1 }}` ? 1 : 2) = null!; > : ^ ^^^^^^^ >a : 1 > : ^ ->null! : null -> : ^^^^ +>null! : () => T extends `${"a" & { a: 1; }}` ? 1 : 2 +> : ^ ^^^^^^^ let b: (() => T extends `${'a' & { a: 1 }}` ? 1 : 2) = null!; >b : () => T extends `${"a" & { a: 1; }}` ? 1 : 2 > : ^ ^^^^^^^ >a : 1 > : ^ ->null! : null -> : ^^^^ +>null! : () => T extends `${"a" & { a: 1; }}` ? 1 : 2 +> : ^ ^^^^^^^ a = b; >a = b : () => T extends `${"a" & { a: 1; }}` ? 1 : 2 @@ -30,16 +30,16 @@ let c: (() => T extends Uppercase<'a' & { a: 1 }> ? 1 : 2) = null!; > : ^ ^^^^^^^ >a : 1 > : ^ ->null! : null -> : ^^^^ +>null! : () => T extends Uppercase<"a" & { a: 1; }> ? 1 : 2 +> : ^ ^^^^^^^ let d: (() => T extends Uppercase<'a' & { a: 1 }> ? 1 : 2) = null!; >d : () => T extends Uppercase<"a" & { a: 1; }> ? 1 : 2 > : ^ ^^^^^^^ >a : 1 > : ^ ->null! : null -> : ^^^^ +>null! : () => T extends Uppercase<"a" & { a: 1; }> ? 1 : 2 +> : ^ ^^^^^^^ c = d; >c = d : () => T extends Uppercase<"a" & { a: 1; }> ? 1 : 2 diff --git a/tests/baselines/reference/assignmentToInstantiationExpression.types b/tests/baselines/reference/assignmentToInstantiationExpression.types index 76db87269b4d8..6907f8d08c902 100644 --- a/tests/baselines/reference/assignmentToInstantiationExpression.types +++ b/tests/baselines/reference/assignmentToInstantiationExpression.types @@ -6,8 +6,8 @@ let obj: { fn?: () => T } = {}; > : ^^^^^^^ ^^^ >fn : (() => T) | undefined > : ^^ ^^^^^^^ ^^^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : { fn?: () => T; } +> : ^^^^^^^ ^^^ obj.fn = () => 1234; >obj.fn = () => 1234 : () => number diff --git a/tests/baselines/reference/assignmentToObject.errors.txt b/tests/baselines/reference/assignmentToObject.errors.txt index 1ff6ae3b98dad..f8f84f0c050d2 100644 --- a/tests/baselines/reference/assignmentToObject.errors.txt +++ b/tests/baselines/reference/assignmentToObject.errors.txt @@ -1,4 +1,4 @@ -assignmentToObject.ts(3,5): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. +assignmentToObject.ts(3,17): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type 'number' is not assignable to type '() => string'. @@ -7,7 +7,7 @@ assignmentToObject.ts(3,5): error TS2322: Type '{ toString: number; }' is not as var a = { toString: 5 }; var b: {} = a; // ok var c: Object = a; // should be error - ~ + ~ !!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '() => string'. diff --git a/tests/baselines/reference/assignmentToObject.types b/tests/baselines/reference/assignmentToObject.types index b1c7133dca287..bbf12485d910c 100644 --- a/tests/baselines/reference/assignmentToObject.types +++ b/tests/baselines/reference/assignmentToObject.types @@ -14,12 +14,12 @@ var a = { toString: 5 }; var b: {} = a; // ok >b : {} > : ^^ ->a : { toString: number; } -> : ^^^^^^^^^^^^^^^^^^^^^ +>a : {} +> : ^^ var c: Object = a; // should be error >c : Object > : ^^^^^^ ->a : { toString: number; } -> : ^^^^^^^^^^^^^^^^^^^^^ +>a : Object +> : ^^^^^^ diff --git a/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt b/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt index 733139013e432..39ad8254ea233 100644 --- a/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt +++ b/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt @@ -1,14 +1,18 @@ -assignmentToObjectAndFunction.ts(1,24): error TS2322: Type 'number' is not assignable to type '() => string'. -assignmentToObjectAndFunction.ts(8,5): error TS2740: Type '{}' is missing the following properties from type 'Function': apply, call, bind, prototype, and 3 more. -assignmentToObjectAndFunction.ts(29,5): error TS2322: Type 'typeof bad' is not assignable to type 'Function'. +assignmentToObjectAndFunction.ts(1,22): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. + Types of property 'toString' are incompatible. + Type 'number' is not assignable to type '() => string'. +assignmentToObjectAndFunction.ts(8,24): error TS2740: Type '{}' is missing the following properties from type 'Function': apply, call, bind, prototype, and 3 more. +assignmentToObjectAndFunction.ts(29,28): error TS2322: Type 'typeof bad' is not assignable to type 'Function'. Types of property 'apply' are incompatible. Type 'number' is not assignable to type '(this: Function, thisArg: any, argArray?: any) => any'. ==== assignmentToObjectAndFunction.ts (3 errors) ==== var errObj: Object = { toString: 0 }; // Error, incompatible toString - ~~~~~~~~ -!!! error TS2322: Type 'number' is not assignable to type '() => string'. + ~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. +!!! error TS2322: Types of property 'toString' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type '() => string'. var goodObj: Object = { toString(x?) { return ""; @@ -16,7 +20,7 @@ assignmentToObjectAndFunction.ts(29,5): error TS2322: Type 'typeof bad' is not a }; // Ok, because toString is a subtype of Object's toString var errFun: Function = {}; // Error for no call signature - ~~~~~~ + ~~ !!! error TS2740: Type '{}' is missing the following properties from type 'Function': apply, call, bind, prototype, and 3 more. function foo() { } @@ -39,7 +43,7 @@ assignmentToObjectAndFunction.ts(29,5): error TS2322: Type 'typeof bad' is not a } var badFundule: Function = bad; // error - ~~~~~~~~~~ + ~~~ !!! error TS2322: Type 'typeof bad' is not assignable to type 'Function'. !!! error TS2322: Types of property 'apply' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '(this: Function, thisArg: any, argArray?: any) => any'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentToObjectAndFunction.types b/tests/baselines/reference/assignmentToObjectAndFunction.types index 9cf7639218e1f..8be31ff9aedeb 100644 --- a/tests/baselines/reference/assignmentToObjectAndFunction.types +++ b/tests/baselines/reference/assignmentToObjectAndFunction.types @@ -4,8 +4,8 @@ var errObj: Object = { toString: 0 }; // Error, incompatible toString >errObj : Object > : ^^^^^^ ->{ toString: 0 } : { toString: number; } -> : ^^^^^^^^^^^^^^^^^^^^^ +>{ toString: 0 } : Object +> : ^^^^^^ >toString : number > : ^^^^^^ >0 : 0 @@ -14,8 +14,8 @@ var errObj: Object = { toString: 0 }; // Error, incompatible toString var goodObj: Object = { >goodObj : Object > : ^^^^^^ ->{ toString(x?) { return ""; }} : { toString(x?: any): string; } -> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ +>{ toString(x?) { return ""; }} : Object +> : ^^^^^^ toString(x?) { >toString : (x?: any) => string @@ -32,8 +32,8 @@ var goodObj: Object = { var errFun: Function = {}; // Error for no call signature >errFun : Function > : ^^^^^^^^ ->{} : {} -> : ^^ +>{} : Function +> : ^^^^^^^^ function foo() { } >foo : typeof foo @@ -53,8 +53,8 @@ module foo { var goodFundule: Function = foo; // ok >goodFundule : Function > : ^^^^^^^^ ->foo : typeof foo -> : ^^^^^^^^^^ +>foo : Function +> : ^^^^^^^^ function bar() { } >bar : typeof bar @@ -76,8 +76,8 @@ module bar { var goodFundule2: Function = bar; // ok >goodFundule2 : Function > : ^^^^^^^^ ->bar : typeof bar -> : ^^^^^^^^^^ +>bar : Function +> : ^^^^^^^^ function bad() { } >bad : typeof bad @@ -97,6 +97,6 @@ module bad { var badFundule: Function = bad; // error >badFundule : Function > : ^^^^^^^^ ->bad : typeof bad -> : ^^^^^^^^^^ +>bad : Function +> : ^^^^^^^^ diff --git a/tests/baselines/reference/asyncGeneratorPromiseNextType.types b/tests/baselines/reference/asyncGeneratorPromiseNextType.types index 04df59c42c626..45f9b5145b017 100644 --- a/tests/baselines/reference/asyncGeneratorPromiseNextType.types +++ b/tests/baselines/reference/asyncGeneratorPromiseNextType.types @@ -16,8 +16,8 @@ async function *saverGen(): AsyncGenerator | undefin let pending: Promise[] = []; >pending : Promise[] > : ^^^^^^^^^^^^^^^^^ ->[] : never[] -> : ^^^^^^^ +>[] : Promise[] +> : ^^^^^^^^^^^^^^^^^ while (true) { >true : true @@ -133,8 +133,8 @@ async function *saverGen2() { let pending: Promise[] = []; >pending : Promise[] > : ^^^^^^^^^^^^^^^^^ ->[] : never[] -> : ^^^^^^^ +>[] : Promise[] +> : ^^^^^^^^^^^^^^^^^ while (true) { >true : true diff --git a/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.errors.txt b/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.errors.txt index f309c78ac2051..047da1e9d405a 100644 --- a/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.errors.txt +++ b/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.errors.txt @@ -1,4 +1,4 @@ -augmentedTypeAssignmentCompatIndexSignature.ts(19,5): error TS2322: Type '() => void' is not assignable to type '{ [n: number]: Bar; }'. +augmentedTypeAssignmentCompatIndexSignature.ts(21,5): error TS2322: Type '() => void' is not assignable to type '{ [n: number]: Bar; }'. Index signature for type 'number' is missing in type '() => void'. @@ -22,8 +22,8 @@ augmentedTypeAssignmentCompatIndexSignature.ts(19,5): error TS2322: Type '() => } = o; // Should be allowed var v2: { - ~~ -!!! error TS2322: Type '() => void' is not assignable to type '{ [n: number]: Bar; }'. -!!! error TS2322: Index signature for type 'number' is missing in type '() => void'. [n: number]: Bar - } = f; // Should be allowed \ No newline at end of file + } = f; // Should be allowed + ~ +!!! error TS2322: Type '() => void' is not assignable to type '{ [n: number]: Bar; }'. +!!! error TS2322: Index signature for type 'number' is missing in type '() => void'. \ No newline at end of file diff --git a/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.types b/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.types index 2d0f6509c9d11..72f236f69e5d2 100644 --- a/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.types +++ b/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.types @@ -42,8 +42,8 @@ var v1: { > : ^^^^^^ } = o; // Should be allowed ->o : {} -> : ^^ +>o : { [n: number]: Foo; } +> : ^^^^^^^^^^^^^^^^^^^^^ var v2: { >v2 : { [n: number]: Bar; } @@ -54,6 +54,6 @@ var v2: { > : ^^^^^^ } = f; // Should be allowed ->f : () => void -> : ^^^^^^^^^^ +>f : { [n: number]: Bar; } +> : ^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.errors.txt b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.errors.txt index 08c9abc44a839..04f5481a9b518 100644 --- a/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.errors.txt +++ b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.errors.txt @@ -11,5 +11,4 @@ avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts(7,20): error export let x:Dog = getRover; ~~~~~~~~ !!! error TS2322: Type '() => Dog' is not assignable to type 'Dog'. -!!! related TS6212 avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts:7:20: Did you mean to call this expression? // export let x: Dog = getRover; \ No newline at end of file diff --git a/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.types b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.types index a96e17ced2349..a264f91bcef1c 100644 --- a/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.types +++ b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.types @@ -16,7 +16,7 @@ declare function getRover(): Dog export let x:Dog = getRover; >x : Dog > : ^^^ ->getRover : () => Dog -> : ^^^^^^ +>getRover : Dog +> : ^^^ // export let x: Dog = getRover; diff --git a/tests/baselines/reference/badArraySyntax.types b/tests/baselines/reference/badArraySyntax.types index 44c05e483c838..874dc2d4ae0b5 100644 --- a/tests/baselines/reference/badArraySyntax.types +++ b/tests/baselines/reference/badArraySyntax.types @@ -15,8 +15,8 @@ class Z { var a1: Z[] = []; >a1 : Z[] > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : Z[] +> : ^^^ var a2 = new Z[]; >a2 : any @@ -45,7 +45,7 @@ var a3 = new Z[](); var a4: Z[] = new Z[]; >a4 : Z[] > : ^^^ ->new Z[] : any +>new Z[] : Z[] > : ^^^ >Z[] : any > : ^^^ @@ -57,7 +57,7 @@ var a4: Z[] = new Z[]; var a5: Z[] = new Z[](); >a5 : Z[] > : ^^^ ->new Z[]() : any +>new Z[]() : Z[] > : ^^^ >Z[] : any > : ^^^ @@ -69,8 +69,8 @@ var a5: Z[] = new Z[](); var a6: Z[][] = new Z [ ] [ ]; >a6 : Z[][] > : ^^^^^ ->new Z [ ] [ ] : any -> : ^^^ +>new Z [ ] [ ] : Z[][] +> : ^^^^^ >Z [ ] [ ] : any > : ^^^ >Z [ ] : any diff --git a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types index 5ad7b098ee2ea..0102b0ef3aa3b 100644 --- a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types +++ b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types @@ -123,8 +123,8 @@ var r7: (x: Object) => void = true ? (x: number) => { } : (x: Object) => { }; > : ^ ^^ ^^^^^ >x : Object > : ^^^^^^ ->true ? (x: number) => { } : (x: Object) => { } : ((x: number) => void) | ((x: Object) => void) -> : ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ +>true ? (x: number) => { } : (x: Object) => { } : (x: Object) => void +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(x: number) => { } : (x: number) => void @@ -155,8 +155,8 @@ var r8 = true ? (x: Object) => { } : (x: number) => { }; // returns Object => vo var r10: Base = true ? derived : derived2; // no error since we use the contextual type in BCT >r10 : Base > : ^^^^ ->true ? derived : derived2 : Derived | Derived2 -> : ^^^^^^^^^^^^^^^^^^ +>true ? derived : derived2 : Base +> : ^^^^ >true : true > : ^^^^ >derived : Derived diff --git a/tests/baselines/reference/bestCommonTypeWithContextualTyping.types b/tests/baselines/reference/bestCommonTypeWithContextualTyping.types index 735202dcd63e1..1470c0de84567 100644 --- a/tests/baselines/reference/bestCommonTypeWithContextualTyping.types +++ b/tests/baselines/reference/bestCommonTypeWithContextualTyping.types @@ -31,8 +31,8 @@ var e: Ellement; var arr: Contextual[] = [e]; // Ellement[] >arr : Contextual[] > : ^^^^^^^^^^^^ ->[e] : Ellement[] -> : ^^^^^^^^^^ +>[e] : Contextual[] +> : ^^^^^^^^^^^^ >e : Ellement > : ^^^^^^^^ @@ -41,8 +41,8 @@ var obj: { [s: string]: Contextual } = { s: e }; // { s: Ellement; [s: string]: > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >s : string > : ^^^^^^ ->{ s: e } : { s: Ellement; } -> : ^^^^^^^^^^^^^^^^ +>{ s: e } : { [s: string]: Contextual; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >s : Ellement > : ^^^^^^^^ >e : Ellement @@ -51,8 +51,8 @@ var obj: { [s: string]: Contextual } = { s: e }; // { s: Ellement; [s: string]: var conditional: Contextual = null ? e : e; // Ellement >conditional : Contextual > : ^^^^^^^^^^ ->null ? e : e : Ellement -> : ^^^^^^^^ +>null ? e : e : Contextual +> : ^^^^^^^^^^ >e : Ellement > : ^^^^^^^^ >e : Ellement @@ -61,8 +61,8 @@ var conditional: Contextual = null ? e : e; // Ellement var contextualOr: Contextual = e || e; // Ellement >contextualOr : Contextual > : ^^^^^^^^^^ ->e || e : Ellement -> : ^^^^^^^^ +>e || e : Contextual +> : ^^^^^^^^^^ >e : Ellement > : ^^^^^^^^ >e : Ellement diff --git a/tests/baselines/reference/bigintWithLib.types b/tests/baselines/reference/bigintWithLib.types index 69821f17ac196..1bd65fa421873 100644 --- a/tests/baselines/reference/bigintWithLib.types +++ b/tests/baselines/reference/bigintWithLib.types @@ -192,8 +192,8 @@ stringVal = bigintVal.toLocaleString('de-DE', { style: 'currency', currency: 'EU let bigIntArray: BigInt64Array = new BigInt64Array(); >bigIntArray : BigInt64Array > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->new BigInt64Array() : BigInt64Array -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>new BigInt64Array() : BigInt64Array +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >BigInt64Array : BigInt64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -324,15 +324,15 @@ bigIntArray.length = 10; // should error let arrayBufferLike: ArrayBufferView = bigIntArray; >arrayBufferLike : ArrayBufferView > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->bigIntArray : BigInt64Array -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>bigIntArray : ArrayBufferView +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // Test BigUint64Array let bigUintArray: BigUint64Array = new BigUint64Array(); >bigUintArray : BigUint64Array > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->new BigUint64Array() : BigUint64Array -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>new BigUint64Array() : BigUint64Array +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >BigUint64Array : BigUint64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/bigintWithoutLib.types b/tests/baselines/reference/bigintWithoutLib.types index 4f37108f5d4eb..7a9ff3bcfc36b 100644 --- a/tests/baselines/reference/bigintWithoutLib.types +++ b/tests/baselines/reference/bigintWithoutLib.types @@ -7,8 +7,8 @@ let bigintVal: bigint = BigInt(123); >bigintVal : bigint > : ^^^^^^ ->BigInt(123) : any -> : ^^^ +>BigInt(123) : bigint +> : ^^^^^^ >BigInt : any > : ^^^ >123 : 123 @@ -194,8 +194,8 @@ stringVal = bigintVal.toLocaleString('de-DE', { style: 'currency', currency: 'EU let bigIntArray: BigInt64Array = new BigInt64Array(); >bigIntArray : BigInt64Array > : ^^^^^^^^^^^^^ ->new BigInt64Array() : any -> : ^^^ +>new BigInt64Array() : BigInt64Array +> : ^^^^^^^^^^^^^ >BigInt64Array : any > : ^^^ @@ -304,12 +304,12 @@ bigIntArray = new BigInt64Array(new ArrayBuffer(80), 8, 3); let len: number = bigIntArray.length; >len : number > : ^^^^^^ ->bigIntArray.length : any -> : ^^^ +>bigIntArray.length : number +> : ^^^^^^ >bigIntArray : BigInt64Array > : ^^^^^^^^^^^^^ ->length : any -> : ^^^ +>length : number +> : ^^^^^^ bigIntArray.length = 10; >bigIntArray.length = 10 : 10 @@ -326,15 +326,15 @@ bigIntArray.length = 10; let arrayBufferLike: ArrayBufferView = bigIntArray; >arrayBufferLike : ArrayBufferView > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->bigIntArray : BigInt64Array -> : ^^^^^^^^^^^^^ +>bigIntArray : ArrayBufferView +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // Test BigUint64Array let bigUintArray: BigUint64Array = new BigUint64Array(); >bigUintArray : BigUint64Array > : ^^^^^^^^^^^^^^ ->new BigUint64Array() : any -> : ^^^ +>new BigUint64Array() : BigUint64Array +> : ^^^^^^^^^^^^^^ >BigUint64Array : any > : ^^^ diff --git a/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.types b/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.types index 85cacd548cd5c..b23f28ee14944 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.types @@ -14,8 +14,8 @@ var ANY1; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/boolInsteadOfBoolean.types b/tests/baselines/reference/boolInsteadOfBoolean.types index 0fe833aa6ebaa..50be7a0e30709 100644 --- a/tests/baselines/reference/boolInsteadOfBoolean.types +++ b/tests/baselines/reference/boolInsteadOfBoolean.types @@ -8,8 +8,8 @@ var x: bool; var a: boolean = x; >a : boolean > : ^^^^^^^ ->x : bool -> : ^^^^ +>x : boolean +> : ^^^^^^^ x = a; >x = a : boolean diff --git a/tests/baselines/reference/callOnInstance.types b/tests/baselines/reference/callOnInstance.types index 06ad192d77aed..e196adf25e579 100644 --- a/tests/baselines/reference/callOnInstance.types +++ b/tests/baselines/reference/callOnInstance.types @@ -22,8 +22,8 @@ var s1: string = D(); // OK var s2: string = (new D(1))(); >s2 : string > : ^^^^^^ ->(new D(1))() : any -> : ^^^ +>(new D(1))() : string +> : ^^^^^^ >(new D(1)) : D > : ^ >new D(1) : D diff --git a/tests/baselines/reference/callOverloadViaElementAccessExpression.errors.txt b/tests/baselines/reference/callOverloadViaElementAccessExpression.errors.txt index b0304cf0f67e4..a5396a38f4522 100644 --- a/tests/baselines/reference/callOverloadViaElementAccessExpression.errors.txt +++ b/tests/baselines/reference/callOverloadViaElementAccessExpression.errors.txt @@ -1,5 +1,5 @@ -callOverloadViaElementAccessExpression.ts(10,5): error TS2322: Type 'number' is not assignable to type 'string'. -callOverloadViaElementAccessExpression.ts(11,5): error TS2322: Type 'string' is not assignable to type 'number'. +callOverloadViaElementAccessExpression.ts(10,17): error TS2322: Type 'number' is not assignable to type 'string'. +callOverloadViaElementAccessExpression.ts(11,18): error TS2322: Type 'string' is not assignable to type 'number'. ==== callOverloadViaElementAccessExpression.ts (2 errors) ==== @@ -13,8 +13,8 @@ callOverloadViaElementAccessExpression.ts(11,5): error TS2322: Type 'string' is var c = new C(); var r: string = c['foo'](1); - ~ + ~~~~~~~~~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. var r2: number = c['foo'](''); - ~~ + ~~~~~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/callOverloadViaElementAccessExpression.types b/tests/baselines/reference/callOverloadViaElementAccessExpression.types index a4faf9b674c0a..455463a44e222 100644 --- a/tests/baselines/reference/callOverloadViaElementAccessExpression.types +++ b/tests/baselines/reference/callOverloadViaElementAccessExpression.types @@ -38,7 +38,7 @@ var c = new C(); var r: string = c['foo'](1); >r : string > : ^^^^^^ ->c['foo'](1) : number +>c['foo'](1) : string > : ^^^^^^ >c['foo'] : { (x: number): number; (x: string): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ @@ -52,7 +52,7 @@ var r: string = c['foo'](1); var r2: number = c['foo'](''); >r2 : number > : ^^^^^^ ->c['foo']('') : string +>c['foo']('') : number > : ^^^^^^ >c['foo'] : { (x: number): number; (x: string): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/cannotInvokeNewOnIndexExpression.types b/tests/baselines/reference/cannotInvokeNewOnIndexExpression.types index 0ccffda5e48d6..19138debffa0e 100644 --- a/tests/baselines/reference/cannotInvokeNewOnIndexExpression.types +++ b/tests/baselines/reference/cannotInvokeNewOnIndexExpression.types @@ -4,8 +4,8 @@ var test: any[] = new any[1]; >test : any[] > : ^^^^^ ->new any[1] : any -> : ^^^ +>new any[1] : any[] +> : ^^^^^ >any[1] : any > : ^^^ >any : any diff --git a/tests/baselines/reference/castTest.types b/tests/baselines/reference/castTest.types index fd605be141f07..333b5c7043188 100644 --- a/tests/baselines/reference/castTest.types +++ b/tests/baselines/reference/castTest.types @@ -3,8 +3,7 @@ === castTest.ts === var x : any = 0; >x : any ->0 : 0 -> : ^ +>0 : any var z = x; >z : number diff --git a/tests/baselines/reference/castingTuple.types b/tests/baselines/reference/castingTuple.types index 55c4753184fd5..fd1357eeef0f9 100644 --- a/tests/baselines/reference/castingTuple.types +++ b/tests/baselines/reference/castingTuple.types @@ -180,8 +180,8 @@ var array1 = <{}[]>emptyObjTuple; var unionTuple: [C, string | number] = [new C(), "foo"]; >unionTuple : [C, string | number] > : ^^^^^^^^^^^^^^^^^^^^ ->[new C(), "foo"] : [C, string] -> : ^^^^^^^^^^^ +>[new C(), "foo"] : [C, string | number] +> : ^^^^^^^^^^^^^^^^^^^^ >new C() : C > : ^ >C : typeof C @@ -192,8 +192,8 @@ var unionTuple: [C, string | number] = [new C(), "foo"]; var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; >unionTuple2 : [C, string | number, D] > : ^^^^^^^^^^^^^^^^^^^^^^^ ->[new C(), "foo", new D()] : [C, string, D] -> : ^^^^^^^^^^^^^^ +>[new C(), "foo", new D()] : [C, string | number, D] +> : ^^^^^^^^^^^^^^^^^^^^^^^ >new C() : C > : ^ >C : typeof C @@ -208,8 +208,8 @@ var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; var unionTuple3: [number, string| number] = [10, "foo"]; >unionTuple3 : [number, string | number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->[10, "foo"] : [number, string] -> : ^^^^^^^^^^^^^^^^ +>[10, "foo"] : [number, string | number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >10 : 10 > : ^^ >"foo" : "foo" diff --git a/tests/baselines/reference/checkInfiniteExpansionTermination2.types b/tests/baselines/reference/checkInfiniteExpansionTermination2.types index b63d623c46293..4ad3d3a8fc0cb 100644 --- a/tests/baselines/reference/checkInfiniteExpansionTermination2.types +++ b/tests/baselines/reference/checkInfiniteExpansionTermination2.types @@ -28,8 +28,8 @@ function fn() { var values: ISubject[] = []; >values : ISubject[] > : ^^^^^^^^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : ISubject[] +> : ^^^^^^^^^^^^^^^ // Hang when using , but not combineLatest(values); diff --git a/tests/baselines/reference/circularInferredTypeOfVariable.types b/tests/baselines/reference/circularInferredTypeOfVariable.types index aac6c61fd0cf1..a3606f7bb5846 100644 --- a/tests/baselines/reference/circularInferredTypeOfVariable.types +++ b/tests/baselines/reference/circularInferredTypeOfVariable.types @@ -34,8 +34,8 @@ let a1: string[] | undefined = []; >a1 : string[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : string[] +> : ^^^^^^^^ while (true) { >true : true diff --git a/tests/baselines/reference/classAbstractConstructorAssignability.errors.txt b/tests/baselines/reference/classAbstractConstructorAssignability.errors.txt index 627e88550e102..77cbd9db7aeb2 100644 --- a/tests/baselines/reference/classAbstractConstructorAssignability.errors.txt +++ b/tests/baselines/reference/classAbstractConstructorAssignability.errors.txt @@ -1,6 +1,6 @@ -classAbstractConstructorAssignability.ts(7,5): error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. +classAbstractConstructorAssignability.ts(7,21): error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. Cannot assign an abstract constructor type to a non-abstract constructor type. -classAbstractConstructorAssignability.ts(9,5): error TS2322: Type 'typeof B' is not assignable to type 'typeof C'. +classAbstractConstructorAssignability.ts(9,21): error TS2322: Type 'typeof B' is not assignable to type 'typeof C'. Cannot assign an abstract constructor type to a non-abstract constructor type. classAbstractConstructorAssignability.ts(12,1): error TS2511: Cannot create an instance of an abstract class. @@ -13,12 +13,12 @@ classAbstractConstructorAssignability.ts(12,1): error TS2511: Cannot create an i class C extends B {} var AA : typeof A = B; - ~~ + ~ !!! error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. !!! error TS2322: Cannot assign an abstract constructor type to a non-abstract constructor type. var BB : typeof B = A; var CC : typeof C = B; - ~~ + ~ !!! error TS2322: Type 'typeof B' is not assignable to type 'typeof C'. !!! error TS2322: Cannot assign an abstract constructor type to a non-abstract constructor type. diff --git a/tests/baselines/reference/classAbstractConstructorAssignability.types b/tests/baselines/reference/classAbstractConstructorAssignability.types index 9d5eb302e85fd..e8f675c7e7206 100644 --- a/tests/baselines/reference/classAbstractConstructorAssignability.types +++ b/tests/baselines/reference/classAbstractConstructorAssignability.types @@ -22,7 +22,7 @@ var AA : typeof A = B; > : ^^^^^^^^ >A : typeof A > : ^^^^^^^^ ->B : typeof B +>B : typeof A > : ^^^^^^^^ var BB : typeof B = A; @@ -30,7 +30,7 @@ var BB : typeof B = A; > : ^^^^^^^^ >B : typeof B > : ^^^^^^^^ ->A : typeof A +>A : typeof B > : ^^^^^^^^ var CC : typeof C = B; @@ -38,7 +38,7 @@ var CC : typeof C = B; > : ^^^^^^^^ >C : typeof C > : ^^^^^^^^ ->B : typeof B +>B : typeof C > : ^^^^^^^^ new AA; diff --git a/tests/baselines/reference/classAbstractInstantiations2.errors.txt b/tests/baselines/reference/classAbstractInstantiations2.errors.txt index e07d75144f239..e378933ad3af8 100644 --- a/tests/baselines/reference/classAbstractInstantiations2.errors.txt +++ b/tests/baselines/reference/classAbstractInstantiations2.errors.txt @@ -1,5 +1,5 @@ classAbstractInstantiations2.ts(10,1): error TS2511: Cannot create an instance of an abstract class. -classAbstractInstantiations2.ts(13,5): error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. +classAbstractInstantiations2.ts(13,20): error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. Cannot assign an abstract constructor type to a non-abstract constructor type. classAbstractInstantiations2.ts(17,5): error TS2511: Cannot create an instance of an abstract class. classAbstractInstantiations2.ts(21,1): error TS2511: Cannot create an instance of an abstract class. @@ -26,7 +26,7 @@ classAbstractInstantiations2.ts(50,5): error TS1244: Abstract methods can only a var BB: typeof B = B; var AA: typeof A = BB; // error, AA is not of abstract type. - ~~ + ~~ !!! error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. !!! error TS2322: Cannot assign an abstract constructor type to a non-abstract constructor type. new AA; diff --git a/tests/baselines/reference/classAbstractInstantiations2.types b/tests/baselines/reference/classAbstractInstantiations2.types index af4b626fdfc95..b511bb78310d4 100644 --- a/tests/baselines/reference/classAbstractInstantiations2.types +++ b/tests/baselines/reference/classAbstractInstantiations2.types @@ -48,7 +48,7 @@ var AA: typeof A = BB; // error, AA is not of abstract type. > : ^^^^^^^^ >A : typeof A > : ^^^^^^^^ ->BB : typeof B +>BB : typeof A > : ^^^^^^^^ new AA; @@ -87,8 +87,8 @@ new BB; // error -- BB is of type typeof B. var x : any = C; >x : any > : ^^^ ->C : typeof C -> : ^^^^^^^^ +>C : any +> : ^^^ new x; // okay -- undefined behavior at runtime >new x : any diff --git a/tests/baselines/reference/classAppearsToHaveMembersOfObject.types b/tests/baselines/reference/classAppearsToHaveMembersOfObject.types index f0becb9076a74..9eb9fb74f225d 100644 --- a/tests/baselines/reference/classAppearsToHaveMembersOfObject.types +++ b/tests/baselines/reference/classAppearsToHaveMembersOfObject.types @@ -40,12 +40,12 @@ var r2 = c.hasOwnProperty(''); var o: Object = c; >o : Object > : ^^^^^^ ->c : C -> : ^ +>c : Object +> : ^^^^^^ var o2: {} = c; >o2 : {} > : ^^ ->c : C -> : ^ +>c : {} +> : ^^ diff --git a/tests/baselines/reference/classSideInheritance3.errors.txt b/tests/baselines/reference/classSideInheritance3.errors.txt index da55855894e67..7b983b30f54b6 100644 --- a/tests/baselines/reference/classSideInheritance3.errors.txt +++ b/tests/baselines/reference/classSideInheritance3.errors.txt @@ -1,8 +1,8 @@ -classSideInheritance3.ts(16,5): error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. +classSideInheritance3.ts(16,20): error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. Types of construct signatures are incompatible. Type 'new (x: string, data: string) => B' is not assignable to type 'new (x: string) => A'. Target signature provides too few arguments. Expected 2 or more, but got 1. -classSideInheritance3.ts(17,5): error TS2322: Type 'typeof B' is not assignable to type 'new (x: string) => A'. +classSideInheritance3.ts(17,32): error TS2322: Type 'typeof B' is not assignable to type 'new (x: string) => A'. Types of construct signatures are incompatible. Type 'new (x: string, data: string) => B' is not assignable to type 'new (x: string) => A'. Target signature provides too few arguments. Expected 2 or more, but got 1. @@ -25,13 +25,13 @@ classSideInheritance3.ts(17,5): error TS2322: Type 'typeof B' is not assignable } var r1: typeof A = B; // error - ~~ + ~ !!! error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. !!! error TS2322: Types of construct signatures are incompatible. !!! error TS2322: Type 'new (x: string, data: string) => B' is not assignable to type 'new (x: string) => A'. !!! error TS2322: Target signature provides too few arguments. Expected 2 or more, but got 1. var r2: new (x: string) => A = B; // error - ~~ + ~ !!! error TS2322: Type 'typeof B' is not assignable to type 'new (x: string) => A'. !!! error TS2322: Types of construct signatures are incompatible. !!! error TS2322: Type 'new (x: string, data: string) => B' is not assignable to type 'new (x: string) => A'. diff --git a/tests/baselines/reference/classSideInheritance3.types b/tests/baselines/reference/classSideInheritance3.types index e2f4352934887..31460e3529ad7 100644 --- a/tests/baselines/reference/classSideInheritance3.types +++ b/tests/baselines/reference/classSideInheritance3.types @@ -56,7 +56,7 @@ var r1: typeof A = B; // error > : ^^^^^^^^ >A : typeof A > : ^^^^^^^^ ->B : typeof B +>B : typeof A > : ^^^^^^^^ var r2: new (x: string) => A = B; // error @@ -64,14 +64,14 @@ var r2: new (x: string) => A = B; // error > : ^^^^^ ^^ ^^^^^ >x : string > : ^^^^^^ ->B : typeof B -> : ^^^^^^^^ +>B : new (x: string) => A +> : ^^^^^ ^^ ^^^^^ var r3: typeof A = C; // ok >r3 : typeof A > : ^^^^^^^^ >A : typeof A > : ^^^^^^^^ ->C : typeof C +>C : typeof A > : ^^^^^^^^ diff --git a/tests/baselines/reference/classWithEmptyBody.types b/tests/baselines/reference/classWithEmptyBody.types index fdb26fa0175fb..fb1c47c9d9438 100644 --- a/tests/baselines/reference/classWithEmptyBody.types +++ b/tests/baselines/reference/classWithEmptyBody.types @@ -13,8 +13,8 @@ var c: C; var o: {} = c; >o : {} > : ^^ ->c : C -> : ^ +>c : {} +> : ^^ c = 1; >c = 1 : 1 @@ -62,8 +62,8 @@ var d: D; var o: {} = d; >o : {} > : ^^ ->d : D -> : ^ +>d : {} +> : ^^ d = 1; >d = 1 : 1 diff --git a/tests/baselines/reference/classWithPrivateProperty.types b/tests/baselines/reference/classWithPrivateProperty.types index 13d42c35d0cfc..cc51fdbdf33ca 100644 --- a/tests/baselines/reference/classWithPrivateProperty.types +++ b/tests/baselines/reference/classWithPrivateProperty.types @@ -67,12 +67,12 @@ var c = new C(); var r1: string = c.x; >r1 : string > : ^^^^^^ ->c.x : any -> : ^^^ +>c.x : string +> : ^^^^^^ >c : C > : ^ ->x : any -> : ^^^ +>x : string +> : ^^^^^^ var r2: string = c.a; >r2 : string @@ -121,12 +121,12 @@ var r5: string = c.d(); var r6: string = C.e; >r6 : string > : ^^^^^^ ->C.e : any -> : ^^^ +>C.e : string +> : ^^^^^^ >C : typeof C > : ^^^^^^^^ ->e : any -> : ^^^ +>e : string +> : ^^^^^^ var r7: string = C.f(); >r7 : string diff --git a/tests/baselines/reference/classWithProtectedProperty.types b/tests/baselines/reference/classWithProtectedProperty.types index 226ea9dff9ecc..f1913cfe99211 100644 --- a/tests/baselines/reference/classWithProtectedProperty.types +++ b/tests/baselines/reference/classWithProtectedProperty.types @@ -76,11 +76,12 @@ class D extends C { var r1: string = d.x; >r1 : string > : ^^^^^^ ->d.x : any +>d.x : string +> : ^^^^^^ >d : D > : ^ ->x : any -> : ^^^ +>x : string +> : ^^^^^^ var r2: string = d.a; >r2 : string @@ -129,11 +130,12 @@ class D extends C { var r6: string = C.e; >r6 : string > : ^^^^^^ ->C.e : any +>C.e : string +> : ^^^^^^ >C : typeof C > : ^^^^^^^^ ->e : any -> : ^^^ +>e : string +> : ^^^^^^ var r7: string = C.f(); >r7 : string diff --git a/tests/baselines/reference/classWithPublicProperty.types b/tests/baselines/reference/classWithPublicProperty.types index c390a26644ac9..5cca6d49907ec 100644 --- a/tests/baselines/reference/classWithPublicProperty.types +++ b/tests/baselines/reference/classWithPublicProperty.types @@ -64,11 +64,12 @@ var c = new C(); var r1: string = c.x; >r1 : string > : ^^^^^^ ->c.x : any +>c.x : string +> : ^^^^^^ >c : C > : ^ ->x : any -> : ^^^ +>x : string +> : ^^^^^^ var r2: string = c.a; >r2 : string @@ -117,11 +118,12 @@ var r5: string = c.d(); var r6: string = C.e; >r6 : string > : ^^^^^^ ->C.e : any +>C.e : string +> : ^^^^^^ >C : typeof C > : ^^^^^^^^ ->e : any -> : ^^^ +>e : string +> : ^^^^^^ var r7: string = C.f(); >r7 : string diff --git a/tests/baselines/reference/commaOperatorLeftSideUnused.types b/tests/baselines/reference/commaOperatorLeftSideUnused.types index cedcd7377fef3..13ce7c1c1f9b3 100644 --- a/tests/baselines/reference/commaOperatorLeftSideUnused.types +++ b/tests/baselines/reference/commaOperatorLeftSideUnused.types @@ -16,8 +16,8 @@ function fn() { let arr: any[] = []; >arr : any[] > : ^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : any[] +> : ^^^^^ switch(arr.length) { >arr.length : number diff --git a/tests/baselines/reference/commaOperatorOtherInvalidOperation.errors.txt b/tests/baselines/reference/commaOperatorOtherInvalidOperation.errors.txt index 5bf3000cb5a93..a610c5b2d6409 100644 --- a/tests/baselines/reference/commaOperatorOtherInvalidOperation.errors.txt +++ b/tests/baselines/reference/commaOperatorOtherInvalidOperation.errors.txt @@ -1,5 +1,5 @@ -commaOperatorOtherInvalidOperation.ts(6,5): error TS2322: Type 'string' is not assignable to type 'number'. -commaOperatorOtherInvalidOperation.ts(12,9): error TS2322: Type 'T2' is not assignable to type 'T1'. +commaOperatorOtherInvalidOperation.ts(6,30): error TS2322: Type 'string' is not assignable to type 'number'. +commaOperatorOtherInvalidOperation.ts(12,22): error TS2322: Type 'T2' is not assignable to type 'T1'. 'T1' could be instantiated with an arbitrary type which could be unrelated to 'T2'. @@ -10,7 +10,7 @@ commaOperatorOtherInvalidOperation.ts(12,9): error TS2322: Type 'T2' is not assi return x, y; } var resultIsString: number = foo(1, "123"); //error here - ~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. //TypeParameters @@ -18,7 +18,7 @@ commaOperatorOtherInvalidOperation.ts(12,9): error TS2322: Type 'T2' is not assi var x: T1; var y: T2; var result: T1 = (x, y); //error here - ~~~~~~ + ~~~~~~ !!! error TS2322: Type 'T2' is not assignable to type 'T1'. !!! error TS2322: 'T1' could be instantiated with an arbitrary type which could be unrelated to 'T2'. !!! related TS2208 commaOperatorOtherInvalidOperation.ts:9:19: This type parameter might need an `extends T1` constraint. diff --git a/tests/baselines/reference/commaOperatorOtherInvalidOperation.types b/tests/baselines/reference/commaOperatorOtherInvalidOperation.types index 251c2944dc8cc..633e21d159ae6 100644 --- a/tests/baselines/reference/commaOperatorOtherInvalidOperation.types +++ b/tests/baselines/reference/commaOperatorOtherInvalidOperation.types @@ -47,7 +47,7 @@ function foo1() { var result: T1 = (x, y); //error here >result : T1 > : ^^ ->(x, y) : T2 +>(x, y) : T1 > : ^^ >x, y : T2 > : ^^ diff --git a/tests/baselines/reference/commentsdoNotEmitComments.types b/tests/baselines/reference/commentsdoNotEmitComments.types index 2a976739e0d62..23e5b4af8285a 100644 --- a/tests/baselines/reference/commentsdoNotEmitComments.types +++ b/tests/baselines/reference/commentsdoNotEmitComments.types @@ -214,10 +214,10 @@ const enum color { red, green, blue } var shade: color = color.green; >shade : color > : ^^^^^ ->color.green : color.green -> : ^^^^^^^^^^^ +>color.green : color +> : ^^^^^ >color : typeof color > : ^^^^^^^^^^^^ ->green : color.green -> : ^^^^^^^^^^^ +>green : color +> : ^^^^^ diff --git a/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.types b/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.types index 80667ff4b8605..51220582c9405 100644 --- a/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.types +++ b/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.types @@ -45,8 +45,8 @@ var y: typeof foo.C1.s1 = false; > : ^^^^^^^^^^^^^ >s1 : boolean > : ^^^^^^^ ->false : false -> : ^^^^^ +>false : boolean +> : ^^^^^^^ var z: foo.M1.I2; >z : f.I2 diff --git a/tests/baselines/reference/commonTypeIntersection.errors.txt b/tests/baselines/reference/commonTypeIntersection.errors.txt index 99f2f28d04a07..50c1996d8c90d 100644 --- a/tests/baselines/reference/commonTypeIntersection.errors.txt +++ b/tests/baselines/reference/commonTypeIntersection.errors.txt @@ -1,8 +1,8 @@ -commonTypeIntersection.ts(2,5): error TS2322: Type '{ __typename?: "TypeTwo"; } & { a: boolean; }' is not assignable to type '{ __typename?: "TypeOne"; } & { a: boolean; }'. +commonTypeIntersection.ts(2,54): error TS2322: Type '{ __typename?: "TypeTwo"; } & { a: boolean; }' is not assignable to type '{ __typename?: "TypeOne"; } & { a: boolean; }'. Type '{ __typename?: "TypeTwo"; } & { a: boolean; }' is not assignable to type '{ __typename?: "TypeOne"; }'. Types of property '__typename' are incompatible. Type '"TypeTwo"' is not assignable to type '"TypeOne"'. -commonTypeIntersection.ts(4,5): error TS2322: Type '{ __typename?: "TypeTwo"; } & string' is not assignable to type '{ __typename?: "TypeOne"; } & string'. +commonTypeIntersection.ts(4,47): error TS2322: Type '{ __typename?: "TypeTwo"; } & string' is not assignable to type '{ __typename?: "TypeOne"; } & string'. Type '{ __typename?: "TypeTwo"; } & string' is not assignable to type '{ __typename?: "TypeOne"; }'. Types of property '__typename' are incompatible. Type '"TypeTwo"' is not assignable to type '"TypeOne"'. @@ -11,14 +11,14 @@ commonTypeIntersection.ts(4,5): error TS2322: Type '{ __typename?: "TypeTwo"; } ==== commonTypeIntersection.ts (2 errors) ==== declare let x1: { __typename?: 'TypeTwo' } & { a: boolean }; let y1: { __typename?: 'TypeOne' } & { a: boolean} = x1; // should error here - ~~ + ~~ !!! error TS2322: Type '{ __typename?: "TypeTwo"; } & { a: boolean; }' is not assignable to type '{ __typename?: "TypeOne"; } & { a: boolean; }'. !!! error TS2322: Type '{ __typename?: "TypeTwo"; } & { a: boolean; }' is not assignable to type '{ __typename?: "TypeOne"; }'. !!! error TS2322: Types of property '__typename' are incompatible. !!! error TS2322: Type '"TypeTwo"' is not assignable to type '"TypeOne"'. declare let x2: { __typename?: 'TypeTwo' } & string; let y2: { __typename?: 'TypeOne' } & string = x2; // should error here - ~~ + ~~ !!! error TS2322: Type '{ __typename?: "TypeTwo"; } & string' is not assignable to type '{ __typename?: "TypeOne"; } & string'. !!! error TS2322: Type '{ __typename?: "TypeTwo"; } & string' is not assignable to type '{ __typename?: "TypeOne"; }'. !!! error TS2322: Types of property '__typename' are incompatible. diff --git a/tests/baselines/reference/commonTypeIntersection.types b/tests/baselines/reference/commonTypeIntersection.types index 447530c1e1119..ffe751079ce91 100644 --- a/tests/baselines/reference/commonTypeIntersection.types +++ b/tests/baselines/reference/commonTypeIntersection.types @@ -16,7 +16,7 @@ let y1: { __typename?: 'TypeOne' } & { a: boolean} = x1; // should error here > : ^^^^^^^^^ >a : boolean > : ^^^^^^^ ->x1 : { __typename?: "TypeTwo"; } & { a: boolean; } +>x1 : { __typename?: "TypeOne"; } & { a: boolean; } > : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ declare let x2: { __typename?: 'TypeTwo' } & string; @@ -30,6 +30,6 @@ let y2: { __typename?: 'TypeOne' } & string = x2; // should error here > : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >__typename : "TypeOne" > : ^^^^^^^^^ ->x2 : { __typename?: "TypeTwo"; } & string +>x2 : { __typename?: "TypeOne"; } & string > : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/computedPropertyNamesContextualType10_ES5.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType10_ES5.errors.txt index 9ba99607f12f9..f9f263989c09b 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType10_ES5.errors.txt +++ b/tests/baselines/reference/computedPropertyNamesContextualType10_ES5.errors.txt @@ -1,4 +1,4 @@ -computedPropertyNamesContextualType10_ES5.ts(5,5): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. +computedPropertyNamesContextualType10_ES5.ts(5,12): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. 'number' index signatures are incompatible. Type 'string | number' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. @@ -10,11 +10,14 @@ computedPropertyNamesContextualType10_ES5.ts(5,5): error TS2322: Type '{ [x: num } var o: I = { - ~ + ~ + [+"foo"]: "", + ~~~~~~~~~~~~~~~~~ + [+"bar"]: 0 + ~~~~~~~~~~~~~~~ + } + ~ !!! error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. !!! error TS2322: 'number' index signatures are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. - [+"foo"]: "", - [+"bar"]: 0 - } \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType10_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType10_ES5.types index 61a30ed57039c..93dff1bb2083a 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType10_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType10_ES5.types @@ -10,8 +10,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"]: "", [+"bar"]: 0} : { [x: number]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"]: "", [+"bar"]: 0} : I +> : ^ [+"foo"]: "", >[+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType10_ES6.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType10_ES6.errors.txt index e3272a428ca8d..b59653bbb0686 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType10_ES6.errors.txt +++ b/tests/baselines/reference/computedPropertyNamesContextualType10_ES6.errors.txt @@ -1,4 +1,4 @@ -computedPropertyNamesContextualType10_ES6.ts(5,5): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. +computedPropertyNamesContextualType10_ES6.ts(5,12): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. 'number' index signatures are incompatible. Type 'string | number' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. @@ -10,11 +10,14 @@ computedPropertyNamesContextualType10_ES6.ts(5,5): error TS2322: Type '{ [x: num } var o: I = { - ~ + ~ + [+"foo"]: "", + ~~~~~~~~~~~~~~~~~ + [+"bar"]: 0 + ~~~~~~~~~~~~~~~ + } + ~ !!! error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. !!! error TS2322: 'number' index signatures are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. - [+"foo"]: "", - [+"bar"]: 0 - } \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType10_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType10_ES6.types index f00cf37e94e58..ad7713e9c6abd 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType10_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType10_ES6.types @@ -10,8 +10,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"]: "", [+"bar"]: 0} : { [x: number]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"]: "", [+"bar"]: 0} : I +> : ^ [+"foo"]: "", >[+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.types index 8cc985710adb9..bed15fd1ed9e8 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.types @@ -17,8 +17,8 @@ interface I { var o: I = { >o : I > : ^ ->{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : { [x: string]: (y: string) => number; } -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : I +> : ^ ["" + 0](y) { return y.length; }, >["" + 0] : (y: string) => number diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.types index d076e6b788c64..8db379d522406 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.types @@ -17,8 +17,8 @@ interface I { var o: I = { >o : I > : ^ ->{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : { [x: string]: (y: string) => number; } -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : I +> : ^ ["" + 0](y) { return y.length; }, >["" + 0] : (y: string) => number diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.types index 9dcee1facb3ed..659be0dcdfd50 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.types @@ -17,8 +17,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: number]: (y: string) => number; } -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : I +> : ^ [+"foo"](y) { return y.length; }, >[+"foo"] : (y: string) => number diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.types index e2f39802d91b2..a2f3cef4c6844 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.types @@ -17,8 +17,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: number]: (y: string) => number; } -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : I +> : ^ [+"foo"](y) { return y.length; }, >[+"foo"] : (y: string) => number diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.types index f2a37cbd84b83..c1b248b12ea1b 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.types @@ -12,8 +12,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: number]: (y: string) => number; } -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : I +> : ^ [+"foo"](y) { return y.length; }, >[+"foo"] : (y: string) => number diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.types index c090be8ca9033..199b2adf2c846 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.types @@ -12,8 +12,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: number]: (y: string) => number; } -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : I +> : ^ [+"foo"](y) { return y.length; }, >[+"foo"] : (y: string) => number diff --git a/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.types index d07dcfae4c60d..0459a8753cab5 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.types @@ -14,8 +14,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [""+"foo"]: "", [""+"bar"]: 0} : { [x: string]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [""+"foo"]: "", [""+"bar"]: 0} : I +> : ^ [""+"foo"]: "", >[""+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.types index 186012f39ae5c..c26daeb89d5b9 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.types @@ -14,8 +14,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [""+"foo"]: "", [""+"bar"]: 0} : { [x: string]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [""+"foo"]: "", [""+"bar"]: 0} : I +> : ^ [""+"foo"]: "", >[""+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.types index 6b7f32d96e14c..498aefe0eeb04 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.types @@ -14,8 +14,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"]: "", [+"bar"]: 0} : { [x: number]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"]: "", [+"bar"]: 0} : I +> : ^ [+"foo"]: "", >[+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.types index 4c3b21f37ad9a..b9535412e1322 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.types @@ -14,8 +14,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"]: "", [+"bar"]: 0} : { [x: number]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"]: "", [+"bar"]: 0} : I +> : ^ [+"foo"]: "", >[+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType8_ES5.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType8_ES5.errors.txt index b6bab33df600f..f647a77c7ccef 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType8_ES5.errors.txt +++ b/tests/baselines/reference/computedPropertyNamesContextualType8_ES5.errors.txt @@ -1,4 +1,4 @@ -computedPropertyNamesContextualType8_ES5.ts(6,5): error TS2322: Type '{ [x: string]: string | number; }' is not assignable to type 'I'. +computedPropertyNamesContextualType8_ES5.ts(6,12): error TS2322: Type '{ [x: string]: string | number; }' is not assignable to type 'I'. 'string' index signatures are incompatible. Type 'string | number' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. @@ -11,11 +11,14 @@ computedPropertyNamesContextualType8_ES5.ts(6,5): error TS2322: Type '{ [x: stri } var o: I = { - ~ + ~ + [""+"foo"]: "", + ~~~~~~~~~~~~~~~~~~~ + [""+"bar"]: 0 + ~~~~~~~~~~~~~~~~~ + } + ~ !!! error TS2322: Type '{ [x: string]: string | number; }' is not assignable to type 'I'. !!! error TS2322: 'string' index signatures are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. - [""+"foo"]: "", - [""+"bar"]: 0 - } \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType8_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType8_ES5.types index 19b2f8f206895..f061ec271afb4 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType8_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType8_ES5.types @@ -14,8 +14,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [""+"foo"]: "", [""+"bar"]: 0} : { [x: string]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [""+"foo"]: "", [""+"bar"]: 0} : I +> : ^ [""+"foo"]: "", >[""+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType8_ES6.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType8_ES6.errors.txt index b95fca7878b4b..776f3dc82cdf4 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType8_ES6.errors.txt +++ b/tests/baselines/reference/computedPropertyNamesContextualType8_ES6.errors.txt @@ -1,4 +1,4 @@ -computedPropertyNamesContextualType8_ES6.ts(6,5): error TS2322: Type '{ [x: string]: string | number; }' is not assignable to type 'I'. +computedPropertyNamesContextualType8_ES6.ts(6,12): error TS2322: Type '{ [x: string]: string | number; }' is not assignable to type 'I'. 'string' index signatures are incompatible. Type 'string | number' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. @@ -11,11 +11,14 @@ computedPropertyNamesContextualType8_ES6.ts(6,5): error TS2322: Type '{ [x: stri } var o: I = { - ~ + ~ + [""+"foo"]: "", + ~~~~~~~~~~~~~~~~~~~ + [""+"bar"]: 0 + ~~~~~~~~~~~~~~~~~ + } + ~ !!! error TS2322: Type '{ [x: string]: string | number; }' is not assignable to type 'I'. !!! error TS2322: 'string' index signatures are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. - [""+"foo"]: "", - [""+"bar"]: 0 - } \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType8_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType8_ES6.types index 56021f10b3ea0..32453ef15e802 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType8_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType8_ES6.types @@ -14,8 +14,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [""+"foo"]: "", [""+"bar"]: 0} : { [x: string]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [""+"foo"]: "", [""+"bar"]: 0} : I +> : ^ [""+"foo"]: "", >[""+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType9_ES5.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType9_ES5.errors.txt index bee561e2e2cd8..375ec3ca8bf3c 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType9_ES5.errors.txt +++ b/tests/baselines/reference/computedPropertyNamesContextualType9_ES5.errors.txt @@ -1,4 +1,4 @@ -computedPropertyNamesContextualType9_ES5.ts(6,5): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. +computedPropertyNamesContextualType9_ES5.ts(6,12): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. 'number' and 'string' index signatures are incompatible. Type 'string | number' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. @@ -11,11 +11,14 @@ computedPropertyNamesContextualType9_ES5.ts(6,5): error TS2322: Type '{ [x: numb } var o: I = { - ~ + ~ + [+"foo"]: "", + ~~~~~~~~~~~~~~~~~ + [+"bar"]: 0 + ~~~~~~~~~~~~~~~ + } + ~ !!! error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. !!! error TS2322: 'number' and 'string' index signatures are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. - [+"foo"]: "", - [+"bar"]: 0 - } \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType9_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType9_ES5.types index cba8d1bea50f1..352deb60269f2 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType9_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType9_ES5.types @@ -14,8 +14,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"]: "", [+"bar"]: 0} : { [x: number]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"]: "", [+"bar"]: 0} : I +> : ^ [+"foo"]: "", >[+"foo"] : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType9_ES6.errors.txt b/tests/baselines/reference/computedPropertyNamesContextualType9_ES6.errors.txt index 3e718caa9df11..183e014e2d972 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType9_ES6.errors.txt +++ b/tests/baselines/reference/computedPropertyNamesContextualType9_ES6.errors.txt @@ -1,4 +1,4 @@ -computedPropertyNamesContextualType9_ES6.ts(6,5): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. +computedPropertyNamesContextualType9_ES6.ts(6,12): error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. 'number' and 'string' index signatures are incompatible. Type 'string | number' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. @@ -11,11 +11,14 @@ computedPropertyNamesContextualType9_ES6.ts(6,5): error TS2322: Type '{ [x: numb } var o: I = { - ~ + ~ + [+"foo"]: "", + ~~~~~~~~~~~~~~~~~ + [+"bar"]: 0 + ~~~~~~~~~~~~~~~ + } + ~ !!! error TS2322: Type '{ [x: number]: string | number; }' is not assignable to type 'I'. !!! error TS2322: 'number' and 'string' index signatures are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. - [+"foo"]: "", - [+"bar"]: 0 - } \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/computedPropertyNamesContextualType9_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType9_ES6.types index edc6726a13ca7..2bc6e91f3f244 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType9_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType9_ES6.types @@ -14,8 +14,8 @@ interface I { var o: I = { >o : I > : ^ ->{ [+"foo"]: "", [+"bar"]: 0} : { [x: number]: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [+"foo"]: "", [+"bar"]: 0} : I +> : ^ [+"foo"]: "", >[+"foo"] : string diff --git a/tests/baselines/reference/conditionalExpression1.errors.txt b/tests/baselines/reference/conditionalExpression1.errors.txt index b3cc20d08e1de..3a97a054823b0 100644 --- a/tests/baselines/reference/conditionalExpression1.errors.txt +++ b/tests/baselines/reference/conditionalExpression1.errors.txt @@ -1,9 +1,9 @@ -conditionalExpression1.ts(1,5): error TS2322: Type 'string | number' is not assignable to type 'boolean'. +conditionalExpression1.ts(1,18): error TS2322: Type 'string | number' is not assignable to type 'boolean'. Type 'number' is not assignable to type 'boolean'. ==== conditionalExpression1.ts (1 errors) ==== var x: boolean = (true ? 1 : ""); // should be an error - ~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'string | number' is not assignable to type 'boolean'. !!! error TS2322: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/conditionalExpression1.types b/tests/baselines/reference/conditionalExpression1.types index fc07ae1ff5870..dbef8d1c392bf 100644 --- a/tests/baselines/reference/conditionalExpression1.types +++ b/tests/baselines/reference/conditionalExpression1.types @@ -4,8 +4,8 @@ var x: boolean = (true ? 1 : ""); // should be an error >x : boolean > : ^^^^^^^ ->(true ? 1 : "") : "" | 1 -> : ^^^^^^ +>(true ? 1 : "") : boolean +> : ^^^^^^^ >true ? 1 : "" : "" | 1 > : ^^^^^^ >true : true diff --git a/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.types b/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.types index 90ff05a5b8a6f..304efbfa2a4c8 100644 --- a/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.types +++ b/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.types @@ -150,8 +150,8 @@ var result4: (t: A) => any = true ? (m) => m.propertyX : (n) => n.propertyA; > : ^ ^^ ^^^^^ >t : A > : ^ ->true ? (m) => m.propertyX : (n) => n.propertyA : (m: A) => any -> : ^ ^^^^^^^^^^^ +>true ? (m) => m.propertyX : (n) => n.propertyA : (t: A) => any +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(m) => m.propertyX : (m: A) => any @@ -285,8 +285,8 @@ var result8: (t: A) => any = true ? (m) => m.propertyA : (n) => n.propertyX; > : ^ ^^ ^^^^^ >t : A > : ^ ->true ? (m) => m.propertyA : (n) => n.propertyX : (n: A) => any -> : ^ ^^^^^^^^^^^ +>true ? (m) => m.propertyA : (n) => n.propertyX : (t: A) => any +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(m) => m.propertyA : (m: A) => number @@ -314,8 +314,8 @@ var result8: (t: A) => any = true ? (m) => m.propertyA : (n) => n.propertyX; var resultIsX3: X = true ? a : b; >resultIsX3 : X > : ^ ->true ? a : b : A | B -> : ^^^^^ +>true ? a : b : X +> : ^ >true : true > : ^^^^ >a : A @@ -328,8 +328,8 @@ var result10: (t: X) => any = true ? (m) => m.propertyX1 : (n) => n.propertyX2; > : ^ ^^ ^^^^^ >t : X > : ^ ->true ? (m) => m.propertyX1 : (n) => n.propertyX2 : ((m: X) => number) | ((n: X) => string) -> : ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +>true ? (m) => m.propertyX1 : (n) => n.propertyX2 : (t: X) => any +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(m) => m.propertyX1 : (m: X) => number @@ -356,8 +356,7 @@ var result10: (t: X) => any = true ? (m) => m.propertyX1 : (n) => n.propertyX2; //Expr1 and Expr2 are literals var result11: any = true ? 1 : 'string'; >result11 : any ->true ? 1 : 'string' : "string" | 1 -> : ^^^^^^^^^^^^ +>true ? 1 : 'string' : any >true : true > : ^^^^ >1 : 1 diff --git a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt index 07951773c545f..7b150e3a65ac8 100644 --- a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt +++ b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt @@ -1,14 +1,14 @@ -conditionalOperatorWithoutIdenticalBCT.ts(15,5): error TS2322: Type 'A | B' is not assignable to type 'A'. +conditionalOperatorWithoutIdenticalBCT.ts(15,18): error TS2322: Type 'A | B' is not assignable to type 'A'. Property 'propertyA' is missing in type 'B' but required in type 'A'. -conditionalOperatorWithoutIdenticalBCT.ts(16,5): error TS2322: Type 'A | B' is not assignable to type 'B'. +conditionalOperatorWithoutIdenticalBCT.ts(16,18): error TS2322: Type 'A | B' is not assignable to type 'B'. Property 'propertyB' is missing in type 'A' but required in type 'B'. -conditionalOperatorWithoutIdenticalBCT.ts(19,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. +conditionalOperatorWithoutIdenticalBCT.ts(19,33): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. Type '(n: X) => string' is not assignable to type '(t: X) => number'. Type 'string' is not assignable to type 'number'. -conditionalOperatorWithoutIdenticalBCT.ts(20,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. +conditionalOperatorWithoutIdenticalBCT.ts(20,33): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. Type '(m: X) => number' is not assignable to type '(t: X) => string'. Type 'number' is not assignable to type 'string'. -conditionalOperatorWithoutIdenticalBCT.ts(21,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. +conditionalOperatorWithoutIdenticalBCT.ts(21,34): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. Type '(m: X) => number' is not assignable to type '(t: X) => boolean'. Type 'number' is not assignable to type 'boolean'. @@ -29,29 +29,29 @@ conditionalOperatorWithoutIdenticalBCT.ts(21,5): error TS2322: Type '((m: X) => //Be contextually typed and and bct is not identical, results in errors that union type is not assignable to target var result2: A = true ? a : b; - ~~~~~~~ + ~~~~~~~~~~~~ !!! error TS2322: Type 'A | B' is not assignable to type 'A'. !!! error TS2322: Property 'propertyA' is missing in type 'B' but required in type 'A'. !!! related TS2728 conditionalOperatorWithoutIdenticalBCT.ts:3:21: 'propertyA' is declared here. var result3: B = true ? a : b; - ~~~~~~~ + ~~~~~~~~~~~~ !!! error TS2322: Type 'A | B' is not assignable to type 'B'. !!! error TS2322: Property 'propertyB' is missing in type 'A' but required in type 'B'. !!! related TS2728 conditionalOperatorWithoutIdenticalBCT.ts:4:21: 'propertyB' is declared here. var result31: A | B = true ? a : b; var result4: (t: X) => number = true ? (m) => m.propertyX1 : (n) => n.propertyX2; - ~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. !!! error TS2322: Type '(n: X) => string' is not assignable to type '(t: X) => number'. !!! error TS2322: Type 'string' is not assignable to type 'number'. var result5: (t: X) => string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; - ~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. !!! error TS2322: Type '(m: X) => number' is not assignable to type '(t: X) => string'. !!! error TS2322: Type 'number' is not assignable to type 'string'. var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX2; - ~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. !!! error TS2322: Type '(m: X) => number' is not assignable to type '(t: X) => boolean'. !!! error TS2322: Type 'number' is not assignable to type 'boolean'. diff --git a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.types b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.types index 66db969c09e64..adc2ca1fe730f 100644 --- a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.types +++ b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.types @@ -67,8 +67,8 @@ var result1 = true ? a : b; var result2: A = true ? a : b; >result2 : A > : ^ ->true ? a : b : A | B -> : ^^^^^ +>true ? a : b : A +> : ^ >true : true > : ^^^^ >a : A @@ -79,8 +79,8 @@ var result2: A = true ? a : b; var result3: B = true ? a : b; >result3 : B > : ^ ->true ? a : b : A | B -> : ^^^^^ +>true ? a : b : B +> : ^ >true : true > : ^^^^ >a : A @@ -105,8 +105,8 @@ var result4: (t: X) => number = true ? (m) => m.propertyX1 : (n) => n.propertyX2 > : ^ ^^ ^^^^^ >t : X > : ^ ->true ? (m) => m.propertyX1 : (n) => n.propertyX2 : ((m: X) => number) | ((n: X) => string) -> : ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +>true ? (m) => m.propertyX1 : (n) => n.propertyX2 : (t: X) => number +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(m) => m.propertyX1 : (m: X) => number @@ -135,8 +135,8 @@ var result5: (t: X) => string = true ? (m) => m.propertyX1 : (n) => n.propertyX2 > : ^ ^^ ^^^^^ >t : X > : ^ ->true ? (m) => m.propertyX1 : (n) => n.propertyX2 : ((m: X) => number) | ((n: X) => string) -> : ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +>true ? (m) => m.propertyX1 : (n) => n.propertyX2 : (t: X) => string +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(m) => m.propertyX1 : (m: X) => number @@ -165,8 +165,8 @@ var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX > : ^ ^^ ^^^^^ >t : X > : ^ ->true ? (m) => m.propertyX1 : (n) => n.propertyX2 : ((m: X) => number) | ((n: X) => string) -> : ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +>true ? (m) => m.propertyX1 : (n) => n.propertyX2 : (t: X) => boolean +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(m) => m.propertyX1 : (m: X) => number @@ -195,8 +195,8 @@ var result61: (t: X) => number| string = true ? (m) => m.propertyX1 : (n) => n.p > : ^ ^^ ^^^^^ >t : X > : ^ ->true ? (m) => m.propertyX1 : (n) => n.propertyX2 : ((m: X) => number) | ((n: X) => string) -> : ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +>true ? (m) => m.propertyX1 : (n) => n.propertyX2 : (t: X) => number | string +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(m) => m.propertyX1 : (m: X) => number diff --git a/tests/baselines/reference/conditionalTypes1.types b/tests/baselines/reference/conditionalTypes1.types index 3aac0bf578434..dc4a3608e7ada 100644 --- a/tests/baselines/reference/conditionalTypes1.types +++ b/tests/baselines/reference/conditionalTypes1.types @@ -737,8 +737,8 @@ function f21(x: T, y: ZeroOf) { let z1: number | string = y; >z1 : string | number > : ^^^^^^^^^^^^^^^ ->y : "" | 0 -> : ^^^^^^ +>y : string | number +> : ^^^^^^^^^^^^^^^ let z2: 0 | "" = y; >z2 : "" | 0 diff --git a/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types b/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types index 0fbd4d029befd..b6e56e138ba11 100644 --- a/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types +++ b/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types @@ -24,8 +24,8 @@ function fn2(x: Exclude) { var y: T = x; >y : T > : ^ ->x : Exclude -> : ^^^^^^^^^^^^^^^^^ +>x : T +> : ^ x = y; >x = y : T @@ -59,8 +59,8 @@ function fn4(x: Extract) { var y: T = x; >y : T > : ^ ->x : Extract -> : ^^^^^^^^^^^^^ +>x : T +> : ^ x = y; >x = y : T @@ -106,8 +106,8 @@ function fn6(x: ExcludeWithDefault) { var y: T = x; >y : T > : ^ ->x : ExcludeWithDefault -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : T +> : ^ x = y; >x = y : T @@ -141,8 +141,8 @@ function fn8(x: ExtractWithDefault) { var y: T = x; >y : T > : ^ ->x : ExtractWithDefault -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : T +> : ^ x = y; >x = y : T @@ -180,8 +180,8 @@ function fn10(x: TemplatedConditional) { var y: T = x; >y : T > : ^ ->x : TemplatedConditional -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : T +> : ^ x = y; >x = y : T @@ -215,8 +215,8 @@ function fn12(x: TemplatedConditional) { var y: T = x; >y : T > : ^ ->x : TemplatedConditional -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : T +> : ^ x = y; >x = y : T diff --git a/tests/baselines/reference/constDeclarations-scopes.types b/tests/baselines/reference/constDeclarations-scopes.types index 34f879f04a189..7f00f4e6325a3 100644 --- a/tests/baselines/reference/constDeclarations-scopes.types +++ b/tests/baselines/reference/constDeclarations-scopes.types @@ -307,8 +307,8 @@ switch (0) { var b: boolean = c; >b : boolean > : ^^^^^^^ ->c : false -> : ^^^^^ +>c : boolean +> : ^^^^^^^ } } @@ -406,8 +406,8 @@ module m { var b2: boolean = c; >b2 : boolean > : ^^^^^^^ ->c : false -> : ^^^^^ +>c : boolean +> : ^^^^^^^ } } diff --git a/tests/baselines/reference/constEnumPropertyAccess1.types b/tests/baselines/reference/constEnumPropertyAccess1.types index f729e35aeca16..b7631c0f96497 100644 --- a/tests/baselines/reference/constEnumPropertyAccess1.types +++ b/tests/baselines/reference/constEnumPropertyAccess1.types @@ -51,8 +51,8 @@ var o: { > : ^^^^^^ } = { ->{ 1: true } : { 1: true; } -> : ^^^^^^^^^^^^ +>{ 1: true } : { [idx: number]: boolean; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1: true >1 : true diff --git a/tests/baselines/reference/constructorAsType.errors.txt b/tests/baselines/reference/constructorAsType.errors.txt index f48fa929cb2f2..17346ad86ff5e 100644 --- a/tests/baselines/reference/constructorAsType.errors.txt +++ b/tests/baselines/reference/constructorAsType.errors.txt @@ -1,10 +1,10 @@ -constructorAsType.ts(1,5): error TS2322: Type '() => { name: string; }' is not assignable to type 'new () => { name: string; }'. +constructorAsType.ts(1,40): error TS2322: Type '() => { name: string; }' is not assignable to type 'new () => { name: string; }'. Type '() => { name: string; }' provides no match for the signature 'new (): { name: string; }'. ==== constructorAsType.ts (1 errors) ==== var Person:new () => {name: string;} = function () {return {name:"joe"};}; - ~~~~~~ + ~~~~~~~~ !!! error TS2322: Type '() => { name: string; }' is not assignable to type 'new () => { name: string; }'. !!! error TS2322: Type '() => { name: string; }' provides no match for the signature 'new (): { name: string; }'. diff --git a/tests/baselines/reference/constructorAsType.types b/tests/baselines/reference/constructorAsType.types index 878f3266b0ece..4035e16eb3084 100644 --- a/tests/baselines/reference/constructorAsType.types +++ b/tests/baselines/reference/constructorAsType.types @@ -6,8 +6,8 @@ var Person:new () => {name: string;} = function () {return {name:"joe"};}; > : ^^^^^^^^^^ >name : string > : ^^^^^^ ->function () {return {name:"joe"};} : () => { name: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>function () {return {name:"joe"};} : new () => { name: string; } +> : ^^^^^^^^^^ >{name:"joe"} : { name: string; } > : ^^^^^^^^^^^^^^^^^ >name : string diff --git a/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.types b/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.types index 1732ef9e66df6..45c851f2cea68 100644 --- a/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.types +++ b/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.types @@ -61,8 +61,8 @@ module TypeScriptAllInOne { var retValue: number = 0; >retValue : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ retValue = bfs.VARIABLES(); >retValue = bfs.VARIABLES() : number @@ -822,8 +822,8 @@ module TypeScriptAllInOne { var xx: IF = c; >xx : IF > : ^^ ->c : CLASS -> : ^^^^^ +>c : IF +> : ^^ retVal += catch .Property; >retVal += : any diff --git a/tests/baselines/reference/contextualOverloadListFromArrayUnion.types b/tests/baselines/reference/contextualOverloadListFromArrayUnion.types index 77298efc245ef..61d52800bd10d 100644 --- a/tests/baselines/reference/contextualOverloadListFromArrayUnion.types +++ b/tests/baselines/reference/contextualOverloadListFromArrayUnion.types @@ -126,8 +126,8 @@ export function series(tasks: Task[], callback: Callback): void { let results: T[] = [] >results : T[] > : ^^^ ->[] : never[] -> : ^^^^^^^ +>[] : T[] +> : ^^^ function next() { >next : () => void diff --git a/tests/baselines/reference/contextualSigInstantiationRestParams.types b/tests/baselines/reference/contextualSigInstantiationRestParams.types index ba478ebb4f885..a9109a4164e04 100644 --- a/tests/baselines/reference/contextualSigInstantiationRestParams.types +++ b/tests/baselines/reference/contextualSigInstantiationRestParams.types @@ -20,6 +20,6 @@ var sig: typeof contextual = toInstantiate; > : ^^^^ ^^ ^^^^^ >contextual : (...s: string[]) => string > : ^^^^ ^^ ^^^^^ ->toInstantiate : (a?: A, b?: B) => B -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +>toInstantiate : (...s: string[]) => string +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/contextualThisType.types b/tests/baselines/reference/contextualThisType.types index 8104ea461204c..7deb38a6340c2 100644 --- a/tests/baselines/reference/contextualThisType.types +++ b/tests/baselines/reference/contextualThisType.types @@ -15,8 +15,8 @@ interface Y extends X { var x: Y = { >x : Y > : ^ ->{ a(p) { return p; }} : { a(p: Y): Y; } -> : ^^^^ ^^^^^^^^^^ +>{ a(p) { return p; }} : Y +> : ^ a(p) { >a : (p: Y) => Y diff --git a/tests/baselines/reference/contextualTypeAny.errors.txt b/tests/baselines/reference/contextualTypeAny.errors.txt index 0b5d3b6687aaf..e4e295f32e839 100644 --- a/tests/baselines/reference/contextualTypeAny.errors.txt +++ b/tests/baselines/reference/contextualTypeAny.errors.txt @@ -1,12 +1,15 @@ -contextualTypeAny.ts(3,38): error TS2322: Type 'string' is not assignable to type 'number'. +contextualTypeAny.ts(3,36): error TS2322: Type '{ p: string; q: any; }' is not assignable to type '{ [s: string]: number; }'. + Property 'p' is incompatible with index signature. + Type 'string' is not assignable to type 'number'. ==== contextualTypeAny.ts (1 errors) ==== var x: any; var obj: { [s: string]: number } = { p: "", q: x }; - ~ -!!! error TS2322: Type 'string' is not assignable to type 'number'. -!!! related TS6501 contextualTypeAny.ts:3:12: The expected type comes from this index signature. + ~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ p: string; q: any; }' is not assignable to type '{ [s: string]: number; }'. +!!! error TS2322: Property 'p' is incompatible with index signature. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var arr: number[] = ["", x]; \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypeAny.types b/tests/baselines/reference/contextualTypeAny.types index 83d0ea51a4489..c5bf8cf43089a 100644 --- a/tests/baselines/reference/contextualTypeAny.types +++ b/tests/baselines/reference/contextualTypeAny.types @@ -10,8 +10,8 @@ var obj: { [s: string]: number } = { p: "", q: x }; > : ^^^^^^^^^^^^^^^^^^^^^^^^ >s : string > : ^^^^^^ ->{ p: "", q: x } : { p: string; q: any; } -> : ^^^^^^^^^^^^^^^^^^^^^^ +>{ p: "", q: x } : { [s: string]: number; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >p : string > : ^^^^^^ >"" : "" @@ -24,8 +24,8 @@ var obj: { [s: string]: number } = { p: "", q: x }; var arr: number[] = ["", x]; >arr : number[] > : ^^^^^^^^ ->["", x] : any[] -> : ^^^^^ +>["", x] : number[] +> : ^^^^^^^^ >"" : "" > : ^^ >x : any diff --git a/tests/baselines/reference/contextualTypeArrayReturnType.types b/tests/baselines/reference/contextualTypeArrayReturnType.types index 0aaae3fa2d542..b5f92d4ae1d01 100644 --- a/tests/baselines/reference/contextualTypeArrayReturnType.types +++ b/tests/baselines/reference/contextualTypeArrayReturnType.types @@ -24,8 +24,8 @@ interface Transform3D { var style: IBookStyle = { >style : IBookStyle > : ^^^^^^^^^^ ->{ initialLeftPageTransforms: (width: number) => { return [ {'ry': null } ]; }} : { initialLeftPageTransforms: (width: number) => { ry: any; }[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ initialLeftPageTransforms: (width: number) => { return [ {'ry': null } ]; }} : IBookStyle +> : ^^^^^^^^^^ initialLeftPageTransforms: (width: number) => { >initialLeftPageTransforms : (width: number) => { ry: any; }[] diff --git a/tests/baselines/reference/contextualTypeShouldBeLiteral.types b/tests/baselines/reference/contextualTypeShouldBeLiteral.types index 3688ae417f3c1..0356d115bf059 100644 --- a/tests/baselines/reference/contextualTypeShouldBeLiteral.types +++ b/tests/baselines/reference/contextualTypeShouldBeLiteral.types @@ -184,8 +184,8 @@ interface Y3 { let xy: X3 | Y3 = { >xy : X3 | Y3 > : ^^^^^^^ ->{ type: 'y', value: 11, ytra: 12} : { type: "y"; value: 11; ytra: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ type: 'y', value: 11, ytra: 12} : X3 | Y3 +> : ^^^^^^^ type: 'y', >type : "y" @@ -208,8 +208,8 @@ let xy: X3 | Y3 = { }; xy; ->xy : Y3 -> : ^^ +>xy : X3 | Y3 +> : ^^^^^^^ interface LikeA { @@ -251,8 +251,8 @@ interface LikeB { let xyz: LikeA | LikeB = { >xyz : LikeA | LikeB > : ^^^^^^^^^^^^^ ->{ x: 'x', y: 'y', value: "foo", method() { this; this.x; this.y; this.value; }} : { x: "x"; y: "y"; value: string; method(): void; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 'x', y: 'y', value: "foo", method() { this; this.x; this.y; this.value; }} : LikeA | LikeB +> : ^^^^^^^^^^^^^ x: 'x', >x : "x" @@ -307,8 +307,8 @@ let xyz: LikeA | LikeB = { }; xyz; ->xyz : LikeA -> : ^^^^^ +>xyz : LikeA | LikeB +> : ^^^^^^^^^^^^^ // Repro from #29168 diff --git a/tests/baselines/reference/contextualTypeWithTuple.errors.txt b/tests/baselines/reference/contextualTypeWithTuple.errors.txt index 44c9ac778efe6..cc553a1ce06ac 100644 --- a/tests/baselines/reference/contextualTypeWithTuple.errors.txt +++ b/tests/baselines/reference/contextualTypeWithTuple.errors.txt @@ -1,11 +1,11 @@ -contextualTypeWithTuple.ts(3,5): error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. +contextualTypeWithTuple.ts(3,38): error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. Source has 3 element(s) but target allows only 2. contextualTypeWithTuple.ts(15,1): error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. Source has 3 element(s) but target allows only 2. contextualTypeWithTuple.ts(18,17): error TS2741: Property 'a' is missing in type '{}' but required in type '{ a: string; }'. contextualTypeWithTuple.ts(19,1): error TS2322: Type '[number, string]' is not assignable to type '[number, string, boolean]'. Source has 2 element(s) but target requires 3. -contextualTypeWithTuple.ts(20,5): error TS2322: Type '[string, string, number]' is not assignable to type '[string, string]'. +contextualTypeWithTuple.ts(20,37): error TS2322: Type '[string, string, number]' is not assignable to type '[string, string]'. Source has 3 element(s) but target allows only 2. contextualTypeWithTuple.ts(23,1): error TS2322: Type '[C, string | number, D]' is not assignable to type '[C, string | number]'. Source has 3 element(s) but target allows only 2. @@ -21,7 +21,7 @@ contextualTypeWithTuple.ts(25,1): error TS2322: Type '[number, string | number]' // no error var numStrTuple: [number, string] = [5, "hello"]; var numStrTuple2: [number, string] = [5, "foo", true]; - ~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~ !!! error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. !!! error TS2322: Source has 3 element(s) but target allows only 2. var numStrBoolTuple: [number, string, boolean] = [5, "foo", true]; @@ -50,7 +50,7 @@ contextualTypeWithTuple.ts(25,1): error TS2322: Type '[number, string | number]' !!! error TS2322: Type '[number, string]' is not assignable to type '[number, string, boolean]'. !!! error TS2322: Source has 2 element(s) but target requires 3. var strStrTuple: [string, string] = ["foo", "bar", 5]; - ~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '[string, string, number]' is not assignable to type '[string, string]'. !!! error TS2322: Source has 3 element(s) but target allows only 2. diff --git a/tests/baselines/reference/contextualTypeWithTuple.types b/tests/baselines/reference/contextualTypeWithTuple.types index af3f3025b8ca3..da86d66608f9a 100644 --- a/tests/baselines/reference/contextualTypeWithTuple.types +++ b/tests/baselines/reference/contextualTypeWithTuple.types @@ -15,8 +15,8 @@ var numStrTuple: [number, string] = [5, "hello"]; var numStrTuple2: [number, string] = [5, "foo", true]; >numStrTuple2 : [number, string] > : ^^^^^^^^^^^^^^^^ ->[5, "foo", true] : [number, string, boolean] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>[5, "foo", true] : [number, string] +> : ^^^^^^^^^^^^^^^^ >5 : 5 > : ^ >"foo" : "foo" @@ -27,8 +27,8 @@ var numStrTuple2: [number, string] = [5, "foo", true]; var numStrBoolTuple: [number, string, boolean] = [5, "foo", true]; >numStrBoolTuple : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->[5, "foo", true] : [number, string, true] -> : ^^^^^^^^^^^^^^^^^^^^^^ +>[5, "foo", true] : [number, string, boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >5 : 5 > : ^ >"foo" : "foo" @@ -42,7 +42,7 @@ var objNumTuple: [{ a: string }, number] = [{ a: "world" }, 5]; >a : string > : ^^^^^^ >[{ a: "world" }, 5] : [{ a: string; }, number] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^ >{ a: "world" } : { a: string; } > : ^^^^^^^^^^^^^^ >a : string @@ -55,8 +55,8 @@ var objNumTuple: [{ a: string }, number] = [{ a: "world" }, 5]; var strTupleTuple: [string, [number, {}]] = ["bar", [5, { x: 1, y: 1 }]]; >strTupleTuple : [string, [number, {}]] > : ^^^^^^^^^^^^^^^^^^^^^^ ->["bar", [5, { x: 1, y: 1 }]] : [string, [number, { x: number; y: number; }]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["bar", [5, { x: 1, y: 1 }]] : [string, [number, {}]] +> : ^^^^^^^^^^^^^^^^^^^^^^ >"bar" : "bar" > : ^^^^^ >[5, { x: 1, y: 1 }] : [number, { x: number; y: number; }] @@ -85,8 +85,8 @@ class D { } var unionTuple: [C, string | number] = [new C(), "foo"]; >unionTuple : [C, string | number] > : ^^^^^^^^^^^^^^^^^^^^ ->[new C(), "foo"] : [C, string] -> : ^^^^^^^^^^^ +>[new C(), "foo"] : [C, string | number] +> : ^^^^^^^^^^^^^^^^^^^^ >new C() : C > : ^ >C : typeof C @@ -97,8 +97,8 @@ var unionTuple: [C, string | number] = [new C(), "foo"]; var unionTuple1: [C, string | number] = [new C(), "foo"]; >unionTuple1 : [C, string | number] > : ^^^^^^^^^^^^^^^^^^^^ ->[new C(), "foo"] : [C, string] -> : ^^^^^^^^^^^ +>[new C(), "foo"] : [C, string | number] +> : ^^^^^^^^^^^^^^^^^^^^ >new C() : C > : ^ >C : typeof C @@ -109,8 +109,8 @@ var unionTuple1: [C, string | number] = [new C(), "foo"]; var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; >unionTuple2 : [C, string | number, D] > : ^^^^^^^^^^^^^^^^^^^^^^^ ->[new C(), "foo", new D()] : [C, string, D] -> : ^^^^^^^^^^^^^^ +>[new C(), "foo", new D()] : [C, string | number, D] +> : ^^^^^^^^^^^^^^^^^^^^^^^ >new C() : C > : ^ >C : typeof C @@ -125,8 +125,8 @@ var unionTuple2: [C, string | number, D] = [new C(), "foo", new D()]; var unionTuple3: [number, string| number] = [10, "foo"]; >unionTuple3 : [number, string | number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->[10, "foo"] : [number, string] -> : ^^^^^^^^^^^^^^^^ +>[10, "foo"] : [number, string | number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >10 : 10 > : ^^ >"foo" : "foo" @@ -172,8 +172,8 @@ numStrBoolTuple = numStrTuple; var strStrTuple: [string, string] = ["foo", "bar", 5]; >strStrTuple : [string, string] > : ^^^^^^^^^^^^^^^^ ->["foo", "bar", 5] : [string, string, number] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>["foo", "bar", 5] : [string, string] +> : ^^^^^^^^^^^^^^^^ >"foo" : "foo" > : ^^^^^ >"bar" : "bar" @@ -227,8 +227,8 @@ type fixed1 = test1 & { length: 2 } let var1: fixed1 = [0, 0] >var1 : fixed1 > : ^^^^^^ ->[0, 0] : [number, number] -> : ^^^^^^^^^^^^^^^^ +>[0, 0] : fixed1 +> : ^^^^^^ >0 : 0 > : ^ >0 : 0 diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.types b/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.types index d5470ad755e56..dce43cd0263b2 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.types +++ b/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.types @@ -44,8 +44,8 @@ interface IWithCallSignatures4 { var x: IWithNoCallSignatures | IWithCallSignatures = a => a.toString(); >x : IWithNoCallSignatures | IWithCallSignatures > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->a => a.toString() : (a: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +>a => a.toString() : IWithNoCallSignatures | IWithCallSignatures +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number > : ^^^^^^ >a.toString() : string @@ -61,8 +61,8 @@ var x: IWithNoCallSignatures | IWithCallSignatures = a => a.toString(); var x2: IWithCallSignatures | IWithCallSignatures2 = a => a.toString(); // Like iWithCallSignatures >x2 : IWithCallSignatures | IWithCallSignatures2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->a => a.toString() : (a: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +>a => a.toString() : IWithCallSignatures | IWithCallSignatures2 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number > : ^^^^^^ >a.toString() : string @@ -77,8 +77,8 @@ var x2: IWithCallSignatures | IWithCallSignatures2 = a => a.toString(); // Like var x2: IWithCallSignatures | IWithCallSignatures2 = a => a; // Like iWithCallSignatures2 >x2 : IWithCallSignatures | IWithCallSignatures2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->a => a : (a: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +>a => a : IWithCallSignatures | IWithCallSignatures2 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number > : ^^^^^^ >a : number @@ -88,8 +88,8 @@ var x2: IWithCallSignatures | IWithCallSignatures2 = a => a; // Like iWithCallSi var x3: IWithCallSignatures | IWithCallSignatures3 = a => /*here a should be any*/ a.toString(); >x3 : IWithCallSignatures | IWithCallSignatures3 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->a => /*here a should be any*/ a.toString() : (a: any) => any -> : ^ ^^^^^^^^^^^^^ +>a => /*here a should be any*/ a.toString() : IWithCallSignatures | IWithCallSignatures3 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : any >a.toString() : any >a.toString : any @@ -102,8 +102,8 @@ var x3: IWithCallSignatures | IWithCallSignatures3 = a => /*here a should be any var x4: IWithCallSignatures | IWithCallSignatures4 = a => /*here a should be any*/ a.toString(); >x4 : IWithCallSignatures | IWithCallSignatures4 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->a => /*here a should be any*/ a.toString() : (a: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +>a => /*here a should be any*/ a.toString() : IWithCallSignatures | IWithCallSignatures4 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number > : ^^^^^^ >a.toString() : string diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.types b/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.types index 7239654cafbb5..b134423136d29 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.types +++ b/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.types @@ -59,8 +59,8 @@ interface IWithNumberIndexSignature2 { var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { z: a => a }; // a should be number >x : IWithNoStringIndexSignature | IWithStringIndexSignature1 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ z: a => a } : { z: (a: number) => number; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ z: a => a } : IWithNoStringIndexSignature | IWithStringIndexSignature1 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >z : (a: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >a => a : (a: number) => number @@ -73,8 +73,8 @@ var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { z: a => a }; var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { foo: a => a }; // a should be number (because of index signature of IWithStringIndexSignature1) >x : IWithNoStringIndexSignature | IWithStringIndexSignature1 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ foo: a => a } : { foo: (a: number) => number; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ foo: a => a } : IWithNoStringIndexSignature | IWithStringIndexSignature1 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (a: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >a => a : (a: number) => number @@ -87,8 +87,8 @@ var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { foo: a => a var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { foo: "hello" }; >x : IWithNoStringIndexSignature | IWithStringIndexSignature1 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ foo: "hello" } : { foo: string; } -> : ^^^^^^^^^^^^^^^^ +>{ foo: "hello" } : IWithNoStringIndexSignature | IWithStringIndexSignature1 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : string > : ^^^^^^ >"hello" : "hello" @@ -97,8 +97,8 @@ var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { foo: "hello" var x2: IWithStringIndexSignature1 | IWithStringIndexSignature2 = { z: a => a.toString() }; // a should be number >x2 : IWithStringIndexSignature1 | IWithStringIndexSignature2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ z: a => a.toString() } : { z: (a: number) => string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ z: a => a.toString() } : IWithStringIndexSignature1 | IWithStringIndexSignature2 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >z : (a: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >a => a.toString() : (a: number) => string @@ -117,8 +117,8 @@ var x2: IWithStringIndexSignature1 | IWithStringIndexSignature2 = { z: a => a.to var x2: IWithStringIndexSignature1 | IWithStringIndexSignature2 = { z: a => a }; // a should be number >x2 : IWithStringIndexSignature1 | IWithStringIndexSignature2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ z: a => a } : { z: (a: number) => number; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ z: a => a } : IWithStringIndexSignature1 | IWithStringIndexSignature2 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >z : (a: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >a => a : (a: number) => number @@ -135,8 +135,8 @@ var x2: IWithStringIndexSignature1 | IWithStringIndexSignature2 = { z: a => a }; var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 1: a => a }; // a should be number >x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ 1: a => a } : { 1: (a: number) => number; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ 1: a => a } : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : (a: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >a => a : (a: number) => number @@ -149,8 +149,8 @@ var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 1: a => a } var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 0: a => a }; // a should be number (because of index signature of IWithNumberIndexSignature1) >x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ 0: a => a } : { 0: (a: number) => number; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ 0: a => a } : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : (a: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >a => a : (a: number) => number @@ -163,8 +163,8 @@ var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 0: a => a } var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 0: "hello" }; >x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ 0: "hello" } : { 0: string; } -> : ^^^^^^^^^^^^^^ +>{ 0: "hello" } : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : string > : ^^^^^^ >"hello" : "hello" @@ -173,8 +173,8 @@ var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 0: "hello" var x4: IWithNumberIndexSignature1 | IWithNumberIndexSignature2 = { 1: a => a.toString() }; // a should be number >x4 : IWithNumberIndexSignature1 | IWithNumberIndexSignature2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ 1: a => a.toString() } : { 1: (a: number) => string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ 1: a => a.toString() } : IWithNumberIndexSignature1 | IWithNumberIndexSignature2 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : (a: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >a => a.toString() : (a: number) => string @@ -193,8 +193,8 @@ var x4: IWithNumberIndexSignature1 | IWithNumberIndexSignature2 = { 1: a => a.to var x4: IWithNumberIndexSignature1 | IWithNumberIndexSignature2 = { 1: a => a }; // a should be number >x4 : IWithNumberIndexSignature1 | IWithNumberIndexSignature2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ 1: a => a } : { 1: (a: number) => number; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ 1: a => a } : IWithNumberIndexSignature1 | IWithNumberIndexSignature2 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : (a: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >a => a : (a: number) => number diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeMembers.types b/tests/baselines/reference/contextualTypeWithUnionTypeMembers.types index d3f6a07dc2755..699081591bcf2 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeMembers.types +++ b/tests/baselines/reference/contextualTypeWithUnionTypeMembers.types @@ -71,20 +71,20 @@ var i2: I2; var i1Ori2: I1 | I2 = i1; >i1Ori2 : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ ->i1 : I1 -> : ^^^^^^^^^^ +>i1 : I1 | I2 +> : ^^^^^^^^^^^^^^^^^^^^^^^ var i1Ori2: I1 | I2 = i2; >i1Ori2 : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ ->i2 : I2 -> : ^^^^^^^^^^ +>i2 : I1 | I2 +> : ^^^^^^^^^^^^^^^^^^^^^^^ var i1Ori2: I1 | I2 = { // Like i1 >i1Ori2 : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ ->{ // Like i1 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello",} : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI1: (a: string) => string; propertyOnlyInI1: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ // Like i1 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello",} : I1 | I2 +> : ^^^^^^^^^^^^^^^^^^^^^^^ commonPropertyType: "hello", >commonPropertyType : string @@ -132,8 +132,8 @@ var i1Ori2: I1 | I2 = { // Like i1 var i1Ori2: I1 | I2 = { // Like i2 >i1Ori2 : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ ->{ // Like i2 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI2: a => a, propertyOnlyInI2: "Hello",} : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI2: (a: string) => string; propertyOnlyInI2: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ // Like i2 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI2: a => a, propertyOnlyInI2: "Hello",} : I1 | I2 +> : ^^^^^^^^^^^^^^^^^^^^^^^ commonPropertyType: "hello", >commonPropertyType : string @@ -181,8 +181,8 @@ var i1Ori2: I1 | I2 = { // Like i2 var i1Ori2: I1 | I2 = { // Like i1 and i2 both >i1Ori2 : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ ->{ // Like i1 and i2 both commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", methodOnlyInI2: a => a, propertyOnlyInI2: "Hello",} : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI1: (a: string) => string; propertyOnlyInI1: string; methodOnlyInI2: (a: string) => string; propertyOnlyInI2: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ // Like i1 and i2 both commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", methodOnlyInI2: a => a, propertyOnlyInI2: "Hello",} : I1 | I2 +> : ^^^^^^^^^^^^^^^^^^^^^^^ commonPropertyType: "hello", >commonPropertyType : string @@ -247,8 +247,8 @@ var i1Ori2: I1 | I2 = { // Like i1 and i2 both var arrayI1OrI2: Array | I2> = [i1, i2, { // Like i1 >arrayI1OrI2 : (I1 | I2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->[i1, i2, { // Like i1 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", }, { // Like i2 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI2: a => a, propertyOnlyInI2: "Hello", }, { // Like i1 and i2 both commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", methodOnlyInI2: a => a, propertyOnlyInI2: "Hello", }] : (I1 | I2 | { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI1: (a: string) => string; propertyOnlyInI1: string; methodOnlyInI2: (a: string) => string; propertyOnlyInI2: string; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[i1, i2, { // Like i1 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", }, { // Like i2 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI2: a => a, propertyOnlyInI2: "Hello", }, { // Like i1 and i2 both commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", methodOnlyInI2: a => a, propertyOnlyInI2: "Hello", }] : (I1 | I2)[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >i1 : I1 > : ^^^^^^^^^^ >i2 : I2 @@ -446,20 +446,20 @@ var i21: I21; var i11Ori21: I11 | I21 = i11; >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->i11 : I11 -> : ^^^ +>i11 : I11 | I21 +> : ^^^^^^^^^ var i11Ori21: I11 | I21 = i21; >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->i21 : I21 -> : ^^^ +>i21 : I11 | I21 +> : ^^^^^^^^^ var i11Ori21: I11 | I21 = { >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->{ // Like i1 commonMethodDifferentReturnType: (a, b) => { var z = a.charAt(b); return z; }, commonPropertyDifferentType: "hello", } : { commonMethodDifferentReturnType: (a: string, b: number) => string; commonPropertyDifferentType: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ // Like i1 commonMethodDifferentReturnType: (a, b) => { var z = a.charAt(b); return z; }, commonPropertyDifferentType: "hello", } : I11 | I21 +> : ^^^^^^^^^ // Like i1 commonMethodDifferentReturnType: (a, b) => { @@ -501,8 +501,8 @@ var i11Ori21: I11 | I21 = { var i11Ori21: I11 | I21 = { >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->{ // Like i2 commonMethodDifferentReturnType: (a, b) => { var z = a.charCodeAt(b); return z; }, commonPropertyDifferentType: 10,} : { commonMethodDifferentReturnType: (a: string, b: number) => number; commonPropertyDifferentType: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ // Like i2 commonMethodDifferentReturnType: (a, b) => { var z = a.charCodeAt(b); return z; }, commonPropertyDifferentType: 10,} : I11 | I21 +> : ^^^^^^^^^ // Like i2 commonMethodDifferentReturnType: (a, b) => { diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt b/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt index 7d5047598b56a..cd1ef713886e8 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt +++ b/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt @@ -1,32 +1,34 @@ -contextualTypeWithUnionTypeObjectLiteral.ts(14,5): error TS2322: Type '{ prop: string | number; }' is not assignable to type '{ prop: string; } | { prop: number; }'. +contextualTypeWithUnionTypeObjectLiteral.ts(14,57): error TS2322: Type '{ prop: string | number; }' is not assignable to type '{ prop: string; } | { prop: number; }'. Type '{ prop: string | number; }' is not assignable to type '{ prop: number; }'. Types of property 'prop' are incompatible. Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. -contextualTypeWithUnionTypeObjectLiteral.ts(20,5): error TS2322: Type '{ prop: string | number; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; }'. +contextualTypeWithUnionTypeObjectLiteral.ts(20,76): error TS2322: Type '{ prop: string | number; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; }'. Type '{ prop: string | number; }' is not assignable to type '{ prop: number; }'. Types of property 'prop' are incompatible. Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. -contextualTypeWithUnionTypeObjectLiteral.ts(21,5): error TS2322: Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; }'. +contextualTypeWithUnionTypeObjectLiteral.ts(21,76): error TS2322: Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; }'. Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; }'. Types of property 'prop' are incompatible. Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. -contextualTypeWithUnionTypeObjectLiteral.ts(25,5): error TS2322: Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; anotherP1: number; }'. +contextualTypeWithUnionTypeObjectLiteral.ts(25,95): error TS2322: Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; anotherP1: number; }'. Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; }'. Types of property 'prop' are incompatible. Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. -contextualTypeWithUnionTypeObjectLiteral.ts(29,5): error TS2322: Type '{ prop: string | number; anotherP: string; anotherP1: number; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; anotherP1: number; }'. +contextualTypeWithUnionTypeObjectLiteral.ts(29,95): error TS2322: Type '{ prop: string | number; anotherP: string; anotherP1: number; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; anotherP1: number; }'. Type '{ prop: string | number; anotherP: string; anotherP1: number; }' is not assignable to type '{ prop: number; anotherP1: number; }'. Types of property 'prop' are incompatible. Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. -contextualTypeWithUnionTypeObjectLiteral.ts(58,5): error TS2322: Type '(a: string, b: number) => string | number' is not assignable to type '((a: string, b: number) => string) | ((a: string, b: number) => number)'. - Type '(a: string, b: number) => string | number' is not assignable to type '(a: string, b: number) => string'. - Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. +contextualTypeWithUnionTypeObjectLiteral.ts(57,27): error TS2322: Type '{ commonMethodDifferentReturnType: (a: string, b: number) => string | number; }' is not assignable to type 'I11 | I21'. + Types of property 'commonMethodDifferentReturnType' are incompatible. + Type '(a: string, b: number) => string | number' is not assignable to type '((a: string, b: number) => string) | ((a: string, b: number) => number)'. + Type '(a: string, b: number) => string | number' is not assignable to type '(a: string, b: number) => string'. + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. ==== contextualTypeWithUnionTypeObjectLiteral.ts (6 errors) ==== @@ -44,55 +46,67 @@ contextualTypeWithUnionTypeObjectLiteral.ts(58,5): error TS2322: Type '(a: strin // In case of objStrOrNum3, the S is not union Type but object Literal so we go to next step. // Since T is union Type we only allow the assignment of either object with property of type string or object with property of type number but do not allow object with property of type string | number var objStrOrNum3: { prop: string } | { prop: number } = { - ~~~~~~~~~~~~ + ~ + prop: strOrNumber + ~~~~~~~~~~~~~~~~~~~~~ + }; + ~ !!! error TS2322: Type '{ prop: string | number; }' is not assignable to type '{ prop: string; } | { prop: number; }'. !!! error TS2322: Type '{ prop: string | number; }' is not assignable to type '{ prop: number; }'. !!! error TS2322: Types of property 'prop' are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'number'. !!! error TS2322: Type 'string' is not assignable to type 'number'. - prop: strOrNumber - }; var objStrOrNum4: { prop: string | number } = { prop: strOrNumber }; var objStrOrNum5: { prop: string; anotherP: string; } | { prop: number } = { prop: strOrNumber }; - ~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ prop: string | number; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; }'. !!! error TS2322: Type '{ prop: string | number; }' is not assignable to type '{ prop: number; }'. !!! error TS2322: Types of property 'prop' are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'number'. !!! error TS2322: Type 'string' is not assignable to type 'number'. var objStrOrNum6: { prop: string; anotherP: string; } | { prop: number } = { - ~~~~~~~~~~~~ + ~ + prop: strOrNumber, + ~~~~~~~~~~~~~~~~~~~~~~ + anotherP: str + ~~~~~~~~~~~~~~~~~ + }; + ~ !!! error TS2322: Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; }'. !!! error TS2322: Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; }'. !!! error TS2322: Types of property 'prop' are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'string'. !!! error TS2322: Type 'number' is not assignable to type 'string'. + var objStrOrNum7: { prop: string; anotherP: string; } | { prop: number; anotherP1: number } = { + ~ prop: strOrNumber, + ~~~~~~~~~~~~~~~~~~~~~~ anotherP: str + ~~~~~~~~~~~~~~~~~ }; - var objStrOrNum7: { prop: string; anotherP: string; } | { prop: number; anotherP1: number } = { - ~~~~~~~~~~~~ + ~ !!! error TS2322: Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; anotherP1: number; }'. !!! error TS2322: Type '{ prop: string | number; anotherP: string; }' is not assignable to type '{ prop: string; anotherP: string; }'. !!! error TS2322: Types of property 'prop' are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'string'. !!! error TS2322: Type 'number' is not assignable to type 'string'. + var objStrOrNum8: { prop: string; anotherP: string; } | { prop: number; anotherP1: number } = { + ~ prop: strOrNumber, - anotherP: str + ~~~~~~~~~~~~~~~~~~~~~~ + anotherP: str, + ~~~~~~~~~~~~~~~~~~ + anotherP1: num + ~~~~~~~~~~~~~~~~~~ }; - var objStrOrNum8: { prop: string; anotherP: string; } | { prop: number; anotherP1: number } = { - ~~~~~~~~~~~~ + ~ !!! error TS2322: Type '{ prop: string | number; anotherP: string; anotherP1: number; }' is not assignable to type '{ prop: string; anotherP: string; } | { prop: number; anotherP1: number; }'. !!! error TS2322: Type '{ prop: string | number; anotherP: string; anotherP1: number; }' is not assignable to type '{ prop: number; anotherP1: number; }'. !!! error TS2322: Types of property 'prop' are incompatible. !!! error TS2322: Type 'string | number' is not assignable to type 'number'. !!! error TS2322: Type 'string' is not assignable to type 'number'. - prop: strOrNumber, - anotherP: str, - anotherP1: num - }; interface I11 { commonMethodDifferentReturnType(a: string, b: number): string; } @@ -117,11 +131,14 @@ contextualTypeWithUnionTypeObjectLiteral.ts(58,5): error TS2322: Type '(a: strin }; var strOrNumber: string | number; var i11Ori21: I11 | I21 = { // Like i1 and i2 both + ~~~~~~~~~~~~~~~~~~~~~~~~ commonMethodDifferentReturnType: (a, b) => strOrNumber, - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2322: Type '(a: string, b: number) => string | number' is not assignable to type '((a: string, b: number) => string) | ((a: string, b: number) => number)'. -!!! error TS2322: Type '(a: string, b: number) => string | number' is not assignable to type '(a: string, b: number) => string'. -!!! error TS2322: Type 'string | number' is not assignable to type 'string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6500 contextualTypeWithUnionTypeObjectLiteral.ts:35:5: The expected type comes from property 'commonMethodDifferentReturnType' which is declared here on type 'I11 | I21' - }; \ No newline at end of file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + }; + ~ +!!! error TS2322: Type '{ commonMethodDifferentReturnType: (a: string, b: number) => string | number; }' is not assignable to type 'I11 | I21'. +!!! error TS2322: Types of property 'commonMethodDifferentReturnType' are incompatible. +!!! error TS2322: Type '(a: string, b: number) => string | number' is not assignable to type '((a: string, b: number) => string) | ((a: string, b: number) => number)'. +!!! error TS2322: Type '(a: string, b: number) => string | number' is not assignable to type '(a: string, b: number) => string'. +!!! error TS2322: Type 'string | number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.types b/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.types index e0b7462a267d4..40e7dab82c5be 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.types +++ b/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.types @@ -50,8 +50,8 @@ var objStrOrNum2: { prop: string | number } = objStr || objNum; > : ^^^^^^^^ ^^^ >prop : string | number > : ^^^^^^^^^^^^^^^ ->objStr || objNum : { prop: string; } | { prop: number; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ +>objStr || objNum : { prop: string | number; } +> : ^^^^^^^^ ^^^ >objStr : { prop: string; } > : ^^^^^^^^ ^^^ >objNum : { prop: number; } @@ -70,8 +70,8 @@ var objStrOrNum3: { prop: string } | { prop: number } = { > : ^^^^^^ >prop : number > : ^^^^^^ ->{ prop: strOrNumber} : { prop: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ prop: strOrNumber} : { prop: string; } | { prop: number; } +> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ prop: strOrNumber >prop : string | number @@ -86,7 +86,7 @@ var objStrOrNum4: { prop: string | number } = { >prop : string | number > : ^^^^^^^^^^^^^^^ >{ prop: strOrNumber} : { prop: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^ prop: strOrNumber >prop : string | number @@ -104,8 +104,8 @@ var objStrOrNum5: { prop: string; anotherP: string; } | { prop: number } = { pro > : ^^^^^^ >prop : number > : ^^^^^^ ->{ prop: strOrNumber } : { prop: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ prop: strOrNumber } : { prop: string; anotherP: string; } | { prop: number; } +> : ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ >prop : string | number > : ^^^^^^^^^^^^^^^ >strOrNumber : string | number @@ -120,8 +120,8 @@ var objStrOrNum6: { prop: string; anotherP: string; } | { prop: number } = { > : ^^^^^^ >prop : number > : ^^^^^^ ->{ prop: strOrNumber, anotherP: str} : { prop: string | number; anotherP: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ prop: strOrNumber, anotherP: str} : { prop: string; anotherP: string; } | { prop: number; } +> : ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ prop: strOrNumber, >prop : string | number @@ -147,8 +147,8 @@ var objStrOrNum7: { prop: string; anotherP: string; } | { prop: number; anotherP > : ^^^^^^ >anotherP1 : number > : ^^^^^^ ->{ prop: strOrNumber, anotherP: str} : { prop: string | number; anotherP: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ prop: strOrNumber, anotherP: str} : { prop: string; anotherP: string; } | { prop: number; anotherP1: number; } +> : ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ prop: strOrNumber, >prop : string | number @@ -174,8 +174,8 @@ var objStrOrNum8: { prop: string; anotherP: string; } | { prop: number; anotherP > : ^^^^^^ >anotherP1 : number > : ^^^^^^ ->{ prop: strOrNumber, anotherP: str, anotherP1: num} : { prop: string | number; anotherP: string; anotherP1: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ prop: strOrNumber, anotherP: str, anotherP1: num} : { prop: string; anotherP: string; } | { prop: number; anotherP1: number; } +> : ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ prop: strOrNumber, >prop : string | number @@ -225,20 +225,20 @@ var i21: I21; var i11Ori21: I11 | I21 = i11; >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->i11 : I11 -> : ^^^ +>i11 : I11 | I21 +> : ^^^^^^^^^ var i11Ori21: I11 | I21 = i21; >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->i21 : I21 -> : ^^^ +>i21 : I11 | I21 +> : ^^^^^^^^^ var i11Ori21: I11 | I21 = { // Like i1 >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->{ // Like i1 commonMethodDifferentReturnType: (a, b) => { var z = a.charAt(b); return z; },} : { commonMethodDifferentReturnType: (a: string, b: number) => string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ // Like i1 commonMethodDifferentReturnType: (a, b) => { var z = a.charAt(b); return z; },} : I11 | I21 +> : ^^^^^^^^^ commonMethodDifferentReturnType: (a, b) => { >commonMethodDifferentReturnType : (a: string, b: number) => string @@ -273,8 +273,8 @@ var i11Ori21: I11 | I21 = { // Like i1 var i11Ori21: I11 | I21 = { // Like i2 >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->{ // Like i2 commonMethodDifferentReturnType: (a, b) => { var z = a.charCodeAt(b); return z; },} : { commonMethodDifferentReturnType: (a: string, b: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ // Like i2 commonMethodDifferentReturnType: (a, b) => { var z = a.charCodeAt(b); return z; },} : I11 | I21 +> : ^^^^^^^^^ commonMethodDifferentReturnType: (a, b) => { >commonMethodDifferentReturnType : (a: string, b: number) => number @@ -313,8 +313,8 @@ var strOrNumber: string | number; var i11Ori21: I11 | I21 = { // Like i1 and i2 both >i11Ori21 : I11 | I21 > : ^^^^^^^^^ ->{ // Like i1 and i2 both commonMethodDifferentReturnType: (a, b) => strOrNumber,} : { commonMethodDifferentReturnType: (a: string, b: number) => string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ // Like i1 and i2 both commonMethodDifferentReturnType: (a, b) => strOrNumber,} : I11 | I21 +> : ^^^^^^^^^ commonMethodDifferentReturnType: (a, b) => strOrNumber, >commonMethodDifferentReturnType : (a: string, b: number) => string | number diff --git a/tests/baselines/reference/contextualTyping.errors.txt b/tests/baselines/reference/contextualTyping.errors.txt index adb7c9330d969..6359e0aa56767 100644 --- a/tests/baselines/reference/contextualTyping.errors.txt +++ b/tests/baselines/reference/contextualTyping.errors.txt @@ -1,5 +1,5 @@ contextualTyping.ts(189,18): error TS2384: Overload signatures must all be ambient or non-ambient. -contextualTyping.ts(223,5): error TS2741: Property 'x' is missing in type '{}' but required in type 'B'. +contextualTyping.ts(223,12): error TS2741: Property 'x' is missing in type '{}' but required in type 'B'. ==== contextualTyping.ts (2 errors) ==== @@ -228,7 +228,7 @@ contextualTyping.ts(223,5): error TS2741: Property 'x' is missing in type '{}' b interface A { x: string; } interface B extends A { } var x: B = { }; - ~ + ~~~ !!! error TS2741: Property 'x' is missing in type '{}' but required in type 'B'. !!! related TS2728 contextualTyping.ts:221:15: 'x' is declared here. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping.types b/tests/baselines/reference/contextualTyping.types index 91a02669eecc6..df4a710caadab 100644 --- a/tests/baselines/reference/contextualTyping.types +++ b/tests/baselines/reference/contextualTyping.types @@ -65,8 +65,8 @@ module C2T5 { > : ^^^^^^ >s : string > : ^^^^^^ ->function(i) { return i; } : (i: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +>function(i) { return i; } : (i: number, s: string) => number +> : ^ ^^ ^^ ^^ ^^^^^ >i : number > : ^^^^^^ @@ -83,7 +83,7 @@ var c3t1: (s: string) => string = (function(s) { return s }); >s : string > : ^^^^^^ >(function(s) { return s }) : (s: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >function(s) { return s } : (s: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -111,8 +111,8 @@ var c3t2 = ({ var c3t3: number[] = []; >c3t3 : number[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : number[] +> : ^^^^^^^^ var c3t4: () => IFoo = function() { return ({}) }; >c3t4 : () => IFoo @@ -132,7 +132,7 @@ var c3t5: (n: number) => IFoo = function(n) { return ({}) }; >n : number > : ^^^^^^ >function(n) { return ({}) } : (n: number) => IFoo -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >n : number > : ^^^^^^ >({}) : IFoo @@ -150,7 +150,7 @@ var c3t6: (n: number, s: string) => IFoo = function(n, s) { return ({}) }; >s : string > : ^^^^^^ >function(n, s) { return ({}) } : (n: number, s: string) => IFoo -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ >n : number > : ^^^^^^ >s : string @@ -175,8 +175,8 @@ var c3t7: { > : ^^^^^^ } = function(n) { return n; }; ->function(n) { return n; } : (n: any) => any -> : ^ ^^^^^^^^^^^^^ +>function(n) { return n; } : { (n: number): number; (s1: string): number; } +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >n : any > : ^^^ >n : any @@ -189,8 +189,8 @@ var c3t8: (n: number, s: string) => number = function(n) { return n; }; > : ^^^^^^ >s : string > : ^^^^^^ ->function(n) { return n; } : (n: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +>function(n) { return n; } : (n: number, s: string) => number +> : ^ ^^ ^^ ^^ ^^^^^ >n : number > : ^^^^^^ >n : number @@ -199,8 +199,8 @@ var c3t8: (n: number, s: string) => number = function(n) { return n; }; var c3t9: number[][] = [[],[]]; >c3t9 : number[][] > : ^^^^^^^^^^ ->[[],[]] : undefined[][] -> : ^^^^^^^^^^^^^ +>[[],[]] : number[][] +> : ^^^^^^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ >[] : undefined[] @@ -232,7 +232,7 @@ var c3t11: {(n: number, s: string): string;}[] = [function(n, s) { return s; }]; >s : string > : ^^^^^^ >[function(n, s) { return s; }] : ((n: number, s: string) => string)[] -> : ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >function(n, s) { return s; } : (n: number, s: string) => string > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >n : number @@ -245,8 +245,8 @@ var c3t11: {(n: number, s: string): string;}[] = [function(n, s) { return s; }]; var c3t12: IBar = { >c3t12 : IBar > : ^^^^ ->{ foo: ({})} : { foo: IFoo; } -> : ^^^^^^^ ^^^ +>{ foo: ({})} : IBar +> : ^^^^ foo: ({}) >foo : IFoo @@ -909,7 +909,7 @@ var c10t5: () => (n: number) => IFoo = function() { return function(n) { return >n : number > : ^^^^^^ >function() { return function(n) { return ({}) } } : () => (n: number) => IFoo -> : ^^^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^ >function(n) { return ({}) } : (n: number) => IFoo > : ^ ^^^^^^^^^^^^^ >n : number @@ -1399,6 +1399,6 @@ interface B extends A { } var x: B = { }; >x : B > : ^ ->{ } : {} -> : ^^ +>{ } : B +> : ^ diff --git a/tests/baselines/reference/contextualTyping1.types b/tests/baselines/reference/contextualTyping1.types index b01f60c3abd3d..23f7aa86e429e 100644 --- a/tests/baselines/reference/contextualTyping1.types +++ b/tests/baselines/reference/contextualTyping1.types @@ -7,7 +7,7 @@ var foo: {id:number;} = {id:4}; >id : number > : ^^^^^^ >{id:4} : { id: number; } -> : ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^ >id : number > : ^^^^^^ >4 : 4 diff --git a/tests/baselines/reference/contextualTyping13.types b/tests/baselines/reference/contextualTyping13.types index b6989a9b87e6c..07e54b9766e69 100644 --- a/tests/baselines/reference/contextualTyping13.types +++ b/tests/baselines/reference/contextualTyping13.types @@ -7,7 +7,7 @@ var foo:(a:number)=>number = function(a){return a}; >a : number > : ^^^^^^ >function(a){return a} : (a: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >a : number > : ^^^^^^ >a : number diff --git a/tests/baselines/reference/contextualTyping16.types b/tests/baselines/reference/contextualTyping16.types index be42d74f04c18..afad81afa3fb8 100644 --- a/tests/baselines/reference/contextualTyping16.types +++ b/tests/baselines/reference/contextualTyping16.types @@ -7,7 +7,7 @@ var foo: {id:number;} = {id:4}; foo = {id:5}; >id : number > : ^^^^^^ >{id:4} : { id: number; } -> : ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^ >id : number > : ^^^^^^ >4 : 4 diff --git a/tests/baselines/reference/contextualTyping17.types b/tests/baselines/reference/contextualTyping17.types index aca3a69c52746..03fae7bde5d82 100644 --- a/tests/baselines/reference/contextualTyping17.types +++ b/tests/baselines/reference/contextualTyping17.types @@ -7,7 +7,7 @@ var foo: {id:number;} = {id:4}; foo = {id: 5, name:"foo"}; >id : number > : ^^^^^^ >{id:4} : { id: number; } -> : ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^ >id : number > : ^^^^^^ >4 : 4 diff --git a/tests/baselines/reference/contextualTyping19.types b/tests/baselines/reference/contextualTyping19.types index 4b97cebe4ea93..a0b7906094d9e 100644 --- a/tests/baselines/reference/contextualTyping19.types +++ b/tests/baselines/reference/contextualTyping19.types @@ -7,7 +7,7 @@ var foo:{id:number;}[] = [{id:1}]; foo = [{id:1}, {id:2}]; >id : number > : ^^^^^^ >[{id:1}] : { id: number; }[] -> : ^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^ >{id:1} : { id: number; } > : ^^^^^^^^^^^^^^^ >id : number diff --git a/tests/baselines/reference/contextualTyping2.types b/tests/baselines/reference/contextualTyping2.types index 072fd75ddee18..c7bdbebb8219c 100644 --- a/tests/baselines/reference/contextualTyping2.types +++ b/tests/baselines/reference/contextualTyping2.types @@ -6,8 +6,8 @@ var foo: {id:number;} = {id:4, name:"foo"}; > : ^^^^^^ ^^^ >id : number > : ^^^^^^ ->{id:4, name:"foo"} : { id: number; name: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{id:4, name:"foo"} : { id: number; } +> : ^^^^^^ ^^^ >id : number > : ^^^^^^ >4 : 4 diff --git a/tests/baselines/reference/contextualTyping20.types b/tests/baselines/reference/contextualTyping20.types index fffd62c1366fb..d9098f322ad99 100644 --- a/tests/baselines/reference/contextualTyping20.types +++ b/tests/baselines/reference/contextualTyping20.types @@ -7,7 +7,7 @@ var foo:{id:number;}[] = [{id:1}]; foo = [{id:1}, {id:2, name:"foo"}]; >id : number > : ^^^^^^ >[{id:1}] : { id: number; }[] -> : ^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^ >{id:1} : { id: number; } > : ^^^^^^^^^^^^^^^ >id : number diff --git a/tests/baselines/reference/contextualTyping21.types b/tests/baselines/reference/contextualTyping21.types index 3520e3d01d217..a5d4cf4136ad4 100644 --- a/tests/baselines/reference/contextualTyping21.types +++ b/tests/baselines/reference/contextualTyping21.types @@ -7,7 +7,7 @@ var foo:{id:number;}[] = [{id:1}]; foo = [{id:1}, 1]; >id : number > : ^^^^^^ >[{id:1}] : { id: number; }[] -> : ^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^ >{id:1} : { id: number; } > : ^^^^^^^^^^^^^^^ >id : number diff --git a/tests/baselines/reference/contextualTyping22.types b/tests/baselines/reference/contextualTyping22.types index c3865c8bc8107..3acd80dce19da 100644 --- a/tests/baselines/reference/contextualTyping22.types +++ b/tests/baselines/reference/contextualTyping22.types @@ -7,7 +7,7 @@ var foo:(a:number)=>number = function(a){return a}; foo = function(b){return b}; >a : number > : ^^^^^^ >function(a){return a} : (a: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >a : number > : ^^^^^^ >a : number diff --git a/tests/baselines/reference/contextualTyping6.types b/tests/baselines/reference/contextualTyping6.types index 0b7da1d519a50..362710ec0bc9b 100644 --- a/tests/baselines/reference/contextualTyping6.types +++ b/tests/baselines/reference/contextualTyping6.types @@ -7,7 +7,7 @@ var foo:{id:number;}[] = [{id:1}, {id:2}]; >id : number > : ^^^^^^ >[{id:1}, {id:2}] : { id: number; }[] -> : ^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^ >{id:1} : { id: number; } > : ^^^^^^^^^^^^^^^ >id : number diff --git a/tests/baselines/reference/contextualTyping9.errors.txt b/tests/baselines/reference/contextualTyping9.errors.txt index 3f1e9a36cc88e..8f5fb612cf0cc 100644 --- a/tests/baselines/reference/contextualTyping9.errors.txt +++ b/tests/baselines/reference/contextualTyping9.errors.txt @@ -1,7 +1,11 @@ -contextualTyping9.ts(1,42): error TS2353: Object literal may only specify known properties, and 'name' does not exist in type '{ id: number; }'. +contextualTyping9.ts(1,42): error TS2322: Type '({ id: number; } | { id: number; name: string; })[]' is not assignable to type '{ id: number; }[]'. + Type '{ id: number; } | { id: number; name: string; }' is not assignable to type '{ id: number; }'. + Object literal may only specify known properties, and 'name' does not exist in type '{ id: number; }'. ==== contextualTyping9.ts (1 errors) ==== var foo:{id:number;}[] = [{id:1}, {id:2, name:"foo"}]; ~~~~ -!!! error TS2353: Object literal may only specify known properties, and 'name' does not exist in type '{ id: number; }'. \ No newline at end of file +!!! error TS2322: Type '({ id: number; } | { id: number; name: string; })[]' is not assignable to type '{ id: number; }[]'. +!!! error TS2322: Type '{ id: number; } | { id: number; name: string; }' is not assignable to type '{ id: number; }'. +!!! error TS2322: Object literal may only specify known properties, and 'name' does not exist in type '{ id: number; }'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping9.types b/tests/baselines/reference/contextualTyping9.types index 4a93c7e9768a2..098fcd4a94906 100644 --- a/tests/baselines/reference/contextualTyping9.types +++ b/tests/baselines/reference/contextualTyping9.types @@ -6,8 +6,8 @@ var foo:{id:number;}[] = [{id:1}, {id:2, name:"foo"}]; > : ^^^^^^ ^^^^^ >id : number > : ^^^^^^ ->[{id:1}, {id:2, name:"foo"}] : ({ id: number; } | { id: number; name: string; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{id:1}, {id:2, name:"foo"}] : { id: number; }[] +> : ^^^^^^ ^^^^^ >{id:1} : { id: number; } > : ^^^^^^^^^^^^^^^ >id : number diff --git a/tests/baselines/reference/contextualTypingArrayDestructuringWithDefaults.types b/tests/baselines/reference/contextualTypingArrayDestructuringWithDefaults.types index 027e8d8b6fa91..df65a611cc8f0 100644 --- a/tests/baselines/reference/contextualTypingArrayDestructuringWithDefaults.types +++ b/tests/baselines/reference/contextualTypingArrayDestructuringWithDefaults.types @@ -16,8 +16,8 @@ let [ c0 = {a: "a"} ]: [I?] = []; > : ^^^ >"a" : "a" > : ^^^ ->[] : [] -> : ^^ +>[] : [I?] +> : ^^^^ let [ x1, c1 = {a: "a"} ]: [number, I?] = [1]; >x1 : number @@ -30,8 +30,8 @@ let [ x1, c1 = {a: "a"} ]: [number, I?] = [1]; > : ^^^ >"a" : "a" > : ^^^ ->[1] : [number] -> : ^^^^^^^^ +>[1] : [number, I?] +> : ^^^^^^^^^^^^ >1 : 1 > : ^ @@ -44,8 +44,8 @@ let [ c_ = {a: "a"} ]: I[] = []; > : ^^^ >"a" : "a" > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : I[] +> : ^^^ // not a great example, expect an error function foo() { diff --git a/tests/baselines/reference/contextualTypingOfArrayLiterals1.errors.txt b/tests/baselines/reference/contextualTypingOfArrayLiterals1.errors.txt index 8d035d97931cc..e6735ee6eef09 100644 --- a/tests/baselines/reference/contextualTypingOfArrayLiterals1.errors.txt +++ b/tests/baselines/reference/contextualTypingOfArrayLiterals1.errors.txt @@ -1,4 +1,7 @@ -contextualTypingOfArrayLiterals1.ts(5,26): error TS2322: Type 'number' is not assignable to type 'Date'. +contextualTypingOfArrayLiterals1.ts(5,13): error TS2322: Type '(number | Date)[]' is not assignable to type 'I'. + 'number' index signatures are incompatible. + Type 'number | Date' is not assignable to type 'Date'. + Type 'number' is not assignable to type 'Date'. ==== contextualTypingOfArrayLiterals1.ts (1 errors) ==== @@ -7,9 +10,11 @@ contextualTypingOfArrayLiterals1.ts(5,26): error TS2322: Type 'number' is not as } var x3: I = [new Date(), 1]; - ~ -!!! error TS2322: Type 'number' is not assignable to type 'Date'. -!!! related TS6501 contextualTypingOfArrayLiterals1.ts:2:4: The expected type comes from this index signature. + ~~~~~~~~~~~~~~~ +!!! error TS2322: Type '(number | Date)[]' is not assignable to type 'I'. +!!! error TS2322: 'number' index signatures are incompatible. +!!! error TS2322: Type 'number | Date' is not assignable to type 'Date'. +!!! error TS2322: Type 'number' is not assignable to type 'Date'. var r2 = x3[1]; r2.getDate(); \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypingOfArrayLiterals1.types b/tests/baselines/reference/contextualTypingOfArrayLiterals1.types index 38fc587b905c2..dbb5e76d0fc49 100644 --- a/tests/baselines/reference/contextualTypingOfArrayLiterals1.types +++ b/tests/baselines/reference/contextualTypingOfArrayLiterals1.types @@ -10,8 +10,8 @@ interface I { var x3: I = [new Date(), 1]; >x3 : I > : ^ ->[new Date(), 1] : (number | Date)[] -> : ^^^^^^^^^^^^^^^^^ +>[new Date(), 1] : I +> : ^ >new Date() : Date > : ^^^^ >Date : DateConstructor diff --git a/tests/baselines/reference/contextualTypingOfConditionalExpression.types b/tests/baselines/reference/contextualTypingOfConditionalExpression.types index 870fbb5f83730..cb9a2f8239c7a 100644 --- a/tests/baselines/reference/contextualTypingOfConditionalExpression.types +++ b/tests/baselines/reference/contextualTypingOfConditionalExpression.types @@ -6,8 +6,8 @@ var x: (a: number) => void = true ? (a) => a.toExponential() : (b) => b.toFixed( > : ^ ^^ ^^^^^ >a : number > : ^^^^^^ ->true ? (a) => a.toExponential() : (b) => b.toFixed() : (a: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +>true ? (a) => a.toExponential() : (b) => b.toFixed() : (a: number) => void +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(a) => a.toExponential() : (a: number) => string @@ -69,8 +69,8 @@ var x2: (a: A) => void = true ? (a) => a.foo : (b) => b.foo; > : ^ ^^ ^^^^^ >a : A > : ^ ->true ? (a) => a.foo : (b) => b.foo : (a: A) => number -> : ^ ^^^^^^^^^^^^^^ +>true ? (a) => a.foo : (b) => b.foo : (a: A) => void +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(a) => a.foo : (a: A) => number diff --git a/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt b/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt index a8b985b437153..2e5d341af302c 100644 --- a/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt +++ b/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt @@ -1,4 +1,4 @@ -contextualTypingOfConditionalExpression2.ts(11,5): error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void'. +contextualTypingOfConditionalExpression2.ts(11,26): error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void'. Type '(b: number) => void' is not assignable to type '(a: A) => void'. Types of parameters 'b' and 'a' are incompatible. Type 'A' is not assignable to type 'number'. @@ -16,7 +16,7 @@ contextualTypingOfConditionalExpression2.ts(11,5): error TS2322: Type '((a: C) = } var x2: (a: A) => void = true ? (a: C) => a.foo : (b: number) => { }; - ~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void'. !!! error TS2322: Type '(b: number) => void' is not assignable to type '(a: A) => void'. !!! error TS2322: Types of parameters 'b' and 'a' are incompatible. diff --git a/tests/baselines/reference/contextualTypingOfConditionalExpression2.types b/tests/baselines/reference/contextualTypingOfConditionalExpression2.types index f91ddf07c07a8..c115a29838c52 100644 --- a/tests/baselines/reference/contextualTypingOfConditionalExpression2.types +++ b/tests/baselines/reference/contextualTypingOfConditionalExpression2.types @@ -35,8 +35,8 @@ var x2: (a: A) => void = true ? (a: C) => a.foo : (b: number) => { }; > : ^ ^^ ^^^^^ >a : A > : ^ ->true ? (a: C) => a.foo : (b: number) => { } : ((a: C) => number) | ((b: number) => void) -> : ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ +>true ? (a: C) => a.foo : (b: number) => { } : (a: A) => void +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >(a: C) => a.foo : (a: C) => number diff --git a/tests/baselines/reference/contextuallyTypedBindingInitializer.types b/tests/baselines/reference/contextuallyTypedBindingInitializer.types index 76fe1aaf89f54..f296ca421aea2 100644 --- a/tests/baselines/reference/contextuallyTypedBindingInitializer.types +++ b/tests/baselines/reference/contextuallyTypedBindingInitializer.types @@ -139,8 +139,8 @@ let { stringIdentity: id = arg => arg }: StringIdentity = { stringIdentity: x => > : ^^^^^^ >arg : string > : ^^^^^^ ->{ stringIdentity: x => x} : { stringIdentity: (x: string) => string; } -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ stringIdentity: x => x} : StringIdentity +> : ^^^^^^^^^^^^^^ >stringIdentity : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x => x : (x: string) => string diff --git a/tests/baselines/reference/contextuallyTypedBindingInitializerNegative.types b/tests/baselines/reference/contextuallyTypedBindingInitializerNegative.types index 9e98e4f927aa2..520b6f2fe1285 100644 --- a/tests/baselines/reference/contextuallyTypedBindingInitializerNegative.types +++ b/tests/baselines/reference/contextuallyTypedBindingInitializerNegative.types @@ -93,8 +93,8 @@ let { stringIdentity: id = arg => arg.length }: StringIdentity = { stringIdentit > : ^^^^^^ >length : number > : ^^^^^^ ->{ stringIdentity: x => x} : { stringIdentity: (x: string) => string; } -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ stringIdentity: x => x} : StringIdentity +> : ^^^^^^^^^^^^^^ >stringIdentity : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x => x : (x: string) => string diff --git a/tests/baselines/reference/contextuallyTypingOrOperator.types b/tests/baselines/reference/contextuallyTypingOrOperator.types index 1c143986b1b7e..683ada0994d2c 100644 --- a/tests/baselines/reference/contextuallyTypingOrOperator.types +++ b/tests/baselines/reference/contextuallyTypingOrOperator.types @@ -8,8 +8,8 @@ var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 }; > : ^ ^^ ^^^^^ >_ : string > : ^^^^^^ ->{ a: s => s.length } || { a: s => 1 } : { a: (s: string) => number; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ a: s => s.length } || { a: s => 1 } : { a: (_: string) => number; } +> : ^^^^^ ^^^ >{ a: s => s.length } : { a: (s: string) => number; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >a : (s: string) => number diff --git a/tests/baselines/reference/contextuallyTypingOrOperator2.types b/tests/baselines/reference/contextuallyTypingOrOperator2.types index f0613664e64c0..efc8ef13013b1 100644 --- a/tests/baselines/reference/contextuallyTypingOrOperator2.types +++ b/tests/baselines/reference/contextuallyTypingOrOperator2.types @@ -8,8 +8,8 @@ var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 }; > : ^ ^^ ^^^^^ >_ : string > : ^^^^^^ ->{ a: s => s.length } || { a: s => 1 } : { a: (s: string) => number; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +>{ a: s => s.length } || { a: s => 1 } : { a: (_: string) => number; } +> : ^^^^^ ^^^ >{ a: s => s.length } : { a: (s: string) => number; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >a : (s: string) => number diff --git a/tests/baselines/reference/contextuallyTypingRestParameters.errors.txt b/tests/baselines/reference/contextuallyTypingRestParameters.errors.txt index 21a2472d8ceec..60e94fd89ba62 100644 --- a/tests/baselines/reference/contextuallyTypingRestParameters.errors.txt +++ b/tests/baselines/reference/contextuallyTypingRestParameters.errors.txt @@ -1,16 +1,16 @@ -contextuallyTypingRestParameters.ts(3,9): error TS2322: Type 'string[]' is not assignable to type 'string'. -contextuallyTypingRestParameters.ts(5,9): error TS2322: Type 'string[]' is not assignable to type 'string'. +contextuallyTypingRestParameters.ts(3,22): error TS2322: Type 'string[]' is not assignable to type 'string'. +contextuallyTypingRestParameters.ts(5,22): error TS2322: Type 'string[]' is not assignable to type 'string'. ==== contextuallyTypingRestParameters.ts (2 errors) ==== var x: (...y: string[]) => void = function (.../*3*/y) { var t = y; var x2: string = t; // This should be error - ~~ + ~ !!! error TS2322: Type 'string[]' is not assignable to type 'string'. var x3: string[] = t; // No error var y2: string = y; // This should be error - ~~ + ~ !!! error TS2322: Type 'string[]' is not assignable to type 'string'. var y3: string[] = y; // No error }; \ No newline at end of file diff --git a/tests/baselines/reference/contextuallyTypingRestParameters.types b/tests/baselines/reference/contextuallyTypingRestParameters.types index 0a7d641f1d821..b03dd793c5161 100644 --- a/tests/baselines/reference/contextuallyTypingRestParameters.types +++ b/tests/baselines/reference/contextuallyTypingRestParameters.types @@ -7,7 +7,7 @@ var x: (...y: string[]) => void = function (.../*3*/y) { >y : string[] > : ^^^^^^^^ >function (.../*3*/y) { var t = y; var x2: string = t; // This should be error var x3: string[] = t; // No error var y2: string = y; // This should be error var y3: string[] = y; // No error} : (...y: string[]) => void -> : ^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ >y : string[] > : ^^^^^^^^ @@ -20,8 +20,8 @@ var x: (...y: string[]) => void = function (.../*3*/y) { var x2: string = t; // This should be error >x2 : string > : ^^^^^^ ->t : string[] -> : ^^^^^^^^ +>t : string +> : ^^^^^^ var x3: string[] = t; // No error >x3 : string[] @@ -32,8 +32,8 @@ var x: (...y: string[]) => void = function (.../*3*/y) { var y2: string = y; // This should be error >y2 : string > : ^^^^^^ ->y : string[] -> : ^^^^^^^^ +>y : string +> : ^^^^^^ var y3: string[] = y; // No error >y3 : string[] diff --git a/tests/baselines/reference/controlFlowAliasing.errors.txt b/tests/baselines/reference/controlFlowAliasing.errors.txt index b1dcf7be43f9c..548ce61c09563 100644 --- a/tests/baselines/reference/controlFlowAliasing.errors.txt +++ b/tests/baselines/reference/controlFlowAliasing.errors.txt @@ -1,6 +1,6 @@ -controlFlowAliasing.ts(59,13): error TS2322: Type 'string | number' is not assignable to type 'string'. +controlFlowAliasing.ts(59,25): error TS2322: Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. -controlFlowAliasing.ts(74,13): error TS2322: Type 'string | number' is not assignable to type 'string'. +controlFlowAliasing.ts(74,25): error TS2322: Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. controlFlowAliasing.ts(91,13): error TS2339: Property 'foo' does not exist on type '{ kind: "foo"; foo: string; } | { kind: "bar"; bar: number; }'. Property 'foo' does not exist on type '{ kind: "bar"; bar: number; }'. @@ -84,7 +84,7 @@ controlFlowAliasing.ts(280,5): error TS2454: Variable 'a' is used before being a obj = { x: 42 }; if (isString) { let s: string = obj.x; // Not narrowed because of is assigned in function body - ~ + ~~~~~ !!! error TS2322: Type 'string | number' is not assignable to type 'string'. !!! error TS2322: Type 'number' is not assignable to type 'string'. } @@ -102,7 +102,7 @@ controlFlowAliasing.ts(280,5): error TS2454: Variable 'a' is used before being a obj = [42]; if (isString) { let s: string = obj[0]; // Not narrowed because of is assigned in function body - ~ + ~~~~~~ !!! error TS2322: Type 'string | number' is not assignable to type 'string'. !!! error TS2322: Type 'number' is not assignable to type 'string'. } diff --git a/tests/baselines/reference/controlFlowAliasing.types b/tests/baselines/reference/controlFlowAliasing.types index d24919344d519..66b28f62c438b 100644 --- a/tests/baselines/reference/controlFlowAliasing.types +++ b/tests/baselines/reference/controlFlowAliasing.types @@ -292,12 +292,12 @@ function f16(obj: { readonly x: string | number }) { let s: string = obj.x; // Not narrowed because of is assigned in function body >s : string > : ^^^^^^ ->obj.x : string | number -> : ^^^^^^^^^^^^^^^ +>obj.x : string +> : ^^^^^^ >obj : { readonly x: string | number; } > : ^^^^^^^^^^^^^^ ^^^ ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string +> : ^^^^^^ } } @@ -378,8 +378,8 @@ function f18(obj: readonly [string | number]) { let s: string = obj[0]; // Not narrowed because of is assigned in function body >s : string > : ^^^^^^ ->obj[0] : string | number -> : ^^^^^^^^^^^^^^^ +>obj[0] : string +> : ^^^^^^ >obj : readonly [string | number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/controlFlowAssignmentPatternOrder.errors.txt b/tests/baselines/reference/controlFlowAssignmentPatternOrder.errors.txt new file mode 100644 index 0000000000000..768d9c69fa62c --- /dev/null +++ b/tests/baselines/reference/controlFlowAssignmentPatternOrder.errors.txt @@ -0,0 +1,109 @@ +controlFlowAssignmentPatternOrder.ts(7,11): error TS2322: Type '0 | 1' is not assignable to type '0'. + Type '1' is not assignable to type '0'. +controlFlowAssignmentPatternOrder.ts(19,11): error TS2322: Type '0 | 1 | 8' is not assignable to type '0 | 8'. + Type '1' is not assignable to type '0 | 8'. +controlFlowAssignmentPatternOrder.ts(32,11): error TS2322: Type '0 | 1' is not assignable to type '0'. + Type '1' is not assignable to type '0'. +controlFlowAssignmentPatternOrder.ts(44,11): error TS2322: Type '0 | 1 | 8' is not assignable to type '0 | 8'. + Type '1' is not assignable to type '0 | 8'. +controlFlowAssignmentPatternOrder.ts(57,11): error TS2322: Type '0 | 1' is not assignable to type '0'. + Type '1' is not assignable to type '0'. +controlFlowAssignmentPatternOrder.ts(69,11): error TS2322: Type '0 | 1 | 8' is not assignable to type '0 | 8'. + Type '1' is not assignable to type '0 | 8'. + + +==== controlFlowAssignmentPatternOrder.ts (6 errors) ==== + // https://github.com/microsoft/TypeScript/pull/41094#issuecomment-716044363 + declare function f(): void; + { + let a: 0 | 1 = 0; + let b: 0 | 1 | 9; + [{ [(a = 1)]: b } = [9, a] as const] = []; + const bb: 0 = b; + ~~ +!!! error TS2322: Type '0 | 1' is not assignable to type '0'. +!!! error TS2322: Type '1' is not assignable to type '0'. + } + { + let a: 0 | 1 = 1; + let b: 0 | 1 | 9; + [{ [a]: b } = [9, a = 0] as const] = []; + const bb: 9 = b; + } + { + let a: 0 | 1 = 0; + let b: 0 | 1 | 8 | 9; + [{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const]; + const bb: 0 | 8 = b; + ~~ +!!! error TS2322: Type '0 | 1 | 8' is not assignable to type '0 | 8'. +!!! error TS2322: Type '1' is not assignable to type '0 | 8'. + } + { + let a: 0 | 1 = 1; + let b: 0 | 1 | 8 | 9; + [{ [a]: b } = [a = 0, 9] as const] = [[8, 9] as const]; + const bb: 0 | 8 = b; + } + // same as above but on left of a binary expression + { + let a: 0 | 1 = 0; + let b: 0 | 1 | 9; + [{ [(a = 1)]: b } = [9, a] as const] = [], f(); + const bb: 0 = b; + ~~ +!!! error TS2322: Type '0 | 1' is not assignable to type '0'. +!!! error TS2322: Type '1' is not assignable to type '0'. + } + { + let a: 0 | 1 = 1; + let b: 0 | 1 | 9; + [{ [a]: b } = [9, a = 0] as const] = [], f(); + const bb: 9 = b; + } + { + let a: 0 | 1 = 0; + let b: 0 | 1 | 8 | 9; + [{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const], f(); + const bb: 0 | 8 = b; + ~~ +!!! error TS2322: Type '0 | 1 | 8' is not assignable to type '0 | 8'. +!!! error TS2322: Type '1' is not assignable to type '0 | 8'. + } + { + let a: 0 | 1 = 1; + let b: 0 | 1 | 8 | 9; + [{ [a]: b } = [a = 0, 9] as const] = [[8, 9] as const], f(); + const bb: 0 | 8 = b; + } + // same as above but on right of a binary expression + { + let a: 0 | 1 = 0; + let b: 0 | 1 | 9; + f(), [{ [(a = 1)]: b } = [9, a] as const] = []; + const bb: 0 = b; + ~~ +!!! error TS2322: Type '0 | 1' is not assignable to type '0'. +!!! error TS2322: Type '1' is not assignable to type '0'. + } + { + let a: 0 | 1 = 1; + let b: 0 | 1 | 9; + f(), [{ [a]: b } = [9, a = 0] as const] = []; + const bb: 9 = b; + } + { + let a: 0 | 1 = 0; + let b: 0 | 1 | 8 | 9; + f(), [{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const]; + const bb: 0 | 8 = b; + ~~ +!!! error TS2322: Type '0 | 1 | 8' is not assignable to type '0 | 8'. +!!! error TS2322: Type '1' is not assignable to type '0 | 8'. + } + { + let a: 0 | 1 = 1; + let b: 0 | 1 | 8 | 9; + f(), [{ [a]: b } = [a = 0, 9] as const] = [[8, 9] as const]; + const bb: 0 | 8 = b; + } \ No newline at end of file diff --git a/tests/baselines/reference/controlFlowAssignmentPatternOrder.types b/tests/baselines/reference/controlFlowAssignmentPatternOrder.types index 11420b98ed71d..b4a56ee75fa07 100644 --- a/tests/baselines/reference/controlFlowAssignmentPatternOrder.types +++ b/tests/baselines/reference/controlFlowAssignmentPatternOrder.types @@ -9,8 +9,8 @@ declare function f(): void; let a: 0 | 1 = 0; >a : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 9; >b : 0 | 1 | 9 @@ -19,10 +19,10 @@ declare function f(): void; [{ [(a = 1)]: b } = [9, a] as const] = []; >[{ [(a = 1)]: b } = [9, a] as const] = [] : [] > : ^^ ->[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0]] -> : ^^^^^^^^^^^^^^^^^ ->{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0 | 1]] +> : ^^^^^^^^^^^^^^^^^^^^^ +>{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >{ [(a = 1)]: b } : { 1: 0 | 1 | 9; } > : ^^^^^^^^^^^^^^^^^ >[(a = 1)] : 0 | 1 | 9 @@ -37,29 +37,29 @@ declare function f(): void; > : ^ >b : 0 | 1 | 9 > : ^^^^^^^^^ ->[9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ ->[9, a] : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ +>[9, a] : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >9 : 9 > : ^ ->a : 0 -> : ^ +>a : 0 | 1 +> : ^^^^^ >[] : [] > : ^^ const bb: 0 = b; >bb : 0 > : ^ ->b : 0 -> : ^ +>b : 0 | 1 +> : ^^^^^ } { let a: 0 | 1 = 1; >a : 0 | 1 > : ^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 9; >b : 0 | 1 | 9 @@ -105,8 +105,8 @@ declare function f(): void; let a: 0 | 1 = 0; >a : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 8 | 9; >b : 0 | 1 | 9 | 8 @@ -115,10 +115,10 @@ declare function f(): void; [{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const]; >[{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const] : [readonly [9, 8]] > : ^^^^^^^^^^^^^^^^^ ->[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0]] -> : ^^^^^^^^^^^^^^^^^ ->{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0 | 1]] +> : ^^^^^^^^^^^^^^^^^^^^^ +>{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >{ [(a = 1)]: b } : { 1: 0 | 1 | 9 | 8; } > : ^^^^^^^^^^^^^^^^^^^^^ >[(a = 1)] : 0 | 1 | 9 | 8 @@ -133,14 +133,14 @@ declare function f(): void; > : ^ >b : 0 | 1 | 9 | 8 > : ^^^^^^^^^^^^^ ->[9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ ->[9, a] : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ +>[9, a] : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >9 : 9 > : ^ ->a : 0 -> : ^ +>a : 0 | 1 +> : ^^^^^ >[[9, 8] as const] : [readonly [9, 8]] > : ^^^^^^^^^^^^^^^^^ >[9, 8] as const : readonly [9, 8] @@ -155,15 +155,15 @@ declare function f(): void; const bb: 0 | 8 = b; >bb : 0 | 8 > : ^^^^^ ->b : 0 | 8 -> : ^^^^^ +>b : 0 | 1 | 8 +> : ^^^^^^^^^ } { let a: 0 | 1 = 1; >a : 0 | 1 > : ^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 8 | 9; >b : 0 | 1 | 9 | 8 @@ -218,8 +218,8 @@ declare function f(): void; let a: 0 | 1 = 0; >a : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 9; >b : 0 | 1 | 9 @@ -230,10 +230,10 @@ declare function f(): void; > : ^^^^ >[{ [(a = 1)]: b } = [9, a] as const] = [] : [] > : ^^ ->[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0]] -> : ^^^^^^^^^^^^^^^^^ ->{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0 | 1]] +> : ^^^^^^^^^^^^^^^^^^^^^ +>{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >{ [(a = 1)]: b } : { 1: 0 | 1 | 9; } > : ^^^^^^^^^^^^^^^^^ >[(a = 1)] : 0 | 1 | 9 @@ -248,14 +248,14 @@ declare function f(): void; > : ^ >b : 0 | 1 | 9 > : ^^^^^^^^^ ->[9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ ->[9, a] : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ +>[9, a] : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >9 : 9 > : ^ ->a : 0 -> : ^ +>a : 0 | 1 +> : ^^^^^ >[] : [] > : ^^ >f() : void @@ -266,15 +266,15 @@ declare function f(): void; const bb: 0 = b; >bb : 0 > : ^ ->b : 0 -> : ^ +>b : 0 | 1 +> : ^^^^^ } { let a: 0 | 1 = 1; >a : 0 | 1 > : ^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 9; >b : 0 | 1 | 9 @@ -326,8 +326,8 @@ declare function f(): void; let a: 0 | 1 = 0; >a : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 8 | 9; >b : 0 | 1 | 9 | 8 @@ -338,10 +338,10 @@ declare function f(): void; > : ^^^^ >[{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const] : [readonly [9, 8]] > : ^^^^^^^^^^^^^^^^^ ->[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0]] -> : ^^^^^^^^^^^^^^^^^ ->{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0 | 1]] +> : ^^^^^^^^^^^^^^^^^^^^^ +>{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >{ [(a = 1)]: b } : { 1: 0 | 1 | 9 | 8; } > : ^^^^^^^^^^^^^^^^^^^^^ >[(a = 1)] : 0 | 1 | 9 | 8 @@ -356,14 +356,14 @@ declare function f(): void; > : ^ >b : 0 | 1 | 9 | 8 > : ^^^^^^^^^^^^^ ->[9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ ->[9, a] : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ +>[9, a] : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >9 : 9 > : ^ ->a : 0 -> : ^ +>a : 0 | 1 +> : ^^^^^ >[[9, 8] as const] : [readonly [9, 8]] > : ^^^^^^^^^^^^^^^^^ >[9, 8] as const : readonly [9, 8] @@ -382,15 +382,15 @@ declare function f(): void; const bb: 0 | 8 = b; >bb : 0 | 8 > : ^^^^^ ->b : 0 | 8 -> : ^^^^^ +>b : 0 | 1 | 8 +> : ^^^^^^^^^ } { let a: 0 | 1 = 1; >a : 0 | 1 > : ^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 8 | 9; >b : 0 | 1 | 9 | 8 @@ -451,8 +451,8 @@ declare function f(): void; let a: 0 | 1 = 0; >a : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 9; >b : 0 | 1 | 9 @@ -467,10 +467,10 @@ declare function f(): void; > : ^^^^^^ >[{ [(a = 1)]: b } = [9, a] as const] = [] : [] > : ^^ ->[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0]] -> : ^^^^^^^^^^^^^^^^^ ->{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0 | 1]] +> : ^^^^^^^^^^^^^^^^^^^^^ +>{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >{ [(a = 1)]: b } : { 1: 0 | 1 | 9; } > : ^^^^^^^^^^^^^^^^^ >[(a = 1)] : 0 | 1 | 9 @@ -485,29 +485,29 @@ declare function f(): void; > : ^ >b : 0 | 1 | 9 > : ^^^^^^^^^ ->[9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ ->[9, a] : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ +>[9, a] : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >9 : 9 > : ^ ->a : 0 -> : ^ +>a : 0 | 1 +> : ^^^^^ >[] : [] > : ^^ const bb: 0 = b; >bb : 0 > : ^ ->b : 0 -> : ^ +>b : 0 | 1 +> : ^^^^^ } { let a: 0 | 1 = 1; >a : 0 | 1 > : ^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 9; >b : 0 | 1 | 9 @@ -559,8 +559,8 @@ declare function f(): void; let a: 0 | 1 = 0; >a : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 8 | 9; >b : 0 | 1 | 9 | 8 @@ -575,10 +575,10 @@ declare function f(): void; > : ^^^^^^ >[{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const] : [readonly [9, 8]] > : ^^^^^^^^^^^^^^^^^ ->[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0]] -> : ^^^^^^^^^^^^^^^^^ ->{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[{ [(a = 1)]: b } = [9, a] as const] : [readonly [9, 0 | 1]] +> : ^^^^^^^^^^^^^^^^^^^^^ +>{ [(a = 1)]: b } = [9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >{ [(a = 1)]: b } : { 1: 0 | 1 | 9 | 8; } > : ^^^^^^^^^^^^^^^^^^^^^ >[(a = 1)] : 0 | 1 | 9 | 8 @@ -593,14 +593,14 @@ declare function f(): void; > : ^ >b : 0 | 1 | 9 | 8 > : ^^^^^^^^^^^^^ ->[9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ ->[9, a] : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>[9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ +>[9, a] : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >9 : 9 > : ^ ->a : 0 -> : ^ +>a : 0 | 1 +> : ^^^^^ >[[9, 8] as const] : [readonly [9, 8]] > : ^^^^^^^^^^^^^^^^^ >[9, 8] as const : readonly [9, 8] @@ -615,15 +615,15 @@ declare function f(): void; const bb: 0 | 8 = b; >bb : 0 | 8 > : ^^^^^ ->b : 0 | 8 -> : ^^^^^ +>b : 0 | 1 | 8 +> : ^^^^^^^^^ } { let a: 0 | 1 = 1; >a : 0 | 1 > : ^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 +> : ^^^^^ let b: 0 | 1 | 8 | 9; >b : 0 | 1 | 9 | 8 diff --git a/tests/baselines/reference/controlFlowBindingElement.types b/tests/baselines/reference/controlFlowBindingElement.types index f984a1a37c8f7..c7b6421e40b7f 100644 --- a/tests/baselines/reference/controlFlowBindingElement.types +++ b/tests/baselines/reference/controlFlowBindingElement.types @@ -61,8 +61,8 @@ let foo: string | undefined = ""; >foo : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->"" : "" -> : ^^ +>"" : string | undefined +> : ^^^^^^^^^^^^^^^^^^ const { param = (() => { throw new Error('param is not defined') })(), @@ -86,8 +86,8 @@ > : ^^^^^^^^^^^^^^^^^^ foo; // should be string ->foo : string -> : ^^^^^^ +>foo : string | undefined +> : ^^^^^^^^^^^^^^^^^^ } { @@ -104,8 +104,8 @@ let foo: string | undefined = ""; >foo : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->"" : "" -> : ^^ +>"" : string | undefined +> : ^^^^^^^^^^^^^^^^^^ const { param = (() => { foo = undefined })(), @@ -147,8 +147,8 @@ let foo: string | undefined = ""; >foo : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->"" : "" -> : ^^ +>"" : string | undefined +> : ^^^^^^^^^^^^^^^^^^ const { param = (() => { return "" + 1 })(), @@ -172,8 +172,8 @@ > : ^^^^^^^^^^^^^^^^^^ foo; // should be string ->foo : string -> : ^^^^^^ +>foo : string | undefined +> : ^^^^^^^^^^^^^^^^^^ } { diff --git a/tests/baselines/reference/controlFlowBindingPatternOrder.errors.txt b/tests/baselines/reference/controlFlowBindingPatternOrder.errors.txt index 5e00922d8453f..5e3d1fe97cbac 100644 --- a/tests/baselines/reference/controlFlowBindingPatternOrder.errors.txt +++ b/tests/baselines/reference/controlFlowBindingPatternOrder.errors.txt @@ -1,15 +1,24 @@ +controlFlowBindingPatternOrder.ts(5,11): error TS2322: Type '0 | 1' is not assignable to type '0'. + Type '1' is not assignable to type '0'. controlFlowBindingPatternOrder.ts(10,11): error TS2322: Type '0 | 9' is not assignable to type '9'. Type '0' is not assignable to type '9'. +controlFlowBindingPatternOrder.ts(15,11): error TS2322: Type '0 | 9 | 5' is not assignable to type '0 | 9'. + Type '5' is not assignable to type '0 | 9'. +controlFlowBindingPatternOrder.ts(20,11): error TS2322: Type '0 | 1 | 8' is not assignable to type '0 | 8'. + Type '1' is not assignable to type '0 | 8'. controlFlowBindingPatternOrder.ts(25,11): error TS2322: Type '0 | 9 | 8' is not assignable to type '0 | 8'. Type '9' is not assignable to type '0 | 8'. -==== controlFlowBindingPatternOrder.ts (2 errors) ==== +==== controlFlowBindingPatternOrder.ts (5 errors) ==== // https://github.com/microsoft/TypeScript/pull/41094#issuecomment-716044363 { let a: 0 | 1 = 0; const [{ [(a = 1)]: b } = [9, a] as const] = []; const bb: 0 = b; + ~~ +!!! error TS2322: Type '0 | 1' is not assignable to type '0'. +!!! error TS2322: Type '1' is not assignable to type '0'. } { let a: 0 | 1 = 1; @@ -23,11 +32,17 @@ controlFlowBindingPatternOrder.ts(25,11): error TS2322: Type '0 | 9 | 8' is not let a: 0 | 1 | 2 = 1; const [{ [a]: b } = [9, a = 0, 5] as const] = []; const bb: 0 | 9 = b; + ~~ +!!! error TS2322: Type '0 | 9 | 5' is not assignable to type '0 | 9'. +!!! error TS2322: Type '5' is not assignable to type '0 | 9'. } { let a: 0 | 1 = 0; const [{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const]; const bb: 0 | 8 = b; + ~~ +!!! error TS2322: Type '0 | 1 | 8' is not assignable to type '0 | 8'. +!!! error TS2322: Type '1' is not assignable to type '0 | 8'. } { let a: 0 | 1 = 1; diff --git a/tests/baselines/reference/controlFlowBindingPatternOrder.types b/tests/baselines/reference/controlFlowBindingPatternOrder.types index 9b02ae8ed242d..8c2128783e8e6 100644 --- a/tests/baselines/reference/controlFlowBindingPatternOrder.types +++ b/tests/baselines/reference/controlFlowBindingPatternOrder.types @@ -6,8 +6,8 @@ let a: 0 | 1 = 0; >a : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ const [{ [(a = 1)]: b } = [9, a] as const] = []; >(a = 1) : 1 @@ -18,31 +18,31 @@ > : ^^^^^ >1 : 1 > : ^ ->b : 0 -> : ^ ->[9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ ->[9, a] : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>b : 0 | 1 +> : ^^^^^ +>[9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ +>[9, a] : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >9 : 9 > : ^ ->a : 0 -> : ^ +>a : 0 | 1 +> : ^^^^^ >[] : [] > : ^^ const bb: 0 = b; >bb : 0 > : ^ ->b : 0 -> : ^ +>b : 0 | 1 +> : ^^^^^ } { let a: 0 | 1 = 1; >a : 0 | 1 > : ^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 +> : ^^^^^ const [{ [a]: b } = [9, a = 0] as const] = []; >a : 0 | 1 @@ -74,14 +74,14 @@ let a: 0 | 1 | 2 = 1; >a : 0 | 1 | 2 > : ^^^^^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 | 2 +> : ^^^^^^^^^ const [{ [a]: b } = [9, a = 0, 5] as const] = []; ->a : 0 | 1 -> : ^^^^^ ->b : 0 | 9 -> : ^^^^^ +>a : 0 | 1 | 2 +> : ^^^^^^^^^ +>b : 0 | 9 | 5 +> : ^^^^^^^^^ >[9, a = 0, 5] as const : readonly [9, 0, 5] > : ^^^^^^^^^^^^^^^^^^ >[9, a = 0, 5] : readonly [9, 0, 5] @@ -102,15 +102,15 @@ const bb: 0 | 9 = b; >bb : 0 | 9 > : ^^^^^ ->b : 0 | 9 -> : ^^^^^ +>b : 0 | 9 | 5 +> : ^^^^^^^^^ } { let a: 0 | 1 = 0; >a : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ const [{ [(a = 1)]: b } = [9, a] as const] = [[9, 8] as const]; >(a = 1) : 1 @@ -121,16 +121,16 @@ > : ^^^^^ >1 : 1 > : ^ ->b : 0 | 8 -> : ^^^^^ ->[9, a] as const : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ ->[9, a] : readonly [9, 0] -> : ^^^^^^^^^^^^^^^ +>b : 0 | 1 | 8 +> : ^^^^^^^^^ +>[9, a] as const : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ +>[9, a] : readonly [9, 0 | 1] +> : ^^^^^^^^^^^^^^^^^^^ >9 : 9 > : ^ ->a : 0 -> : ^ +>a : 0 | 1 +> : ^^^^^ >[[9, 8] as const] : [readonly [9, 8]] > : ^^^^^^^^^^^^^^^^^ >[9, 8] as const : readonly [9, 8] @@ -145,15 +145,15 @@ const bb: 0 | 8 = b; >bb : 0 | 8 > : ^^^^^ ->b : 0 | 8 -> : ^^^^^ +>b : 0 | 1 | 8 +> : ^^^^^^^^^ } { let a: 0 | 1 = 1; >a : 0 | 1 > : ^^^^^ ->1 : 1 -> : ^ +>1 : 0 | 1 +> : ^^^^^ const [{ [a]: b } = [a = 0, 9] as const] = [[8, 9] as const]; >a : 0 | 1 diff --git a/tests/baselines/reference/controlFlowBreakContinueWithLabel.types b/tests/baselines/reference/controlFlowBreakContinueWithLabel.types index b75e188fbb3ac..e16e05c6f584f 100644 --- a/tests/baselines/reference/controlFlowBreakContinueWithLabel.types +++ b/tests/baselines/reference/controlFlowBreakContinueWithLabel.types @@ -12,12 +12,12 @@ enum User { A, B } let user: User = User.A >user : User > : ^^^^ ->User.A : User.A -> : ^^^^^^ +>User.A : User +> : ^^^^ >User : typeof User > : ^^^^^^^^^^^ ->A : User.A -> : ^^^^^^ +>A : User +> : ^^^^ label: while (true) { >label : any diff --git a/tests/baselines/reference/controlFlowCommaOperator.types b/tests/baselines/reference/controlFlowCommaOperator.types index 6d5fa7fb2da11..4d838cbb825fd 100644 --- a/tests/baselines/reference/controlFlowCommaOperator.types +++ b/tests/baselines/reference/controlFlowCommaOperator.types @@ -10,14 +10,14 @@ function f(x: string | number | boolean) { let y: string | number | boolean = false; >y : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->false : false -> : ^^^^^ +>false : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ let z: string | number | boolean = false; >z : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->false : false -> : ^^^^^ +>false : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ if (y = "", typeof x === "string") { >y = "", typeof x === "string" : boolean @@ -46,8 +46,8 @@ function f(x: string | number | boolean) { > : ^^^^^^ z; // boolean ->z : false -> : ^^^^^ +>z : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ } else if (z = 1, typeof x === "number") { >z = 1, typeof x === "number" : boolean @@ -101,7 +101,7 @@ function f(x: string | number | boolean) { > : ^^^^^^ z; // number | boolean ->z : number | false -> : ^^^^^^^^^^^^^^ +>z : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/controlFlowDeleteOperator.types b/tests/baselines/reference/controlFlowDeleteOperator.types index 6991d009ae532..371030d59e9c8 100644 --- a/tests/baselines/reference/controlFlowDeleteOperator.types +++ b/tests/baselines/reference/controlFlowDeleteOperator.types @@ -12,8 +12,8 @@ function f() { > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >b : string | number > : ^^^^^^^^^^^^^^^ ->{ b: 1 } : { b: number; } -> : ^^^^^^^^^^^^^^ +>{ b: 1 } : { a?: number | string; b: number | string; } +> : ^^^^^^ ^^^^^ ^^^ >b : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/controlFlowDestructuringDeclaration.types b/tests/baselines/reference/controlFlowDestructuringDeclaration.types index 77a7e278d55dd..01a7ab19cb9d8 100644 --- a/tests/baselines/reference/controlFlowDestructuringDeclaration.types +++ b/tests/baselines/reference/controlFlowDestructuringDeclaration.types @@ -8,22 +8,22 @@ function f1() { let x: string | number = 1; >x : string | number > : ^^^^^^^^^^^^^^^ ->1 : 1 -> : ^ +>1 : string | number +> : ^^^^^^^^^^^^^^^ x; ->x : number -> : ^^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ let y: string | undefined = ""; >y : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->"" : "" -> : ^^ +>"" : string | undefined +> : ^^^^^^^^^^^^^^^^^^ y; ->y : string -> : ^^^^^^ +>y : string | undefined +> : ^^^^^^^^^^^^^^^^^^ } function f2() { @@ -33,34 +33,34 @@ function f2() { let [x]: [string | number] = [1]; >x : string | number > : ^^^^^^^^^^^^^^^ ->[1] : [number] -> : ^^^^^^^^ +>[1] : [string | number] +> : ^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ x; ->x : number -> : ^^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ let [y]: [string | undefined] = [""]; >y : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->[""] : [string] -> : ^^^^^^^^ +>[""] : [string | undefined] +> : ^^^^^^^^^^^^^^^^^^^^ >"" : "" > : ^^ y; ->y : string -> : ^^^^^^ +>y : string | undefined +> : ^^^^^^^^^^^^^^^^^^ let [z = ""]: [string | undefined] = [undefined]; >z : string > : ^^^^^^ >"" : "" > : ^^ ->[undefined] : [undefined] -> : ^^^^^^^^^^^ +>[undefined] : [string | undefined] +> : ^^^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -76,34 +76,34 @@ function f3() { let [x]: (string | number)[] = [1]; >x : string | number > : ^^^^^^^^^^^^^^^ ->[1] : number[] -> : ^^^^^^^^ +>[1] : (string | number)[] +> : ^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ x; ->x : number -> : ^^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ let [y]: (string | undefined)[] = [""]; >y : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->[""] : string[] -> : ^^^^^^^^ +>[""] : (string | undefined)[] +> : ^^^^^^^^^^^^^^^^^^^^^^ >"" : "" > : ^^ y; ->y : string -> : ^^^^^^ +>y : string | undefined +> : ^^^^^^^^^^^^^^^^^^ let [z = ""]: (string | undefined)[] = [undefined]; >z : string > : ^^^^^^ >"" : "" > : ^^ ->[undefined] : undefined[] -> : ^^^^^^^^^^^ +>[undefined] : (string | undefined)[] +> : ^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -121,32 +121,32 @@ function f4() { > : ^^^^^^^^^^^^^^^ >x : string | number > : ^^^^^^^^^^^^^^^ ->{ x: 1 } : { x: number; } -> : ^^^^^^^^^^^^^^ +>{ x: 1 } : { x: string | number; } +> : ^^^^^ ^^^ >x : number > : ^^^^^^ >1 : 1 > : ^ x; ->x : number -> : ^^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ let { y }: { y: string | undefined } = { y: "" }; >y : string | undefined > : ^^^^^^^^^^^^^^^^^^ >y : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->{ y: "" } : { y: string; } -> : ^^^^^^^^^^^^^^ +>{ y: "" } : { y: string | undefined; } +> : ^^^^^ ^^^ >y : string > : ^^^^^^ >"" : "" > : ^^ y; ->y : string -> : ^^^^^^ +>y : string | undefined +> : ^^^^^^^^^^^^^^^^^^ let { z = "" }: { z: string | undefined } = { z: undefined }; >z : string @@ -155,8 +155,8 @@ function f4() { > : ^^ >z : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->{ z: undefined } : { z: undefined; } -> : ^^^^^^^^^^^^^^^^^ +>{ z: undefined } : { z: string | undefined; } +> : ^^^^^ ^^^ >z : undefined > : ^^^^^^^^^ >undefined : undefined @@ -176,32 +176,32 @@ function f5() { > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ x: 1 } : { x: number; } -> : ^^^^^^^^^^^^^^ +>{ x: 1 } : { x?: string | number; } +> : ^^^^^^ ^^^ >x : number > : ^^^^^^ >1 : 1 > : ^ x; ->x : number -> : ^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ let { y }: { y?: string | undefined } = { y: "" }; >y : string | undefined > : ^^^^^^^^^^^^^^^^^^ >y : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->{ y: "" } : { y: string; } -> : ^^^^^^^^^^^^^^ +>{ y: "" } : { y?: string | undefined; } +> : ^^^^^^ ^^^ >y : string > : ^^^^^^ >"" : "" > : ^^ y; ->y : string -> : ^^^^^^ +>y : string | undefined +> : ^^^^^^^^^^^^^^^^^^ let { z = "" }: { z?: string | undefined } = { z: undefined }; >z : string @@ -210,8 +210,8 @@ function f5() { > : ^^ >z : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->{ z: undefined } : { z: undefined; } -> : ^^^^^^^^^^^^^^^^^ +>{ z: undefined } : { z?: string | undefined; } +> : ^^^^^^ ^^^ >z : undefined > : ^^^^^^^^^ >undefined : undefined @@ -231,8 +231,8 @@ function f6() { > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : { x?: string | number; } +> : ^^^^^^ ^^^ x; >x : string | number | undefined @@ -243,8 +243,8 @@ function f6() { > : ^^^^^^^^^^^^^^^^^^ >y : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : { y?: string | undefined; } +> : ^^^^^^ ^^^ y; >y : string | undefined @@ -257,8 +257,8 @@ function f6() { > : ^^ >z : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : { z?: string | undefined; } +> : ^^^^^^ ^^^ z; >z : string @@ -274,8 +274,8 @@ function f7() { > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{ x: 1 } : { x: number; } -> : ^^^^^^^^^^^^^^ +>{ x: 1 } : { [x: string]: number; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ >1 : 1 @@ -286,11 +286,11 @@ function f7() { > : ^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->o : { [x: string]: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>o : { [x: string]: string | number; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ x; ->x : number -> : ^^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/controlFlowElementAccess.types b/tests/baselines/reference/controlFlowElementAccess.types index 2dc3216c8dfe0..157d343a8d97f 100644 --- a/tests/baselines/reference/controlFlowElementAccess.types +++ b/tests/baselines/reference/controlFlowElementAccess.types @@ -6,8 +6,8 @@ let x: { o: boolean } = { o: false } > : ^^^^^ ^^^ >o : boolean > : ^^^^^^^ ->{ o: false } : { o: false; } -> : ^^^^^^^^^^^^^ +>{ o: false } : { o: boolean; } +> : ^^^^^ ^^^ >o : false > : ^^^^^ >false : false diff --git a/tests/baselines/reference/controlFlowForCatchAndFinally.types b/tests/baselines/reference/controlFlowForCatchAndFinally.types index 8a1c836bb1556..02f1aa105fe42 100644 --- a/tests/baselines/reference/controlFlowForCatchAndFinally.types +++ b/tests/baselines/reference/controlFlowForCatchAndFinally.types @@ -32,14 +32,14 @@ async function test(): Promise { let browser: Browser | undefined = undefined; >browser : Browser | undefined > : ^^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : Browser | undefined +> : ^^^^^^^^^^^^^^^^^^^ let page: Page | undefined = undefined; >page : Page | undefined > : ^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : Page | undefined +> : ^^^^^^^^^^^^^^^^ try { browser = await test1(); diff --git a/tests/baselines/reference/controlFlowForInStatement2.types b/tests/baselines/reference/controlFlowForInStatement2.types index 57cf74706aacd..4b7eea6378082 100644 --- a/tests/baselines/reference/controlFlowForInStatement2.types +++ b/tests/baselines/reference/controlFlowForInStatement2.types @@ -62,8 +62,8 @@ if (keywordA in c) { let stringB: string = 'b'; >stringB : string > : ^^^^^^ ->'b' : "b" -> : ^^^ +>'b' : string +> : ^^^^^^ if ((stringB as 'b') in c) { >(stringB as 'b') in c : boolean diff --git a/tests/baselines/reference/controlFlowForStatementContinueIntoIncrementor1.types b/tests/baselines/reference/controlFlowForStatementContinueIntoIncrementor1.types index cb632f36c5192..d63685c0b22af 100644 --- a/tests/baselines/reference/controlFlowForStatementContinueIntoIncrementor1.types +++ b/tests/baselines/reference/controlFlowForStatementContinueIntoIncrementor1.types @@ -68,8 +68,8 @@ let iNext: string | number = ""; >iNext : string | number > : ^^^^^^^^^^^^^^^ ->"" : "" -> : ^^ +>"" : string | number +> : ^^^^^^^^^^^^^^^ for ( let i = 0; diff --git a/tests/baselines/reference/controlFlowIterationErrorsAsync.types b/tests/baselines/reference/controlFlowIterationErrorsAsync.types index 4f37f34a2ebbc..bb1c6a6cd250b 100644 --- a/tests/baselines/reference/controlFlowIterationErrorsAsync.types +++ b/tests/baselines/reference/controlFlowIterationErrorsAsync.types @@ -427,8 +427,8 @@ async function foobar() { let before: number | undefined = undefined; >before : number | undefined > : ^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : number | undefined +> : ^^^^^^^^^^^^^^^^^^ for (let i = 0; i < 2; i++) { >i : number @@ -487,8 +487,8 @@ async () => { let bar: string | undefined = undefined; >bar : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string | undefined +> : ^^^^^^^^^^^^^^^^^^ do { const baz = await foox(bar); @@ -535,8 +535,8 @@ async function myFunc(): Promise { let lastId: number | undefined = undefined; >lastId : number | undefined > : ^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : number | undefined +> : ^^^^^^^^^^^^^^^^^^ while (true) { >true : true diff --git a/tests/baselines/reference/controlFlowLoopAnalysis.types b/tests/baselines/reference/controlFlowLoopAnalysis.types index 30caab5676ccf..1c7df4012799e 100644 --- a/tests/baselines/reference/controlFlowLoopAnalysis.types +++ b/tests/baselines/reference/controlFlowLoopAnalysis.types @@ -129,8 +129,8 @@ function mapUntilCant( let result: b[] = []; >result : b[] > : ^^^ ->[] : never[] -> : ^^^^^^^ +>[] : b[] +> : ^^^ for (let index = 0, length = values.length; index < length; index++) { >index : number diff --git a/tests/baselines/reference/controlFlowNoIntermediateErrors.types b/tests/baselines/reference/controlFlowNoIntermediateErrors.types index 7720cc400381b..dd609ef845948 100644 --- a/tests/baselines/reference/controlFlowNoIntermediateErrors.types +++ b/tests/baselines/reference/controlFlowNoIntermediateErrors.types @@ -10,8 +10,8 @@ function f1() { let code: 0 | 1 | 2 = 0; >code : 0 | 1 | 2 > : ^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 +> : ^^^^^^^^^ const otherCodes: (0 | 1 | 2)[] = [2, 0, 1, 0, 2, 2, 2, 0, 1, 0, 2, 1, 1, 0, 2, 1]; >otherCodes : (0 | 1 | 2)[] @@ -102,8 +102,8 @@ function f2() { let code: 0 | 1 = 0; >code : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ while (true) { >true : true diff --git a/tests/baselines/reference/controlFlowSelfReferentialLoop.types b/tests/baselines/reference/controlFlowSelfReferentialLoop.types index fc193a10c2bde..45869f6b34ef3 100644 --- a/tests/baselines/reference/controlFlowSelfReferentialLoop.types +++ b/tests/baselines/reference/controlFlowSelfReferentialLoop.types @@ -2378,8 +2378,8 @@ function getObject(id: string | number) { let id: string | number = 'a' >id : string | number > : ^^^^^^^^^^^^^^^ ->'a' : "a" -> : ^^^ +>'a' : string | number +> : ^^^^^^^^^^^^^^^ while (1) { >1 : 1 @@ -2394,8 +2394,8 @@ function getObject(id: string | number) { > : ^^^ >getObject : (id: string | number) => any > : ^ ^^ ^^^^^ ->id : string -> : ^^^^^^ +>id : string | number +> : ^^^^^^^^^^^^^^^ const message = data.message >message : { id: string; } diff --git a/tests/baselines/reference/controlFlowWithIncompleteTypes.errors.txt b/tests/baselines/reference/controlFlowWithIncompleteTypes.errors.txt new file mode 100644 index 0000000000000..c61b187af37f6 --- /dev/null +++ b/tests/baselines/reference/controlFlowWithIncompleteTypes.errors.txt @@ -0,0 +1,35 @@ +controlFlowWithIncompleteTypes.ts(24,19): error TS2339: Property 'slice' does not exist on type 'string | boolean'. + Property 'slice' does not exist on type 'false'. + + +==== controlFlowWithIncompleteTypes.ts (1 errors) ==== + // Repro from #11000 + + declare var cond: boolean; + + function foo1() { + let x: string | number | boolean = 0; + while (cond) { + if (typeof x === "string") { + x = x.slice(); + } + else { + x = "abc"; + } + } + } + + function foo2() { + let x: string | number | boolean = 0; + while (cond) { + if (typeof x === "number") { + x = "abc"; + } + else { + x = x.slice(); + ~~~~~ +!!! error TS2339: Property 'slice' does not exist on type 'string | boolean'. +!!! error TS2339: Property 'slice' does not exist on type 'false'. + } + } + } \ No newline at end of file diff --git a/tests/baselines/reference/controlFlowWithIncompleteTypes.symbols b/tests/baselines/reference/controlFlowWithIncompleteTypes.symbols index da929a381ea28..7419bbfe1cee2 100644 --- a/tests/baselines/reference/controlFlowWithIncompleteTypes.symbols +++ b/tests/baselines/reference/controlFlowWithIncompleteTypes.symbols @@ -49,9 +49,7 @@ function foo2() { else { x = x.slice(); >x : Symbol(x, Decl(controlFlowWithIncompleteTypes.ts, 17, 7)) ->x.slice : Symbol(String.slice, Decl(lib.es5.d.ts, --, --)) >x : Symbol(x, Decl(controlFlowWithIncompleteTypes.ts, 17, 7)) ->slice : Symbol(String.slice, Decl(lib.es5.d.ts, --, --)) } } } diff --git a/tests/baselines/reference/controlFlowWithIncompleteTypes.types b/tests/baselines/reference/controlFlowWithIncompleteTypes.types index febf0c47ec306..34738581daa1c 100644 --- a/tests/baselines/reference/controlFlowWithIncompleteTypes.types +++ b/tests/baselines/reference/controlFlowWithIncompleteTypes.types @@ -14,8 +14,8 @@ function foo1() { let x: string | number | boolean = 0; >x : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ while (cond) { >cond : boolean @@ -26,8 +26,8 @@ function foo1() { > : ^^^^^^^ >typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >"string" : "string" > : ^^^^^^^^ @@ -64,8 +64,8 @@ function foo2() { let x: string | number | boolean = 0; >x : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ while (cond) { >cond : boolean @@ -76,8 +76,8 @@ function foo2() { > : ^^^^^^^ >typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >"number" : "number" > : ^^^^^^^^ @@ -91,18 +91,18 @@ function foo2() { } else { x = x.slice(); ->x = x.slice() : string -> : ^^^^^^ +>x = x.slice() : any +> : ^^^ >x : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->x.slice() : string -> : ^^^^^^ ->x.slice : (start?: number, end?: number) => string -> : ^ ^^^ ^^ ^^^ ^^^^^ ->x : string -> : ^^^^^^ ->slice : (start?: number, end?: number) => string -> : ^ ^^^ ^^ ^^^ ^^^^^ +>x.slice() : any +> : ^^^ +>x.slice : any +> : ^^^ +>x : string | boolean +> : ^^^^^^^^^^^^^^^^ +>slice : any +> : ^^^ } } } diff --git a/tests/baselines/reference/crashInsourcePropertyIsRelatableToTargetProperty.errors.txt b/tests/baselines/reference/crashInsourcePropertyIsRelatableToTargetProperty.errors.txt index e6a236b8a4285..171d76c3bdb39 100644 --- a/tests/baselines/reference/crashInsourcePropertyIsRelatableToTargetProperty.errors.txt +++ b/tests/baselines/reference/crashInsourcePropertyIsRelatableToTargetProperty.errors.txt @@ -1,4 +1,4 @@ -crashInsourcePropertyIsRelatableToTargetProperty.ts(9,5): error TS2322: Type '(x: "hi", items: string[]) => typeof foo' is not assignable to type 'D'. +crashInsourcePropertyIsRelatableToTargetProperty.ts(9,12): error TS2322: Type '(x: "hi", items: string[]) => typeof foo' is not assignable to type 'D'. ==== crashInsourcePropertyIsRelatableToTargetProperty.ts (1 errors) ==== @@ -11,6 +11,6 @@ crashInsourcePropertyIsRelatableToTargetProperty.ts(9,5): error TS2322: Type '(x return null; } var a: D = foo("hi", []); - ~ + ~~~~~~~~~~~~~ !!! error TS2322: Type '(x: "hi", items: string[]) => typeof foo' is not assignable to type 'D'. \ No newline at end of file diff --git a/tests/baselines/reference/declFileTypeAnnotationParenType.types b/tests/baselines/reference/declFileTypeAnnotationParenType.types index 96a33c2f33b4d..425bce095db34 100644 --- a/tests/baselines/reference/declFileTypeAnnotationParenType.types +++ b/tests/baselines/reference/declFileTypeAnnotationParenType.types @@ -14,7 +14,7 @@ var x: (() => c)[] = [() => new c()]; >x : (() => c)[] > : ^^^^^^^ ^^^ >[() => new c()] : (() => c)[] -> : ^^^^^^^^^^^ +> : ^^^^^^^ ^^^ >() => new c() : () => c > : ^^^^^^^ >new c() : c @@ -37,8 +37,8 @@ var y = [() => new c()]; var k: (() => c) | string = (() => new c()) || ""; >k : string | (() => c) > : ^^^^^^^^^^^^^^^^ ^ ->(() => new c()) || "" : "" | (() => c) -> : ^^^^^^^^^^^^^^ +>(() => new c()) || "" : string | (() => c) +> : ^^^^^^^^^^^^^^^^ ^ >(() => new c()) : () => c > : ^^^^^^^ >() => new c() : () => c diff --git a/tests/baselines/reference/declFileTypeAnnotationTupleType.types b/tests/baselines/reference/declFileTypeAnnotationTupleType.types index 87d52435015d5..49461cc55a3bb 100644 --- a/tests/baselines/reference/declFileTypeAnnotationTupleType.types +++ b/tests/baselines/reference/declFileTypeAnnotationTupleType.types @@ -56,7 +56,7 @@ var x: [g, m.g, () => c] = [new g(), new m.g(), >m : any > : ^^^ >[new g(), new m.g(), () => new c()] : [g, m.g, () => c] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >new g() : g > : ^^^^^^^^^ >g : typeof g diff --git a/tests/baselines/reference/declFileTypeAnnotationUnionType.types b/tests/baselines/reference/declFileTypeAnnotationUnionType.types index 2c07df3315a99..cea323103e148 100644 --- a/tests/baselines/reference/declFileTypeAnnotationUnionType.types +++ b/tests/baselines/reference/declFileTypeAnnotationUnionType.types @@ -84,7 +84,7 @@ var x: g | m.g | (() => c) = new g() || new m.gm : any > : ^^^ >new g() || new m.g() || (() => new c()) : g | m.g | (() => c) -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >new g() || new m.g() : g | m.g > : ^^^^^^^^^^^^^^^^^^^^^^^ >new g() : g diff --git a/tests/baselines/reference/declarationEmitInferredTypeAlias1.types b/tests/baselines/reference/declarationEmitInferredTypeAlias1.types index fff7bcf632751..7d5a2c6f49872 100644 --- a/tests/baselines/reference/declarationEmitInferredTypeAlias1.types +++ b/tests/baselines/reference/declarationEmitInferredTypeAlias1.types @@ -9,8 +9,8 @@ let obj: Data = true; >obj : string | boolean > : ^^^^^^^^^^^^^^^^ ->true : true -> : ^^^^ +>true : string | boolean +> : ^^^^^^^^^^^^^^^^ } export { } diff --git a/tests/baselines/reference/declarationEmitInferredTypeAlias2.types b/tests/baselines/reference/declarationEmitInferredTypeAlias2.types index cd66a04b7c9b2..282b500e9e9e8 100644 --- a/tests/baselines/reference/declarationEmitInferredTypeAlias2.types +++ b/tests/baselines/reference/declarationEmitInferredTypeAlias2.types @@ -9,8 +9,8 @@ let obj: Data = true; >obj : string | boolean > : ^^^^^^^^^^^^^^^^ ->true : true -> : ^^^^ +>true : string | boolean +> : ^^^^^^^^^^^^^^^^ } export { } diff --git a/tests/baselines/reference/declarationEmitInferredTypeAlias3.types b/tests/baselines/reference/declarationEmitInferredTypeAlias3.types index 08b0787a579dc..edc94d6a1dab0 100644 --- a/tests/baselines/reference/declarationEmitInferredTypeAlias3.types +++ b/tests/baselines/reference/declarationEmitInferredTypeAlias3.types @@ -9,8 +9,8 @@ let obj: Data = true; >obj : string | boolean > : ^^^^^^^^^^^^^^^^ ->true : true -> : ^^^^ +>true : string | boolean +> : ^^^^^^^^^^^^^^^^ } export { } diff --git a/tests/baselines/reference/declarationEmitInferredTypeAlias5.types b/tests/baselines/reference/declarationEmitInferredTypeAlias5.types index 75003f66ebbe2..ce65c73036e9a 100644 --- a/tests/baselines/reference/declarationEmitInferredTypeAlias5.types +++ b/tests/baselines/reference/declarationEmitInferredTypeAlias5.types @@ -8,7 +8,7 @@ export type Data = string | boolean; let obj: Data = true; >obj : Data > : ^^^^ ->true : true +>true : Data > : ^^^^ === 1.ts === diff --git a/tests/baselines/reference/declarationEmitInferredTypeAlias6.types b/tests/baselines/reference/declarationEmitInferredTypeAlias6.types index 83d806e44bd70..e0718433d9d3d 100644 --- a/tests/baselines/reference/declarationEmitInferredTypeAlias6.types +++ b/tests/baselines/reference/declarationEmitInferredTypeAlias6.types @@ -9,8 +9,8 @@ let obj: Data = true; >obj : string | boolean > : ^^^^^^^^^^^^^^^^ ->true : true -> : ^^^^ +>true : string | boolean +> : ^^^^^^^^^^^^^^^^ } export { } diff --git a/tests/baselines/reference/declarationEmitInferredTypeAlias7.types b/tests/baselines/reference/declarationEmitInferredTypeAlias7.types index e66cbfb962e3b..bfe6bdc3371f6 100644 --- a/tests/baselines/reference/declarationEmitInferredTypeAlias7.types +++ b/tests/baselines/reference/declarationEmitInferredTypeAlias7.types @@ -8,7 +8,7 @@ export type Data = string | boolean; let obj: Data = true; >obj : Data > : ^^^^ ->true : true +>true : Data > : ^^^^ === 1.ts === diff --git a/tests/baselines/reference/decrementOperatorWithAnyOtherType.types b/tests/baselines/reference/decrementOperatorWithAnyOtherType.types index edaef29571fd5..4938e46549cd6 100644 --- a/tests/baselines/reference/decrementOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/decrementOperatorWithAnyOtherType.types @@ -12,8 +12,8 @@ var ANY1: any; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.types b/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.types index 91045f7d95009..046add0c38ad5 100644 --- a/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.types +++ b/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.types @@ -9,8 +9,8 @@ var ANY1: any; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/deepComparisons.errors.txt b/tests/baselines/reference/deepComparisons.errors.txt index 563b184c7ac00..35f6aa710b241 100644 --- a/tests/baselines/reference/deepComparisons.errors.txt +++ b/tests/baselines/reference/deepComparisons.errors.txt @@ -1,9 +1,9 @@ -deepComparisons.ts(2,9): error TS2322: Type 'T' is not assignable to type 'Extract'. -deepComparisons.ts(3,9): error TS2322: Type 'T[K1]' is not assignable to type 'Extract'. +deepComparisons.ts(2,34): error TS2322: Type 'T' is not assignable to type 'Extract'. +deepComparisons.ts(3,38): error TS2322: Type 'T[K1]' is not assignable to type 'Extract'. Type 'T[keyof T]' is not assignable to type 'Extract'. Type 'T[string] | T[number] | T[symbol]' is not assignable to type 'Extract'. Type 'T[string]' is not assignable to type 'Extract'. -deepComparisons.ts(4,9): error TS2322: Type 'T[K1][K2]' is not assignable to type 'Extract'. +deepComparisons.ts(4,42): error TS2322: Type 'T[K1][K2]' is not assignable to type 'Extract'. Type 'T[K1][keyof T[K1]]' is not assignable to type 'Extract'. Type 'T[K1][string] | T[K1][number] | T[K1][symbol]' is not assignable to type 'Extract'. Type 'T[K1][string]' is not assignable to type 'Extract'. @@ -15,16 +15,16 @@ deepComparisons.ts(4,9): error TS2322: Type 'T[K1][K2]' is not assignable to typ ==== deepComparisons.ts (3 errors) ==== function f1() { let v1: Extract = 0 as any as T; // Error - ~~ + ~~~~~~~~~~~~~ !!! error TS2322: Type 'T' is not assignable to type 'Extract'. let v2: Extract = 0 as any as T[K1]; // Error - ~~ + ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'T[K1]' is not assignable to type 'Extract'. !!! error TS2322: Type 'T[keyof T]' is not assignable to type 'Extract'. !!! error TS2322: Type 'T[string] | T[number] | T[symbol]' is not assignable to type 'Extract'. !!! error TS2322: Type 'T[string]' is not assignable to type 'Extract'. let v3: Extract = 0 as any as T[K1][K2]; // No error - ~~ + ~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'T[K1][K2]' is not assignable to type 'Extract'. !!! error TS2322: Type 'T[K1][keyof T[K1]]' is not assignable to type 'Extract'. !!! error TS2322: Type 'T[K1][string] | T[K1][number] | T[K1][symbol]' is not assignable to type 'Extract'. diff --git a/tests/baselines/reference/deepElaborationsIntoArrowExpressions.errors.txt b/tests/baselines/reference/deepElaborationsIntoArrowExpressions.errors.txt index 02c434b6165a1..b7b0dd5333425 100644 --- a/tests/baselines/reference/deepElaborationsIntoArrowExpressions.errors.txt +++ b/tests/baselines/reference/deepElaborationsIntoArrowExpressions.errors.txt @@ -1,7 +1,10 @@ deepElaborationsIntoArrowExpressions.ts(4,14): error TS2322: Type '"b"' is not assignable to type '"a"'. deepElaborationsIntoArrowExpressions.ts(12,20): error TS2322: Type 'string' is not assignable to type 'number'. deepElaborationsIntoArrowExpressions.ts(16,14): error TS2322: Type 'string' is not assignable to type 'number'. -deepElaborationsIntoArrowExpressions.ts(18,18): error TS2322: Type 'string' is not assignable to type 'number'. +deepElaborationsIntoArrowExpressions.ts(18,16): error TS2322: Type '{ a: string; }[]' is not assignable to type 'Foo[]'. + Type '{ a: string; }' is not assignable to type 'Foo'. + Types of property 'a' are incompatible. + Type 'string' is not assignable to type 'number'. ==== deepElaborationsIntoArrowExpressions.ts (4 errors) ==== @@ -32,6 +35,8 @@ deepElaborationsIntoArrowExpressions.ts(18,18): error TS2322: Type 'string' is n !!! related TS6500 deepElaborationsIntoArrowExpressions.ts:8:5: The expected type comes from property 'a' which is declared here on type 'Foo' } var y: Foo[] = [{a: ''}] - ~ -!!! error TS2322: Type 'string' is not assignable to type 'number'. -!!! related TS6500 deepElaborationsIntoArrowExpressions.ts:8:5: The expected type comes from property 'a' which is declared here on type 'Foo' \ No newline at end of file + ~~~~~~~~~ +!!! error TS2322: Type '{ a: string; }[]' is not assignable to type 'Foo[]'. +!!! error TS2322: Type '{ a: string; }' is not assignable to type 'Foo'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/deepElaborationsIntoArrowExpressions.types b/tests/baselines/reference/deepElaborationsIntoArrowExpressions.types index b196726905fc0..085778e84e4ae 100644 --- a/tests/baselines/reference/deepElaborationsIntoArrowExpressions.types +++ b/tests/baselines/reference/deepElaborationsIntoArrowExpressions.types @@ -63,8 +63,8 @@ function foo3(): Foo[] { var y: Foo[] = [{a: ''}] >y : Foo[] > : ^^^^^ ->[{a: ''}] : { a: string; }[] -> : ^^^^^^^^^^^^^^^^ +>[{a: ''}] : Foo[] +> : ^^^^^ >{a: ''} : { a: string; } > : ^^^^^^^^^^^^^^ >a : string diff --git a/tests/baselines/reference/defaultArgsInFunctionExpressions.errors.txt b/tests/baselines/reference/defaultArgsInFunctionExpressions.errors.txt index 3c2f0998ac2af..db98b2c79f979 100644 --- a/tests/baselines/reference/defaultArgsInFunctionExpressions.errors.txt +++ b/tests/baselines/reference/defaultArgsInFunctionExpressions.errors.txt @@ -1,4 +1,4 @@ -defaultArgsInFunctionExpressions.ts(4,5): error TS2322: Type 'number' is not assignable to type 'string'. +defaultArgsInFunctionExpressions.ts(4,17): error TS2322: Type 'number' is not assignable to type 'string'. defaultArgsInFunctionExpressions.ts(4,19): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. defaultArgsInFunctionExpressions.ts(5,1): error TS2322: Type 'number' is not assignable to type 'string'. defaultArgsInFunctionExpressions.ts(8,20): error TS2322: Type 'number' is not assignable to type 'string'. @@ -14,7 +14,7 @@ defaultArgsInFunctionExpressions.ts(28,15): error TS2708: Cannot use namespace ' var n: number = f(4); n = f(); var s: string = f(''); - ~ + ~~~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. ~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. diff --git a/tests/baselines/reference/defaultArgsInFunctionExpressions.types b/tests/baselines/reference/defaultArgsInFunctionExpressions.types index 07a036eac06d7..60a5a274fca9d 100644 --- a/tests/baselines/reference/defaultArgsInFunctionExpressions.types +++ b/tests/baselines/reference/defaultArgsInFunctionExpressions.types @@ -123,8 +123,8 @@ var f4: (a: number) => void = function (a = "") { }; > : ^ ^^ ^^^^^ >a : number > : ^^^^^^ ->function (a = "") { } : (a?: number) => void -> : ^ ^^^^^^^^^^^^^^^^^^ +>function (a = "") { } : (a: number) => void +> : ^ ^^ ^^^^^ >a : number > : ^^^^^^ >"" : "" @@ -138,8 +138,8 @@ var f5: (a: (s: string) => any) => void = function (a = s => s) { }; > : ^ ^^ ^^^^^ >s : string > : ^^^^^^ ->function (a = s => s) { } : (a?: (s: string) => any) => void -> : ^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ +>function (a = s => s) { } : (a: (s: string) => any) => void +> : ^ ^^ ^^^^^ >a : (s: string) => any > : ^ ^^ ^^^^^ >s => s : (s: string) => number diff --git a/tests/baselines/reference/definiteAssignmentAssertions.types b/tests/baselines/reference/definiteAssignmentAssertions.types index 13b23a6466c48..f6dcdf56097db 100644 --- a/tests/baselines/reference/definiteAssignmentAssertions.types +++ b/tests/baselines/reference/definiteAssignmentAssertions.types @@ -202,8 +202,8 @@ function f4() { let c!: number = 1; >c : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ } // Definite assignment assertion not permitted in ambient context diff --git a/tests/baselines/reference/deleteOperator1.errors.txt b/tests/baselines/reference/deleteOperator1.errors.txt index 19feefa6c6228..59a9259a819c4 100644 --- a/tests/baselines/reference/deleteOperator1.errors.txt +++ b/tests/baselines/reference/deleteOperator1.errors.txt @@ -1,6 +1,6 @@ deleteOperator1.ts(2,25): error TS2703: The operand of a 'delete' operator must be a property reference. deleteOperator1.ts(3,21): error TS2703: The operand of a 'delete' operator must be a property reference. -deleteOperator1.ts(4,5): error TS2322: Type 'boolean' is not assignable to type 'number'. +deleteOperator1.ts(4,17): error TS2322: Type 'boolean' is not assignable to type 'number'. deleteOperator1.ts(4,24): error TS2703: The operand of a 'delete' operator must be a property reference. @@ -13,7 +13,7 @@ deleteOperator1.ts(4,24): error TS2703: The operand of a 'delete' operator must ~ !!! error TS2703: The operand of a 'delete' operator must be a property reference. var z: number = delete a; - ~ + ~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'number'. ~ !!! error TS2703: The operand of a 'delete' operator must be a property reference. \ No newline at end of file diff --git a/tests/baselines/reference/deleteOperator1.types b/tests/baselines/reference/deleteOperator1.types index f7edb3f4afdfb..88b44c48cdb5b 100644 --- a/tests/baselines/reference/deleteOperator1.types +++ b/tests/baselines/reference/deleteOperator1.types @@ -16,16 +16,16 @@ var x: boolean = delete a; var y: any = delete a; >y : any > : ^^^ ->delete a : boolean -> : ^^^^^^^ +>delete a : any +> : ^^^ >a : any > : ^^^ var z: number = delete a; >z : number > : ^^^^^^ ->delete a : boolean -> : ^^^^^^^ +>delete a : number +> : ^^^^^^ >a : any > : ^^^ diff --git a/tests/baselines/reference/deleteOperatorWithAnyOtherType.types b/tests/baselines/reference/deleteOperatorWithAnyOtherType.types index 6ea3ba1c7bb45..c1dda82f189e4 100644 --- a/tests/baselines/reference/deleteOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/deleteOperatorWithAnyOtherType.types @@ -14,8 +14,8 @@ var ANY1; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/deleteReadonly.types b/tests/baselines/reference/deleteReadonly.types index 9872aeb3d002e..00664eea4a326 100644 --- a/tests/baselines/reference/deleteReadonly.types +++ b/tests/baselines/reference/deleteReadonly.types @@ -9,8 +9,8 @@ interface A { var a: A = { >a : A > : ^ ->{ b: 123} : { b: number; } -> : ^^^^^^^^^^^^^^ +>{ b: 123} : A +> : ^ b: 123 >b : number @@ -39,8 +39,8 @@ interface B { var b: B = { >b : B > : ^ ->{ 'test': 'test'} : { test: string; } -> : ^^^^^^^^^^^^^^^^^ +>{ 'test': 'test'} : B +> : ^ 'test': 'test' >'test' : string diff --git a/tests/baselines/reference/dependentDestructuredVariables.types b/tests/baselines/reference/dependentDestructuredVariables.types index 1b829f101d426..68c0ddfe27fe4 100644 --- a/tests/baselines/reference/dependentDestructuredVariables.types +++ b/tests/baselines/reference/dependentDestructuredVariables.types @@ -1176,8 +1176,8 @@ type FooMethod = { let fooM: FooMethod = { >fooM : FooMethod > : ^^^^^^^^^ ->{ method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : { method(type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)): void; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^ +>{ method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : FooMethod +> : ^^^^^^^^^ method(type, cb) { >method : (type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)) => void @@ -1239,8 +1239,8 @@ type FooAsyncMethod = { let fooAsyncM: FooAsyncMethod = { >fooAsyncM : FooAsyncMethod > : ^^^^^^^^^^^^^^ ->{ async method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : { method(type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)): Promise; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ +>{ async method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : FooAsyncMethod +> : ^^^^^^^^^^^^^^ async method(type, cb) { >method : (type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)) => Promise @@ -1302,8 +1302,8 @@ type FooGenMethod = { let fooGenM: FooGenMethod = { >fooGenM : FooGenMethod > : ^^^^^^^^^^^^ ->{ *method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : { method(type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)): Generator; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ *method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : FooGenMethod +> : ^^^^^^^^^^^^ *method(type, cb) { >method : (type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)) => Generator @@ -1365,8 +1365,8 @@ type FooAsyncGenMethod = { let fooAsyncGenM: FooAsyncGenMethod = { >fooAsyncGenM : FooAsyncGenMethod > : ^^^^^^^^^^^^^^^^^ ->{ async *method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : { method(type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)): AsyncGenerator; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ async *method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : FooAsyncGenMethod +> : ^^^^^^^^^^^^^^^^^ async *method(type, cb) { >method : (type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)) => AsyncGenerator diff --git a/tests/baselines/reference/derivedTypeCallingBaseImplWithOptionalParams.types b/tests/baselines/reference/derivedTypeCallingBaseImplWithOptionalParams.types index 34de8122f49aa..42e6a0b3cfe1e 100644 --- a/tests/baselines/reference/derivedTypeCallingBaseImplWithOptionalParams.types +++ b/tests/baselines/reference/derivedTypeCallingBaseImplWithOptionalParams.types @@ -23,8 +23,8 @@ class MyClass implements MyInterface { var x: MyInterface = new MyClass(); >x : MyInterface > : ^^^^^^^^^^^ ->new MyClass() : MyClass -> : ^^^^^^^ +>new MyClass() : MyInterface +> : ^^^^^^^^^^^ >MyClass : typeof MyClass > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.types b/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.types index 87a4f3c38f606..244b6a478557e 100644 --- a/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.types +++ b/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.types @@ -65,8 +65,8 @@ b = d2; var r: Base[] = [d1, d2]; >r : Base[] > : ^^^^^^ ->[d1, d2] : (Derived | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : Base[] +> : ^^^^^^ >d1 : Derived > : ^^^^^^^ >d2 : Derived2 diff --git a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5.types b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5.types index bb892bea5bb3d..0b3cf6302fd18 100644 --- a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5.types +++ b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5.types @@ -29,8 +29,8 @@ var [a0, a1]: any = undefined; > : ^^^ >a1 : any > : ^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any +> : ^^^ var [a2 = false, a3 = 1]: any = undefined; >a2 : any @@ -41,8 +41,8 @@ var [a2 = false, a3 = 1]: any = undefined; > : ^^^ >1 : 1 > : ^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any +> : ^^^ // V is an array assignment pattern, S is the type Any or an array-like type (section 3.3.2), and, for each assignment element E in V, // S is a tuple- like type (section 3.3.3) with a property named N of a type that is assignable to the target given in E, @@ -168,8 +168,8 @@ var [[c5], c6]: [[string|number], boolean] = [[1], true]; > : ^^^^^^^^^^^^^^^ >c6 : boolean > : ^^^^^^^ ->[[1], true] : [[number], true] -> : ^^^^^^^^^^^^^^^^ +>[[1], true] : [[string | number], boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[1] : [number] > : ^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5iterable.types b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5iterable.types index ac6da3dbca9db..8975b18b3efa4 100644 --- a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5iterable.types +++ b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5iterable.types @@ -29,8 +29,8 @@ var [a0, a1]: any = undefined; > : ^^^ >a1 : any > : ^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any +> : ^^^ var [a2 = false, a3 = 1]: any = undefined; >a2 : any @@ -41,8 +41,8 @@ var [a2 = false, a3 = 1]: any = undefined; > : ^^^ >1 : 1 > : ^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any +> : ^^^ // V is an array assignment pattern, S is the type Any or an array-like type (section 3.3.2), and, for each assignment element E in V, // S is a tuple- like type (section 3.3.3) with a property named N of a type that is assignable to the target given in E, @@ -168,8 +168,8 @@ var [[c5], c6]: [[string|number], boolean] = [[1], true]; > : ^^^^^^^^^^^^^^^ >c6 : boolean > : ^^^^^^^ ->[[1], true] : [[number], true] -> : ^^^^^^^^^^^^^^^^ +>[[1], true] : [[string | number], boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[1] : [number] > : ^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES6.types b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES6.types index 20f0d124ce0ef..5c8bc0e8a7f73 100644 --- a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES6.types +++ b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES6.types @@ -29,8 +29,8 @@ var [a0, a1]: any = undefined; > : ^^^ >a1 : any > : ^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any +> : ^^^ var [a2 = false, a3 = 1]: any = undefined; >a2 : any @@ -41,8 +41,8 @@ var [a2 = false, a3 = 1]: any = undefined; > : ^^^ >1 : 1 > : ^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any +> : ^^^ // V is an array assignment pattern, S is the type Any or an array-like type (section 3.3.2), and, for each assignment element E in V, // S is a tuple- like type (section 3.3.3) with a property named N of a type that is assignable to the target given in E, @@ -168,8 +168,8 @@ var [[c5], c6]: [[string|number], boolean] = [[1], true]; > : ^^^^^^^^^^^^^^^ >c6 : boolean > : ^^^^^^^ ->[[1], true] : [[number], true] -> : ^^^^^^^^^^^^^^^^ +>[[1], true] : [[string | number], boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[1] : [number] > : ^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment2.errors.txt b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment2.errors.txt index b6e5cba86d173..4a64b632f1390 100644 --- a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment2.errors.txt +++ b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment2.errors.txt @@ -3,10 +3,12 @@ destructuringArrayBindingPatternAndAssignment2.ts(3,6): error TS2493: Tuple type destructuringArrayBindingPatternAndAssignment2.ts(3,12): error TS2461: Type 'undefined' is not an array type. destructuringArrayBindingPatternAndAssignment2.ts(3,12): error TS2493: Tuple type '[]' of length '0' has no element at index '1'. destructuringArrayBindingPatternAndAssignment2.ts(4,5): error TS2461: Type 'undefined' is not an array type. -destructuringArrayBindingPatternAndAssignment2.ts(9,51): error TS2322: Type 'number' is not assignable to type 'boolean'. -destructuringArrayBindingPatternAndAssignment2.ts(22,5): error TS2322: Type 'number[]' is not assignable to type '[number, number]'. +destructuringArrayBindingPatternAndAssignment2.ts(9,47): error TS2322: Type '[number, number, string]' is not assignable to type '[number, boolean, string]'. + Type at position 1 in source is not compatible with type at position 1 in target. + Type 'number' is not assignable to type 'boolean'. +destructuringArrayBindingPatternAndAssignment2.ts(22,34): error TS2322: Type 'number[]' is not assignable to type '[number, number]'. Target requires 2 element(s) but source may have fewer. -destructuringArrayBindingPatternAndAssignment2.ts(23,5): error TS2322: Type 'number[]' is not assignable to type '[string, string]'. +destructuringArrayBindingPatternAndAssignment2.ts(23,34): error TS2322: Type 'number[]' is not assignable to type '[string, string]'. Target requires 2 element(s) but source may have fewer. destructuringArrayBindingPatternAndAssignment2.ts(34,5): error TS2461: Type 'F' is not an array type. @@ -31,8 +33,10 @@ destructuringArrayBindingPatternAndAssignment2.ts(34,5): error TS2461: Type 'F' // S is a tuple- like type (section 3.3.3) with a property named N of a type that is assignable to the target given in E, // where N is the numeric index of E in the array assignment pattern, or var [b0, b1, b2]: [number, boolean, string] = [1, 2, "string"]; // Error - ~ -!!! error TS2322: Type 'number' is not assignable to type 'boolean'. + ~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '[number, number, string]' is not assignable to type '[number, boolean, string]'. +!!! error TS2322: Type at position 1 in source is not compatible with type at position 1 in target. +!!! error TS2322: Type 'number' is not assignable to type 'boolean'. interface J extends Array { 2: number; } @@ -46,11 +50,11 @@ destructuringArrayBindingPatternAndAssignment2.ts(34,5): error TS2461: Type 'F' // S is not a tuple- like type and the numeric index signature type of S is assignable to the target given in E. var temp = [1, 2, 3] var [c0, c1]: [number, number] = [...temp]; // Error - ~~~~~~~~ + ~~~~~~~~~ !!! error TS2322: Type 'number[]' is not assignable to type '[number, number]'. !!! error TS2322: Target requires 2 element(s) but source may have fewer. var [c2, c3]: [string, string] = [...temp]; // Error - ~~~~~~~~ + ~~~~~~~~~ !!! error TS2322: Type 'number[]' is not assignable to type '[string, string]'. !!! error TS2322: Target requires 2 element(s) but source may have fewer. diff --git a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment2.types b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment2.types index ad8ab16432045..7fc52c56fe5ce 100644 --- a/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment2.types +++ b/tests/baselines/reference/destructuringArrayBindingPatternAndAssignment2.types @@ -29,8 +29,8 @@ var [b0, b1, b2]: [number, boolean, string] = [1, 2, "string"]; // Error > : ^^^^^^^ >b2 : string > : ^^^^^^ ->[1, 2, "string"] : [number, number, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, 2, "string"] : [number, boolean, string] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -93,8 +93,8 @@ var [c0, c1]: [number, number] = [...temp]; // Error > : ^^^^^^ >c1 : number > : ^^^^^^ ->[...temp] : number[] -> : ^^^^^^^^ +>[...temp] : [number, number] +> : ^^^^^^^^^^^^^^^^ >...temp : number > : ^^^^^^ >temp : number[] @@ -105,8 +105,8 @@ var [c2, c3]: [string, string] = [...temp]; // Error > : ^^^^^^ >c3 : string > : ^^^^^^ ->[...temp] : number[] -> : ^^^^^^^^ +>[...temp] : [string, string] +> : ^^^^^^^^^^^^^^^^ >...temp : number > : ^^^^^^ >temp : number[] diff --git a/tests/baselines/reference/destructuringControlFlow.symbols b/tests/baselines/reference/destructuringControlFlow.symbols index f43214286e04c..46e77baed7e1b 100644 --- a/tests/baselines/reference/destructuringControlFlow.symbols +++ b/tests/baselines/reference/destructuringControlFlow.symbols @@ -135,5 +135,7 @@ let [key, value]: KeyValue = ["foo"]; >KeyValue : Symbol(KeyValue, Decl(destructuringControlFlow.ts, 33, 1)) value.toUpperCase(); // Error +>value.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) >value : Symbol(value, Decl(destructuringControlFlow.ts, 38, 9)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/destructuringControlFlow.types b/tests/baselines/reference/destructuringControlFlow.types index 053f79fdf6504..6c56d8e7f79b9 100644 --- a/tests/baselines/reference/destructuringControlFlow.types +++ b/tests/baselines/reference/destructuringControlFlow.types @@ -273,18 +273,18 @@ let [key, value]: KeyValue = ["foo"]; > : ^^^^^^ >value : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->["foo"] : [string] +>["foo"] : KeyValue > : ^^^^^^^^ >"foo" : "foo" > : ^^^^^ value.toUpperCase(); // Error ->value.toUpperCase() : any -> : ^^^ ->value.toUpperCase : any -> : ^^^ ->value : undefined -> : ^^^^^^^^^ ->toUpperCase : any -> : ^^^ +>value.toUpperCase() : string +> : ^^^^^^ +>value.toUpperCase : () => string +> : ^^^^^^ +>value : string | undefined +> : ^^^^^^^^^^^^^^^^^^ +>toUpperCase : () => string +> : ^^^^^^ diff --git a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment1ES5.types b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment1ES5.types index b91838a7a77ee..b635818531777 100644 --- a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment1ES5.types +++ b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment1ES5.types @@ -9,14 +9,12 @@ var { a1 }: any = undefined; >a1 : any > : ^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any var { a2 }: any = {}; >a2 : any > : ^^^ ->{} : {} -> : ^^ +>{} : any // V is an object assignment pattern and, for each assignment property P in V, // S has an apparent property with the property name specified in @@ -68,8 +66,7 @@ var {b4 = 1}: any = { b4: 100000 }; > : ^^^ >1 : 1 > : ^ ->{ b4: 100000 } : { b4: number; } -> : ^^^^^^^^^^^^^^^ +>{ b4: 100000 } : any >b4 : number > : ^^^^^^ >100000 : 100000 diff --git a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment1ES6.types b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment1ES6.types index 3bfae7da8a707..e19fb34a308d2 100644 --- a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment1ES6.types +++ b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment1ES6.types @@ -9,14 +9,12 @@ var { a1 }: any = undefined; >a1 : any > : ^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any var { a2 }: any = {}; >a2 : any > : ^^^ ->{} : {} -> : ^^ +>{} : any // V is an object assignment pattern and, for each assignment property P in V, // S has an apparent property with the property name specified in @@ -68,8 +66,7 @@ var {b4 = 1}: any = { b4: 100000 }; > : ^^^ >1 : 1 > : ^ ->{ b4: 100000 } : { b4: number; } -> : ^^^^^^^^^^^^^^^ +>{ b4: 100000 } : any >b4 : number > : ^^^^^^ >100000 : 100000 diff --git a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.errors.txt b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.errors.txt index 165d25f1338ec..421e5b3cd10c2 100644 --- a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.errors.txt +++ b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.errors.txt @@ -1,6 +1,6 @@ destructuringObjectBindingPatternAndAssignment3.ts(2,7): error TS1005: ',' expected. -destructuringObjectBindingPatternAndAssignment3.ts(3,5): error TS2322: Type '{ i: number; }' is not assignable to type 'string | number'. destructuringObjectBindingPatternAndAssignment3.ts(3,6): error TS2339: Property 'i' does not exist on type 'string | number'. +destructuringObjectBindingPatternAndAssignment3.ts(3,28): error TS2322: Type '{ i: number; }' is not assignable to type 'string | number'. destructuringObjectBindingPatternAndAssignment3.ts(4,6): error TS2339: Property 'i1' does not exist on type 'string | number | {}'. destructuringObjectBindingPatternAndAssignment3.ts(5,21): error TS2353: Object literal may only specify known properties, and 'f212' does not exist in type '{ f21: any; }'. destructuringObjectBindingPatternAndAssignment3.ts(6,7): error TS1005: ':' expected. @@ -14,10 +14,10 @@ destructuringObjectBindingPatternAndAssignment3.ts(7,12): error TS1005: ':' expe ~ !!! error TS1005: ',' expected. var {i}: string | number = { i: 2 }; - ~~~ -!!! error TS2322: Type '{ i: number; }' is not assignable to type 'string | number'. ~ !!! error TS2339: Property 'i' does not exist on type 'string | number'. + ~~~~~~~~ +!!! error TS2322: Type '{ i: number; }' is not assignable to type 'string | number'. var {i1}: string | number| {} = { i1: 2 }; ~~ !!! error TS2339: Property 'i1' does not exist on type 'string | number | {}'. diff --git a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.types b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.types index 427f102f70fe6..6d5e3d4650bfc 100644 --- a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.types +++ b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.types @@ -15,8 +15,8 @@ var {h?} = { h?: 1 }; var {i}: string | number = { i: 2 }; >i : any > : ^^^ ->{ i: 2 } : { i: number; } -> : ^^^^^^^^^^^^^^ +>{ i: 2 } : string | number +> : ^^^^^^^^^^^^^^^ >i : number > : ^^^^^^ >2 : 2 @@ -25,8 +25,8 @@ var {i}: string | number = { i: 2 }; var {i1}: string | number| {} = { i1: 2 }; >i1 : any > : ^^^ ->{ i1: 2 } : { i1: number; } -> : ^^^^^^^^^^^^^^^ +>{ i1: 2 } : string | number | {} +> : ^^^^^^^^^^^^^^^^^^^^ >i1 : number > : ^^^^^^ >2 : 2 @@ -43,8 +43,8 @@ var { f2: {f21} = { f212: "string" } }: any = undefined; > : ^^^^^^ >"string" : "string" > : ^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any +> : ^^^ var {1} = { 1 }; > : any diff --git a/tests/baselines/reference/destructuringReassignsRightHandSide.types b/tests/baselines/reference/destructuringReassignsRightHandSide.types index be01d68117502..606e5f41009da 100644 --- a/tests/baselines/reference/destructuringReassignsRightHandSide.types +++ b/tests/baselines/reference/destructuringReassignsRightHandSide.types @@ -3,8 +3,7 @@ === destructuringReassignsRightHandSide.ts === var foo: any = { foo: 1, bar: 2 }; >foo : any ->{ foo: 1, bar: 2 } : { foo: number; bar: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ foo: 1, bar: 2 } : any >foo : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/destructuringVariableDeclaration1ES5.types b/tests/baselines/reference/destructuringVariableDeclaration1ES5.types index 6657d81b26c1e..42aa47f8bcdfc 100644 --- a/tests/baselines/reference/destructuringVariableDeclaration1ES5.types +++ b/tests/baselines/reference/destructuringVariableDeclaration1ES5.types @@ -13,7 +13,7 @@ var {a1, a2}: { a1: number, a2: string } = { a1: 10, a2: "world" } >a2 : string > : ^^^^^^ >{ a1: 10, a2: "world" } : { a1: number; a2: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^ ^^^ >a1 : number > : ^^^^^^ >10 : 10 @@ -30,8 +30,8 @@ var [a3, [[a4]], a5]: [number, [[string]], boolean] = [1, [["hello"]], true]; > : ^^^^^^ >a5 : boolean > : ^^^^^^^ ->[1, [["hello"]], true] : [number, [[string]], true] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, [["hello"]], true] : [number, [[string]], boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >[["hello"]] : [[string]] @@ -302,8 +302,8 @@ var {g: {g1 = [undefined, null]}}: { g: { g1: any[] } } = { g: { g1: [1, 2] } }; > : ^^^^^^ ^^^ >g1 : any[] > : ^^^^^ ->{ g: { g1: [1, 2] } } : { g: { g1: number[]; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ g: { g1: [1, 2] } } : { g: { g1: any[]; }; } +> : ^^^^^ ^^^ >g : { g1: number[]; } > : ^^^^^^^^^^^^^^^^^ >{ g1: [1, 2] } : { g1: number[]; } @@ -331,7 +331,7 @@ var {h: {h1 = [undefined, null]}}: { h: { h1: number[] } } = { h: { h1: [1, 2] } >h1 : number[] > : ^^^^^^^^ >{ h: { h1: [1, 2] } } : { h: { h1: number[]; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >h : { h1: number[]; } > : ^^^^^^^^^^^^^^^^^ >{ h1: [1, 2] } : { h1: number[]; } diff --git a/tests/baselines/reference/destructuringVariableDeclaration1ES5iterable.types b/tests/baselines/reference/destructuringVariableDeclaration1ES5iterable.types index 4bee226a2fec0..b4527ff849e6d 100644 --- a/tests/baselines/reference/destructuringVariableDeclaration1ES5iterable.types +++ b/tests/baselines/reference/destructuringVariableDeclaration1ES5iterable.types @@ -13,7 +13,7 @@ var {a1, a2}: { a1: number, a2: string } = { a1: 10, a2: "world" } >a2 : string > : ^^^^^^ >{ a1: 10, a2: "world" } : { a1: number; a2: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^ ^^^ >a1 : number > : ^^^^^^ >10 : 10 @@ -30,8 +30,8 @@ var [a3, [[a4]], a5]: [number, [[string]], boolean] = [1, [["hello"]], true]; > : ^^^^^^ >a5 : boolean > : ^^^^^^^ ->[1, [["hello"]], true] : [number, [[string]], true] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, [["hello"]], true] : [number, [[string]], boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >[["hello"]] : [[string]] @@ -302,8 +302,8 @@ var {g: {g1 = [undefined, null]}}: { g: { g1: any[] } } = { g: { g1: [1, 2] } }; > : ^^^^^^ ^^^ >g1 : any[] > : ^^^^^ ->{ g: { g1: [1, 2] } } : { g: { g1: number[]; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ g: { g1: [1, 2] } } : { g: { g1: any[]; }; } +> : ^^^^^ ^^^ >g : { g1: number[]; } > : ^^^^^^^^^^^^^^^^^ >{ g1: [1, 2] } : { g1: number[]; } @@ -331,7 +331,7 @@ var {h: {h1 = [undefined, null]}}: { h: { h1: number[] } } = { h: { h1: [1, 2] } >h1 : number[] > : ^^^^^^^^ >{ h: { h1: [1, 2] } } : { h: { h1: number[]; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >h : { h1: number[]; } > : ^^^^^^^^^^^^^^^^^ >{ h1: [1, 2] } : { h1: number[]; } diff --git a/tests/baselines/reference/destructuringVariableDeclaration1ES6.types b/tests/baselines/reference/destructuringVariableDeclaration1ES6.types index b8592c051e401..29209274f9d9b 100644 --- a/tests/baselines/reference/destructuringVariableDeclaration1ES6.types +++ b/tests/baselines/reference/destructuringVariableDeclaration1ES6.types @@ -13,7 +13,7 @@ var {a1, a2}: { a1: number, a2: string } = { a1: 10, a2: "world" } >a2 : string > : ^^^^^^ >{ a1: 10, a2: "world" } : { a1: number; a2: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^ ^^^ >a1 : number > : ^^^^^^ >10 : 10 @@ -30,8 +30,8 @@ var [a3, [[a4]], a5]: [number, [[string]], boolean] = [1, [["hello"]], true]; > : ^^^^^^ >a5 : boolean > : ^^^^^^^ ->[1, [["hello"]], true] : [number, [[string]], true] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, [["hello"]], true] : [number, [[string]], boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >[["hello"]] : [[string]] @@ -302,8 +302,8 @@ var {g: {g1 = [undefined, null]}}: { g: { g1: any[] } } = { g: { g1: [1, 2] } }; > : ^^^^^^ ^^^ >g1 : any[] > : ^^^^^ ->{ g: { g1: [1, 2] } } : { g: { g1: number[]; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ g: { g1: [1, 2] } } : { g: { g1: any[]; }; } +> : ^^^^^ ^^^ >g : { g1: number[]; } > : ^^^^^^^^^^^^^^^^^ >{ g1: [1, 2] } : { g1: number[]; } @@ -331,7 +331,7 @@ var {h: {h1 = [undefined, null]}}: { h: { h1: number[] } } = { h: { h1: [1, 2] } >h1 : number[] > : ^^^^^^^^ >{ h: { h1: [1, 2] } } : { h: { h1: number[]; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >h : { h1: number[]; } > : ^^^^^^^^^^^^^^^^^ >{ h1: [1, 2] } : { h1: number[]; } diff --git a/tests/baselines/reference/destructuringVariableDeclaration2.errors.txt b/tests/baselines/reference/destructuringVariableDeclaration2.errors.txt index 2f5bc845fe086..b5cd9b5868ee3 100644 --- a/tests/baselines/reference/destructuringVariableDeclaration2.errors.txt +++ b/tests/baselines/reference/destructuringVariableDeclaration2.errors.txt @@ -1,22 +1,29 @@ -destructuringVariableDeclaration2.ts(3,46): error TS2322: Type 'boolean' is not assignable to type 'number'. -destructuringVariableDeclaration2.ts(3,56): error TS2322: Type 'number' is not assignable to type 'string'. -destructuringVariableDeclaration2.ts(4,61): error TS2322: Type 'boolean' is not assignable to type 'string'. +destructuringVariableDeclaration2.ts(3,44): error TS2322: Type '{ a1: boolean; a2: number; }' is not assignable to type '{ a1: number; a2: string; }'. + Types of property 'a1' are incompatible. + Type 'boolean' is not assignable to type 'number'. +destructuringVariableDeclaration2.ts(4,55): error TS2322: Type '[number, [[boolean]], true]' is not assignable to type '[number, [[string]], boolean]'. + Type at position 1 in source is not compatible with type at position 1 in target. + Type '[[boolean]]' is not assignable to type '[[string]]'. + Type '[boolean]' is not assignable to type '[string]'. + Type 'boolean' is not assignable to type 'string'. destructuringVariableDeclaration2.ts(19,16): error TS2322: Type 'string' is not assignable to type 'number'. -==== destructuringVariableDeclaration2.ts (4 errors) ==== +==== destructuringVariableDeclaration2.ts (3 errors) ==== // The type T associated with a destructuring variable declaration is determined as follows: // If the declaration includes a type annotation, T is that type. var {a1, a2}: { a1: number, a2: string } = { a1: true, a2: 1 } // Error - ~~ -!!! error TS2322: Type 'boolean' is not assignable to type 'number'. -!!! related TS6500 destructuringVariableDeclaration2.ts:3:17: The expected type comes from property 'a1' which is declared here on type '{ a1: number; a2: string; }' - ~~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6500 destructuringVariableDeclaration2.ts:3:29: The expected type comes from property 'a2' which is declared here on type '{ a1: number; a2: string; }' + ~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ a1: boolean; a2: number; }' is not assignable to type '{ a1: number; a2: string; }'. +!!! error TS2322: Types of property 'a1' are incompatible. +!!! error TS2322: Type 'boolean' is not assignable to type 'number'. var [a3, [[a4]], a5]: [number, [[string]], boolean] = [1, [[false]], true]; // Error - ~~~~~ -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '[number, [[boolean]], true]' is not assignable to type '[number, [[string]], boolean]'. +!!! error TS2322: Type at position 1 in source is not compatible with type at position 1 in target. +!!! error TS2322: Type '[[boolean]]' is not assignable to type '[[string]]'. +!!! error TS2322: Type '[boolean]' is not assignable to type '[string]'. +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. // The type T associated with a destructuring variable declaration is determined as follows: // Otherwise, if the declaration includes an initializer expression, T is the type of that initializer expression. diff --git a/tests/baselines/reference/destructuringVariableDeclaration2.types b/tests/baselines/reference/destructuringVariableDeclaration2.types index 75659c948a579..8489972ab3d77 100644 --- a/tests/baselines/reference/destructuringVariableDeclaration2.types +++ b/tests/baselines/reference/destructuringVariableDeclaration2.types @@ -12,8 +12,8 @@ var {a1, a2}: { a1: number, a2: string } = { a1: true, a2: 1 } // > : ^^^^^^ >a2 : string > : ^^^^^^ ->{ a1: true, a2: 1 } : { a1: boolean; a2: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a1: true, a2: 1 } : { a1: number; a2: string; } +> : ^^^^^^ ^^^^^^ ^^^ >a1 : boolean > : ^^^^^^^ >true : true @@ -30,8 +30,8 @@ var [a3, [[a4]], a5]: [number, [[string]], boolean] = [1, [[false]], true]; // > : ^^^^^^ >a5 : boolean > : ^^^^^^^ ->[1, [[false]], true] : [number, [[boolean]], true] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, [[false]], true] : [number, [[string]], boolean] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >[[false]] : [[boolean]] @@ -141,7 +141,7 @@ var {d: {d1 = ["string", null]}}: { d: { d1: number[] } } = { d: { d1: [1, 2] } >d1 : number[] > : ^^^^^^^^ >{ d: { d1: [1, 2] } } : { d: { d1: number[]; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >d : { d1: number[]; } > : ^^^^^^^^^^^^^^^^^ >{ d1: [1, 2] } : { d1: number[]; } diff --git a/tests/baselines/reference/directDependenceBetweenTypeAliases.types b/tests/baselines/reference/directDependenceBetweenTypeAliases.types index e18641773d5d0..809b2578338be 100644 --- a/tests/baselines/reference/directDependenceBetweenTypeAliases.types +++ b/tests/baselines/reference/directDependenceBetweenTypeAliases.types @@ -53,8 +53,8 @@ type T4 = [number, T4] var x: T5[] = [] >x : any > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : any[] +> : ^^^^^ type T5 = typeof x >T5 : any diff --git a/tests/baselines/reference/discriminantNarrowingCouldBeCircular.types b/tests/baselines/reference/discriminantNarrowingCouldBeCircular.types index 922442b51c08b..ae02a724547af 100644 --- a/tests/baselines/reference/discriminantNarrowingCouldBeCircular.types +++ b/tests/baselines/reference/discriminantNarrowingCouldBeCircular.types @@ -72,12 +72,12 @@ function getImplicitAriaRole(element: SomeRecord) { let ancestor: SomeRecord | null = element; >ancestor : SomeRecord | null > : ^^^^^^^^^^^^^^^^^ ->element : SomeRecord -> : ^^^^^^^^^^ +>element : SomeRecord | null +> : ^^^^^^^^^^^^^^^^^ while (ancestor) { ->ancestor : SomeRecord -> : ^^^^^^^^^^ +>ancestor : SomeRecord | null +> : ^^^^^^^^^^^^^^^^^ const parent = parentElementOrShadowHost(ancestor); >parent : SomeRecord | undefined diff --git a/tests/baselines/reference/discriminatedUnionErrorMessage.types b/tests/baselines/reference/discriminatedUnionErrorMessage.types index ec78e453cea35..1f826ec8328b6 100644 --- a/tests/baselines/reference/discriminatedUnionErrorMessage.types +++ b/tests/baselines/reference/discriminatedUnionErrorMessage.types @@ -37,8 +37,8 @@ type Shape = let shape: Shape = { >shape : Shape > : ^^^^^ ->{ kind: "sq", x: 12, y: 13,} : { kind: "sq"; x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ kind: "sq", x: 12, y: 13,} : Shape +> : ^^^^^ kind: "sq", >kind : "sq" diff --git a/tests/baselines/reference/distributiveConditionalTypeConstraints.errors.txt b/tests/baselines/reference/distributiveConditionalTypeConstraints.errors.txt index dad1774d205f6..7155f25e5924e 100644 --- a/tests/baselines/reference/distributiveConditionalTypeConstraints.errors.txt +++ b/tests/baselines/reference/distributiveConditionalTypeConstraints.errors.txt @@ -1,12 +1,12 @@ -distributiveConditionalTypeConstraints.ts(4,9): error TS2322: Type 'boolean' is not assignable to type 'true'. -distributiveConditionalTypeConstraints.ts(5,9): error TS2322: Type 'boolean' is not assignable to type 'false'. -distributiveConditionalTypeConstraints.ts(10,9): error TS2322: Type 'IsArray' is not assignable to type 'false'. +distributiveConditionalTypeConstraints.ts(4,19): error TS2322: Type 'boolean' is not assignable to type 'true'. +distributiveConditionalTypeConstraints.ts(5,20): error TS2322: Type 'boolean' is not assignable to type 'false'. +distributiveConditionalTypeConstraints.ts(10,20): error TS2322: Type 'IsArray' is not assignable to type 'false'. Type 'true' is not assignable to type 'false'. -distributiveConditionalTypeConstraints.ts(15,9): error TS2322: Type 'IsArray' is not assignable to type 'false'. +distributiveConditionalTypeConstraints.ts(15,20): error TS2322: Type 'IsArray' is not assignable to type 'false'. Type 'true' is not assignable to type 'false'. -distributiveConditionalTypeConstraints.ts(19,9): error TS2322: Type 'IsArray' is not assignable to type 'true'. +distributiveConditionalTypeConstraints.ts(19,19): error TS2322: Type 'IsArray' is not assignable to type 'true'. Type 'false' is not assignable to type 'true'. -distributiveConditionalTypeConstraints.ts(38,9): error TS2322: Type 'boolean' is not assignable to type 'false'. +distributiveConditionalTypeConstraints.ts(38,20): error TS2322: Type 'boolean' is not assignable to type 'false'. ==== distributiveConditionalTypeConstraints.ts (6 errors) ==== @@ -14,17 +14,17 @@ distributiveConditionalTypeConstraints.ts(38,9): error TS2322: Type 'boolean' is function f1(x: IsArray) { let t: true = x; // Error - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type 'true'. let f: false = x; // Error - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type 'false'. } function f2(x: IsArray) { let t: true = x; let f: false = x; // Error - ~ + ~ !!! error TS2322: Type 'IsArray' is not assignable to type 'false'. !!! error TS2322: Type 'true' is not assignable to type 'false'. } @@ -32,14 +32,14 @@ distributiveConditionalTypeConstraints.ts(38,9): error TS2322: Type 'boolean' is function f3(x: IsArray) { let t: true = x; let f: false = x; // Error - ~ + ~ !!! error TS2322: Type 'IsArray' is not assignable to type 'false'. !!! error TS2322: Type 'true' is not assignable to type 'false'. } function f4(x: IsArray) { let t: true = x; // Error - ~ + ~ !!! error TS2322: Type 'IsArray' is not assignable to type 'true'. !!! error TS2322: Type 'false' is not assignable to type 'true'. let f: false = x; @@ -61,7 +61,7 @@ distributiveConditionalTypeConstraints.ts(38,9): error TS2322: Type 'boolean' is function f20(x: Foo) { let t: false = x; // Error - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type 'false'. } diff --git a/tests/baselines/reference/distributiveConditionalTypeConstraints.types b/tests/baselines/reference/distributiveConditionalTypeConstraints.types index 14d899a981171..df601531584e1 100644 --- a/tests/baselines/reference/distributiveConditionalTypeConstraints.types +++ b/tests/baselines/reference/distributiveConditionalTypeConstraints.types @@ -20,16 +20,16 @@ function f1(x: IsArray) { > : ^^^^ >true : true > : ^^^^ ->x : boolean -> : ^^^^^^^ +>x : true +> : ^^^^ let f: false = x; // Error >f : false > : ^^^^^ >false : false > : ^^^^^ ->x : boolean -> : ^^^^^^^ +>x : false +> : ^^^^^ } function f2(x: IsArray) { @@ -43,16 +43,16 @@ function f2(x: IsArray) { > : ^^^^ >true : true > : ^^^^ ->x : IsArray -> : ^^^^^^^^^^ +>x : true +> : ^^^^ let f: false = x; // Error >f : false > : ^^^^^ >false : false > : ^^^^^ ->x : IsArray -> : ^^^^^^^^^^ +>x : false +> : ^^^^^ } function f3(x: IsArray) { @@ -66,16 +66,16 @@ function f3(x: IsArray) { > : ^^^^ >true : true > : ^^^^ ->x : IsArray -> : ^^^^^^^^^^ +>x : true +> : ^^^^ let f: false = x; // Error >f : false > : ^^^^^ >false : false > : ^^^^^ ->x : IsArray -> : ^^^^^^^^^^ +>x : false +> : ^^^^^ } function f4(x: IsArray) { @@ -89,16 +89,16 @@ function f4(x: IsArray) { > : ^^^^ >true : true > : ^^^^ ->x : IsArray -> : ^^^^^^^^^^ +>x : true +> : ^^^^ let f: false = x; >f : false > : ^^^^^ >false : false > : ^^^^^ ->x : IsArray -> : ^^^^^^^^^^ +>x : false +> : ^^^^^ } type ZeroOf = @@ -149,8 +149,8 @@ function f20(x: Foo) { > : ^^^^^ >false : false > : ^^^^^ ->x : boolean -> : ^^^^^^^ +>x : false +> : ^^^^^ } // Modified repro from #30152 diff --git a/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.types b/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.types index e788de04baeaf..22d6b586463fb 100644 --- a/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.types +++ b/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.types @@ -20,8 +20,8 @@ interface IIntervalTreeNode { var test: IIntervalTreeNode[] = [{ interval: { begin: 0 }, children: null }]; // was error here because best common type is {} >test : IIntervalTreeNode[] > : ^^^^^^^^^^^^^^^^^^^ ->[{ interval: { begin: 0 }, children: null }] : { interval: { begin: number; }; children: null; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ interval: { begin: 0 }, children: null }] : IIntervalTreeNode[] +> : ^^^^^^^^^^^^^^^^^^^ >{ interval: { begin: 0 }, children: null } : { interval: { begin: number; }; children: null; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >interval : { begin: number; } diff --git a/tests/baselines/reference/doubleUnderStringLiteralAssignability.errors.txt b/tests/baselines/reference/doubleUnderStringLiteralAssignability.errors.txt index 7db9e27416b5e..b61391531d281 100644 --- a/tests/baselines/reference/doubleUnderStringLiteralAssignability.errors.txt +++ b/tests/baselines/reference/doubleUnderStringLiteralAssignability.errors.txt @@ -1,10 +1,10 @@ -doubleUnderStringLiteralAssignability.ts(2,5): error TS2322: Type '"no_dunder"' is not assignable to type '"__dunder"'. +doubleUnderStringLiteralAssignability.ts(2,23): error TS2322: Type '"no_dunder"' is not assignable to type '"__dunder"'. ==== doubleUnderStringLiteralAssignability.ts (1 errors) ==== var shouldBeOk: '__dunder' = '__dunder'; var bad: '__dunder' = 'no_dunder'; - ~~~ + ~~~~~~~~~~~ !!! error TS2322: Type '"no_dunder"' is not assignable to type '"__dunder"'. var okok: '___thunder' = '___thunder'; var alsoOk: '_sunder' = '_sunder'; diff --git a/tests/baselines/reference/doubleUnderStringLiteralAssignability.types b/tests/baselines/reference/doubleUnderStringLiteralAssignability.types index d74d6bb217477..ebe6e9fbf37ff 100644 --- a/tests/baselines/reference/doubleUnderStringLiteralAssignability.types +++ b/tests/baselines/reference/doubleUnderStringLiteralAssignability.types @@ -10,8 +10,8 @@ var shouldBeOk: '__dunder' = '__dunder'; var bad: '__dunder' = 'no_dunder'; >bad : "__dunder" > : ^^^^^^^^^^ ->'no_dunder' : "no_dunder" -> : ^^^^^^^^^^^ +>'no_dunder' : "__dunder" +> : ^^^^^^^^^^ var okok: '___thunder' = '___thunder'; >okok : "___thunder" diff --git a/tests/baselines/reference/downlevelLetConst10.types b/tests/baselines/reference/downlevelLetConst10.types index ff8e70f66192d..850d614269891 100644 --- a/tests/baselines/reference/downlevelLetConst10.types +++ b/tests/baselines/reference/downlevelLetConst10.types @@ -4,6 +4,6 @@ let a: number = 1 >a : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ diff --git a/tests/baselines/reference/duplicateErrorAssignability.types b/tests/baselines/reference/duplicateErrorAssignability.types index 0891d470381fe..e857cd532fded 100644 --- a/tests/baselines/reference/duplicateErrorAssignability.types +++ b/tests/baselines/reference/duplicateErrorAssignability.types @@ -36,7 +36,7 @@ let obj: { 3: string } = { 3: "three" }; >3 : string > : ^^^^^^ >{ 3: "three" } : { 3: string; } -> : ^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >3 : string > : ^^^^^^ >"three" : "three" diff --git a/tests/baselines/reference/duplicateErrorClassExpression.types b/tests/baselines/reference/duplicateErrorClassExpression.types index 161fd69918ac5..d81a64f347af5 100644 --- a/tests/baselines/reference/duplicateErrorClassExpression.types +++ b/tests/baselines/reference/duplicateErrorClassExpression.types @@ -49,7 +49,7 @@ let obj: { 3: string } = { 3: "three" }; >3 : string > : ^^^^^^ >{ 3: "three" } : { 3: string; } -> : ^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >3 : string > : ^^^^^^ >"three" : "three" diff --git a/tests/baselines/reference/duplicateLocalVariable1.types b/tests/baselines/reference/duplicateLocalVariable1.types index 30c540696609c..89943f1395ea6 100644 --- a/tests/baselines/reference/duplicateLocalVariable1.types +++ b/tests/baselines/reference/duplicateLocalVariable1.types @@ -145,8 +145,8 @@ export class TestRunner { var testResult: boolean = false; >testResult : boolean > : ^^^^^^^ ->false : false -> : ^^^^^ +>false : boolean +> : ^^^^^^^ try { testResult = testcase.test(); diff --git a/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.types b/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.types index 9efcfd7f2613d..b72a01235cf12 100644 --- a/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.types +++ b/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.types @@ -9,16 +9,15 @@ let a = /*[[${something}]]*/ {}; let b: any = /*[[${something}]]*/ {}; >b : any ->{} : {} -> : ^^ +>{} : any let c: { hoge: boolean } = /*[[${something}]]*/ { hoge: true }; >c : { hoge: boolean; } > : ^^^^^^^^ ^^^ >hoge : boolean > : ^^^^^^^ ->{ hoge: true } : { hoge: true; } -> : ^^^^^^^^^^^^^^^ +>{ hoge: true } : { hoge: boolean; } +> : ^^^^^^^^ ^^^ >hoge : true > : ^^^^ >true : true @@ -26,13 +25,11 @@ let c: { hoge: boolean } = /*[[${something}]]*/ { hoge: true }; let d: any /*[[${something}]]*/ = {}; >d : any ->{} : {} -> : ^^ +>{} : any let e/*[[${something}]]*/: any = {}; >e : any ->{} : {} -> : ^^ +>{} : any let f = /* comment1 */ d(e); >f : any diff --git a/tests/baselines/reference/enumAssignability.errors.txt b/tests/baselines/reference/enumAssignability.errors.txt index 36a4c7eb63e65..c1f42e88ddbb8 100644 --- a/tests/baselines/reference/enumAssignability.errors.txt +++ b/tests/baselines/reference/enumAssignability.errors.txt @@ -2,28 +2,28 @@ enumAssignability.ts(9,1): error TS2322: Type 'F' is not assignable to type 'E'. enumAssignability.ts(10,1): error TS2322: Type 'E' is not assignable to type 'F'. enumAssignability.ts(11,1): error TS2322: Type '1' is not assignable to type 'E'. enumAssignability.ts(12,1): error TS2322: Type '1' is not assignable to type 'F'. -enumAssignability.ts(29,9): error TS2322: Type 'E' is not assignable to type 'string'. -enumAssignability.ts(30,9): error TS2322: Type 'E' is not assignable to type 'boolean'. -enumAssignability.ts(31,9): error TS2322: Type 'E' is not assignable to type 'Date'. -enumAssignability.ts(33,9): error TS2322: Type 'E' is not assignable to type 'void'. -enumAssignability.ts(36,9): error TS2322: Type 'E' is not assignable to type '() => {}'. -enumAssignability.ts(37,9): error TS2322: Type 'E' is not assignable to type 'Function'. -enumAssignability.ts(38,9): error TS2322: Type 'E' is not assignable to type '(x: number) => string'. +enumAssignability.ts(29,21): error TS2322: Type 'E' is not assignable to type 'string'. +enumAssignability.ts(30,22): error TS2322: Type 'E' is not assignable to type 'boolean'. +enumAssignability.ts(31,20): error TS2322: Type 'E' is not assignable to type 'Date'. +enumAssignability.ts(33,19): error TS2322: Type 'E' is not assignable to type 'void'. +enumAssignability.ts(36,23): error TS2322: Type 'E' is not assignable to type '() => {}'. +enumAssignability.ts(37,23): error TS2322: Type 'E' is not assignable to type 'Function'. +enumAssignability.ts(38,36): error TS2322: Type 'E' is not assignable to type '(x: number) => string'. enumAssignability.ts(39,5): error TS2322: Type 'E' is not assignable to type 'C'. enumAssignability.ts(40,5): error TS2322: Type 'E' is not assignable to type 'I'. -enumAssignability.ts(41,9): error TS2322: Type 'E' is not assignable to type 'number[]'. -enumAssignability.ts(42,9): error TS2322: Type 'E' is not assignable to type '{ foo: string; }'. -enumAssignability.ts(43,9): error TS2322: Type 'E' is not assignable to type '(x: T) => T'. -enumAssignability.ts(45,9): error TS2322: Type 'E' is not assignable to type 'String'. +enumAssignability.ts(41,23): error TS2322: Type 'E' is not assignable to type 'number[]'. +enumAssignability.ts(42,30): error TS2322: Type 'E' is not assignable to type '{ foo: string; }'. +enumAssignability.ts(43,29): error TS2322: Type 'E' is not assignable to type '(x: T) => T'. +enumAssignability.ts(45,21): error TS2322: Type 'E' is not assignable to type 'String'. enumAssignability.ts(48,9): error TS2322: Type 'E' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'E'. enumAssignability.ts(49,9): error TS2322: Type 'E' is not assignable to type 'U'. 'U' could be instantiated with an arbitrary type which could be unrelated to 'E'. enumAssignability.ts(50,9): error TS2322: Type 'E' is not assignable to type 'V'. 'V' could be instantiated with an arbitrary type which could be unrelated to 'E'. -enumAssignability.ts(51,13): error TS2322: Type 'E' is not assignable to type 'A'. +enumAssignability.ts(51,20): error TS2322: Type 'E' is not assignable to type 'A'. 'E' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype of constraint 'Number'. -enumAssignability.ts(52,13): error TS2322: Type 'E' is not assignable to type 'B'. +enumAssignability.ts(52,20): error TS2322: Type 'E' is not assignable to type 'B'. 'E' is assignable to the constraint of type 'B', but 'B' could be instantiated with a different subtype of constraint 'E'. @@ -65,28 +65,28 @@ enumAssignability.ts(52,13): error TS2322: Type 'E' is not assignable to type 'B var b: number = e; // ok var c: string = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'string'. var d: boolean = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'boolean'. var ee: Date = e; - ~~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'Date'. var f: any = e; // ok var g: void = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'void'. var h: Object = e; var i: {} = e; var j: () => {} = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type '() => {}'. var k: Function = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'Function'. var l: (x: number) => string = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type '(x: number) => string'. ac = e; ~~ @@ -95,17 +95,17 @@ enumAssignability.ts(52,13): error TS2322: Type 'E' is not assignable to type 'B ~~ !!! error TS2322: Type 'E' is not assignable to type 'I'. var m: number[] = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'number[]'. var n: { foo: string } = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type '{ foo: string; }'. var o: (x: T) => T = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type '(x: T) => T'. var p: Number = e; var q: String = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'String'. function foo(x: T, y: U, z: V) { @@ -122,11 +122,11 @@ enumAssignability.ts(52,13): error TS2322: Type 'E' is not assignable to type 'B !!! error TS2322: Type 'E' is not assignable to type 'V'. !!! error TS2322: 'V' could be instantiated with an arbitrary type which could be unrelated to 'E'. var a: A = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'A'. !!! error TS2322: 'E' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype of constraint 'Number'. var b: B = e; - ~ + ~ !!! error TS2322: Type 'E' is not assignable to type 'B'. !!! error TS2322: 'E' is assignable to the constraint of type 'B', but 'B' could be instantiated with a different subtype of constraint 'E'. } diff --git a/tests/baselines/reference/enumAssignability.types b/tests/baselines/reference/enumAssignability.types index 5645153f3b462..8f7223bb3ed81 100644 --- a/tests/baselines/reference/enumAssignability.types +++ b/tests/baselines/reference/enumAssignability.types @@ -70,8 +70,8 @@ f = 1; // ok var x: number = e; // ok >x : number > : ^^^^^^ ->e : E -> : ^ +>e : number +> : ^^^^^^ x = f; // ok >x = f : F @@ -88,8 +88,8 @@ module Others { var a: any = e; // ok >a : any > : ^^^ ->e : E -> : ^ +>e : any +> : ^^^ class C { >C : C @@ -115,70 +115,70 @@ module Others { var b: number = e; // ok >b : number > : ^^^^^^ ->e : E -> : ^ +>e : number +> : ^^^^^^ var c: string = e; >c : string > : ^^^^^^ ->e : E -> : ^ +>e : string +> : ^^^^^^ var d: boolean = e; >d : boolean > : ^^^^^^^ ->e : E -> : ^ +>e : boolean +> : ^^^^^^^ var ee: Date = e; >ee : Date > : ^^^^ ->e : E -> : ^ +>e : Date +> : ^^^^ var f: any = e; // ok >f : any > : ^^^ ->e : E -> : ^ +>e : any +> : ^^^ var g: void = e; >g : void > : ^^^^ ->e : E -> : ^ +>e : void +> : ^^^^ var h: Object = e; >h : Object > : ^^^^^^ ->e : E -> : ^ +>e : Object +> : ^^^^^^ var i: {} = e; >i : {} > : ^^ ->e : E -> : ^ +>e : {} +> : ^^ var j: () => {} = e; >j : () => {} > : ^^^^^^ ->e : E -> : ^ +>e : () => {} +> : ^^^^^^ var k: Function = e; >k : Function > : ^^^^^^^^ ->e : E -> : ^ +>e : Function +> : ^^^^^^^^ var l: (x: number) => string = e; >l : (x: number) => string > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->e : E -> : ^ +>e : (x: number) => string +> : ^ ^^ ^^^^^ ac = e; >ac = e : E @@ -199,36 +199,36 @@ module Others { var m: number[] = e; >m : number[] > : ^^^^^^^^ ->e : E -> : ^ +>e : number[] +> : ^^^^^^^^ var n: { foo: string } = e; >n : { foo: string; } > : ^^^^^^^ ^^^ >foo : string > : ^^^^^^ ->e : E -> : ^ +>e : { foo: string; } +> : ^^^^^^^ ^^^ var o: (x: T) => T = e; >o : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : T > : ^ ->e : E -> : ^ +>e : (x: T) => T +> : ^ ^^ ^^ ^^^^^ var p: Number = e; >p : Number > : ^^^^^^ ->e : E -> : ^ +>e : Number +> : ^^^^^^ var q: String = e; >q : String > : ^^^^^^ ->e : E -> : ^ +>e : String +> : ^^^^^^ function foo(x: T, y: U, z: V) { >foo : (x: T, y: U, z: V) => void @@ -267,13 +267,13 @@ module Others { var a: A = e; >a : A > : ^ ->e : E +>e : A > : ^ var b: B = e; >b : B > : ^ ->e : E +>e : B > : ^ } } diff --git a/tests/baselines/reference/enumAssignmentCompat.errors.txt b/tests/baselines/reference/enumAssignmentCompat.errors.txt index 277f7a39c7e72..57a1239378b64 100644 --- a/tests/baselines/reference/enumAssignmentCompat.errors.txt +++ b/tests/baselines/reference/enumAssignmentCompat.errors.txt @@ -1,10 +1,10 @@ -enumAssignmentCompat.ts(26,5): error TS2322: Type 'typeof W' is not assignable to type 'number'. -enumAssignmentCompat.ts(28,5): error TS2322: Type 'W' is not assignable to type 'typeof W'. -enumAssignmentCompat.ts(30,5): error TS2322: Type 'number' is not assignable to type 'typeof W'. -enumAssignmentCompat.ts(31,5): error TS2322: Type '4' is not assignable to type 'W.a'. -enumAssignmentCompat.ts(32,5): error TS2322: Type 'W' is not assignable to type 'WStatic'. -enumAssignmentCompat.ts(33,5): error TS2322: Type 'number' is not assignable to type 'WStatic'. -enumAssignmentCompat.ts(34,5): error TS2322: Type '3' is not assignable to type 'W'. +enumAssignmentCompat.ts(26,17): error TS2322: Type 'typeof W' is not assignable to type 'number'. +enumAssignmentCompat.ts(28,19): error TS2322: Type 'W' is not assignable to type 'typeof W'. +enumAssignmentCompat.ts(30,19): error TS2322: Type 'number' is not assignable to type 'typeof W'. +enumAssignmentCompat.ts(31,21): error TS2322: Type '4' is not assignable to type 'W.a'. +enumAssignmentCompat.ts(32,18): error TS2322: Type 'W' is not assignable to type 'WStatic'. +enumAssignmentCompat.ts(33,18): error TS2322: Type 'number' is not assignable to type 'WStatic'. +enumAssignmentCompat.ts(34,12): error TS2322: Type '3' is not assignable to type 'W'. ==== enumAssignmentCompat.ts (7 errors) ==== @@ -34,27 +34,27 @@ enumAssignmentCompat.ts(34,5): error TS2322: Type '3' is not assignable to type var x: WStatic = W; var y: typeof W = W; var z: number = W; // error - ~ + ~ !!! error TS2322: Type 'typeof W' is not assignable to type 'number'. var a: number = W.a; var b: typeof W = W.a; // error - ~ + ~~~ !!! error TS2322: Type 'W' is not assignable to type 'typeof W'. var c: typeof W.a = W.a; var d: typeof W = 3; // error - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'typeof W'. var e: typeof W.a = 4; - ~ + ~ !!! error TS2322: Type '4' is not assignable to type 'W.a'. var f: WStatic = W.a; // error - ~ + ~~~ !!! error TS2322: Type 'W' is not assignable to type 'WStatic'. var g: WStatic = 5; // error - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'WStatic'. var h: W = 3; - ~ + ~ !!! error TS2322: Type '3' is not assignable to type 'W'. var i: W = W.a; i = W.a; diff --git a/tests/baselines/reference/enumAssignmentCompat.types b/tests/baselines/reference/enumAssignmentCompat.types index 1f77d28c34d9c..d225a0d4019d8 100644 --- a/tests/baselines/reference/enumAssignmentCompat.types +++ b/tests/baselines/reference/enumAssignmentCompat.types @@ -46,8 +46,8 @@ interface WStatic { var x: WStatic = W; >x : WStatic > : ^^^^^^^ ->W : typeof W -> : ^^^^^^^^ +>W : WStatic +> : ^^^^^^^ var y: typeof W = W; >y : typeof W @@ -60,30 +60,30 @@ var y: typeof W = W; var z: number = W; // error >z : number > : ^^^^^^ ->W : typeof W -> : ^^^^^^^^ +>W : number +> : ^^^^^^ var a: number = W.a; >a : number > : ^^^^^^ ->W.a : W.a -> : ^^^ +>W.a : number +> : ^^^^^^ >W : typeof W > : ^^^^^^^^ ->a : W.a -> : ^^^ +>a : number +> : ^^^^^^ var b: typeof W = W.a; // error >b : typeof W > : ^^^^^^^^ >W : typeof W > : ^^^^^^^^ ->W.a : W.a -> : ^^^ +>W.a : typeof W +> : ^^^^^^^^ >W : typeof W > : ^^^^^^^^ ->a : W.a -> : ^^^ +>a : typeof W +> : ^^^^^^^^ var c: typeof W.a = W.a; >c : W.a @@ -106,8 +106,8 @@ var d: typeof W = 3; // error > : ^^^^^^^^ >W : typeof W > : ^^^^^^^^ ->3 : 3 -> : ^ +>3 : typeof W +> : ^^^^^^^^ var e: typeof W.a = 4; >e : W.a @@ -118,40 +118,40 @@ var e: typeof W.a = 4; > : ^^^^^^^^ >a : W.a > : ^^^ ->4 : 4 -> : ^ +>4 : W.a +> : ^^^ var f: WStatic = W.a; // error >f : WStatic > : ^^^^^^^ ->W.a : W.a -> : ^^^ +>W.a : WStatic +> : ^^^^^^^ >W : typeof W > : ^^^^^^^^ ->a : W.a -> : ^^^ +>a : WStatic +> : ^^^^^^^ var g: WStatic = 5; // error >g : WStatic > : ^^^^^^^ ->5 : 5 -> : ^ +>5 : WStatic +> : ^^^^^^^ var h: W = 3; >h : W > : ^ ->3 : 3 +>3 : W > : ^ var i: W = W.a; >i : W > : ^ ->W.a : W.a -> : ^^^ +>W.a : W +> : ^ >W : typeof W > : ^^^^^^^^ ->a : W.a -> : ^^^ +>a : W +> : ^ i = W.a; >i = W.a : W.a diff --git a/tests/baselines/reference/enumAssignmentCompat2.errors.txt b/tests/baselines/reference/enumAssignmentCompat2.errors.txt index 1921f57eb3052..46f4c52435d47 100644 --- a/tests/baselines/reference/enumAssignmentCompat2.errors.txt +++ b/tests/baselines/reference/enumAssignmentCompat2.errors.txt @@ -1,10 +1,10 @@ -enumAssignmentCompat2.ts(25,5): error TS2322: Type 'typeof W' is not assignable to type 'number'. -enumAssignmentCompat2.ts(27,5): error TS2322: Type 'W' is not assignable to type 'typeof W'. -enumAssignmentCompat2.ts(29,5): error TS2322: Type 'number' is not assignable to type 'typeof W'. -enumAssignmentCompat2.ts(30,5): error TS2322: Type '4' is not assignable to type 'W.a'. -enumAssignmentCompat2.ts(31,5): error TS2322: Type 'W' is not assignable to type 'WStatic'. -enumAssignmentCompat2.ts(32,5): error TS2322: Type 'number' is not assignable to type 'WStatic'. -enumAssignmentCompat2.ts(33,5): error TS2322: Type '3' is not assignable to type 'W'. +enumAssignmentCompat2.ts(25,17): error TS2322: Type 'typeof W' is not assignable to type 'number'. +enumAssignmentCompat2.ts(27,19): error TS2322: Type 'W' is not assignable to type 'typeof W'. +enumAssignmentCompat2.ts(29,19): error TS2322: Type 'number' is not assignable to type 'typeof W'. +enumAssignmentCompat2.ts(30,21): error TS2322: Type '4' is not assignable to type 'W.a'. +enumAssignmentCompat2.ts(31,18): error TS2322: Type 'W' is not assignable to type 'WStatic'. +enumAssignmentCompat2.ts(32,18): error TS2322: Type 'number' is not assignable to type 'WStatic'. +enumAssignmentCompat2.ts(33,12): error TS2322: Type '3' is not assignable to type 'W'. ==== enumAssignmentCompat2.ts (7 errors) ==== @@ -33,27 +33,27 @@ enumAssignmentCompat2.ts(33,5): error TS2322: Type '3' is not assignable to type var x: WStatic = W; var y: typeof W = W; var z: number = W; // error - ~ + ~ !!! error TS2322: Type 'typeof W' is not assignable to type 'number'. var a: number = W.a; var b: typeof W = W.a; // error - ~ + ~~~ !!! error TS2322: Type 'W' is not assignable to type 'typeof W'. var c: typeof W.a = W.a; var d: typeof W = 3; // error - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'typeof W'. var e: typeof W.a = 4; - ~ + ~ !!! error TS2322: Type '4' is not assignable to type 'W.a'. var f: WStatic = W.a; // error - ~ + ~~~ !!! error TS2322: Type 'W' is not assignable to type 'WStatic'. var g: WStatic = 5; // error - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'WStatic'. var h: W = 3; - ~ + ~ !!! error TS2322: Type '3' is not assignable to type 'W'. var i: W = W.a; i = W.a; diff --git a/tests/baselines/reference/enumAssignmentCompat2.types b/tests/baselines/reference/enumAssignmentCompat2.types index 829c5a7937807..6b5ca4bc9d4e6 100644 --- a/tests/baselines/reference/enumAssignmentCompat2.types +++ b/tests/baselines/reference/enumAssignmentCompat2.types @@ -45,8 +45,8 @@ interface WStatic { var x: WStatic = W; >x : WStatic > : ^^^^^^^ ->W : typeof W -> : ^^^^^^^^ +>W : WStatic +> : ^^^^^^^ var y: typeof W = W; >y : typeof W @@ -59,30 +59,30 @@ var y: typeof W = W; var z: number = W; // error >z : number > : ^^^^^^ ->W : typeof W -> : ^^^^^^^^ +>W : number +> : ^^^^^^ var a: number = W.a; >a : number > : ^^^^^^ ->W.a : W.a -> : ^^^ +>W.a : number +> : ^^^^^^ >W : typeof W > : ^^^^^^^^ ->a : W.a -> : ^^^ +>a : number +> : ^^^^^^ var b: typeof W = W.a; // error >b : typeof W > : ^^^^^^^^ >W : typeof W > : ^^^^^^^^ ->W.a : W.a -> : ^^^ +>W.a : typeof W +> : ^^^^^^^^ >W : typeof W > : ^^^^^^^^ ->a : W.a -> : ^^^ +>a : typeof W +> : ^^^^^^^^ var c: typeof W.a = W.a; >c : W.a @@ -105,8 +105,8 @@ var d: typeof W = 3; // error > : ^^^^^^^^ >W : typeof W > : ^^^^^^^^ ->3 : 3 -> : ^ +>3 : typeof W +> : ^^^^^^^^ var e: typeof W.a = 4; >e : W.a @@ -117,40 +117,40 @@ var e: typeof W.a = 4; > : ^^^^^^^^ >a : W.a > : ^^^ ->4 : 4 -> : ^ +>4 : W.a +> : ^^^ var f: WStatic = W.a; // error >f : WStatic > : ^^^^^^^ ->W.a : W.a -> : ^^^ +>W.a : WStatic +> : ^^^^^^^ >W : typeof W > : ^^^^^^^^ ->a : W.a -> : ^^^ +>a : WStatic +> : ^^^^^^^ var g: WStatic = 5; // error >g : WStatic > : ^^^^^^^ ->5 : 5 -> : ^ +>5 : WStatic +> : ^^^^^^^ var h: W = 3; >h : W > : ^ ->3 : 3 +>3 : W > : ^ var i: W = W.a; >i : W > : ^ ->W.a : W.a -> : ^^^ +>W.a : W +> : ^ >W : typeof W > : ^^^^^^^^ ->a : W.a -> : ^^^ +>a : W +> : ^ i = W.a; >i = W.a : W.a diff --git a/tests/baselines/reference/enumAssignmentCompat5.errors.txt b/tests/baselines/reference/enumAssignmentCompat5.errors.txt index 6fa0da1673af4..cfeac00476d1a 100644 --- a/tests/baselines/reference/enumAssignmentCompat5.errors.txt +++ b/tests/baselines/reference/enumAssignmentCompat5.errors.txt @@ -1,6 +1,6 @@ enumAssignmentCompat5.ts(12,1): error TS2322: Type '4' is not assignable to type 'E'. enumAssignmentCompat5.ts(14,1): error TS2322: Type '2' is not assignable to type 'E.A'. -enumAssignmentCompat5.ts(20,5): error TS2322: Type '1' is not assignable to type 'Computed.A'. +enumAssignmentCompat5.ts(20,22): error TS2322: Type '1' is not assignable to type 'Computed.A'. ==== enumAssignmentCompat5.ts (3 errors) ==== @@ -28,7 +28,7 @@ enumAssignmentCompat5.ts(20,5): error TS2322: Type '1' is not assignable to type c = n; // ok c = 4; // ok let ca: Computed.A = 1; // error, Computed.A isn't a literal type because Computed has no enum literals - ~~ + ~ !!! error TS2322: Type '1' is not assignable to type 'Computed.A'. diff --git a/tests/baselines/reference/enumAssignmentCompat5.types b/tests/baselines/reference/enumAssignmentCompat5.types index 7538bf7b27bea..eeae2e3375bd3 100644 --- a/tests/baselines/reference/enumAssignmentCompat5.types +++ b/tests/baselines/reference/enumAssignmentCompat5.types @@ -54,8 +54,8 @@ let n: number; let e: E = n; // ok because it's too inconvenient otherwise >e : E > : ^ ->n : number -> : ^^^^^^ +>n : E +> : ^ e = 0; // ok, in range >e = 0 : 0 @@ -78,8 +78,8 @@ let a: E.A = 0; // ok, A === 0 > : ^^^ >E : any > : ^^^ ->0 : 0 -> : ^ +>0 : E.A +> : ^^^ a = 2; // error, 2 !== 0 >a = 2 : 2 @@ -100,8 +100,8 @@ a = n; // ok let c: Computed = n; // ok >c : Computed > : ^^^^^^^^ ->n : number -> : ^^^^^^ +>n : Computed +> : ^^^^^^^^ c = n; // ok >c = n : number @@ -124,8 +124,8 @@ let ca: Computed.A = 1; // error, Computed.A isn't a literal type because Comput > : ^^^^^^^^^^ >Computed : any > : ^^^ ->1 : 1 -> : ^ +>1 : Computed.A +> : ^^^^^^^^^^ diff --git a/tests/baselines/reference/enumBasics.types b/tests/baselines/reference/enumBasics.types index e777513397428..49ad6e6025bb0 100644 --- a/tests/baselines/reference/enumBasics.types +++ b/tests/baselines/reference/enumBasics.types @@ -23,12 +23,12 @@ enum E1 { var x: number = E1.A; >x : number > : ^^^^^^ ->E1.A : E1.A -> : ^^^^ +>E1.A : number +> : ^^^^^^ >E1 : typeof E1 > : ^^^^^^^^^ ->A : E1.A -> : ^^^^ +>A : number +> : ^^^^^^ // Enum object type is anonymous with properties of the enum type and numeric indexer var e = E1; diff --git a/tests/baselines/reference/enumOperations.types b/tests/baselines/reference/enumOperations.types index b5ae5f01c836b..6541f7f581c55 100644 --- a/tests/baselines/reference/enumOperations.types +++ b/tests/baselines/reference/enumOperations.types @@ -22,13 +22,12 @@ var enumType: Enum = Enum.None; var numberType: number = 0; >numberType : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ var anyType: any = 0; >anyType : any ->0 : 0 -> : ^ +>0 : any enumType ^ numberType; >enumType ^ numberType : number diff --git a/tests/baselines/reference/equalityWithIntersectionTypes01.types b/tests/baselines/reference/equalityWithIntersectionTypes01.types index 392e713824402..5a7d788d8cde9 100644 --- a/tests/baselines/reference/equalityWithIntersectionTypes01.types +++ b/tests/baselines/reference/equalityWithIntersectionTypes01.types @@ -40,14 +40,14 @@ var x = { p1: 10, p2: 20, p3: 30 }; var y: I1 & I3 = x; >y : I1 & I3 > : ^^^^^^^ ->x : { p1: number; p2: number; p3: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : I1 & I3 +> : ^^^^^^^ var z: I2 = x; >z : I2 > : ^^ ->x : { p1: number; p2: number; p3: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : I2 +> : ^^ if (y === z || z === y) { >y === z || z === y : boolean diff --git a/tests/baselines/reference/equalityWithUnionTypes01.types b/tests/baselines/reference/equalityWithUnionTypes01.types index ee8448da53a08..bd6e9f4db50c1 100644 --- a/tests/baselines/reference/equalityWithUnionTypes01.types +++ b/tests/baselines/reference/equalityWithUnionTypes01.types @@ -30,38 +30,38 @@ var x = { p1: 10, p2: 20 }; var y: number | I2 = x; >y : number | I2 > : ^^^^^^^^^^^ ->x : { p1: number; p2: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : number | I2 +> : ^^^^^^^^^^^ var z: I1 = x; >z : I1 > : ^^ ->x : { p1: number; p2: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : I1 +> : ^^ if (y === z || z === y) { >y === z || z === y : boolean > : ^^^^^^^ >y === z : boolean > : ^^^^^^^ ->y : I2 -> : ^^ +>y : number | I2 +> : ^^^^^^^^^^^ >z : I1 > : ^^ >z === y : boolean > : ^^^^^^^ >z : I1 > : ^^ ->y : I2 -> : ^^ +>y : number | I2 +> : ^^^^^^^^^^^ } else if (y !== z || z !== y) { >y !== z || z !== y : boolean > : ^^^^^^^ >y !== z : boolean > : ^^^^^^^ ->y : I2 -> : ^^ +>y : number | I2 +> : ^^^^^^^^^^^ >z : I1 > : ^^ >z !== y : boolean diff --git a/tests/baselines/reference/errorForUsingPropertyOfTypeAsType01.types b/tests/baselines/reference/errorForUsingPropertyOfTypeAsType01.types index d3b9c4f1e472f..82de2ffb906cf 100644 --- a/tests/baselines/reference/errorForUsingPropertyOfTypeAsType01.types +++ b/tests/baselines/reference/errorForUsingPropertyOfTypeAsType01.types @@ -16,8 +16,8 @@ namespace Test1 { > : ^^^^^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Foo.bar +> : ^^^^^^^ var y: Test1.Foo.bar = ""; >y : Test1.Foo.bar @@ -26,8 +26,8 @@ namespace Test1 { > : ^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Test1.Foo.bar +> : ^^^^^^^^^^^^^ } namespace Test2 { @@ -48,8 +48,8 @@ namespace Test2 { > : ^^^^^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Foo.bar +> : ^^^^^^^ var y: Test2.Foo.bar = ""; >y : Test2.Foo.bar @@ -58,8 +58,8 @@ namespace Test2 { > : ^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Test2.Foo.bar +> : ^^^^^^^^^^^^^ } namespace Test3 { @@ -80,8 +80,8 @@ namespace Test3 { > : ^^^^^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Foo.bar +> : ^^^^^^^ var y: Test3.Foo.bar = ""; >y : Test3.Foo.bar @@ -90,8 +90,8 @@ namespace Test3 { > : ^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Test3.Foo.bar +> : ^^^^^^^^^^^^^ } namespace Test4 { @@ -113,8 +113,8 @@ namespace Test4 { > : ^^^^^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Foo.bar +> : ^^^^^^^ var y: Test4.Foo.bar = ""; >y : Test4.Foo.bar @@ -123,8 +123,8 @@ namespace Test4 { > : ^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Test4.Foo.bar +> : ^^^^^^^^^^^^^ } namespace Test5 { @@ -146,8 +146,8 @@ namespace Test5 { > : ^^^^^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Foo.bar +> : ^^^^^^^ var y: Test5.Foo.bar = ""; >y : Test5.Foo.bar @@ -156,8 +156,8 @@ namespace Test5 { > : ^^^ >Foo : any > : ^^^ ->"" : "" -> : ^^ +>"" : Test5.Foo.bar +> : ^^^^^^^^^^^^^ } import lol = Test5.Foo. diff --git a/tests/baselines/reference/errorForUsingPropertyOfTypeAsType02.types b/tests/baselines/reference/errorForUsingPropertyOfTypeAsType02.types index 105c57352b2de..fd5e82df25e47 100644 --- a/tests/baselines/reference/errorForUsingPropertyOfTypeAsType02.types +++ b/tests/baselines/reference/errorForUsingPropertyOfTypeAsType02.types @@ -18,11 +18,11 @@ namespace Test1 { > : ^^^^^ >T : any > : ^^^ ->x.abc : number -> : ^^^^^^ +>x.abc : T.abc +> : ^^^^^ >x : T > : ^ ->abc : number -> : ^^^^^^ +>abc : T.abc +> : ^^^^^ } } diff --git a/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types b/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types index 8ef18e0a9a5b0..69348a62f8394 100644 --- a/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types +++ b/tests/baselines/reference/errorInfoForRelatedIndexTypesNoConstraintElaboration.types @@ -26,8 +26,8 @@ class I : ^^^^^^^^^^^^^^^^^^^^^^^^^ >JSX : any > : ^^^ ->{} : {} -> : ^^ +>{} : JSX.IntrinsicElements[T1] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ const c2: JSX.IntrinsicElements[T2] = c1; >c2 : JSX.IntrinsicElements[T2] diff --git a/tests/baselines/reference/errorMessagesIntersectionTypes01.errors.txt b/tests/baselines/reference/errorMessagesIntersectionTypes01.errors.txt index 49d00a9ec7274..2a26ec0421303 100644 --- a/tests/baselines/reference/errorMessagesIntersectionTypes01.errors.txt +++ b/tests/baselines/reference/errorMessagesIntersectionTypes01.errors.txt @@ -1,4 +1,4 @@ -errorMessagesIntersectionTypes01.ts(14,5): error TS2322: Type '{ fooProp: string; } & Bar' is not assignable to type 'FooBar'. +errorMessagesIntersectionTypes01.ts(14,22): error TS2322: Type '{ fooProp: string; } & Bar' is not assignable to type 'FooBar'. Types of property 'fooProp' are incompatible. Type 'string' is not assignable to type 'boolean'. @@ -18,9 +18,11 @@ errorMessagesIntersectionTypes01.ts(14,5): error TS2322: Type '{ fooProp: string declare function mixBar(obj: T): T & Bar; let fooBar: FooBar = mixBar({ - ~~~~~~ + ~~~~~~~~ + fooProp: "frizzlebizzle" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + }); + ~~ !!! error TS2322: Type '{ fooProp: string; } & Bar' is not assignable to type 'FooBar'. !!! error TS2322: Types of property 'fooProp' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. - fooProp: "frizzlebizzle" - }); \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/errorMessagesIntersectionTypes01.types b/tests/baselines/reference/errorMessagesIntersectionTypes01.types index bbbc17ff275df..bb3af9f412c12 100644 --- a/tests/baselines/reference/errorMessagesIntersectionTypes01.types +++ b/tests/baselines/reference/errorMessagesIntersectionTypes01.types @@ -25,8 +25,8 @@ declare function mixBar(obj: T): T & Bar; let fooBar: FooBar = mixBar({ >fooBar : FooBar > : ^^^^^^ ->mixBar({ fooProp: "frizzlebizzle"}) : { fooProp: string; } & Bar -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>mixBar({ fooProp: "frizzlebizzle"}) : FooBar +> : ^^^^^^ >mixBar : (obj: T) => T & Bar > : ^ ^^ ^^ ^^^^^ >{ fooProp: "frizzlebizzle"} : { fooProp: string; } diff --git a/tests/baselines/reference/errorMessagesIntersectionTypes02.errors.txt b/tests/baselines/reference/errorMessagesIntersectionTypes02.errors.txt index 6a5e53be25523..e5f403079dc08 100644 --- a/tests/baselines/reference/errorMessagesIntersectionTypes02.errors.txt +++ b/tests/baselines/reference/errorMessagesIntersectionTypes02.errors.txt @@ -1,4 +1,4 @@ -errorMessagesIntersectionTypes02.ts(14,5): error TS2322: Type '{ fooProp: "frizzlebizzle"; } & Bar' is not assignable to type 'FooBar'. +errorMessagesIntersectionTypes02.ts(14,22): error TS2322: Type '{ fooProp: "frizzlebizzle"; } & Bar' is not assignable to type 'FooBar'. Types of property 'fooProp' are incompatible. Type '"frizzlebizzle"' is not assignable to type '"hello" | "world"'. @@ -18,9 +18,11 @@ errorMessagesIntersectionTypes02.ts(14,5): error TS2322: Type '{ fooProp: "frizz declare function mixBar(obj: T): T & Bar; let fooBar: FooBar = mixBar({ - ~~~~~~ + ~~~~~~~~ + fooProp: "frizzlebizzle" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + }); + ~~ !!! error TS2322: Type '{ fooProp: "frizzlebizzle"; } & Bar' is not assignable to type 'FooBar'. !!! error TS2322: Types of property 'fooProp' are incompatible. -!!! error TS2322: Type '"frizzlebizzle"' is not assignable to type '"hello" | "world"'. - fooProp: "frizzlebizzle" - }); \ No newline at end of file +!!! error TS2322: Type '"frizzlebizzle"' is not assignable to type '"hello" | "world"'. \ No newline at end of file diff --git a/tests/baselines/reference/errorMessagesIntersectionTypes02.types b/tests/baselines/reference/errorMessagesIntersectionTypes02.types index 9cd93c4b8af81..ea420e34f7436 100644 --- a/tests/baselines/reference/errorMessagesIntersectionTypes02.types +++ b/tests/baselines/reference/errorMessagesIntersectionTypes02.types @@ -25,8 +25,8 @@ declare function mixBar(obj: T): T & Bar; let fooBar: FooBar = mixBar({ >fooBar : FooBar > : ^^^^^^ ->mixBar({ fooProp: "frizzlebizzle"}) : { fooProp: "frizzlebizzle"; } & Bar -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>mixBar({ fooProp: "frizzlebizzle"}) : FooBar +> : ^^^^^^ >mixBar : (obj: T) => T & Bar > : ^ ^^ ^^ ^^^^^ >{ fooProp: "frizzlebizzle"} : { fooProp: "frizzlebizzle"; } diff --git a/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt b/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt index 650f910fe9d8f..3d409f5888280 100644 --- a/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt +++ b/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt @@ -1,11 +1,11 @@ -errorOnContextuallyTypedReturnType.ts(1,5): error TS2322: Type '() => void' is not assignable to type '() => boolean'. +errorOnContextuallyTypedReturnType.ts(1,25): error TS2322: Type '() => void' is not assignable to type '() => boolean'. Type 'void' is not assignable to type 'boolean'. errorOnContextuallyTypedReturnType.ts(2,37): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value. ==== errorOnContextuallyTypedReturnType.ts (2 errors) ==== var n1: () => boolean = function () { }; // expect an error here - ~~ + ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type '() => boolean'. !!! error TS2322: Type 'void' is not assignable to type 'boolean'. var n2: () => boolean = function ():boolean { }; // expect an error here diff --git a/tests/baselines/reference/errorOnContextuallyTypedReturnType.types b/tests/baselines/reference/errorOnContextuallyTypedReturnType.types index 94d98760c6b53..fa235af2d9d55 100644 --- a/tests/baselines/reference/errorOnContextuallyTypedReturnType.types +++ b/tests/baselines/reference/errorOnContextuallyTypedReturnType.types @@ -4,8 +4,8 @@ var n1: () => boolean = function () { }; // expect an error here >n1 : () => boolean > : ^^^^^^ ->function () { } : () => void -> : ^^^^^^^^^^ +>function () { } : () => boolean +> : ^^^^^^ var n2: () => boolean = function ():boolean { }; // expect an error here >n2 : () => boolean diff --git a/tests/baselines/reference/errorWithTruncatedType.errors.txt b/tests/baselines/reference/errorWithTruncatedType.errors.txt index d461e78881e67..f9145191481fc 100644 --- a/tests/baselines/reference/errorWithTruncatedType.errors.txt +++ b/tests/baselines/reference/errorWithTruncatedType.errors.txt @@ -1,4 +1,4 @@ -errorWithTruncatedType.ts(10,5): error TS2322: Type '{ propertyWithAnExceedinglyLongName1: string; propertyWithAnExceedinglyLongName2: string; propertyWithAnExceedinglyLongName3: string; propertyWithAnExceedinglyLongName4: string; propertyWithAnExceedinglyLongName5: string; }' is not assignable to type 'string'. +errorWithTruncatedType.ts(10,17): error TS2322: Type '{ propertyWithAnExceedinglyLongName1: string; propertyWithAnExceedinglyLongName2: string; propertyWithAnExceedinglyLongName3: string; propertyWithAnExceedinglyLongName4: string; propertyWithAnExceedinglyLongName5: string; }' is not assignable to type 'string'. ==== errorWithTruncatedType.ts (1 errors) ==== @@ -12,6 +12,6 @@ errorWithTruncatedType.ts(10,5): error TS2322: Type '{ propertyWithAnExceedingly // String representation of type of 'x' should be truncated in error message var s: string = x; - ~ + ~ !!! error TS2322: Type '{ propertyWithAnExceedinglyLongName1: string; propertyWithAnExceedinglyLongName2: string; propertyWithAnExceedinglyLongName3: string; propertyWithAnExceedinglyLongName4: string; propertyWithAnExceedinglyLongName5: string; }' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/errorWithTruncatedType.types b/tests/baselines/reference/errorWithTruncatedType.types index 40bfb59649232..d008e9d01cc50 100644 --- a/tests/baselines/reference/errorWithTruncatedType.types +++ b/tests/baselines/reference/errorWithTruncatedType.types @@ -31,6 +31,6 @@ var x: { var s: string = x; >s : string > : ^^^^^^ ->x : { propertyWithAnExceedinglyLongName1: string; propertyWithAnExceedinglyLongName2: string; propertyWithAnExceedinglyLongName3: string; propertyWithAnExceedinglyLongName4: string; propertyWithAnExceedinglyLongName5: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +>x : string +> : ^^^^^^ diff --git a/tests/baselines/reference/errorsWithInvokablesInUnions01.errors.txt b/tests/baselines/reference/errorsWithInvokablesInUnions01.errors.txt index 44a406e7f8fde..f2e2016511293 100644 --- a/tests/baselines/reference/errorsWithInvokablesInUnions01.errors.txt +++ b/tests/baselines/reference/errorsWithInvokablesInUnions01.errors.txt @@ -1,8 +1,8 @@ -errorsWithInvokablesInUnions01.ts(14,12): error TS2322: Type '(x: string) => void' is not assignable to type 'ConstructableA | IDirectiveLinkFn | IDirectivePrePost'. +errorsWithInvokablesInUnions01.ts(14,90): error TS2322: Type '(x: string) => void' is not assignable to type 'ConstructableA | IDirectiveLinkFn | IDirectivePrePost'. Type '(x: string) => void' is not assignable to type 'IDirectiveLinkFn'. Types of parameters 'x' and 'scope' are incompatible. Type 'number' is not assignable to type 'string'. -errorsWithInvokablesInUnions01.ts(16,12): error TS2322: Type 'typeof ctor' is not assignable to type 'ConstructableA | IDirectiveLinkFn | IDirectivePrePost'. +errorsWithInvokablesInUnions01.ts(16,90): error TS2322: Type 'typeof ctor' is not assignable to type 'ConstructableA | IDirectiveLinkFn | IDirectivePrePost'. Type 'typeof ctor' is not assignable to type 'ConstructableA'. Property 'somePropA' is missing in type 'ctor' but required in type '{ somePropA: any; }'. @@ -22,14 +22,14 @@ errorsWithInvokablesInUnions01.ts(16,12): error TS2322: Type 'typeof ctor' is no } export let blah: IDirectiveLinkFn | ConstructableA | IDirectivePrePost = (x: string) => {} - ~~~~ + ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '(x: string) => void' is not assignable to type 'ConstructableA | IDirectiveLinkFn | IDirectivePrePost'. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'IDirectiveLinkFn'. !!! error TS2322: Types of parameters 'x' and 'scope' are incompatible. !!! error TS2322: Type 'number' is not assignable to type 'string'. export let ctor: IDirectiveLinkFn | ConstructableA | IDirectivePrePost = class { - ~~~~ + ~~~~~ !!! error TS2322: Type 'typeof ctor' is not assignable to type 'ConstructableA | IDirectiveLinkFn | IDirectivePrePost'. !!! error TS2322: Type 'typeof ctor' is not assignable to type 'ConstructableA'. !!! error TS2322: Property 'somePropA' is missing in type 'ctor' but required in type '{ somePropA: any; }'. diff --git a/tests/baselines/reference/errorsWithInvokablesInUnions01.types b/tests/baselines/reference/errorsWithInvokablesInUnions01.types index 4c364c7ee80e7..5a4881d7a3c74 100644 --- a/tests/baselines/reference/errorsWithInvokablesInUnions01.types +++ b/tests/baselines/reference/errorsWithInvokablesInUnions01.types @@ -26,16 +26,16 @@ interface IDirectivePrePost { export let blah: IDirectiveLinkFn | ConstructableA | IDirectivePrePost = (x: string) => {} >blah : ConstructableA | IDirectiveLinkFn | IDirectivePrePost > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->(x: string) => {} : (x: string) => void -> : ^ ^^ ^^^^^^^^^ +>(x: string) => {} : ConstructableA | IDirectiveLinkFn | IDirectivePrePost +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ export let ctor: IDirectiveLinkFn | ConstructableA | IDirectivePrePost = class { >ctor : ConstructableA | IDirectiveLinkFn | IDirectivePrePost > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->class { someUnaccountedProp: any;} : typeof ctor -> : ^^^^^^^^^^^ +>class { someUnaccountedProp: any;} : ConstructableA | IDirectiveLinkFn | IDirectivePrePost +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ someUnaccountedProp: any; >someUnaccountedProp : any diff --git a/tests/baselines/reference/es6ClassTest8.types b/tests/baselines/reference/es6ClassTest8.types index 905a6a754646e..df7ea98ba3d16 100644 --- a/tests/baselines/reference/es6ClassTest8.types +++ b/tests/baselines/reference/es6ClassTest8.types @@ -14,8 +14,7 @@ class C { constructor() { var bar:any = (function() { >bar : any ->(function() { return bar; // 'bar' should be resolvable }) : () => any -> : ^^^^^^^^^ +>(function() { return bar; // 'bar' should be resolvable }) : any >function() { return bar; // 'bar' should be resolvable } : () => any > : ^^^^^^^^^ diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types b/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types index 85fd6c3f36b3c..2483d40a7c889 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types @@ -72,14 +72,14 @@ module M { var aNumber: number = 9.9; >aNumber : number > : ^^^^^^ ->9.9 : 9.9 -> : ^^^ +>9.9 : number +> : ^^^^^^ var aString: string = 'this is a string'; >aString : string > : ^^^^^^ ->'this is a string' : "this is a string" -> : ^^^^^^^^^^^^^^^^^^ +>'this is a string' : string +> : ^^^^^^ var aDate: Date = new Date(12); >aDate : Date @@ -104,19 +104,18 @@ var anAny: any = null; var aSecondAny: any = undefined; >aSecondAny : any ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any var aVoid: void = undefined; >aVoid : void > : ^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : void +> : ^^^^ var anInterface: I = new C(); >anInterface : I > : ^ ->new C() : C +>new C() : I > : ^ >C : typeof C > : ^^^^^^^^ @@ -140,8 +139,8 @@ var aGenericClass: D = new D(); var anObjectLiteral: I = { id: 12 }; >anObjectLiteral : I > : ^ ->{ id: 12 } : { id: number; } -> : ^^^^^^^^^^^^^^^ +>{ id: 12 } : I +> : ^ >id : number > : ^^^^^^ >12 : 12 @@ -152,8 +151,8 @@ var anOtherObjectLiteral: { id: number } = new C(); > : ^^^^^^ ^^^ >id : number > : ^^^^^^ ->new C() : C -> : ^ +>new C() : { id: number; } +> : ^^^^^^ ^^^ >C : typeof C > : ^^^^^^^^ @@ -179,7 +178,7 @@ var aLambda: typeof F = (x) => 2; >F : (x: string) => number > : ^ ^^ ^^^^^ >(x) => 2 : (x: string) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : string > : ^^^^^^ >2 : 2 @@ -217,7 +216,7 @@ var aFunctionInModule: typeof M.F2 = (x) => 'this is a string'; >F2 : (x: number) => string > : ^ ^^ ^^^^^ >(x) => 'this is a string' : (x: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ >'this is a string' : "this is a string" diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt index c5e9a1bf5f484..007ca9df06eff 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt @@ -1,26 +1,29 @@ -everyTypeWithAnnotationAndInvalidInitializer.ts(34,5): error TS2322: Type 'string' is not assignable to type 'number'. -everyTypeWithAnnotationAndInvalidInitializer.ts(35,5): error TS2322: Type 'number' is not assignable to type 'string'. -everyTypeWithAnnotationAndInvalidInitializer.ts(36,5): error TS2322: Type 'number' is not assignable to type 'Date'. -everyTypeWithAnnotationAndInvalidInitializer.ts(38,5): error TS2322: Type 'number' is not assignable to type 'void'. -everyTypeWithAnnotationAndInvalidInitializer.ts(40,5): error TS2741: Property 'id' is missing in type 'D' but required in type 'I'. -everyTypeWithAnnotationAndInvalidInitializer.ts(41,5): error TS2741: Property 'id' is missing in type 'D' but required in type 'C'. -everyTypeWithAnnotationAndInvalidInitializer.ts(42,5): error TS2739: Type 'C' is missing the following properties from type 'D': source, recurse, wrapped -everyTypeWithAnnotationAndInvalidInitializer.ts(43,28): error TS2322: Type 'string' is not assignable to type 'number'. -everyTypeWithAnnotationAndInvalidInitializer.ts(44,5): error TS2322: Type 'C' is not assignable to type '{ id: string; }'. +everyTypeWithAnnotationAndInvalidInitializer.ts(34,23): error TS2322: Type 'string' is not assignable to type 'number'. +everyTypeWithAnnotationAndInvalidInitializer.ts(35,23): error TS2322: Type 'number' is not assignable to type 'string'. +everyTypeWithAnnotationAndInvalidInitializer.ts(36,19): error TS2322: Type 'number' is not assignable to type 'Date'. +everyTypeWithAnnotationAndInvalidInitializer.ts(38,19): error TS2322: Type 'number' is not assignable to type 'void'. +everyTypeWithAnnotationAndInvalidInitializer.ts(40,22): error TS2741: Property 'id' is missing in type 'D' but required in type 'I'. +everyTypeWithAnnotationAndInvalidInitializer.ts(41,17): error TS2741: Property 'id' is missing in type 'D' but required in type 'C'. +everyTypeWithAnnotationAndInvalidInitializer.ts(42,32): error TS2739: Type 'C' is missing the following properties from type 'D': source, recurse, wrapped +everyTypeWithAnnotationAndInvalidInitializer.ts(43,26): error TS2322: Type '{ id: string; }' is not assignable to type 'I'. + Types of property 'id' are incompatible. + Type 'string' is not assignable to type 'number'. +everyTypeWithAnnotationAndInvalidInitializer.ts(44,44): error TS2322: Type 'C' is not assignable to type '{ id: string; }'. Types of property 'id' are incompatible. Type 'number' is not assignable to type 'string'. -everyTypeWithAnnotationAndInvalidInitializer.ts(46,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. +everyTypeWithAnnotationAndInvalidInitializer.ts(46,27): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. Types of parameters 'x' and 'x' are incompatible. Type 'string' is not assignable to type 'number'. -everyTypeWithAnnotationAndInvalidInitializer.ts(47,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. +everyTypeWithAnnotationAndInvalidInitializer.ts(47,46): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. Types of parameters 'x' and 'x' are incompatible. Type 'string' is not assignable to type 'number'. -everyTypeWithAnnotationAndInvalidInitializer.ts(48,32): error TS2322: Type 'string' is not assignable to type 'number'. -everyTypeWithAnnotationAndInvalidInitializer.ts(50,5): error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. +everyTypeWithAnnotationAndInvalidInitializer.ts(48,25): error TS2322: Type '(x: string) => string' is not assignable to type '(x: string) => number'. + Type 'string' is not assignable to type 'number'. +everyTypeWithAnnotationAndInvalidInitializer.ts(50,25): error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. The types returned by 'new A()' are incompatible between these types. Property 'name' is missing in type 'N.A' but required in type 'M.A'. -everyTypeWithAnnotationAndInvalidInitializer.ts(51,5): error TS2741: Property 'name' is missing in type 'N.A' but required in type 'M.A'. -everyTypeWithAnnotationAndInvalidInitializer.ts(52,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. +everyTypeWithAnnotationAndInvalidInitializer.ts(51,27): error TS2741: Property 'name' is missing in type 'N.A' but required in type 'M.A'. +everyTypeWithAnnotationAndInvalidInitializer.ts(52,38): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. Type 'boolean' is not assignable to type 'string'. @@ -59,67 +62,68 @@ everyTypeWithAnnotationAndInvalidInitializer.ts(52,5): error TS2322: Type '(x: n } var aNumber: number = 'this is a string'; - ~~~~~~~ + ~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. var aString: string = 9.9; - ~~~~~~~ + ~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. var aDate: Date = 9.9; - ~~~~~ + ~~~ !!! error TS2322: Type 'number' is not assignable to type 'Date'. var aVoid: void = 9.9; - ~~~~~ + ~~~ !!! error TS2322: Type 'number' is not assignable to type 'void'. var anInterface: I = new D(); - ~~~~~~~~~~~ + ~~~~~~~ !!! error TS2741: Property 'id' is missing in type 'D' but required in type 'I'. !!! related TS2728 everyTypeWithAnnotationAndInvalidInitializer.ts:2:5: 'id' is declared here. var aClass: C = new D(); - ~~~~~~ + ~~~~~~~ !!! error TS2741: Property 'id' is missing in type 'D' but required in type 'C'. !!! related TS2728 everyTypeWithAnnotationAndInvalidInitializer.ts:6:5: 'id' is declared here. var aGenericClass: D = new C(); - ~~~~~~~~~~~~~ + ~~~~~~~ !!! error TS2739: Type 'C' is missing the following properties from type 'D': source, recurse, wrapped var anObjectLiteral: I = { id: 'a string' }; - ~~ -!!! error TS2322: Type 'string' is not assignable to type 'number'. -!!! related TS6500 everyTypeWithAnnotationAndInvalidInitializer.ts:2:5: The expected type comes from property 'id' which is declared here on type 'I' + ~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ id: string; }' is not assignable to type 'I'. +!!! error TS2322: Types of property 'id' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var anOtherObjectLiteral: { id: string } = new C(); - ~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~ !!! error TS2322: Type 'C' is not assignable to type '{ id: string; }'. !!! error TS2322: Types of property 'id' are incompatible. !!! error TS2322: Type 'number' is not assignable to type 'string'. var aFunction: typeof F = F2; - ~~~~~~~~~ + ~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. !!! error TS2322: Types of parameters 'x' and 'x' are incompatible. !!! error TS2322: Type 'string' is not assignable to type 'number'. var anOtherFunction: (x: string) => number = F2; - ~~~~~~~~~~~~~~~ + ~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. !!! error TS2322: Types of parameters 'x' and 'x' are incompatible. !!! error TS2322: Type 'string' is not assignable to type 'number'. var aLambda: typeof F = (x) => 'a string'; - ~~~~~~~~~~ -!!! error TS2322: Type 'string' is not assignable to type 'number'. -!!! related TS6502 everyTypeWithAnnotationAndInvalidInitializer.ts:15:10: The expected type comes from the return type of this signature. + ~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '(x: string) => string' is not assignable to type '(x: string) => number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var aModule: typeof M = N; - ~~~~~~~ + ~ !!! error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. !!! error TS2322: The types returned by 'new A()' are incompatible between these types. !!! error TS2322: Property 'name' is missing in type 'N.A' but required in type 'M.A'. !!! related TS2728 everyTypeWithAnnotationAndInvalidInitializer.ts:20:9: 'name' is declared here. var aClassInModule: M.A = new N.A(); - ~~~~~~~~~~~~~~ + ~~~~~~~~~ !!! error TS2741: Property 'name' is missing in type 'N.A' but required in type 'M.A'. !!! related TS2728 everyTypeWithAnnotationAndInvalidInitializer.ts:20:9: 'name' is declared here. var aFunctionInModule: typeof M.F2 = F2; - ~~~~~~~~~~~~~~~~~ + ~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. !!! error TS2322: Type 'boolean' is not assignable to type 'string'. diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.types b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.types index 5bd5b847f8c3e..71e3865166ec2 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.types +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.types @@ -112,56 +112,56 @@ module N { var aNumber: number = 'this is a string'; >aNumber : number > : ^^^^^^ ->'this is a string' : "this is a string" -> : ^^^^^^^^^^^^^^^^^^ +>'this is a string' : number +> : ^^^^^^ var aString: string = 9.9; >aString : string > : ^^^^^^ ->9.9 : 9.9 -> : ^^^ +>9.9 : string +> : ^^^^^^ var aDate: Date = 9.9; >aDate : Date > : ^^^^ ->9.9 : 9.9 -> : ^^^ +>9.9 : Date +> : ^^^^ var aVoid: void = 9.9; >aVoid : void > : ^^^^ ->9.9 : 9.9 -> : ^^^ +>9.9 : void +> : ^^^^ var anInterface: I = new D(); >anInterface : I > : ^ ->new D() : D -> : ^^^^^^^^^^ +>new D() : I +> : ^ >D : typeof D > : ^^^^^^^^ var aClass: C = new D(); >aClass : C > : ^ ->new D() : D -> : ^^^^^^^^^^ +>new D() : C +> : ^ >D : typeof D > : ^^^^^^^^ var aGenericClass: D = new C(); >aGenericClass : D > : ^^^^^^^^^ ->new C() : C -> : ^ +>new C() : D +> : ^^^^^^^^^ >C : typeof C > : ^^^^^^^^ var anObjectLiteral: I = { id: 'a string' }; >anObjectLiteral : I > : ^ ->{ id: 'a string' } : { id: string; } -> : ^^^^^^^^^^^^^^^ +>{ id: 'a string' } : I +> : ^ >id : string > : ^^^^^^ >'a string' : "a string" @@ -172,8 +172,8 @@ var anOtherObjectLiteral: { id: string } = new C(); > : ^^^^^^ ^^^ >id : string > : ^^^^^^ ->new C() : C -> : ^ +>new C() : { id: string; } +> : ^^^^^^ ^^^ >C : typeof C > : ^^^^^^^^ @@ -182,24 +182,24 @@ var aFunction: typeof F = F2; > : ^ ^^ ^^^^^ >F : (x: string) => number > : ^ ^^ ^^^^^ ->F2 : (x: number) => boolean -> : ^ ^^ ^^^^^ +>F2 : (x: string) => number +> : ^ ^^ ^^^^^ var anOtherFunction: (x: string) => number = F2; >anOtherFunction : (x: string) => number > : ^ ^^ ^^^^^ >x : string > : ^^^^^^ ->F2 : (x: number) => boolean -> : ^ ^^ ^^^^^ +>F2 : (x: string) => number +> : ^ ^^ ^^^^^ var aLambda: typeof F = (x) => 'a string'; >aLambda : (x: string) => number > : ^ ^^ ^^^^^ >F : (x: string) => number > : ^ ^^ ^^^^^ ->(x) => 'a string' : (x: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +>(x) => 'a string' : (x: string) => number +> : ^ ^^ ^^^^^ >x : string > : ^^^^^^ >'a string' : "a string" @@ -210,7 +210,7 @@ var aModule: typeof M = N; > : ^^^^^^^^ >M : typeof M > : ^^^^^^^^ ->N : typeof N +>N : typeof M > : ^^^^^^^^ var aClassInModule: M.A = new N.A(); @@ -218,7 +218,7 @@ var aClassInModule: M.A = new N.A(); > : ^^^ >M : any > : ^^^ ->new N.A() : N.A +>new N.A() : M.A > : ^^^ >N.A : typeof N.A > : ^^^^^^^^^^ @@ -236,7 +236,7 @@ var aFunctionInModule: typeof M.F2 = F2; > : ^^^^^^^^ >F2 : (x: number) => string > : ^ ^^ ^^^^^ ->F2 : (x: number) => boolean -> : ^ ^^ ^^^^^ +>F2 : (x: number) => string +> : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types b/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types index b4f6939427e18..f2b1c79f20c8b 100644 --- a/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types +++ b/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types @@ -36,8 +36,8 @@ interface A { x?: string } let a: A & ThisType = { y: 10 }; >a : A & ThisType > : ^^^^^^^^^^^^^^^^^ ->{ y: 10 } : { y: number; } -> : ^^^^^^^^^^^^^^ +>{ y: 10 } : A & ThisType +> : ^^^^^^^^^^^^^^^^^ >y : number > : ^^^^^^ >10 : 10 @@ -51,8 +51,8 @@ let x: Empty & { x: number } = { y: "hello" }; > : ^^^^^^^^^^^^^ ^^^ >x : number > : ^^^^^^ ->{ y: "hello" } : { y: string; } -> : ^^^^^^^^^^^^^^ +>{ y: "hello" } : Empty & { x: number; } +> : ^^^^^^^^^^^^^ ^^^ >y : string > : ^^^^^^ >"hello" : "hello" diff --git a/tests/baselines/reference/excessPropertyCheckWithUnions.types b/tests/baselines/reference/excessPropertyCheckWithUnions.types index bdfafe1a7d626..b4258c5726155 100644 --- a/tests/baselines/reference/excessPropertyCheckWithUnions.types +++ b/tests/baselines/reference/excessPropertyCheckWithUnions.types @@ -30,8 +30,8 @@ type ADT = { let wrong: ADT = { tag: "T", a1: "extra" } >wrong : ADT > : ^^^ ->{ tag: "T", a1: "extra" } : { tag: "T"; a1: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ tag: "T", a1: "extra" } : ADT +> : ^^^ >tag : "T" > : ^^^ >"T" : "T" diff --git a/tests/baselines/reference/excessPropertyChecksWithNestedIntersections.errors.txt b/tests/baselines/reference/excessPropertyChecksWithNestedIntersections.errors.txt index e64ed94294d79..0eba3a39656a8 100644 --- a/tests/baselines/reference/excessPropertyChecksWithNestedIntersections.errors.txt +++ b/tests/baselines/reference/excessPropertyChecksWithNestedIntersections.errors.txt @@ -1,7 +1,16 @@ -excessPropertyChecksWithNestedIntersections.ts(18,19): error TS2322: Type 'number' is not assignable to type 'string'. -excessPropertyChecksWithNestedIntersections.ts(19,31): error TS2353: Object literal may only specify known properties, and 'y' does not exist in type 'A'. -excessPropertyChecksWithNestedIntersections.ts(22,19): error TS2322: Type 'number' is not assignable to type 'string'. -excessPropertyChecksWithNestedIntersections.ts(23,31): error TS2353: Object literal may only specify known properties, and 'y' does not exist in type 'A'. +excessPropertyChecksWithNestedIntersections.ts(18,12): error TS2322: Type '{ a: { x: number; }; }' is not assignable to type 'B'. + The types of 'a.x' are incompatible between these types. + Type 'number' is not assignable to type 'string'. +excessPropertyChecksWithNestedIntersections.ts(19,31): error TS2322: Type '{ a: { x: string; y: number; }; }' is not assignable to type 'B'. + Types of property 'a' are incompatible. + Object literal may only specify known properties, and 'y' does not exist in type 'A'. +excessPropertyChecksWithNestedIntersections.ts(22,12): error TS2322: Type '{ a: { x: number; }; c: number; }' is not assignable to type 'D'. + Type '{ a: { x: number; }; c: number; }' is not assignable to type 'B'. + The types of 'a.x' are incompatible between these types. + Type 'number' is not assignable to type 'string'. +excessPropertyChecksWithNestedIntersections.ts(23,31): error TS2322: Type '{ a: { x: string; y: number; }; c: number; }' is not assignable to type 'D'. + Types of property 'a' are incompatible. + Object literal may only specify known properties, and 'y' does not exist in type 'A'. excessPropertyChecksWithNestedIntersections.ts(34,5): error TS2353: Object literal may only specify known properties, and 'xyz' does not exist in type '{ id: number; } & { url: string; }'. excessPropertyChecksWithNestedIntersections.ts(43,9): error TS2353: Object literal may only specify known properties, and 'xyz' does not exist in type '{ id: number; } & { url: string; }'. excessPropertyChecksWithNestedIntersections.ts(68,32): error TS2353: Object literal may only specify known properties, and 'boo' does not exist in type 'View'. @@ -27,23 +36,28 @@ excessPropertyChecksWithNestedIntersections.ts(70,50): error TS2353: Object lite let a: B = { a: { x: 'hello' } }; // ok let b: B = { a: { x: 2 } }; // error - types of property x are incompatible - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6500 excessPropertyChecksWithNestedIntersections.ts:4:5: The expected type comes from property 'x' which is declared here on type 'A' + ~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ a: { x: number; }; }' is not assignable to type 'B'. +!!! error TS2322: The types of 'a.x' are incompatible between these types. +!!! error TS2322: Type 'number' is not assignable to type 'string'. let c: B = { a: { x: 'hello', y: 2 } }; // error - y does not exist in type A ~ -!!! error TS2353: Object literal may only specify known properties, and 'y' does not exist in type 'A'. -!!! related TS6500 excessPropertyChecksWithNestedIntersections.ts:8:5: The expected type comes from property 'a' which is declared here on type 'B' +!!! error TS2322: Type '{ a: { x: string; y: number; }; }' is not assignable to type 'B'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Object literal may only specify known properties, and 'y' does not exist in type 'A'. let d: D = { a: { x: 'hello' }, c: 5 }; // ok let e: D = { a: { x: 2 }, c: 5 }; // error - types of property x are incompatible - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6500 excessPropertyChecksWithNestedIntersections.ts:4:5: The expected type comes from property 'x' which is declared here on type 'A' + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ a: { x: number; }; c: number; }' is not assignable to type 'D'. +!!! error TS2322: Type '{ a: { x: number; }; c: number; }' is not assignable to type 'B'. +!!! error TS2322: The types of 'a.x' are incompatible between these types. +!!! error TS2322: Type 'number' is not assignable to type 'string'. let f: D = { a: { x: 'hello', y: 2 }, c: 5 }; // error - y does not exist in type A ~ -!!! error TS2353: Object literal may only specify known properties, and 'y' does not exist in type 'A'. -!!! related TS6500 excessPropertyChecksWithNestedIntersections.ts:8:5: The expected type comes from property 'a' which is declared here on type 'D' +!!! error TS2322: Type '{ a: { x: string; y: number; }; c: number; }' is not assignable to type 'D'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Object literal may only specify known properties, and 'y' does not exist in type 'A'. // https://github.com/Microsoft/TypeScript/issues/18075 diff --git a/tests/baselines/reference/excessPropertyChecksWithNestedIntersections.types b/tests/baselines/reference/excessPropertyChecksWithNestedIntersections.types index 0e6d0d9836c18..c25c1af452b1d 100644 --- a/tests/baselines/reference/excessPropertyChecksWithNestedIntersections.types +++ b/tests/baselines/reference/excessPropertyChecksWithNestedIntersections.types @@ -28,8 +28,8 @@ type D = B & C; let a: B = { a: { x: 'hello' } }; // ok >a : B > : ^ ->{ a: { x: 'hello' } } : { a: { x: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^ +>{ a: { x: 'hello' } } : B +> : ^ >a : { x: string; } > : ^^^^^^^^^^^^^^ >{ x: 'hello' } : { x: string; } @@ -42,8 +42,8 @@ let a: B = { a: { x: 'hello' } }; // ok let b: B = { a: { x: 2 } }; // error - types of property x are incompatible >b : B > : ^ ->{ a: { x: 2 } } : { a: { x: number; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^ +>{ a: { x: 2 } } : B +> : ^ >a : { x: number; } > : ^^^^^^^^^^^^^^ >{ x: 2 } : { x: number; } @@ -56,8 +56,8 @@ let b: B = { a: { x: 2 } }; // error - types of property x are incompatible let c: B = { a: { x: 'hello', y: 2 } }; // error - y does not exist in type A >c : B > : ^ ->{ a: { x: 'hello', y: 2 } } : { a: { x: string; y: number; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: { x: 'hello', y: 2 } } : B +> : ^ >a : { x: string; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >{ x: 'hello', y: 2 } : { x: string; y: number; } @@ -74,8 +74,8 @@ let c: B = { a: { x: 'hello', y: 2 } }; // error - y does not exist in type A let d: D = { a: { x: 'hello' }, c: 5 }; // ok >d : D > : ^ ->{ a: { x: 'hello' }, c: 5 } : { a: { x: string; }; c: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: { x: 'hello' }, c: 5 } : D +> : ^ >a : { x: string; } > : ^^^^^^^^^^^^^^ >{ x: 'hello' } : { x: string; } @@ -92,8 +92,8 @@ let d: D = { a: { x: 'hello' }, c: 5 }; // ok let e: D = { a: { x: 2 }, c: 5 }; // error - types of property x are incompatible >e : D > : ^ ->{ a: { x: 2 }, c: 5 } : { a: { x: number; }; c: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: { x: 2 }, c: 5 } : D +> : ^ >a : { x: number; } > : ^^^^^^^^^^^^^^ >{ x: 2 } : { x: number; } @@ -110,8 +110,8 @@ let e: D = { a: { x: 2 }, c: 5 }; // error - types of property x are incompatibl let f: D = { a: { x: 'hello', y: 2 }, c: 5 }; // error - y does not exist in type A >f : D > : ^ ->{ a: { x: 'hello', y: 2 }, c: 5 } : { a: { x: string; y: number; }; c: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: { x: 'hello', y: 2 }, c: 5 } : D +> : ^ >a : { x: string; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >{ x: 'hello', y: 2 } : { x: string; y: number; } diff --git a/tests/baselines/reference/excessPropertyErrorForFunctionTypes.types b/tests/baselines/reference/excessPropertyErrorForFunctionTypes.types index 122ff049a3450..7e7709d15705c 100644 --- a/tests/baselines/reference/excessPropertyErrorForFunctionTypes.types +++ b/tests/baselines/reference/excessPropertyErrorForFunctionTypes.types @@ -16,8 +16,8 @@ type DoesntWork = { a: number, c: number } | FunctionType; let doesntWork: DoesntWork = { a: 1, c: 2, d: 3 } >doesntWork : DoesntWork > : ^^^^^^^^^^ ->{ a: 1, c: 2, d: 3 } : { a: number; c: number; d: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: 1, c: 2, d: 3 } : DoesntWork +> : ^^^^^^^^^^ >a : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/excessPropertyErrorsSuppressed.types b/tests/baselines/reference/excessPropertyErrorsSuppressed.types index 74aed17ff38ae..a9600ebd749d9 100644 --- a/tests/baselines/reference/excessPropertyErrorsSuppressed.types +++ b/tests/baselines/reference/excessPropertyErrorsSuppressed.types @@ -6,8 +6,8 @@ var x: { a: string } = { a: "hello", b: 42 }; // No error > : ^^^^^ ^^^ >a : string > : ^^^^^^ ->{ a: "hello", b: 42 } : { a: string; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: "hello", b: 42 } : { a: string; } +> : ^^^^^ ^^^ >a : string > : ^^^^^^ >"hello" : "hello" diff --git a/tests/baselines/reference/exhaustiveSwitchCheckCircularity.errors.txt b/tests/baselines/reference/exhaustiveSwitchCheckCircularity.errors.txt index a309088cfbee7..4dc631eb1e505 100644 --- a/tests/baselines/reference/exhaustiveSwitchCheckCircularity.errors.txt +++ b/tests/baselines/reference/exhaustiveSwitchCheckCircularity.errors.txt @@ -1,7 +1,8 @@ exhaustiveSwitchCheckCircularity.ts(14,26): error TS2345: Argument of type '"bbb"' is not assignable to parameter of type 'never'. +exhaustiveSwitchCheckCircularity.ts(34,19): error TS2454: Variable 'key' is used before being assigned. -==== exhaustiveSwitchCheckCircularity.ts (1 errors) ==== +==== exhaustiveSwitchCheckCircularity.ts (2 errors) ==== // Repro from #47539 declare function isNever(n: never): boolean; @@ -38,6 +39,8 @@ exhaustiveSwitchCheckCircularity.ts(14,26): error TS2345: Argument of type '"bbb } } functionB(key); + ~~~ +!!! error TS2454: Variable 'key' is used before being assigned. } } \ No newline at end of file diff --git a/tests/baselines/reference/exhaustiveSwitchCheckCircularity.types b/tests/baselines/reference/exhaustiveSwitchCheckCircularity.types index d68b88fb2d1c2..62c0d5216309e 100644 --- a/tests/baselines/reference/exhaustiveSwitchCheckCircularity.types +++ b/tests/baselines/reference/exhaustiveSwitchCheckCircularity.types @@ -16,8 +16,8 @@ function f() { let foo: "aaa" | "bbb" = "aaa"; >foo : "aaa" | "bbb" > : ^^^^^^^^^^^^^ ->"aaa" : "aaa" -> : ^^^^^ +>"aaa" : "aaa" | "bbb" +> : ^^^^^^^^^^^^^ while (true) { >true : true @@ -75,8 +75,8 @@ function functionC(): void { let unionVal: "A" | "B" = "A"; >unionVal : "A" | "B" > : ^^^^^^^^^ ->"A" : "A" -> : ^^^ +>"A" : "A" | "B" +> : ^^^^^^^^^ while (true) { >true : true @@ -87,8 +87,8 @@ function functionC(): void { > : ^^^^^^ switch (unionVal) { ->unionVal : "A" -> : ^^^ +>unionVal : "A" | "B" +> : ^^^^^^^^^ case "A": { >"A" : "A" diff --git a/tests/baselines/reference/expandoFunctionNestedAssigments.types b/tests/baselines/reference/expandoFunctionNestedAssigments.types index f1102b159041e..98143b7f508b6 100644 --- a/tests/baselines/reference/expandoFunctionNestedAssigments.types +++ b/tests/baselines/reference/expandoFunctionNestedAssigments.types @@ -9,8 +9,8 @@ function Foo(): void { let d: number = (Foo.inVariableInit = 1); >d : number > : ^^^^^^ ->(Foo.inVariableInit = 1) : 1 -> : ^ +>(Foo.inVariableInit = 1) : number +> : ^^^^^^ >Foo.inVariableInit = 1 : 1 > : ^ >Foo.inVariableInit : number diff --git a/tests/baselines/reference/exportAssignTypes.types b/tests/baselines/reference/exportAssignTypes.types index 370e9e70a7c30..f25f841840fd8 100644 --- a/tests/baselines/reference/exportAssignTypes.types +++ b/tests/baselines/reference/exportAssignTypes.types @@ -48,8 +48,8 @@ import iObject = require('./expObject'); var v5: Object = iObject; >v5 : Object > : ^^^^^^ ->iObject : { answer: number; when: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>iObject : Object +> : ^^^^^^ import iAny = require('./expAny'); >iAny : any @@ -68,8 +68,8 @@ var v7: {(p1: x): x} = iGeneric; > : ^ ^^ ^^ ^^^^^ >p1 : x > : ^ ->iGeneric : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +>iGeneric : (p1: x) => x +> : ^ ^^ ^^ ^^^^^ === expString.ts === var x = "test"; diff --git a/tests/baselines/reference/exportAssignmentInternalModule.types b/tests/baselines/reference/exportAssignmentInternalModule.types index 8485df8d8a41b..48c4b837f34e3 100644 --- a/tests/baselines/reference/exportAssignmentInternalModule.types +++ b/tests/baselines/reference/exportAssignmentInternalModule.types @@ -8,11 +8,12 @@ import modM = require("exportAssignmentInternalModule_A"); var n: number = modM.x; >n : number > : ^^^^^^ ->modM.x : any +>modM.x : number +> : ^^^^^^ >modM : typeof modM > : ^^^^^^^^^^^ ->x : any -> : ^^^ +>x : number +> : ^^^^^^ === exportAssignmentInternalModule_A.ts === module M { diff --git a/tests/baselines/reference/exportImportAlias.types b/tests/baselines/reference/exportImportAlias.types index 121ede99f535f..ca50b88f0d761 100644 --- a/tests/baselines/reference/exportImportAlias.types +++ b/tests/baselines/reference/exportImportAlias.types @@ -64,8 +64,8 @@ var b: { x: number; y: number; } = new C.a.Point(0, 0); > : ^^^^^^ >y : number > : ^^^^^^ ->new C.a.Point(0, 0) : A.Point -> : ^^^^^^^ +>new C.a.Point(0, 0) : { x: number; y: number; } +> : ^^^^^ ^^^^^ ^^^ >C.a.Point : typeof A.Point > : ^^^^^^^^^^^^^^ >C.a : typeof A @@ -160,8 +160,8 @@ var n: { x: number; y: number; } = new Z.y.Point(0, 0); > : ^^^^^^ >y : number > : ^^^^^^ ->new Z.y.Point(0, 0) : X.Y.Point -> : ^^^^^^^^^ +>new Z.y.Point(0, 0) : { x: number; y: number; } +> : ^^^^^ ^^^^^ ^^^ >Z.y.Point : typeof X.Y.Point > : ^^^^^^^^^^^^^^^^ >Z.y : typeof X.Y diff --git a/tests/baselines/reference/exportImportNonInstantiatedModule.types b/tests/baselines/reference/exportImportNonInstantiatedModule.types index e85469e47b979..751bb4963c53f 100644 --- a/tests/baselines/reference/exportImportNonInstantiatedModule.types +++ b/tests/baselines/reference/exportImportNonInstantiatedModule.types @@ -25,8 +25,8 @@ var x: B.A1.I = { x: 1 }; > : ^^^ >A1 : any > : ^^^ ->{ x: 1 } : { x: number; } -> : ^^^^^^^^^^^^^^ +>{ x: 1 } : A.I +> : ^^^ >x : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/exportNonInitializedVariablesAMD.types b/tests/baselines/reference/exportNonInitializedVariablesAMD.types index 9f6a7dff9697f..37e3262e38de2 100644 --- a/tests/baselines/reference/exportNonInitializedVariablesAMD.types +++ b/tests/baselines/reference/exportNonInitializedVariablesAMD.types @@ -102,14 +102,14 @@ export let b1 = 1; export var c1: string = 'a'; >c1 : string > : ^^^^^^ ->'a' : "a" -> : ^^^ +>'a' : string +> : ^^^^^^ export let d1: number = 1; >d1 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ class D {} >D : D diff --git a/tests/baselines/reference/exportNonInitializedVariablesCommonJS.types b/tests/baselines/reference/exportNonInitializedVariablesCommonJS.types index e29f16772e1da..fa4db528c45f8 100644 --- a/tests/baselines/reference/exportNonInitializedVariablesCommonJS.types +++ b/tests/baselines/reference/exportNonInitializedVariablesCommonJS.types @@ -102,14 +102,14 @@ export let b1 = 1; export var c1: string = 'a'; >c1 : string > : ^^^^^^ ->'a' : "a" -> : ^^^ +>'a' : string +> : ^^^^^^ export let d1: number = 1; >d1 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ class D {} >D : D diff --git a/tests/baselines/reference/exportNonInitializedVariablesES6.types b/tests/baselines/reference/exportNonInitializedVariablesES6.types index a05d6cfac5968..c429cdcfcc93d 100644 --- a/tests/baselines/reference/exportNonInitializedVariablesES6.types +++ b/tests/baselines/reference/exportNonInitializedVariablesES6.types @@ -102,14 +102,14 @@ export let b1 = 1; export var c1: string = 'a'; >c1 : string > : ^^^^^^ ->'a' : "a" -> : ^^^ +>'a' : string +> : ^^^^^^ export let d1: number = 1; >d1 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ class D {} >D : D diff --git a/tests/baselines/reference/exportNonInitializedVariablesSystem.types b/tests/baselines/reference/exportNonInitializedVariablesSystem.types index 2a127da4bfe9b..beb0bf97bc0c3 100644 --- a/tests/baselines/reference/exportNonInitializedVariablesSystem.types +++ b/tests/baselines/reference/exportNonInitializedVariablesSystem.types @@ -102,14 +102,14 @@ export let b1 = 1; export var c1: string = 'a'; >c1 : string > : ^^^^^^ ->'a' : "a" -> : ^^^ +>'a' : string +> : ^^^^^^ export let d1: number = 1; >d1 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ class D {} >D : D diff --git a/tests/baselines/reference/exportNonInitializedVariablesUMD.types b/tests/baselines/reference/exportNonInitializedVariablesUMD.types index 13e6a1204fadf..606ea0acaedcf 100644 --- a/tests/baselines/reference/exportNonInitializedVariablesUMD.types +++ b/tests/baselines/reference/exportNonInitializedVariablesUMD.types @@ -102,14 +102,14 @@ export let b1 = 1; export var c1: string = 'a'; >c1 : string > : ^^^^^^ ->'a' : "a" -> : ^^^ +>'a' : string +> : ^^^^^^ export let d1: number = 1; >d1 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ class D {} >D : D diff --git a/tests/baselines/reference/exportNonVisibleType.types b/tests/baselines/reference/exportNonVisibleType.types index 5c6c152b3ffd6..ce15a3fc16456 100644 --- a/tests/baselines/reference/exportNonVisibleType.types +++ b/tests/baselines/reference/exportNonVisibleType.types @@ -14,8 +14,8 @@ interface I1 { var x: I1 = {a: "test", b: 42}; >x : I1 > : ^^ ->{a: "test", b: 42} : { a: string; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{a: "test", b: 42} : I1 +> : ^^ >a : string > : ^^^^^^ >"test" : "test" diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt b/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt index 2ee2cb8df5068..ac553af60dba6 100644 --- a/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt @@ -1,8 +1,8 @@ extendAndImplementTheSameBaseType2.ts(7,7): error TS2720: Class 'D' incorrectly implements class 'C'. Did you mean to extend 'C' and inherit its members as a subclass? The types returned by 'bar()' are incompatible between these types. Type 'string' is not assignable to type 'number'. -extendAndImplementTheSameBaseType2.ts(12,5): error TS2322: Type 'number' is not assignable to type 'string'. -extendAndImplementTheSameBaseType2.ts(16,5): error TS2322: Type 'string' is not assignable to type 'number'. +extendAndImplementTheSameBaseType2.ts(12,17): error TS2322: Type 'number' is not assignable to type 'string'. +extendAndImplementTheSameBaseType2.ts(16,18): error TS2322: Type 'string' is not assignable to type 'number'. ==== extendAndImplementTheSameBaseType2.ts (3 errors) ==== @@ -22,11 +22,11 @@ extendAndImplementTheSameBaseType2.ts(16,5): error TS2322: Type 'string' is not var d: D = new D(); var r: string = d.foo; - ~ + ~~~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. var r2: number = d.foo; var r3: string = d.bar(); var r4: number = d.bar(); - ~~ + ~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType2.types b/tests/baselines/reference/extendAndImplementTheSameBaseType2.types index e552629d89b20..14c0bcee101fe 100644 --- a/tests/baselines/reference/extendAndImplementTheSameBaseType2.types +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType2.types @@ -38,11 +38,11 @@ var d: D = new D(); var r: string = d.foo; >r : string > : ^^^^^^ ->d.foo : number +>d.foo : string > : ^^^^^^ >d : D > : ^ ->foo : number +>foo : string > : ^^^^^^ var r2: number = d.foo; diff --git a/tests/baselines/reference/extendBooleanInterface.types b/tests/baselines/reference/extendBooleanInterface.types index b8f5fa1c48e02..18ed0e5a92175 100644 --- a/tests/baselines/reference/extendBooleanInterface.types +++ b/tests/baselines/reference/extendBooleanInterface.types @@ -34,8 +34,8 @@ var a: string = x.doStuff(); var b: string = x.doOtherStuff('hm'); >b : string > : ^^^^^^ ->x.doOtherStuff('hm') : "hm" -> : ^^^^ +>x.doOtherStuff('hm') : string +> : ^^^^^^ >x.doOtherStuff : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : true @@ -60,8 +60,8 @@ var c: string = x['doStuff'](); var d: string = x['doOtherStuff']('hm'); >d : string > : ^^^^^^ ->x['doOtherStuff']('hm') : "hm" -> : ^^^^ +>x['doOtherStuff']('hm') : string +> : ^^^^^^ >x['doOtherStuff'] : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : true diff --git a/tests/baselines/reference/extendGenericArray.errors.txt b/tests/baselines/reference/extendGenericArray.errors.txt index 6b6557eb1e71a..0a3037cbbde2d 100644 --- a/tests/baselines/reference/extendGenericArray.errors.txt +++ b/tests/baselines/reference/extendGenericArray.errors.txt @@ -1,4 +1,4 @@ -extendGenericArray.ts(6,5): error TS2322: Type 'string' is not assignable to type 'number'. +extendGenericArray.ts(6,17): error TS2322: Type 'string' is not assignable to type 'number'. ==== extendGenericArray.ts (1 errors) ==== @@ -8,5 +8,5 @@ extendGenericArray.ts(6,5): error TS2322: Type 'string' is not assignable to typ var arr: string[] = []; var x: number = arr.foo(); - ~ + ~~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/extendGenericArray.types b/tests/baselines/reference/extendGenericArray.types index 94bc01a159786..b5c0b36bf0901 100644 --- a/tests/baselines/reference/extendGenericArray.types +++ b/tests/baselines/reference/extendGenericArray.types @@ -10,8 +10,8 @@ interface Array { var arr: string[] = []; >arr : string[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : string[] +> : ^^^^^^^^ var x: number = arr.foo(); >x : number diff --git a/tests/baselines/reference/extendGenericArray2.errors.txt b/tests/baselines/reference/extendGenericArray2.errors.txt index 1fbe1f2e3979b..e708f5e8e193e 100644 --- a/tests/baselines/reference/extendGenericArray2.errors.txt +++ b/tests/baselines/reference/extendGenericArray2.errors.txt @@ -1,4 +1,4 @@ -extendGenericArray2.ts(8,5): error TS2322: Type 'string' is not assignable to type 'number'. +extendGenericArray2.ts(8,17): error TS2322: Type 'string' is not assignable to type 'number'. ==== extendGenericArray2.ts (1 errors) ==== @@ -10,5 +10,5 @@ extendGenericArray2.ts(8,5): error TS2322: Type 'string' is not assignable to ty var arr: string[] = []; var y: number = arr.x; - ~ + ~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/extendGenericArray2.types b/tests/baselines/reference/extendGenericArray2.types index afc80d99c9e9a..7db313fb2326f 100644 --- a/tests/baselines/reference/extendGenericArray2.types +++ b/tests/baselines/reference/extendGenericArray2.types @@ -12,16 +12,16 @@ interface Array extends IFoo { } var arr: string[] = []; >arr : string[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : string[] +> : ^^^^^^^^ var y: number = arr.x; >y : number > : ^^^^^^ ->arr.x : string +>arr.x : number > : ^^^^^^ >arr : string[] > : ^^^^^^^^ ->x : string +>x : number > : ^^^^^^ diff --git a/tests/baselines/reference/extendNumberInterface.types b/tests/baselines/reference/extendNumberInterface.types index b1c87d9f425b9..548124f15dc9f 100644 --- a/tests/baselines/reference/extendNumberInterface.types +++ b/tests/baselines/reference/extendNumberInterface.types @@ -34,8 +34,8 @@ var a: string = x.doStuff(); var b: string = x.doOtherStuff('hm'); >b : string > : ^^^^^^ ->x.doOtherStuff('hm') : "hm" -> : ^^^^ +>x.doOtherStuff('hm') : string +> : ^^^^^^ >x.doOtherStuff : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : number @@ -60,8 +60,8 @@ var c: string = x['doStuff'](); var d: string = x['doOtherStuff']('hm'); >d : string > : ^^^^^^ ->x['doOtherStuff']('hm') : "hm" -> : ^^^^ +>x['doOtherStuff']('hm') : string +> : ^^^^^^ >x['doOtherStuff'] : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : number diff --git a/tests/baselines/reference/extendStringInterface.types b/tests/baselines/reference/extendStringInterface.types index 86b84fd97e146..96db0feeaa997 100644 --- a/tests/baselines/reference/extendStringInterface.types +++ b/tests/baselines/reference/extendStringInterface.types @@ -34,8 +34,8 @@ var a: string = x.doStuff(); var b: string = x.doOtherStuff('hm'); >b : string > : ^^^^^^ ->x.doOtherStuff('hm') : "hm" -> : ^^^^ +>x.doOtherStuff('hm') : string +> : ^^^^^^ >x.doOtherStuff : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : string @@ -60,8 +60,8 @@ var c: string = x['doStuff'](); var d: string = x['doOtherStuff']('hm'); >d : string > : ^^^^^^ ->x['doOtherStuff']('hm') : "hm" -> : ^^^^ +>x['doOtherStuff']('hm') : string +> : ^^^^^^ >x['doOtherStuff'] : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : string diff --git a/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.types b/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.types index ce25f709d12d5..cba1506153d33 100644 --- a/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.types +++ b/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.types @@ -27,16 +27,16 @@ interface IHasVisualizationModel { var moduleATyped: IHasVisualizationModel = moduleA; >moduleATyped : IHasVisualizationModel > : ^^^^^^^^^^^^^^^^^^^^^^ ->moduleA : typeof moduleA -> : ^^^^^^^^^^^^^^ +>moduleA : IHasVisualizationModel +> : ^^^^^^^^^^^^^^^^^^^^^^ var moduleMap: { [key: string]: IHasVisualizationModel } = { >moduleMap : { [key: string]: IHasVisualizationModel; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : string > : ^^^^^^ ->{ "moduleA": moduleA, "moduleB": moduleB} : { moduleA: typeof moduleA; moduleB: typeof moduleB; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ "moduleA": moduleA, "moduleB": moduleB} : { [key: string]: IHasVisualizationModel; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ "moduleA": moduleA, >"moduleA" : typeof moduleA diff --git a/tests/baselines/reference/externSemantics.types b/tests/baselines/reference/externSemantics.types index d862a35ccaba9..05b754008fb9b 100644 --- a/tests/baselines/reference/externSemantics.types +++ b/tests/baselines/reference/externSemantics.types @@ -14,6 +14,6 @@ declare var v; declare var y:number=3; >y : number > : ^^^^^^ ->3 : 3 -> : ^ +>3 : number +> : ^^^^^^ diff --git a/tests/baselines/reference/externalModuleAssignToVar.types b/tests/baselines/reference/externalModuleAssignToVar.types index 4f56eb669fb06..6f3d7a498220a 100644 --- a/tests/baselines/reference/externalModuleAssignToVar.types +++ b/tests/baselines/reference/externalModuleAssignToVar.types @@ -13,8 +13,8 @@ var y1: { C: new() => ext.C; } = ext; > : ^^^^^^^^^^ >ext : any > : ^^^ ->ext : typeof ext -> : ^^^^^^^^^^ +>ext : { C: new () => ext.C; } +> : ^^^^^ ^^^ y1 = ext; // ok >y1 = ext : typeof ext @@ -31,8 +31,8 @@ import ext2 = require('externalModuleAssignToVar_core_require2'); var y2: new() => ext2 = ext2; >y2 : new () => ext2 > : ^^^^^^^^^^ ->ext2 : typeof ext2 -> : ^^^^^^^^^^^ +>ext2 : new () => ext2 +> : ^^^^^^^^^^ y2 = ext2; // ok >y2 = ext2 : typeof ext2 @@ -49,8 +49,8 @@ import ext3 = require('externalModuleAssignToVar_ext'); var y3: new () => ext3 = ext3; >y3 : new () => ext3 > : ^^^^^^^^^^ ->ext3 : typeof ext3 -> : ^^^^^^^^^^^ +>ext3 : new () => ext3 +> : ^^^^^^^^^^ y3 = ext3; // ok >y3 = ext3 : typeof ext3 diff --git a/tests/baselines/reference/externalModuleExportingGenericClass.types b/tests/baselines/reference/externalModuleExportingGenericClass.types index f7c7933f086d1..79e9c6a1db508 100644 --- a/tests/baselines/reference/externalModuleExportingGenericClass.types +++ b/tests/baselines/reference/externalModuleExportingGenericClass.types @@ -12,16 +12,16 @@ var v: a; // this should report error var v2: any = (new a()).foo; >v2 : any > : ^^^ ->(new a()).foo : unknown -> : ^^^^^^^ +>(new a()).foo : any +> : ^^^ >(new a()) : a > : ^^^^^^^^^^ >new a() : a > : ^^^^^^^^^^ >a : typeof a > : ^^^^^^^^ ->foo : unknown -> : ^^^^^^^ +>foo : any +> : ^^^ var v3: number = (new a()).foo; >v3 : number diff --git a/tests/baselines/reference/fatArrowfunctionAsType.types b/tests/baselines/reference/fatArrowfunctionAsType.types index b095f13ff5093..afcecdbe21d24 100644 --- a/tests/baselines/reference/fatArrowfunctionAsType.types +++ b/tests/baselines/reference/fatArrowfunctionAsType.types @@ -12,8 +12,8 @@ var c: (x: T) => void = function (x: T) { return 42; } > : ^ ^^ ^^ ^^^^^ >x : T > : ^ ->function (x: T) { return 42; } : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +>function (x: T) { return 42; } : (x: T) => void +> : ^ ^^ ^^ ^^^^^ >x : T > : ^ >42 : 42 diff --git a/tests/baselines/reference/filterNamespace_import.types b/tests/baselines/reference/filterNamespace_import.types index 739ac3c1c0e82..6862015a97c43 100644 --- a/tests/baselines/reference/filterNamespace_import.types +++ b/tests/baselines/reference/filterNamespace_import.types @@ -70,8 +70,8 @@ let t: ns.Type = ""; > : ^^^^^^ >ns : any > : ^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ let n: ns.nested.NestedClass = { a: '' }; >n : ns.nested.NestedClass @@ -80,8 +80,8 @@ let n: ns.nested.NestedClass = { a: '' }; > : ^^^ >nested : any > : ^^^ ->{ a: '' } : { a: string; } -> : ^^^^^^^^^^^^^^ +>{ a: '' } : ns.nested.NestedClass +> : ^^^^^^^^^^^^^^^^^^^^^ >a : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/flowControlTypeGuardThenSwitch.types b/tests/baselines/reference/flowControlTypeGuardThenSwitch.types index a2ff05e25a26b..00c19e16fc5c2 100644 --- a/tests/baselines/reference/flowControlTypeGuardThenSwitch.types +++ b/tests/baselines/reference/flowControlTypeGuardThenSwitch.types @@ -60,8 +60,8 @@ function isBoth(x: Base): x is Both { let foo: Base = undefined; >foo : Base > : ^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : Base +> : ^^^^ if (isBoth(foo)) { >isBoth(foo) : boolean diff --git a/tests/baselines/reference/for-of36.types b/tests/baselines/reference/for-of36.types index 75a37bbb8547b..55d74b9f0c91b 100644 --- a/tests/baselines/reference/for-of36.types +++ b/tests/baselines/reference/for-of36.types @@ -4,8 +4,8 @@ var tuple: [string, boolean] = ["", true]; >tuple : [string, boolean] > : ^^^^^^^^^^^^^^^^^ ->["", true] : [string, true] -> : ^^^^^^^^^^^^^^ +>["", true] : [string, boolean] +> : ^^^^^^^^^^^^^^^^^ >"" : "" > : ^^ >true : true diff --git a/tests/baselines/reference/for-of44.types b/tests/baselines/reference/for-of44.types index ce589fad85592..e53e6677f55d9 100644 --- a/tests/baselines/reference/for-of44.types +++ b/tests/baselines/reference/for-of44.types @@ -4,8 +4,8 @@ var array: [number, string | boolean | symbol][] = [[0, ""], [0, true], [1, Symbol()]] >array : [number, string | boolean | symbol][] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->[[0, ""], [0, true], [1, Symbol()]] : ([number, string] | [number, true] | [number, symbol])[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[[0, ""], [0, true], [1, Symbol()]] : [number, string | boolean | symbol][] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[0, ""] : [number, string] > : ^^^^^^^^^^^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/for.types b/tests/baselines/reference/for.types index 622bf9df712c4..a7e6a10305aa1 100644 --- a/tests/baselines/reference/for.types +++ b/tests/baselines/reference/for.types @@ -27,8 +27,8 @@ for (var i = 0; i < 10; i++) { // ok for (var j: number = 0; j < 10; j++) { // ok >j : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ >j < 10 : boolean > : ^^^^^^^ >j : number diff --git a/tests/baselines/reference/forStatements.types b/tests/baselines/reference/forStatements.types index 2d9fdfc3b34bc..8081d29afa795 100644 --- a/tests/baselines/reference/forStatements.types +++ b/tests/baselines/reference/forStatements.types @@ -72,14 +72,14 @@ module M { for(var aNumber: number = 9.9;;){} >aNumber : number > : ^^^^^^ ->9.9 : 9.9 -> : ^^^ +>9.9 : number +> : ^^^^^^ for(var aString: string = 'this is a string';;){} >aString : string > : ^^^^^^ ->'this is a string' : "this is a string" -> : ^^^^^^^^^^^^^^^^^^ +>'this is a string' : string +> : ^^^^^^ for(var aDate: Date = new Date(12);;){} >aDate : Date @@ -104,19 +104,18 @@ for(var anAny: any = null;;){} for(var aSecondAny: any = undefined;;){} >aSecondAny : any ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any for(var aVoid: void = undefined;;){} >aVoid : void > : ^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : void +> : ^^^^ for(var anInterface: I = new C();;){} >anInterface : I > : ^ ->new C() : C +>new C() : I > : ^ >C : typeof C > : ^^^^^^^^ @@ -140,8 +139,8 @@ for(var aGenericClass: D = new D();;){} for(var anObjectLiteral: I = { id: 12 };;){} >anObjectLiteral : I > : ^ ->{ id: 12 } : { id: number; } -> : ^^^^^^^^^^^^^^^ +>{ id: 12 } : I +> : ^ >id : number > : ^^^^^^ >12 : 12 @@ -152,8 +151,8 @@ for(var anOtherObjectLiteral: { id: number } = new C();;){} > : ^^^^^^ ^^^ >id : number > : ^^^^^^ ->new C() : C -> : ^ +>new C() : { id: number; } +> : ^^^^^^ ^^^ >C : typeof C > : ^^^^^^^^ @@ -179,7 +178,7 @@ for(var aLambda: typeof F = (x) => 2;;){} >F : (x: string) => number > : ^ ^^ ^^^^^ >(x) => 2 : (x: string) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : string > : ^^^^^^ >2 : 2 @@ -217,7 +216,7 @@ for(var aFunctionInModule: typeof M.F2 = (x) => 'this is a string';;){} >F2 : (x: number) => string > : ^ ^^ ^^^^^ >(x) => 'this is a string' : (x: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ >'this is a string' : "this is a string" diff --git a/tests/baselines/reference/forStatementsMultipleValidDecl.types b/tests/baselines/reference/forStatementsMultipleValidDecl.types index 9c5ef84b62d0b..206ce29e6b59b 100644 --- a/tests/baselines/reference/forStatementsMultipleValidDecl.types +++ b/tests/baselines/reference/forStatementsMultipleValidDecl.types @@ -59,8 +59,8 @@ for (var p = { x: 1, y: 2 }; ;) { } for (var p: Point = { x: 0, y: undefined }; ;) { } >p : Point > : ^^^^^ ->{ x: 0, y: undefined } : { x: number; y: undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: undefined } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -94,7 +94,7 @@ for (var p: { x: number; y: number; } = { x: 1, y: 2 }; ;) { } >y : number > : ^^^^^^ >{ x: 1, y: 2 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >x : number > : ^^^^^^ >1 : 1 @@ -201,8 +201,8 @@ for (var a = []; ;) { } for (var a: string[] = []; ;) { } >a : string[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : string[] +> : ^^^^^^^^ for (var a = new Array(); ;) { } >a : string[] diff --git a/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types b/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types index 2ac93d292c1c8..0c94518bf1658 100644 --- a/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types +++ b/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types @@ -66,12 +66,12 @@ function callN(p: T) { var a: T["a"] = p.a; >a : T["a"] > : ^^^^^^ ->p.a : ((x: number) => string) | ((x: boolean) => string) -> : ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^ +>p.a : T["a"] +> : ^^^^^^ >p : A | B > : ^^^^^ ->a : ((x: number) => string) | ((x: boolean) => string) -> : ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^ +>a : T["a"] +> : ^^^^^^ a(""); // Error >a("") : string diff --git a/tests/baselines/reference/functionExpressionContextualTyping1.types b/tests/baselines/reference/functionExpressionContextualTyping1.types index 00d145d03c60b..029844276027b 100644 --- a/tests/baselines/reference/functionExpressionContextualTyping1.types +++ b/tests/baselines/reference/functionExpressionContextualTyping1.types @@ -22,8 +22,8 @@ var a0: (n: number, s: string) => number = (num, str) => { > : ^^^^^^ >s : string > : ^^^^^^ ->(num, str) => { num.toExponential(); return 0;} : (num: number, str: string) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +>(num, str) => { num.toExponential(); return 0;} : (n: number, s: string) => number +> : ^ ^^ ^^ ^^ ^^^^^ >num : number > : ^^^^^^ >str : string @@ -58,8 +58,8 @@ var a1: (c: Class) => number = (a1) => { > : ^ ^^ ^^^^^ >c : Class > : ^^^^^^^^^^^^^ ->(a1) => { a1.foo(); return 1;} : (a1: Class) => number -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>(a1) => { a1.foo(); return 1;} : (c: Class) => number +> : ^ ^^ ^^^^^ >a1 : Class > : ^^^^^^^^^^^^^ @@ -176,8 +176,8 @@ var b4: (n: E) => string = (number = 1) => { return "hello"; }; > : ^ ^^ ^^^^^ >n : E > : ^ ->(number = 1) => { return "hello"; } : (number?: E) => string -> : ^ ^^^^^^^^^^^^^^^ +>(number = 1) => { return "hello"; } : (n: E) => string +> : ^ ^^ ^^^^^ >number : E > : ^ >1 : 1 @@ -190,8 +190,8 @@ var b5: (n: {}) => string = (number = "string") => { return "hello"; }; > : ^ ^^ ^^^^^ >n : {} > : ^^ ->(number = "string") => { return "hello"; } : (number?: {}) => string -> : ^ ^^^^^^^^^^^^^^^^ +>(number = "string") => { return "hello"; } : (n: {}) => string +> : ^ ^^ ^^^^^ >number : {} > : ^^ >"string" : "string" @@ -285,8 +285,8 @@ class C { > : ^^^^^^ >k : U > : ^ ->(j, k) => { return [j, k]; } : (j: any, k: any) => any[] -> : ^ ^^^^^^^ ^^^^^^^^^^^^^^^ +>(j, k) => { return [j, k]; } : ((j: T, k: U) => (T | U)[]) | ((j: number, k: U) => number[]) +> : ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >j : any >k : any diff --git a/tests/baselines/reference/functionImplementations.types b/tests/baselines/reference/functionImplementations.types index c07a8e17303ab..1c34d5f8f1511 100644 --- a/tests/baselines/reference/functionImplementations.types +++ b/tests/baselines/reference/functionImplementations.types @@ -14,8 +14,8 @@ var v: void = function () { } (); var a: any = function f() { >a : any > : ^^^ ->function f() { return f;} : () => any -> : ^^^^^^^^^ +>function f() { return f;} : any +> : ^^^ >f : () => any > : ^^^^^^^^^ @@ -27,8 +27,8 @@ var a: any = function f() { var a: any = function f() { >a : any > : ^^^ ->function f() { return f();} : () => never -> : ^^^^^^^^^^^ +>function f() { return f();} : any +> : ^^^ >f : () => never > : ^^^^^^^^^^^ @@ -44,8 +44,8 @@ var a: any = function f() { var a: any = function f() { >a : any > : ^^^ ->function f() { var x = f; return x;} : () => any -> : ^^^^^^^^^ +>function f() { var x = f; return x;} : any +> : ^^^ >f : () => any > : ^^^^^^^^^ @@ -455,7 +455,7 @@ var f7: (x: number) => string | number = x => { // should be (x: number) => numb >x : number > : ^^^^^^ >x => { // should be (x: number) => number | string if (x < 0) { return x; } return x.toString();} : (x: number) => string | number -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ @@ -484,8 +484,8 @@ var f8: (x: number) => any = x => { // should be (x: number) => Base > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->x => { // should be (x: number) => Base return new Base(); return new Derived2();} : (x: number) => Base -> : ^ ^^^^^^^^^^^^^^^^^ +>x => { // should be (x: number) => Base return new Base(); return new Derived2();} : (x: number) => any +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ @@ -506,8 +506,8 @@ var f9: (x: number) => any = x => { // should be (x: number) => Base > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->x => { // should be (x: number) => Base return new Base(); return new Derived(); return new Derived2();} : (x: number) => Base -> : ^ ^^^^^^^^^^^^^^^^^ +>x => { // should be (x: number) => Base return new Base(); return new Derived(); return new Derived2();} : (x: number) => any +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ @@ -534,8 +534,8 @@ var f10: (x: number) => any = x => { // should be (x: number) => Derived | Deriv > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->x => { // should be (x: number) => Derived | Derived1 return new Derived(); return new Derived2();} : (x: number) => Derived | Derived2 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x => { // should be (x: number) => Derived | Derived1 return new Derived(); return new Derived2();} : (x: number) => any +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ @@ -556,8 +556,8 @@ var f11: (x: number) => any = x => { // should be (x: number) => Base | AnotherC > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->x => { // should be (x: number) => Base | AnotherClass return new Base(); return new AnotherClass();} : (x: number) => Base | AnotherClass -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x => { // should be (x: number) => Base | AnotherClass return new Base(); return new AnotherClass();} : (x: number) => any +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ @@ -578,8 +578,8 @@ var f12: (x: number) => any = x => { // should be (x: number) => Base | AnotherC > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->x => { // should be (x: number) => Base | AnotherClass return new Base(); return; // should be ignored return new AnotherClass();} : (x: number) => Base | AnotherClass -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x => { // should be (x: number) => Base | AnotherClass return new Base(); return; // should be ignored return new AnotherClass();} : (x: number) => any +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ diff --git a/tests/baselines/reference/functionLiteral.types b/tests/baselines/reference/functionLiteral.types index be48f2a854b12..bea054f5788ca 100644 --- a/tests/baselines/reference/functionLiteral.types +++ b/tests/baselines/reference/functionLiteral.types @@ -36,7 +36,7 @@ var y2: { (x: T): T; } = (x: T) => x >x : T > : ^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^ ^^ ^^ ^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/functionLiteralForOverloads.types b/tests/baselines/reference/functionLiteralForOverloads.types index 2ce30b3407fcc..9daae1798b9fd 100644 --- a/tests/baselines/reference/functionLiteralForOverloads.types +++ b/tests/baselines/reference/functionLiteralForOverloads.types @@ -16,8 +16,8 @@ var f: { > : ^^^^^^ } = (x) => x; ->(x) => x : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +>(x) => x : { (x: string): string; (x: number): number; } +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : any >x : any @@ -34,8 +34,8 @@ var f2: { > : ^^^^^^ } = (x) => x; ->(x) => x : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +>(x) => x : { (x: string): string; (x: number): number; } +> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ >x : any >x : any @@ -52,8 +52,8 @@ var f3: { > : ^ } = (x) => x; ->(x) => x : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +>(x) => x : { (x: T): string; (x: T): number; } +> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ >x : any >x : any @@ -70,8 +70,8 @@ var f4: { > : ^^^^^^ } = (x) => x; ->(x) => x : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +>(x) => x : { (x: string): T; (x: number): T; } +> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ >x : any >x : any diff --git a/tests/baselines/reference/functionLiteralForOverloads2.types b/tests/baselines/reference/functionLiteralForOverloads2.types index a78d6999c43b8..dbbef8e38361d 100644 --- a/tests/baselines/reference/functionLiteralForOverloads2.types +++ b/tests/baselines/reference/functionLiteralForOverloads2.types @@ -48,8 +48,8 @@ var f: { > : ^^^^^^ } = C; ->C : typeof C -> : ^^^^^^^^ +>C : { new (x: string): C; new (x: number): C; } +> : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ var f2: { >f2 : { new (x: string): C; new (x: number): C; } @@ -64,8 +64,8 @@ var f2: { > : ^^^^^^ } = C; ->C : typeof C -> : ^^^^^^^^ +>C : { new (x: string): C; new (x: number): C; } +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ var f3: { >f3 : { new (x: string): D; new (x: number): D; } @@ -80,6 +80,6 @@ var f3: { > : ^^^^^^ } = D; ->D : typeof D -> : ^^^^^^^^ +>D : { new (x: string): D; new (x: number): D; } +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt b/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt index 2fdf76333c55e..c84afffac110b 100644 --- a/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt +++ b/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt @@ -18,5 +18,4 @@ functionSignatureAssignmentCompat1.ts(10,21): error TS2322: Type '(delimiter?: s !!! error TS2322: Type '(delimiter?: string) => ParserFunc' is not assignable to type 'ParserFunc'. !!! error TS2322: Types of parameters 'delimiter' and 'eventEmitter' are incompatible. !!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6212 functionSignatureAssignmentCompat1.ts:10:21: Did you mean to call this expression? var e: ParserFunc = parsers.readline(); // ok \ No newline at end of file diff --git a/tests/baselines/reference/functionSignatureAssignmentCompat1.types b/tests/baselines/reference/functionSignatureAssignmentCompat1.types index aa105d377e866..95f589e5484b0 100644 --- a/tests/baselines/reference/functionSignatureAssignmentCompat1.types +++ b/tests/baselines/reference/functionSignatureAssignmentCompat1.types @@ -36,12 +36,12 @@ var c: ParserFunc = parsers.raw; // ok! var d: ParserFunc = parsers.readline; // not ok >d : ParserFunc > : ^^^^^^^^^^ ->parsers.readline : (delimiter?: string) => ParserFunc -> : ^ ^^^ ^^^^^ +>parsers.readline : ParserFunc +> : ^^^^^^^^^^ >parsers : Parsers > : ^^^^^^^ ->readline : (delimiter?: string) => ParserFunc -> : ^ ^^^ ^^^^^ +>readline : ParserFunc +> : ^^^^^^^^^^ var e: ParserFunc = parsers.readline(); // ok >e : ParserFunc diff --git a/tests/baselines/reference/functionTypeArgumentArrayAssignment.types b/tests/baselines/reference/functionTypeArgumentArrayAssignment.types index 6eca1ba35a4fc..bd1bb7409509b 100644 --- a/tests/baselines/reference/functionTypeArgumentArrayAssignment.types +++ b/tests/baselines/reference/functionTypeArgumentArrayAssignment.types @@ -22,8 +22,8 @@ module test { var ys: U[] = []; >ys : U[] > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : U[] +> : ^^^ } } diff --git a/tests/baselines/reference/functionTypeArgumentAssignmentCompat.types b/tests/baselines/reference/functionTypeArgumentAssignmentCompat.types index 960baedc5fe05..f8f310f006a3c 100644 --- a/tests/baselines/reference/functionTypeArgumentAssignmentCompat.types +++ b/tests/baselines/reference/functionTypeArgumentAssignmentCompat.types @@ -16,8 +16,8 @@ var g : { () : S[]; } = () => []; ->() => [] : () => any[] -> : ^^^^^^^^^^^ +>() => [] : () => S[] +> : ^ ^^^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.types b/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.types index 277a71ae910e6..79bc0415ae200 100644 --- a/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.types +++ b/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.types @@ -9,8 +9,8 @@ function f(): any { } var f2: () => any = () => { }; >f2 : () => any > : ^^^^^^ ->() => { } : () => void -> : ^^^^^^^^^^ +>() => { } : () => any +> : ^^^^^^ var f3 = (): any => { }; >f3 : () => any diff --git a/tests/baselines/reference/generatedContextualTyping.types b/tests/baselines/reference/generatedContextualTyping.types index bccb71ef3887d..0d8ee2440b7ae 100644 --- a/tests/baselines/reference/generatedContextualTyping.types +++ b/tests/baselines/reference/generatedContextualTyping.types @@ -55,8 +55,8 @@ var b = new Base(), d1 = new Derived1(), d2 = new Derived2(); var x1: () => Base[] = () => [d1, d2]; >x1 : () => Base[] > : ^^^^^^ ->() => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => [d1, d2] : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -67,8 +67,8 @@ var x1: () => Base[] = () => [d1, d2]; var x2: () => Base[] = function() { return [d1, d2] }; >x2 : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -79,8 +79,8 @@ var x2: () => Base[] = function() { return [d1, d2] }; var x3: () => Base[] = function named() { return [d1, d2] }; >x3 : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >named : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -93,8 +93,8 @@ var x3: () => Base[] = function named() { return [d1, d2] }; var x4: { (): Base[]; } = () => [d1, d2]; >x4 : () => Base[] > : ^^^^^^ ->() => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => [d1, d2] : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -105,8 +105,8 @@ var x4: { (): Base[]; } = () => [d1, d2]; var x5: { (): Base[]; } = function() { return [d1, d2] }; >x5 : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -117,8 +117,8 @@ var x5: { (): Base[]; } = function() { return [d1, d2] }; var x6: { (): Base[]; } = function named() { return [d1, d2] }; >x6 : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >named : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -131,8 +131,8 @@ var x6: { (): Base[]; } = function named() { return [d1, d2] }; var x7: Base[] = [d1, d2]; >x7 : Base[] > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : Base[] +> : ^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -141,8 +141,8 @@ var x7: Base[] = [d1, d2]; var x8: Array = [d1, d2]; >x8 : Base[] > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : Base[] +> : ^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -153,8 +153,8 @@ var x9: { [n: number]: Base; } = [d1, d2]; > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -165,8 +165,8 @@ var x10: {n: Base[]; } = { n: [d1, d2] }; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: [d1, d2] } : { n: Base[]; } +> : ^^^^^ ^^^ >n : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -181,8 +181,8 @@ var x11: (s: Base[]) => any = n => { var n: Base[]; return null; }; > : ^ ^^ ^^^^^ >s : Base[] > : ^^^^^^ ->n => { var n: Base[]; return null; } : (n: Base[]) => any -> : ^ ^^^^^^^^^^^^^^^^ +>n => { var n: Base[]; return null; } : (s: Base[]) => any +> : ^ ^^ ^^^^^ >n : Base[] > : ^^^^^^ >n : Base[] @@ -191,8 +191,8 @@ var x11: (s: Base[]) => any = n => { var n: Base[]; return null; }; var x12: Genric = { func: n => { return [d1, d2]; } }; >x12 : Genric > : ^^^^^^^^^^^^ ->{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ func: n => { return [d1, d2]; } } : Genric +> : ^^^^^^^^^^^^ >func : (n: Base[]) => (Derived1 | Derived2)[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] @@ -2397,8 +2397,8 @@ function x156(): Genric { return { func: n => { return [d1, d2]; } }; retu var x157: () => () => Base[] = () => { return () => [d1, d2]; }; >x157 : () => () => Base[] > : ^^^^^^ ->() => { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return () => [d1, d2]; } : () => () => Base[] +> : ^^^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2411,8 +2411,8 @@ var x157: () => () => Base[] = () => { return () => [d1, d2]; }; var x158: () => () => Base[] = () => { return function() { return [d1, d2] }; }; >x158 : () => () => Base[] > : ^^^^^^ ->() => { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return function() { return [d1, d2] }; } : () => () => Base[] +> : ^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2425,8 +2425,8 @@ var x158: () => () => Base[] = () => { return function() { return [d1, d2] }; }; var x159: () => () => Base[] = () => { return function named() { return [d1, d2] }; }; >x159 : () => () => Base[] > : ^^^^^^ ->() => { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return function named() { return [d1, d2] }; } : () => () => Base[] +> : ^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -2441,8 +2441,8 @@ var x159: () => () => Base[] = () => { return function named() { return [d1, d2] var x160: () => { (): Base[]; } = () => { return () => [d1, d2]; }; >x160 : () => { (): Base[]; } > : ^^^^^^ ->() => { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return () => [d1, d2]; } : () => { (): Base[]; } +> : ^^^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2455,8 +2455,8 @@ var x160: () => { (): Base[]; } = () => { return () => [d1, d2]; }; var x161: () => { (): Base[]; } = () => { return function() { return [d1, d2] }; }; >x161 : () => { (): Base[]; } > : ^^^^^^ ->() => { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return function() { return [d1, d2] }; } : () => { (): Base[]; } +> : ^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2469,8 +2469,8 @@ var x161: () => { (): Base[]; } = () => { return function() { return [d1, d2] }; var x162: () => { (): Base[]; } = () => { return function named() { return [d1, d2] }; }; >x162 : () => { (): Base[]; } > : ^^^^^^ ->() => { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return function named() { return [d1, d2] }; } : () => { (): Base[]; } +> : ^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -2485,8 +2485,8 @@ var x162: () => { (): Base[]; } = () => { return function named() { return [d1, var x163: () => Base[] = () => { return [d1, d2]; }; >x163 : () => Base[] > : ^^^^^^ ->() => { return [d1, d2]; } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return [d1, d2]; } : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2497,8 +2497,8 @@ var x163: () => Base[] = () => { return [d1, d2]; }; var x164: () => Array = () => { return [d1, d2]; }; >x164 : () => Array > : ^^^^^^ ->() => { return [d1, d2]; } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return [d1, d2]; } : () => Array +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2511,8 +2511,8 @@ var x165: () => { [n: number]: Base; } = () => { return [d1, d2]; }; > : ^^^^^^ >n : number > : ^^^^^^ ->() => { return [d1, d2]; } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return [d1, d2]; } : () => { [n: number]: Base; } +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2525,8 +2525,8 @@ var x166: () => {n: Base[]; } = () => { return { n: [d1, d2] }; }; > : ^^^^^^ >n : Base[] > : ^^^^^^ ->() => { return { n: [d1, d2] }; } : () => { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return { n: [d1, d2] }; } : () => { n: Base[]; } +> : ^^^^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >n : (Derived1 | Derived2)[] @@ -2543,8 +2543,8 @@ var x167: () => (s: Base[]) => any = () => { return n => { var n: Base[]; return > : ^^^^^^ >s : Base[] > : ^^^^^^ ->() => { return n => { var n: Base[]; return null; }; } : () => (n: Base[]) => any -> : ^^^^^^^ ^^^^^^^^^^^^^^^^ +>() => { return n => { var n: Base[]; return null; }; } : () => (s: Base[]) => any +> : ^^^^^^ >n => { var n: Base[]; return null; } : (n: Base[]) => any > : ^ ^^^^^^^^^^^^^^^^ >n : Base[] @@ -2555,8 +2555,8 @@ var x167: () => (s: Base[]) => any = () => { return n => { var n: Base[]; return var x168: () => Genric = () => { return { func: n => { return [d1, d2]; } }; }; >x168 : () => Genric > : ^^^^^^ ->() => { return { func: n => { return [d1, d2]; } }; } : () => { func: (n: Base[]) => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => { return { func: n => { return [d1, d2]; } }; } : () => Genric +> : ^^^^^^ >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func : (n: Base[]) => (Derived1 | Derived2)[] @@ -2575,8 +2575,8 @@ var x168: () => Genric = () => { return { func: n => { return [d1, d2]; } var x169: () => () => Base[] = function() { return () => [d1, d2]; }; >x169 : () => () => Base[] > : ^^^^^^ ->function() { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return () => [d1, d2]; } : () => () => Base[] +> : ^^^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2589,8 +2589,8 @@ var x169: () => () => Base[] = function() { return () => [d1, d2]; }; var x170: () => () => Base[] = function() { return function() { return [d1, d2] }; }; >x170 : () => () => Base[] > : ^^^^^^ ->function() { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return function() { return [d1, d2] }; } : () => () => Base[] +> : ^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2603,8 +2603,8 @@ var x170: () => () => Base[] = function() { return function() { return [d1, d2] var x171: () => () => Base[] = function() { return function named() { return [d1, d2] }; }; >x171 : () => () => Base[] > : ^^^^^^ ->function() { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return function named() { return [d1, d2] }; } : () => () => Base[] +> : ^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -2619,8 +2619,8 @@ var x171: () => () => Base[] = function() { return function named() { return [d1 var x172: () => { (): Base[]; } = function() { return () => [d1, d2]; }; >x172 : () => { (): Base[]; } > : ^^^^^^ ->function() { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return () => [d1, d2]; } : () => { (): Base[]; } +> : ^^^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2633,8 +2633,8 @@ var x172: () => { (): Base[]; } = function() { return () => [d1, d2]; }; var x173: () => { (): Base[]; } = function() { return function() { return [d1, d2] }; }; >x173 : () => { (): Base[]; } > : ^^^^^^ ->function() { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return function() { return [d1, d2] }; } : () => { (): Base[]; } +> : ^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2647,8 +2647,8 @@ var x173: () => { (): Base[]; } = function() { return function() { return [d1, d var x174: () => { (): Base[]; } = function() { return function named() { return [d1, d2] }; }; >x174 : () => { (): Base[]; } > : ^^^^^^ ->function() { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return function named() { return [d1, d2] }; } : () => { (): Base[]; } +> : ^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -2663,8 +2663,8 @@ var x174: () => { (): Base[]; } = function() { return function named() { return var x175: () => Base[] = function() { return [d1, d2]; }; >x175 : () => Base[] > : ^^^^^^ ->function() { return [d1, d2]; } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2]; } : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2675,8 +2675,8 @@ var x175: () => Base[] = function() { return [d1, d2]; }; var x176: () => Array = function() { return [d1, d2]; }; >x176 : () => Array > : ^^^^^^ ->function() { return [d1, d2]; } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2]; } : () => Array +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2689,8 +2689,8 @@ var x177: () => { [n: number]: Base; } = function() { return [d1, d2]; }; > : ^^^^^^ >n : number > : ^^^^^^ ->function() { return [d1, d2]; } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2]; } : () => { [n: number]: Base; } +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2703,8 +2703,8 @@ var x178: () => {n: Base[]; } = function() { return { n: [d1, d2] }; }; > : ^^^^^^ >n : Base[] > : ^^^^^^ ->function() { return { n: [d1, d2] }; } : () => { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return { n: [d1, d2] }; } : () => { n: Base[]; } +> : ^^^^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >n : (Derived1 | Derived2)[] @@ -2721,8 +2721,8 @@ var x179: () => (s: Base[]) => any = function() { return n => { var n: Base[]; r > : ^^^^^^ >s : Base[] > : ^^^^^^ ->function() { return n => { var n: Base[]; return null; }; } : () => (n: Base[]) => any -> : ^^^^^^^ ^^^^^^^^^^^^^^^^ +>function() { return n => { var n: Base[]; return null; }; } : () => (s: Base[]) => any +> : ^^^^^^ >n => { var n: Base[]; return null; } : (n: Base[]) => any > : ^ ^^^^^^^^^^^^^^^^ >n : Base[] @@ -2733,8 +2733,8 @@ var x179: () => (s: Base[]) => any = function() { return n => { var n: Base[]; r var x180: () => Genric = function() { return { func: n => { return [d1, d2]; } }; }; >x180 : () => Genric > : ^^^^^^ ->function() { return { func: n => { return [d1, d2]; } }; } : () => { func: (n: Base[]) => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return { func: n => { return [d1, d2]; } }; } : () => Genric +> : ^^^^^^ >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func : (n: Base[]) => (Derived1 | Derived2)[] @@ -2755,8 +2755,8 @@ module x181 { var t: () => Base[] = () => [d1, d2]; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->() => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => [d1, d2] : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2769,8 +2769,8 @@ module x182 { var t: () => Base[] = function() { return [d1, d2] }; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2783,8 +2783,8 @@ module x183 { var t: () => Base[] = function named() { return [d1, d2] }; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >named : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2799,8 +2799,8 @@ module x184 { var t: { (): Base[]; } = () => [d1, d2]; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->() => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => [d1, d2] : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2813,8 +2813,8 @@ module x185 { var t: { (): Base[]; } = function() { return [d1, d2] }; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2827,8 +2827,8 @@ module x186 { var t: { (): Base[]; } = function named() { return [d1, d2] }; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >named : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2843,8 +2843,8 @@ module x187 { var t: Base[] = [d1, d2]; } > : ^^^^^^^^^^^ >t : Base[] > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : Base[] +> : ^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -2855,8 +2855,8 @@ module x188 { var t: Array = [d1, d2]; } > : ^^^^^^^^^^^ >t : Base[] > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : Base[] +> : ^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -2869,8 +2869,8 @@ module x189 { var t: { [n: number]: Base; } = [d1, d2]; } > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -2883,8 +2883,8 @@ module x190 { var t: {n: Base[]; } = { n: [d1, d2] }; } > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: [d1, d2] } : { n: Base[]; } +> : ^^^^^ ^^^ >n : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2901,8 +2901,8 @@ module x191 { var t: (s: Base[]) => any = n => { var n: Base[]; return null; }; > : ^ ^^ ^^^^^ >s : Base[] > : ^^^^^^ ->n => { var n: Base[]; return null; } : (n: Base[]) => any -> : ^ ^^^^^^^^^^^^^^^^ +>n => { var n: Base[]; return null; } : (s: Base[]) => any +> : ^ ^^ ^^^^^ >n : Base[] > : ^^^^^^ >n : Base[] @@ -2913,8 +2913,8 @@ module x192 { var t: Genric = { func: n => { return [d1, d2]; } }; } > : ^^^^^^^^^^^ >t : Genric > : ^^^^^^^^^^^^ ->{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ func: n => { return [d1, d2]; } } : Genric +> : ^^^^^^^^^^^^ >func : (n: Base[]) => (Derived1 | Derived2)[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] @@ -2933,8 +2933,8 @@ module x193 { export var t: () => Base[] = () => [d1, d2]; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->() => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => [d1, d2] : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2947,8 +2947,8 @@ module x194 { export var t: () => Base[] = function() { return [d1, d2] }; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2961,8 +2961,8 @@ module x195 { export var t: () => Base[] = function named() { return [d1, d2] }; > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >named : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -2977,8 +2977,8 @@ module x196 { export var t: { (): Base[]; } = () => [d1, d2]; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->() => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>() => [d1, d2] : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -2991,8 +2991,8 @@ module x197 { export var t: { (): Base[]; } = function() { return [d1, d2] }; } > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -3005,8 +3005,8 @@ module x198 { export var t: { (): Base[]; } = function named() { return [d1, d2] > : ^^^^^^^^^^^ >t : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >named : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -3021,8 +3021,8 @@ module x199 { export var t: Base[] = [d1, d2]; } > : ^^^^^^^^^^^ >t : Base[] > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : Base[] +> : ^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -3033,8 +3033,8 @@ module x200 { export var t: Array = [d1, d2]; } > : ^^^^^^^^^^^ >t : Base[] > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : Base[] +> : ^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -3047,8 +3047,8 @@ module x201 { export var t: { [n: number]: Base; } = [d1, d2]; } > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->[d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 > : ^^^^^^^^ >d2 : Derived2 @@ -3061,8 +3061,8 @@ module x202 { export var t: {n: Base[]; } = { n: [d1, d2] }; } > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: [d1, d2] } : { n: Base[]; } +> : ^^^^^ ^^^ >n : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -3079,8 +3079,8 @@ module x203 { export var t: (s: Base[]) => any = n => { var n: Base[]; return nu > : ^ ^^ ^^^^^ >s : Base[] > : ^^^^^^ ->n => { var n: Base[]; return null; } : (n: Base[]) => any -> : ^ ^^^^^^^^^^^^^^^^ +>n => { var n: Base[]; return null; } : (s: Base[]) => any +> : ^ ^^ ^^^^^ >n : Base[] > : ^^^^^^ >n : Base[] @@ -3091,8 +3091,8 @@ module x204 { export var t: Genric = { func: n => { return [d1, d2]; } }; > : ^^^^^^^^^^^ >t : Genric > : ^^^^^^^^^^^^ ->{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ func: n => { return [d1, d2]; } } : Genric +> : ^^^^^^^^^^^^ >func : (n: Base[]) => (Derived1 | Derived2)[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] @@ -3613,8 +3613,8 @@ var x237: { n: () => Base[]; } = { n: () => [d1, d2] }; > : ^^^^^ ^^^ >n : () => Base[] > : ^^^^^^ ->{ n: () => [d1, d2] } : { n: () => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: () => [d1, d2] } : { n: () => Base[]; } +> : ^^^^^ ^^^ >n : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] @@ -3631,8 +3631,8 @@ var x238: { n: () => Base[]; } = { n: function() { return [d1, d2] } }; > : ^^^^^ ^^^ >n : () => Base[] > : ^^^^^^ ->{ n: function() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: function() { return [d1, d2] } } : { n: () => Base[]; } +> : ^^^^^ ^^^ >n : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -3649,8 +3649,8 @@ var x239: { n: () => Base[]; } = { n: function named() { return [d1, d2] } }; > : ^^^^^ ^^^ >n : () => Base[] > : ^^^^^^ ->{ n: function named() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: function named() { return [d1, d2] } } : { n: () => Base[]; } +> : ^^^^^ ^^^ >n : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -3669,8 +3669,8 @@ var x240: { n: { (): Base[]; }; } = { n: () => [d1, d2] }; > : ^^^^^ ^^^ >n : () => Base[] > : ^^^^^^ ->{ n: () => [d1, d2] } : { n: () => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: () => [d1, d2] } : { n: { (): Base[]; }; } +> : ^^^^^ ^^^ >n : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] @@ -3687,8 +3687,8 @@ var x241: { n: { (): Base[]; }; } = { n: function() { return [d1, d2] } }; > : ^^^^^ ^^^ >n : () => Base[] > : ^^^^^^ ->{ n: function() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: function() { return [d1, d2] } } : { n: { (): Base[]; }; } +> : ^^^^^ ^^^ >n : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -3705,8 +3705,8 @@ var x242: { n: { (): Base[]; }; } = { n: function named() { return [d1, d2] } }; > : ^^^^^ ^^^ >n : () => Base[] > : ^^^^^^ ->{ n: function named() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: function named() { return [d1, d2] } } : { n: { (): Base[]; }; } +> : ^^^^^ ^^^ >n : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -3725,8 +3725,8 @@ var x243: { n: Base[]; } = { n: [d1, d2] }; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: [d1, d2] } : { n: Base[]; } +> : ^^^^^ ^^^ >n : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -3741,8 +3741,8 @@ var x244: { n: Array; } = { n: [d1, d2] }; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: [d1, d2] } : { n: Array; } +> : ^^^^^ ^^^ >n : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -3759,8 +3759,8 @@ var x245: { n: { [n: number]: Base; }; } = { n: [d1, d2] }; > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: [d1, d2] } : { n: { [n: number]: Base; }; } +> : ^^^^^ ^^^ >n : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -3777,8 +3777,8 @@ var x246: { n: {n: Base[]; } ; } = { n: { n: [d1, d2] } }; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->{ n: { n: [d1, d2] } } : { n: { n: (Derived1 | Derived2)[]; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: { n: [d1, d2] } } : { n: { n: Base[]; }; } +> : ^^^^^ ^^^ >n : { n: (Derived1 | Derived2)[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } @@ -3799,8 +3799,8 @@ var x247: { n: (s: Base[]) => any; } = { n: n => { var n: Base[]; return null; } > : ^ ^^ ^^^^^ >s : Base[] > : ^^^^^^ ->{ n: n => { var n: Base[]; return null; } } : { n: (n: Base[]) => any; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ +>{ n: n => { var n: Base[]; return null; } } : { n: (s: Base[]) => any; } +> : ^^^^^ ^^^ >n : (n: Base[]) => any > : ^ ^^^^^^^^^^^^^^^^ >n => { var n: Base[]; return null; } : (n: Base[]) => any @@ -3815,8 +3815,8 @@ var x248: { n: Genric; } = { n: { func: n => { return [d1, d2]; } } }; > : ^^^^^ ^^^ >n : Genric > : ^^^^^^^^^^^^ ->{ n: { func: n => { return [d1, d2]; } } } : { n: { func: (n: Base[]) => (Derived1 | Derived2)[]; }; } -> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: { func: n => { return [d1, d2]; } } } : { n: Genric; } +> : ^^^^^ ^^^ >n : { func: (n: Base[]) => (Derived1 | Derived2)[]; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } @@ -3837,8 +3837,8 @@ var x248: { n: Genric; } = { n: { func: n => { return [d1, d2]; } } }; var x252: { (): Base[]; }[] = [() => [d1, d2]]; >x252 : (() => Base[])[] > : ^^^^^^^ ^^^ ->[() => [d1, d2]] : (() => (Derived1 | Derived2)[])[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[() => [d1, d2]] : (() => Base[])[] +> : ^^^^^^^ ^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -3851,8 +3851,8 @@ var x252: { (): Base[]; }[] = [() => [d1, d2]]; var x253: { (): Base[]; }[] = [function() { return [d1, d2] }]; >x253 : (() => Base[])[] > : ^^^^^^^ ^^^ ->[function() { return [d1, d2] }] : (() => (Derived1 | Derived2)[])[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[function() { return [d1, d2] }] : (() => Base[])[] +> : ^^^^^^^ ^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -3865,8 +3865,8 @@ var x253: { (): Base[]; }[] = [function() { return [d1, d2] }]; var x254: { (): Base[]; }[] = [function named() { return [d1, d2] }]; >x254 : (() => Base[])[] > : ^^^^^^^ ^^^ ->[function named() { return [d1, d2] }] : (() => (Derived1 | Derived2)[])[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[function named() { return [d1, d2] }] : (() => Base[])[] +> : ^^^^^^^ ^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -3881,8 +3881,8 @@ var x254: { (): Base[]; }[] = [function named() { return [d1, d2] }]; var x255: Base[][] = [[d1, d2]]; >x255 : Base[][] > : ^^^^^^^^ ->[[d1, d2]] : (Derived1 | Derived2)[][] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>[[d1, d2]] : Base[][] +> : ^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -3893,8 +3893,8 @@ var x255: Base[][] = [[d1, d2]]; var x256: Array[] = [[d1, d2]]; >x256 : Base[][] > : ^^^^^^^^ ->[[d1, d2]] : (Derived1 | Derived2)[][] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>[[d1, d2]] : Base[][] +> : ^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -3907,8 +3907,8 @@ var x257: { [n: number]: Base; }[] = [[d1, d2]]; > : ^^^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->[[d1, d2]] : (Derived1 | Derived2)[][] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>[[d1, d2]] : { [n: number]: Base; }[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -3921,8 +3921,8 @@ var x258: {n: Base[]; } [] = [{ n: [d1, d2] }]; > : ^^^^^ ^^^^^ >n : Base[] > : ^^^^^^ ->[{ n: [d1, d2] }] : { n: (Derived1 | Derived2)[]; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ n: [d1, d2] }] : { n: Base[]; }[] +> : ^^^^^ ^^^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >n : (Derived1 | Derived2)[] @@ -3937,8 +3937,8 @@ var x258: {n: Base[]; } [] = [{ n: [d1, d2] }]; var x260: Genric[] = [{ func: n => { return [d1, d2]; } }]; >x260 : Genric[] > : ^^^^^^^^^^^^^^ ->[{ func: n => { return [d1, d2]; } }] : { func: (n: Base[]) => (Derived1 | Derived2)[]; }[] -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ func: n => { return [d1, d2]; } }] : Genric[] +> : ^^^^^^^^^^^^^^ >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func : (n: Base[]) => (Derived1 | Derived2)[] @@ -3957,8 +3957,8 @@ var x260: Genric[] = [{ func: n => { return [d1, d2]; } }]; var x261: () => Base[] = function() { return [d1, d2] } || undefined; >x261 : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } || undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } || undefined : () => Base[] +> : ^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -3973,8 +3973,8 @@ var x261: () => Base[] = function() { return [d1, d2] } || undefined; var x262: () => Base[] = function named() { return [d1, d2] } || undefined; >x262 : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } || undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } || undefined : () => Base[] +> : ^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -3991,8 +3991,8 @@ var x262: () => Base[] = function named() { return [d1, d2] } || undefined; var x263: { (): Base[]; } = function() { return [d1, d2] } || undefined; >x263 : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } || undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } || undefined : () => Base[] +> : ^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4007,8 +4007,8 @@ var x263: { (): Base[]; } = function() { return [d1, d2] } || undefined; var x264: { (): Base[]; } = function named() { return [d1, d2] } || undefined; >x264 : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } || undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } || undefined : () => Base[] +> : ^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -4025,8 +4025,8 @@ var x264: { (): Base[]; } = function named() { return [d1, d2] } || undefined; var x265: Base[] = [d1, d2] || undefined; >x265 : Base[] > : ^^^^^^ ->[d1, d2] || undefined : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] || undefined : Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -4039,8 +4039,8 @@ var x265: Base[] = [d1, d2] || undefined; var x266: Array = [d1, d2] || undefined; >x266 : Base[] > : ^^^^^^ ->[d1, d2] || undefined : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] || undefined : Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -4055,8 +4055,8 @@ var x267: { [n: number]: Base; } = [d1, d2] || undefined; > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->[d1, d2] || undefined : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] || undefined : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -4071,8 +4071,8 @@ var x268: {n: Base[]; } = { n: [d1, d2] } || undefined; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->{ n: [d1, d2] } || undefined : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: [d1, d2] } || undefined : { n: Base[]; } +> : ^^^^^ ^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >n : (Derived1 | Derived2)[] @@ -4089,8 +4089,8 @@ var x268: {n: Base[]; } = { n: [d1, d2] } || undefined; var x269: () => Base[] = undefined || function() { return [d1, d2] }; >x269 : () => Base[] > : ^^^^^^ ->undefined || function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>undefined || function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >undefined : undefined > : ^^^^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4105,8 +4105,8 @@ var x269: () => Base[] = undefined || function() { return [d1, d2] }; var x270: () => Base[] = undefined || function named() { return [d1, d2] }; >x270 : () => Base[] > : ^^^^^^ ->undefined || function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>undefined || function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >undefined : undefined > : ^^^^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4123,8 +4123,8 @@ var x270: () => Base[] = undefined || function named() { return [d1, d2] }; var x271: { (): Base[]; } = undefined || function() { return [d1, d2] }; >x271 : () => Base[] > : ^^^^^^ ->undefined || function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>undefined || function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >undefined : undefined > : ^^^^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4139,8 +4139,8 @@ var x271: { (): Base[]; } = undefined || function() { return [d1, d2] }; var x272: { (): Base[]; } = undefined || function named() { return [d1, d2] }; >x272 : () => Base[] > : ^^^^^^ ->undefined || function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>undefined || function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >undefined : undefined > : ^^^^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4157,8 +4157,8 @@ var x272: { (): Base[]; } = undefined || function named() { return [d1, d2] }; var x273: Base[] = undefined || [d1, d2]; >x273 : Base[] > : ^^^^^^ ->undefined || [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>undefined || [d1, d2] : Base[] +> : ^^^^^^ >undefined : undefined > : ^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4171,8 +4171,8 @@ var x273: Base[] = undefined || [d1, d2]; var x274: Array = undefined || [d1, d2]; >x274 : Base[] > : ^^^^^^ ->undefined || [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>undefined || [d1, d2] : Base[] +> : ^^^^^^ >undefined : undefined > : ^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4187,8 +4187,8 @@ var x275: { [n: number]: Base; } = undefined || [d1, d2]; > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->undefined || [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>undefined || [d1, d2] : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4203,8 +4203,8 @@ var x276: {n: Base[]; } = undefined || { n: [d1, d2] }; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->undefined || { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>undefined || { n: [d1, d2] } : { n: Base[]; } +> : ^^^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } @@ -4221,8 +4221,8 @@ var x276: {n: Base[]; } = undefined || { n: [d1, d2] }; var x277: () => Base[] = function() { return [d1, d2] } || function() { return [d1, d2] }; >x277 : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } || function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } || function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4243,8 +4243,8 @@ var x277: () => Base[] = function() { return [d1, d2] } || function() { return [ var x278: () => Base[] = function named() { return [d1, d2] } || function named() { return [d1, d2] }; >x278 : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } || function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } || function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -4269,8 +4269,8 @@ var x278: () => Base[] = function named() { return [d1, d2] } || function named( var x279: { (): Base[]; } = function() { return [d1, d2] } || function() { return [d1, d2] }; >x279 : () => Base[] > : ^^^^^^ ->function() { return [d1, d2] } || function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function() { return [d1, d2] } || function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4291,8 +4291,8 @@ var x279: { (): Base[]; } = function() { return [d1, d2] } || function() { retur var x280: { (): Base[]; } = function named() { return [d1, d2] } || function named() { return [d1, d2] }; >x280 : () => Base[] > : ^^^^^^ ->function named() { return [d1, d2] } || function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function named() { return [d1, d2] } || function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >named : () => (Derived1 | Derived2)[] @@ -4317,8 +4317,8 @@ var x280: { (): Base[]; } = function named() { return [d1, d2] } || function nam var x281: Base[] = [d1, d2] || [d1, d2]; >x281 : Base[] > : ^^^^^^ ->[d1, d2] || [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] || [d1, d2] : Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -4335,8 +4335,8 @@ var x281: Base[] = [d1, d2] || [d1, d2]; var x282: Array = [d1, d2] || [d1, d2]; >x282 : Base[] > : ^^^^^^ ->[d1, d2] || [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] || [d1, d2] : Base[] +> : ^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -4355,8 +4355,8 @@ var x283: { [n: number]: Base; } = [d1, d2] || [d1, d2]; > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->[d1, d2] || [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[d1, d2] || [d1, d2] : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >[d1, d2] : (Derived1 | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >d1 : Derived1 @@ -4375,8 +4375,8 @@ var x284: {n: Base[]; } = { n: [d1, d2] } || { n: [d1, d2] }; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->{ n: [d1, d2] } || { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ n: [d1, d2] } || { n: [d1, d2] } : { n: Base[]; } +> : ^^^^^ ^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >n : (Derived1 | Derived2)[] @@ -4401,8 +4401,8 @@ var x284: {n: Base[]; } = { n: [d1, d2] } || { n: [d1, d2] }; var x285: () => Base[] = true ? () => [d1, d2] : () => [d1, d2]; >x285 : () => Base[] > : ^^^^^^ ->true ? () => [d1, d2] : () => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? () => [d1, d2] : () => [d1, d2] : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] @@ -4425,8 +4425,8 @@ var x285: () => Base[] = true ? () => [d1, d2] : () => [d1, d2]; var x286: () => Base[] = true ? function() { return [d1, d2] } : function() { return [d1, d2] }; >x286 : () => Base[] > : ^^^^^^ ->true ? function() { return [d1, d2] } : function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? function() { return [d1, d2] } : function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4449,8 +4449,8 @@ var x286: () => Base[] = true ? function() { return [d1, d2] } : function() { re var x287: () => Base[] = true ? function named() { return [d1, d2] } : function named() { return [d1, d2] }; >x287 : () => Base[] > : ^^^^^^ ->true ? function named() { return [d1, d2] } : function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? function named() { return [d1, d2] } : function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4477,8 +4477,8 @@ var x287: () => Base[] = true ? function named() { return [d1, d2] } : function var x288: { (): Base[]; } = true ? () => [d1, d2] : () => [d1, d2]; >x288 : () => Base[] > : ^^^^^^ ->true ? () => [d1, d2] : () => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? () => [d1, d2] : () => [d1, d2] : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] @@ -4501,8 +4501,8 @@ var x288: { (): Base[]; } = true ? () => [d1, d2] : () => [d1, d2]; var x289: { (): Base[]; } = true ? function() { return [d1, d2] } : function() { return [d1, d2] }; >x289 : () => Base[] > : ^^^^^^ ->true ? function() { return [d1, d2] } : function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? function() { return [d1, d2] } : function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4525,8 +4525,8 @@ var x289: { (): Base[]; } = true ? function() { return [d1, d2] } : function() { var x290: { (): Base[]; } = true ? function named() { return [d1, d2] } : function named() { return [d1, d2] }; >x290 : () => Base[] > : ^^^^^^ ->true ? function named() { return [d1, d2] } : function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? function named() { return [d1, d2] } : function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4553,8 +4553,8 @@ var x290: { (): Base[]; } = true ? function named() { return [d1, d2] } : functi var x291: Base[] = true ? [d1, d2] : [d1, d2]; >x291 : Base[] > : ^^^^^^ ->true ? [d1, d2] : [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? [d1, d2] : [d1, d2] : Base[] +> : ^^^^^^ >true : true > : ^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4573,8 +4573,8 @@ var x291: Base[] = true ? [d1, d2] : [d1, d2]; var x292: Array = true ? [d1, d2] : [d1, d2]; >x292 : Base[] > : ^^^^^^ ->true ? [d1, d2] : [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? [d1, d2] : [d1, d2] : Base[] +> : ^^^^^^ >true : true > : ^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4595,8 +4595,8 @@ var x293: { [n: number]: Base; } = true ? [d1, d2] : [d1, d2]; > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->true ? [d1, d2] : [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? [d1, d2] : [d1, d2] : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >true : true > : ^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -4617,8 +4617,8 @@ var x294: {n: Base[]; } = true ? { n: [d1, d2] } : { n: [d1, d2] }; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->true ? { n: [d1, d2] } : { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? { n: [d1, d2] } : { n: [d1, d2] } : { n: Base[]; } +> : ^^^^^ ^^^ >true : true > : ^^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } @@ -4647,8 +4647,8 @@ var x295: (s: Base[]) => any = true ? n => { var n: Base[]; return null; } : n = > : ^ ^^ ^^^^^ >s : Base[] > : ^^^^^^ ->true ? n => { var n: Base[]; return null; } : n => { var n: Base[]; return null; } : (n: Base[]) => any -> : ^ ^^^^^^^^^^^^^^^^ +>true ? n => { var n: Base[]; return null; } : n => { var n: Base[]; return null; } : (s: Base[]) => any +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >n => { var n: Base[]; return null; } : (n: Base[]) => any @@ -4667,8 +4667,8 @@ var x295: (s: Base[]) => any = true ? n => { var n: Base[]; return null; } : n = var x296: Genric = true ? { func: n => { return [d1, d2]; } } : { func: n => { return [d1, d2]; } }; >x296 : Genric > : ^^^^^^^^^^^^ ->true ? { func: n => { return [d1, d2]; } } : { func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? { func: n => { return [d1, d2]; } } : { func: n => { return [d1, d2]; } } : Genric +> : ^^^^^^^^^^^^ >true : true > : ^^^^ >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } @@ -4703,8 +4703,8 @@ var x296: Genric = true ? { func: n => { return [d1, d2]; } } : { func: n var x297: () => Base[] = true ? undefined : () => [d1, d2]; >x297 : () => Base[] > : ^^^^^^ ->true ? undefined : () => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : () => [d1, d2] : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4721,8 +4721,8 @@ var x297: () => Base[] = true ? undefined : () => [d1, d2]; var x298: () => Base[] = true ? undefined : function() { return [d1, d2] }; >x298 : () => Base[] > : ^^^^^^ ->true ? undefined : function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4739,8 +4739,8 @@ var x298: () => Base[] = true ? undefined : function() { return [d1, d2] }; var x299: () => Base[] = true ? undefined : function named() { return [d1, d2] }; >x299 : () => Base[] > : ^^^^^^ ->true ? undefined : function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4759,8 +4759,8 @@ var x299: () => Base[] = true ? undefined : function named() { return [d1, d2] } var x300: { (): Base[]; } = true ? undefined : () => [d1, d2]; >x300 : () => Base[] > : ^^^^^^ ->true ? undefined : () => [d1, d2] : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : () => [d1, d2] : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4777,8 +4777,8 @@ var x300: { (): Base[]; } = true ? undefined : () => [d1, d2]; var x301: { (): Base[]; } = true ? undefined : function() { return [d1, d2] }; >x301 : () => Base[] > : ^^^^^^ ->true ? undefined : function() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : function() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4795,8 +4795,8 @@ var x301: { (): Base[]; } = true ? undefined : function() { return [d1, d2] }; var x302: { (): Base[]; } = true ? undefined : function named() { return [d1, d2] }; >x302 : () => Base[] > : ^^^^^^ ->true ? undefined : function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : function named() { return [d1, d2] } : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4815,8 +4815,8 @@ var x302: { (): Base[]; } = true ? undefined : function named() { return [d1, d2 var x303: Base[] = true ? undefined : [d1, d2]; >x303 : Base[] > : ^^^^^^ ->true ? undefined : [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : [d1, d2] : Base[] +> : ^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4831,8 +4831,8 @@ var x303: Base[] = true ? undefined : [d1, d2]; var x304: Array = true ? undefined : [d1, d2]; >x304 : Base[] > : ^^^^^^ ->true ? undefined : [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : [d1, d2] : Base[] +> : ^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4849,8 +4849,8 @@ var x305: { [n: number]: Base; } = true ? undefined : [d1, d2]; > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->true ? undefined : [d1, d2] : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : [d1, d2] : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4867,8 +4867,8 @@ var x306: {n: Base[]; } = true ? undefined : { n: [d1, d2] }; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->true ? undefined : { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : { n: [d1, d2] } : { n: Base[]; } +> : ^^^^^ ^^^ >true : true > : ^^^^ >undefined : undefined @@ -4889,8 +4889,8 @@ var x307: (s: Base[]) => any = true ? undefined : n => { var n: Base[]; return n > : ^ ^^ ^^^^^ >s : Base[] > : ^^^^^^ ->true ? undefined : n => { var n: Base[]; return null; } : (n: Base[]) => any -> : ^ ^^^^^^^^^^^^^^^^ +>true ? undefined : n => { var n: Base[]; return null; } : (s: Base[]) => any +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4905,8 +4905,8 @@ var x307: (s: Base[]) => any = true ? undefined : n => { var n: Base[]; return n var x308: Genric = true ? undefined : { func: n => { return [d1, d2]; } }; >x308 : Genric > : ^^^^^^^^^^^^ ->true ? undefined : { func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? undefined : { func: n => { return [d1, d2]; } } : Genric +> : ^^^^^^^^^^^^ >true : true > : ^^^^ >undefined : undefined @@ -4929,8 +4929,8 @@ var x308: Genric = true ? undefined : { func: n => { return [d1, d2]; } }; var x309: () => Base[] = true ? () => [d1, d2] : undefined; >x309 : () => Base[] > : ^^^^^^ ->true ? () => [d1, d2] : undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? () => [d1, d2] : undefined : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] @@ -4947,8 +4947,8 @@ var x309: () => Base[] = true ? () => [d1, d2] : undefined; var x310: () => Base[] = true ? function() { return [d1, d2] } : undefined; >x310 : () => Base[] > : ^^^^^^ ->true ? function() { return [d1, d2] } : undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? function() { return [d1, d2] } : undefined : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4965,8 +4965,8 @@ var x310: () => Base[] = true ? function() { return [d1, d2] } : undefined; var x311: () => Base[] = true ? function named() { return [d1, d2] } : undefined; >x311 : () => Base[] > : ^^^^^^ ->true ? function named() { return [d1, d2] } : undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? function named() { return [d1, d2] } : undefined : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -4985,8 +4985,8 @@ var x311: () => Base[] = true ? function named() { return [d1, d2] } : undefined var x312: { (): Base[]; } = true ? () => [d1, d2] : undefined; >x312 : () => Base[] > : ^^^^^^ ->true ? () => [d1, d2] : undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? () => [d1, d2] : undefined : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >() => [d1, d2] : () => (Derived1 | Derived2)[] @@ -5003,8 +5003,8 @@ var x312: { (): Base[]; } = true ? () => [d1, d2] : undefined; var x313: { (): Base[]; } = true ? function() { return [d1, d2] } : undefined; >x313 : () => Base[] > : ^^^^^^ ->true ? function() { return [d1, d2] } : undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? function() { return [d1, d2] } : undefined : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -5021,8 +5021,8 @@ var x313: { (): Base[]; } = true ? function() { return [d1, d2] } : undefined; var x314: { (): Base[]; } = true ? function named() { return [d1, d2] } : undefined; >x314 : () => Base[] > : ^^^^^^ ->true ? function named() { return [d1, d2] } : undefined : () => (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? function named() { return [d1, d2] } : undefined : () => Base[] +> : ^^^^^^ >true : true > : ^^^^ >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] @@ -5041,8 +5041,8 @@ var x314: { (): Base[]; } = true ? function named() { return [d1, d2] } : undefi var x315: Base[] = true ? [d1, d2] : undefined; >x315 : Base[] > : ^^^^^^ ->true ? [d1, d2] : undefined : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? [d1, d2] : undefined : Base[] +> : ^^^^^^ >true : true > : ^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -5057,8 +5057,8 @@ var x315: Base[] = true ? [d1, d2] : undefined; var x316: Array = true ? [d1, d2] : undefined; >x316 : Base[] > : ^^^^^^ ->true ? [d1, d2] : undefined : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? [d1, d2] : undefined : Base[] +> : ^^^^^^ >true : true > : ^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -5075,8 +5075,8 @@ var x317: { [n: number]: Base; } = true ? [d1, d2] : undefined; > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->true ? [d1, d2] : undefined : (Derived1 | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>true ? [d1, d2] : undefined : { [n: number]: Base; } +> : ^^^^^^^^^^^^^^^^^^^^^^ >true : true > : ^^^^ >[d1, d2] : (Derived1 | Derived2)[] @@ -5093,8 +5093,8 @@ var x318: {n: Base[]; } = true ? { n: [d1, d2] } : undefined; > : ^^^^^ ^^^ >n : Base[] > : ^^^^^^ ->true ? { n: [d1, d2] } : undefined : { n: (Derived1 | Derived2)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? { n: [d1, d2] } : undefined : { n: Base[]; } +> : ^^^^^ ^^^ >true : true > : ^^^^ >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } @@ -5115,8 +5115,8 @@ var x319: (s: Base[]) => any = true ? n => { var n: Base[]; return null; } : und > : ^ ^^ ^^^^^ >s : Base[] > : ^^^^^^ ->true ? n => { var n: Base[]; return null; } : undefined : (n: Base[]) => any -> : ^ ^^^^^^^^^^^^^^^^ +>true ? n => { var n: Base[]; return null; } : undefined : (s: Base[]) => any +> : ^ ^^ ^^^^^ >true : true > : ^^^^ >n => { var n: Base[]; return null; } : (n: Base[]) => any @@ -5131,8 +5131,8 @@ var x319: (s: Base[]) => any = true ? n => { var n: Base[]; return null; } : und var x320: Genric = true ? { func: n => { return [d1, d2]; } } : undefined; >x320 : Genric > : ^^^^^^^^^^^^ ->true ? { func: n => { return [d1, d2]; } } : undefined : { func: (n: Base[]) => (Derived1 | Derived2)[]; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>true ? { func: n => { return [d1, d2]; } } : undefined : Genric +> : ^^^^^^^^^^^^ >true : true > : ^^^^ >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } diff --git a/tests/baselines/reference/generatorReturnTypeInference.types b/tests/baselines/reference/generatorReturnTypeInference.types index 6f13c13bc8435..cec66d8930200 100644 --- a/tests/baselines/reference/generatorReturnTypeInference.types +++ b/tests/baselines/reference/generatorReturnTypeInference.types @@ -150,8 +150,8 @@ function* g201() { // Generator let a: string = yield 1; >a : string > : ^^^^^^ ->yield 1 : any -> : ^^^ +>yield 1 : string +> : ^^^^^^ >1 : 1 > : ^ } @@ -163,16 +163,16 @@ function* g202() { // Generator<1 | 2, void, never> let a: string = yield 1; >a : string > : ^^^^^^ ->yield 1 : any -> : ^^^ +>yield 1 : string +> : ^^^^^^ >1 : 1 > : ^ let b: number = yield 2; >b : number > : ^^^^^^ ->yield 2 : any -> : ^^^ +>yield 2 : number +> : ^^^^^^ >2 : 2 > : ^ } diff --git a/tests/baselines/reference/generatorReturnTypeInferenceNonStrict.types b/tests/baselines/reference/generatorReturnTypeInferenceNonStrict.types index cd4c2569fbe6b..f36b37ff9d8ec 100644 --- a/tests/baselines/reference/generatorReturnTypeInferenceNonStrict.types +++ b/tests/baselines/reference/generatorReturnTypeInferenceNonStrict.types @@ -152,8 +152,8 @@ function* g201() { // Generator let a: string = yield 1; >a : string > : ^^^^^^ ->yield 1 : any -> : ^^^ +>yield 1 : string +> : ^^^^^^ >1 : 1 > : ^ } @@ -165,16 +165,16 @@ function* g202() { // Generator<1 | 2, void, never> let a: string = yield 1; >a : string > : ^^^^^^ ->yield 1 : any -> : ^^^ +>yield 1 : string +> : ^^^^^^ >1 : 1 > : ^ let b: number = yield 2; >b : number > : ^^^^^^ ->yield 2 : any -> : ^^^ +>yield 2 : number +> : ^^^^^^ >2 : 2 > : ^ } diff --git a/tests/baselines/reference/generatorTypeCheck25.errors.txt b/tests/baselines/reference/generatorTypeCheck25.errors.txt index 5a0fdf0fc791a..803ed89d7f535 100644 --- a/tests/baselines/reference/generatorTypeCheck25.errors.txt +++ b/tests/baselines/reference/generatorTypeCheck25.errors.txt @@ -1,4 +1,4 @@ -generatorTypeCheck25.ts(4,5): error TS2322: Type '() => Generator' is not assignable to type '() => Iterable'. +generatorTypeCheck25.ts(4,31): error TS2322: Type '() => Generator' is not assignable to type '() => Iterable'. Call signature return types 'Generator' and 'Iterable' are incompatible. The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. Type 'IteratorResult' is not assignable to type 'IteratorResult'. @@ -13,7 +13,7 @@ generatorTypeCheck25.ts(4,5): error TS2322: Type '() => Generator Iterable = function* () { - ~~ + ~~~~~~~~ !!! error TS2322: Type '() => Generator' is not assignable to type '() => Iterable'. !!! error TS2322: Call signature return types 'Generator' and 'Iterable' are incompatible. !!! error TS2322: The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. diff --git a/tests/baselines/reference/generatorTypeCheck25.types b/tests/baselines/reference/generatorTypeCheck25.types index 65a5e73672b80..d0cc577ddb008 100644 --- a/tests/baselines/reference/generatorTypeCheck25.types +++ b/tests/baselines/reference/generatorTypeCheck25.types @@ -24,8 +24,8 @@ class Baz { z: number } var g3: () => Iterable = function* () { >g3 : () => Iterable > : ^^^^^^ ->function* () { yield; yield new Bar; yield new Baz; yield *[new Bar]; yield *[new Baz];} : () => Generator -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>function* () { yield; yield new Bar; yield new Baz; yield *[new Bar]; yield *[new Baz];} : () => Iterable +> : ^^^^^^ yield; >yield : any diff --git a/tests/baselines/reference/generatorTypeCheck32.types b/tests/baselines/reference/generatorTypeCheck32.types index 1807ecea50c9f..1a17c3ef3dfba 100644 --- a/tests/baselines/reference/generatorTypeCheck32.types +++ b/tests/baselines/reference/generatorTypeCheck32.types @@ -8,8 +8,8 @@ var s: string; var f: () => number = () => yield s; >f : () => number > : ^^^^^^ ->() => yield s : () => any -> : ^^^^^^^^^ +>() => yield s : () => number +> : ^^^^^^ >yield s : any > : ^^^ >s : string diff --git a/tests/baselines/reference/generic.errors.txt b/tests/baselines/reference/generic.errors.txt index 0b1c394dec78d..f1a8c26581578 100644 --- a/tests/baselines/reference/generic.errors.txt +++ b/tests/baselines/reference/generic.errors.txt @@ -1,4 +1,4 @@ -/b.ts(5,5): error TS2741: Property 'a' is missing in type '{}' but required in type 'A'. +/b.ts(5,21): error TS2741: Property 'a' is missing in type '{}' but required in type 'A'. /b.ts(6,8): error TS2314: Generic type 'A' requires 1 type argument(s). @@ -12,7 +12,7 @@ let a: A = { a: "" }; let b: B = { a: 3 }; let c: A = {}; - ~ + ~~ !!! error TS2741: Property 'a' is missing in type '{}' but required in type 'A'. !!! related TS2728 /a.ts:1:21: 'a' is declared here. let d: B = { a: "" }; diff --git a/tests/baselines/reference/generic.types b/tests/baselines/reference/generic.types index 150a4492e6e31..e1849b89e01f7 100644 --- a/tests/baselines/reference/generic.types +++ b/tests/baselines/reference/generic.types @@ -25,8 +25,8 @@ import { B } from './a'; let a: A = { a: "" }; >a : A > : ^^^^^^^^^ ->{ a: "" } : { a: string; } -> : ^^^^^^^^^^^^^^ +>{ a: "" } : A +> : ^^^^^^^^^ >a : string > : ^^^^^^ >"" : "" @@ -35,8 +35,8 @@ let a: A = { a: "" }; let b: B = { a: 3 }; >b : A > : ^^^^^^^^^ ->{ a: 3 } : { a: number; } -> : ^^^^^^^^^^^^^^ +>{ a: 3 } : A +> : ^^^^^^^^^ >a : number > : ^^^^^^ >3 : 3 @@ -45,14 +45,14 @@ let b: B = { a: 3 }; let c: A = {}; >c : A > : ^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : A +> : ^^^^^^^^^^ let d: B = { a: "" }; >d : any > : ^^^ ->{ a: "" } : { a: string; } -> : ^^^^^^^^^^^^^^ +>{ a: "" } : any +> : ^^^ >a : string > : ^^^^^^ >"" : "" diff --git a/tests/baselines/reference/genericArray0.types b/tests/baselines/reference/genericArray0.types index 0589420cc24d6..cf7bab373a6ba 100644 --- a/tests/baselines/reference/genericArray0.types +++ b/tests/baselines/reference/genericArray0.types @@ -20,7 +20,7 @@ function map() { var ys: U[] = []; >ys : U[] > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : U[] +> : ^^^ } diff --git a/tests/baselines/reference/genericArrayMethods1.errors.txt b/tests/baselines/reference/genericArrayMethods1.errors.txt index 34abffcedebf9..97015389a7d8f 100644 --- a/tests/baselines/reference/genericArrayMethods1.errors.txt +++ b/tests/baselines/reference/genericArrayMethods1.errors.txt @@ -1,10 +1,10 @@ -genericArrayMethods1.ts(1,5): error TS2322: Type 'number[]' is not assignable to type 'string[]'. +genericArrayMethods1.ts(1,19): error TS2322: Type 'number[]' is not assignable to type 'string[]'. Type 'number' is not assignable to type 'string'. ==== genericArrayMethods1.ts (1 errors) ==== var x:string[] = [0,1].slice(0); // this should be an error - ~ + ~~~~~~~~~~~~~~ !!! error TS2322: Type 'number[]' is not assignable to type 'string[]'. !!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt index 4a64dd5471f49..1359176efff38 100644 --- a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt +++ b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt @@ -1,19 +1,19 @@ -genericAssignmentCompatWithInterfaces1.ts(12,23): error TS2322: Type 'A' is not assignable to type 'Comparable'. - Types of property 'compareTo' are incompatible. +genericAssignmentCompatWithInterfaces1.ts(12,21): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. + The types of 'x.compareTo' are incompatible between these types. Type '(other: number) => number' is not assignable to type '(other: string) => number'. Types of parameters 'other' and 'other' are incompatible. Type 'string' is not assignable to type 'number'. -genericAssignmentCompatWithInterfaces1.ts(13,5): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. +genericAssignmentCompatWithInterfaces1.ts(13,21): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. The types of 'x.compareTo' are incompatible between these types. Type '(other: number) => number' is not assignable to type '(other: string) => number'. Types of parameters 'other' and 'other' are incompatible. Type 'string' is not assignable to type 'number'. -genericAssignmentCompatWithInterfaces1.ts(16,5): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. +genericAssignmentCompatWithInterfaces1.ts(16,21): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. The types of 'x.compareTo' are incompatible between these types. Type '(other: number) => number' is not assignable to type '(other: string) => number'. Types of parameters 'other' and 'other' are incompatible. Type 'string' is not assignable to type 'number'. -genericAssignmentCompatWithInterfaces1.ts(17,5): error TS2322: Type 'K' is not assignable to type 'I'. +genericAssignmentCompatWithInterfaces1.ts(17,21): error TS2322: Type 'K' is not assignable to type 'I'. The types of 'x.compareTo' are incompatible between these types. Type '(other: number) => number' is not assignable to type '(other: string) => number'. Types of parameters 'other' and 'other' are incompatible. @@ -33,31 +33,32 @@ genericAssignmentCompatWithInterfaces1.ts(17,5): error TS2322: Type 'K' class A implements Comparable { compareTo(other: T) { return 1; } } var z = { x: new A() }; var a1: I = { x: new A() }; - ~ -!!! error TS2322: Type 'A' is not assignable to type 'Comparable'. -!!! error TS2322: Types of property 'compareTo' are incompatible. + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ x: A; }' is not assignable to type 'I'. +!!! error TS2322: The types of 'x.compareTo' are incompatible between these types. !!! error TS2322: Type '(other: number) => number' is not assignable to type '(other: string) => number'. !!! error TS2322: Types of parameters 'other' and 'other' are incompatible. !!! error TS2322: Type 'string' is not assignable to type 'number'. -!!! related TS6500 genericAssignmentCompatWithInterfaces1.ts:5:5: The expected type comes from property 'x' which is declared here on type 'I' var a2: I = function (): { x: A } { - ~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + var z = { x: new A() }; return z; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + } (); + ~~~~ !!! error TS2322: Type '{ x: A; }' is not assignable to type 'I'. !!! error TS2322: The types of 'x.compareTo' are incompatible between these types. !!! error TS2322: Type '(other: number) => number' is not assignable to type '(other: string) => number'. !!! error TS2322: Types of parameters 'other' and 'other' are incompatible. !!! error TS2322: Type 'string' is not assignable to type 'number'. - var z = { x: new A() }; return z; - } (); var a3: I = z; - ~~ + ~ !!! error TS2322: Type '{ x: A; }' is not assignable to type 'I'. !!! error TS2322: The types of 'x.compareTo' are incompatible between these types. !!! error TS2322: Type '(other: number) => number' is not assignable to type '(other: string) => number'. !!! error TS2322: Types of parameters 'other' and 'other' are incompatible. !!! error TS2322: Type 'string' is not assignable to type 'number'. var a4: I = >z; - ~~ + ~~~~~~~~~~~~ !!! error TS2322: Type 'K' is not assignable to type 'I'. !!! error TS2322: The types of 'x.compareTo' are incompatible between these types. !!! error TS2322: Type '(other: number) => number' is not assignable to type '(other: string) => number'. diff --git a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.types b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.types index 60bb259e2ad47..afd0ea5199a13 100644 --- a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.types +++ b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.types @@ -43,8 +43,8 @@ var z = { x: new A() }; var a1: I = { x: new A() }; >a1 : I > : ^^^^^^^^^ ->{ x: new A() } : { x: A; } -> : ^^^^^^^^^^^^^^^^^ +>{ x: new A() } : I +> : ^^^^^^^^^ >x : A > : ^^^^^^^^^ >new A() : A @@ -80,8 +80,8 @@ var a2: I = function (): { x: A } { var a3: I = z; >a3 : I > : ^^^^^^^^^ ->z : { x: A; } -> : ^^^^^^^^^^^^^^^^^ +>z : I +> : ^^^^^^^^^ var a4: I = >z; >a4 : I diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types index 09fe11a54013c..7583e57fce62f 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types @@ -36,8 +36,8 @@ module onlyT { > : ^ ^^ ^^^^^ >x : {} > : ^^ ->foo((x: number) => 1, (x: string) => '') : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +>foo((x: number) => 1, (x: string) => '') : (x: {}) => {} +> : ^ ^^ ^^^^^ >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T > : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: number) => 1 : (x: number) => number @@ -277,8 +277,8 @@ module TU { > : ^ ^^ ^^^^^ >x : {} > : ^^ ->foo((x: number) => 1, (x: string) => '') : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +>foo((x: number) => 1, (x: string) => '') : (x: {}) => {} +> : ^ ^^ ^^^^^ >foo : (a: (x: T) => T, b: (x: U) => U) => (x: T) => T > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: number) => 1 : (x: number) => number diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types index 5eaff4cec350f..4cd4e3b944c74 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types @@ -96,7 +96,7 @@ function other3(arg: T) { var u: U = r2[1]; // ok >u : U > : ^ ->r2[1] : T +>r2[1] : U > : ^ >r2 : { [x: string]: Object; [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types index 3418df6fc0578..4ee2b95f7fe59 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types @@ -78,8 +78,8 @@ function other2(arg: T) { var d: Date = r2['hm']; // ok >d : Date > : ^^^^ ->r2['hm'] : T -> : ^ +>r2['hm'] : Date +> : ^^^^ >r2 : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >'hm' : "hm" @@ -111,8 +111,8 @@ function other3(arg: T) { var d: Date = r2['hm']; // ok >d : Date > : ^^^^ ->r2['hm'] : T -> : ^ +>r2['hm'] : Date +> : ^^^^ >r2 : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >'hm' : "hm" diff --git a/tests/baselines/reference/genericCloneReturnTypes2.errors.txt b/tests/baselines/reference/genericCloneReturnTypes2.errors.txt index 822bb262f00b9..e5055c6266035 100644 --- a/tests/baselines/reference/genericCloneReturnTypes2.errors.txt +++ b/tests/baselines/reference/genericCloneReturnTypes2.errors.txt @@ -1,4 +1,4 @@ -genericCloneReturnTypes2.ts(15,5): error TS2322: Type 'MyList' is not assignable to type 'MyList'. +genericCloneReturnTypes2.ts(15,25): error TS2322: Type 'MyList' is not assignable to type 'MyList'. Type 'string' is not assignable to type 'number'. @@ -18,6 +18,6 @@ genericCloneReturnTypes2.ts(15,5): error TS2322: Type 'MyList' is not as var b: MyList = a.clone(); // ok var c: MyList = a.clone(); // bug was there was an error on this line var d: MyList = a.clone(); // error - ~ + ~~~~~~~~~ !!! error TS2322: Type 'MyList' is not assignable to type 'MyList'. !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/genericConstructInvocationWithNoTypeArg.types b/tests/baselines/reference/genericConstructInvocationWithNoTypeArg.types index bf0220cd08303..f1cf3ac3e3ed0 100644 --- a/tests/baselines/reference/genericConstructInvocationWithNoTypeArg.types +++ b/tests/baselines/reference/genericConstructInvocationWithNoTypeArg.types @@ -9,8 +9,8 @@ interface Foo { var f2: Foo = new Foo(3); >f2 : Foo > : ^^^^^^^^^^^ ->new Foo(3) : any -> : ^^^ +>new Foo(3) : Foo +> : ^^^^^^^^^^^ >Foo : any > : ^^^ >3 : 3 diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index 7275fd51f97be..3071a48ff32b5 100644 --- a/tests/baselines/reference/genericFunctionInference1.types +++ b/tests/baselines/reference/genericFunctionInference1.types @@ -1097,8 +1097,8 @@ export interface Data { var data: Data[] = []; >data : Data[] > : ^^^^^^ ->[] : never[] -> : ^^^^^^^ +>[] : Data[] +> : ^^^^^^ declare function toKeys(values: a[], toKey: (value: a) => string): string[]; >toKeys : (values: a[], toKey: (value: a) => string) => string[] @@ -1176,8 +1176,8 @@ var expected: (y: U, x: T) => [T, U] = flip(zip); > : ^ >x : T > : ^ ->flip(zip) : (b: U, a: T) => [T, U] -> : ^ ^^^^^ ^^^^^^^^^^^^^^ +>flip(zip) : (y: U, x: T) => [T, U] +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >flip : (f: (a: a, b: b) => c) => (b: b, a: a) => c > : ^ ^^ ^^ ^^ ^^ ^^^^^ >zip : (x: T, y: U) => [T, U] diff --git a/tests/baselines/reference/genericGetter.errors.txt b/tests/baselines/reference/genericGetter.errors.txt index ae393ce9afcbd..baa9114fbc283 100644 --- a/tests/baselines/reference/genericGetter.errors.txt +++ b/tests/baselines/reference/genericGetter.errors.txt @@ -1,4 +1,4 @@ -genericGetter.ts(9,5): error TS2322: Type 'number' is not assignable to type 'string'. +genericGetter.ts(9,17): error TS2322: Type 'number' is not assignable to type 'string'. ==== genericGetter.ts (1 errors) ==== @@ -11,5 +11,5 @@ genericGetter.ts(9,5): error TS2322: Type 'number' is not assignable to type 'st var c = new C(); var r: string = c.x; - ~ + ~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/genericGetter.types b/tests/baselines/reference/genericGetter.types index 0365dce4ade7e..f1c2eb6f18a34 100644 --- a/tests/baselines/reference/genericGetter.types +++ b/tests/baselines/reference/genericGetter.types @@ -34,10 +34,10 @@ var c = new C(); var r: string = c.x; >r : string > : ^^^^^^ ->c.x : number +>c.x : string > : ^^^^^^ >c : C > : ^^^^^^^^^ ->x : number +>x : string > : ^^^^^^ diff --git a/tests/baselines/reference/genericGetter3.errors.txt b/tests/baselines/reference/genericGetter3.errors.txt index 0d2fb71945d37..3389311fa8ccc 100644 --- a/tests/baselines/reference/genericGetter3.errors.txt +++ b/tests/baselines/reference/genericGetter3.errors.txt @@ -1,4 +1,4 @@ -genericGetter3.ts(11,5): error TS2322: Type 'A' is not assignable to type 'string'. +genericGetter3.ts(11,17): error TS2322: Type 'A' is not assignable to type 'string'. ==== genericGetter3.ts (1 errors) ==== @@ -13,5 +13,5 @@ genericGetter3.ts(11,5): error TS2322: Type 'A' is not assignable to typ var c = new C(); var r: string = c.x; - ~ + ~~~ !!! error TS2322: Type 'A' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/genericGetter3.types b/tests/baselines/reference/genericGetter3.types index 17b1781e4aed7..8c15b0140e08b 100644 --- a/tests/baselines/reference/genericGetter3.types +++ b/tests/baselines/reference/genericGetter3.types @@ -38,10 +38,10 @@ var c = new C(); var r: string = c.x; >r : string > : ^^^^^^ ->c.x : A -> : ^^^^^^^^^ +>c.x : string +> : ^^^^^^ >c : C > : ^^^^^^^^^ ->x : A -> : ^^^^^^^^^ +>x : string +> : ^^^^^^ diff --git a/tests/baselines/reference/genericInheritedDefaultConstructors.types b/tests/baselines/reference/genericInheritedDefaultConstructors.types index 776f47a68344c..f09b16c564369 100644 --- a/tests/baselines/reference/genericInheritedDefaultConstructors.types +++ b/tests/baselines/reference/genericInheritedDefaultConstructors.types @@ -29,6 +29,6 @@ class B extends A { b: V; } var c:Constructor> = B; // shouldn't error here >c : Constructor> > : ^^^^^^^^^^^^^^^^^^^^^^^ ->B : typeof B -> : ^^^^^^^^ +>B : Constructor> +> : ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericIsNeverEmptyObject.types b/tests/baselines/reference/genericIsNeverEmptyObject.types index 4b65449c6080b..ea2c503b84ef7 100644 --- a/tests/baselines/reference/genericIsNeverEmptyObject.types +++ b/tests/baselines/reference/genericIsNeverEmptyObject.types @@ -51,8 +51,8 @@ let o2: { b: string, x: number } = test(o1); > : ^^^^^^ >x : number > : ^^^^^^ ->test(o1) : Omit<{ a: string; x: number; }, "a"> & { b: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>test(o1) : { b: string; x: number; } +> : ^^^^^ ^^^^^ ^^^ >test : (obj: T) => Omit & { b: string; } > : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o1 : { a: string; x: number; } diff --git a/tests/baselines/reference/genericRestParameters3.types b/tests/baselines/reference/genericRestParameters3.types index 71754befe9618..25025a2aa4304 100644 --- a/tests/baselines/reference/genericRestParameters3.types +++ b/tests/baselines/reference/genericRestParameters3.types @@ -345,8 +345,8 @@ declare function foo2(...args: string[] | number[]): void; let x2: ReadonlyArray = ["hello"]; >x2 : readonly string[] > : ^^^^^^^^^^^^^^^^^ ->["hello"] : string[] -> : ^^^^^^^^ +>["hello"] : readonly string[] +> : ^^^^^^^^^^^^^^^^^ >"hello" : "hello" > : ^^^^^^^ diff --git a/tests/baselines/reference/genericTupleWithSimplifiableElements.types b/tests/baselines/reference/genericTupleWithSimplifiableElements.types index 9096358dde9b3..d305d397470fb 100644 --- a/tests/baselines/reference/genericTupleWithSimplifiableElements.types +++ b/tests/baselines/reference/genericTupleWithSimplifiableElements.types @@ -10,8 +10,8 @@ type SS1 = string; let y: [t: "AAA", ...args: { [S in SS1]: [a: number]; }[SS1]] = ["AAA", 1]; >y : [t: "AAA", a: number] > : ^^^^^^^^^^^^^^^^^^^^^ ->["AAA", 1] : ["AAA", number] -> : ^^^^^^^^^^^^^^^ +>["AAA", 1] : [t: "AAA", a: number] +> : ^^^^^^^^^^^^^^^^^^^^^ >"AAA" : "AAA" > : ^^^^^ >1 : 1 @@ -24,8 +24,8 @@ type SS2 = "1" | "2" | "3"; let z: [t: "AAA", ...args: { [S in SS2]: [a: number]; }[SS2]] = ["AAA", 1]; >z : [t: "AAA", a: number] > : ^^^^^^^^^^^^^^^^^^^^^ ->["AAA", 1] : ["AAA", number] -> : ^^^^^^^^^^^^^^^ +>["AAA", 1] : [t: "AAA", a: number] +> : ^^^^^^^^^^^^^^^^^^^^^ >"AAA" : "AAA" > : ^^^^^ >1 : 1 @@ -42,16 +42,16 @@ class I{ let w: [...args: { [S in SS]: [a: number]; }[SS]] = [1]; >w : [...args: { [S in SS]: [a: number]; }[SS]] > : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->[1] : [1] -> : ^^^ +>[1] : [...args: { [S in SS]: [a: number]; }[SS]] +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ let x: [t: "AAA", ...args: { [S in SS]: [a: number]; }[SS]] = ["AAA", 1]; >x : [t: "AAA", ...args: { [S in SS]: [a: number]; }[SS]] > : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->["AAA", 1] : ["AAA", 1] -> : ^^^^^^^^^^ +>["AAA", 1] : [t: "AAA", ...args: { [S in SS]: [a: number]; }[SS]] +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"AAA" : "AAA" > : ^^^^^ >1 : 1 diff --git a/tests/baselines/reference/genericTypeAliases.types b/tests/baselines/reference/genericTypeAliases.types index 90aceb16c38ab..524090ee52b20 100644 --- a/tests/baselines/reference/genericTypeAliases.types +++ b/tests/baselines/reference/genericTypeAliases.types @@ -12,8 +12,8 @@ type Tree = T | { left: Tree, right: Tree }; var tree: Tree = { >tree : Tree > : ^^^^^^^^^^^^ ->{ left: { left: 0, right: { left: 1, right: 2 }, }, right: 3} : { left: { left: number; right: { left: number; right: number; }; }; right: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ left: { left: 0, right: { left: 1, right: 2 }, }, right: 3} : Tree +> : ^^^^^^^^^^^^ left: { >left : { left: number; right: { left: number; right: number; }; } diff --git a/tests/baselines/reference/genericTypeAssertions1.errors.txt b/tests/baselines/reference/genericTypeAssertions1.errors.txt index 97b9087f101b7..272e0e0d7e309 100644 --- a/tests/baselines/reference/genericTypeAssertions1.errors.txt +++ b/tests/baselines/reference/genericTypeAssertions1.errors.txt @@ -1,6 +1,6 @@ -genericTypeAssertions1.ts(3,5): error TS2322: Type 'A' is not assignable to type 'A'. +genericTypeAssertions1.ts(3,20): error TS2322: Type 'A' is not assignable to type 'A'. Type 'number' is not assignable to type 'string'. -genericTypeAssertions1.ts(4,5): error TS2322: Type 'A>' is not assignable to type 'A'. +genericTypeAssertions1.ts(4,21): error TS2322: Type 'A>' is not assignable to type 'A'. Type 'A' is not assignable to type 'number'. genericTypeAssertions1.ts(4,21): error TS2352: Conversion of type 'A' to type 'A>' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type 'number' is not comparable to type 'A'. @@ -10,11 +10,11 @@ genericTypeAssertions1.ts(4,21): error TS2352: Conversion of type 'A' to class A { foo(x: T) { }} var foo = new A(); var r: A = >new A(); // error - ~ + ~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'A' is not assignable to type 'A'. !!! error TS2322: Type 'number' is not assignable to type 'string'. var r2: A = >>foo; // error - ~~ + ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'A>' is not assignable to type 'A'. !!! error TS2322: Type 'A' is not assignable to type 'number'. ~~~~~~~~~~~~~~~~~ diff --git a/tests/baselines/reference/genericTypeAssertions2.errors.txt b/tests/baselines/reference/genericTypeAssertions2.errors.txt index 8b6b4da09ea2a..a810b82eb5f30 100644 --- a/tests/baselines/reference/genericTypeAssertions2.errors.txt +++ b/tests/baselines/reference/genericTypeAssertions2.errors.txt @@ -1,9 +1,9 @@ -genericTypeAssertions2.ts(10,5): error TS2322: Type 'B' is not assignable to type 'A'. +genericTypeAssertions2.ts(10,21): error TS2322: Type 'B' is not assignable to type 'A'. Types of property 'foo' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. Types of parameters 'x' and 'x' are incompatible. Type 'number' is not assignable to type 'string'. -genericTypeAssertions2.ts(11,5): error TS2741: Property 'bar' is missing in type 'A' but required in type 'B'. +genericTypeAssertions2.ts(11,21): error TS2741: Property 'bar' is missing in type 'A' but required in type 'B'. genericTypeAssertions2.ts(13,21): error TS2352: Conversion of type 'undefined[]' to type 'A' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Property 'foo' is missing in type 'undefined[]' but required in type 'A'. @@ -19,14 +19,14 @@ genericTypeAssertions2.ts(13,21): error TS2352: Conversion of type 'undefined[]' var foo = new A(); var r: A = >new B(); var r2: A = >new B(); // error - ~~ + ~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'B' is not assignable to type 'A'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. !!! error TS2322: Types of parameters 'x' and 'x' are incompatible. !!! error TS2322: Type 'number' is not assignable to type 'string'. var r3: B = >new B(); // error - ~~ + ~~~~~~~~~~~~~~~~~~ !!! error TS2741: Property 'bar' is missing in type 'A' but required in type 'B'. !!! related TS2728 genericTypeAssertions2.ts:3:5: 'bar' is declared here. var r4: A = >new A(); diff --git a/tests/baselines/reference/genericTypeAssertions6.types b/tests/baselines/reference/genericTypeAssertions6.types index 9848d46348581..8421b7a1d8694 100644 --- a/tests/baselines/reference/genericTypeAssertions6.types +++ b/tests/baselines/reference/genericTypeAssertions6.types @@ -71,8 +71,8 @@ class B extends A { var a: Date = x; >a : Date > : ^^^^ ->x : T -> : ^ +>x : Date +> : ^^^^ var b = x; >b : Date diff --git a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt index 408178798fc43..1647b924b28d5 100644 --- a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt +++ b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt @@ -3,7 +3,7 @@ genericTypeWithNonGenericBaseMisMatch.ts(5,2): error TS2416: Property 'f' in typ Types of parameters 'a' and 'a' are incompatible. Type '{ a: number; }' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to '{ a: number; }'. -genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322: Type 'X<{ a: string; }>' is not assignable to type 'I'. +genericTypeWithNonGenericBaseMisMatch.ts(8,12): error TS2322: Type 'X<{ a: string; }>' is not assignable to type 'I'. Types of property 'f' are incompatible. Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void'. Types of parameters 'a' and 'a' are incompatible. @@ -27,7 +27,7 @@ genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322: Type 'X<{ a: string } var x = new X<{ a: string }>(); var i: I = x; // Should not be allowed -- type of 'f' is incompatible with 'I' - ~ + ~ !!! error TS2322: Type 'X<{ a: string; }>' is not assignable to type 'I'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void'. diff --git a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.types b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.types index d1faaaff1a774..5a305acc0e7f4 100644 --- a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.types +++ b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.types @@ -35,6 +35,6 @@ var x = new X<{ a: string }>(); var i: I = x; // Should not be allowed -- type of 'f' is incompatible with 'I' >i : I > : ^ ->x : X<{ a: string; }> -> : ^^^^^^^ ^^^^ +>x : I +> : ^ diff --git a/tests/baselines/reference/genericsAndHigherOrderFunctions.types b/tests/baselines/reference/genericsAndHigherOrderFunctions.types index a3fa4690539b9..45568cdf0acc8 100644 --- a/tests/baselines/reference/genericsAndHigherOrderFunctions.types +++ b/tests/baselines/reference/genericsAndHigherOrderFunctions.types @@ -23,7 +23,7 @@ var combine: (f: (_: T) => S) => = (f: (_: T) => S) => >(f: (_: T) => S) => (g: (_: U) => T) => (x: U) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ >f : (_: T) => S > : ^ ^^ ^^^^^ >_ : T @@ -85,7 +85,7 @@ var foo: (g: (x: K) => N) => = (g: (x: K) => N) => >(g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => h(combine(f)(g)) : (g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => (_: R) => R -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ >g : (x: K) => N > : ^ ^^ ^^^^^ >x : K diff --git a/tests/baselines/reference/genericsWithoutTypeParameters1.types b/tests/baselines/reference/genericsWithoutTypeParameters1.types index d53f00d368de8..b4948fac83d9b 100644 --- a/tests/baselines/reference/genericsWithoutTypeParameters1.types +++ b/tests/baselines/reference/genericsWithoutTypeParameters1.types @@ -53,8 +53,8 @@ var x: { a: C } = { a: new C() }; > : ^^^^^ ^^^ >a : any > : ^^^ ->{ a: new C() } : { a: C; } -> : ^^^^^^^^^^^^^^^^^ +>{ a: new C() } : { a: C; } +> : ^^^^^ ^^^ >a : C > : ^^^^^^^^^ >new C() : C @@ -67,8 +67,8 @@ var x2: { a: I } = { a: { bar() { return 1 } } }; > : ^^^^^ ^^^ >a : any > : ^^^ ->{ a: { bar() { return 1 } } } : { a: { bar(): number; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: { bar() { return 1 } } } : { a: I; } +> : ^^^^^ ^^^ >a : { bar(): number; } > : ^^^^^^^^^^^^^^^^^^ >{ bar() { return 1 } } : { bar(): number; } diff --git a/tests/baselines/reference/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.types b/tests/baselines/reference/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.types index fb5309c783291..94eb74cfcdefc 100644 --- a/tests/baselines/reference/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.types +++ b/tests/baselines/reference/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.types @@ -64,8 +64,7 @@ module MyModule { var obj:any = {}; >obj : any ->{} : {} -> : ^^ +>{} : any return obj; >obj : any diff --git a/tests/baselines/reference/gettersAndSetters.types b/tests/baselines/reference/gettersAndSetters.types index 9fc070b85e267..accb4ccbc0347 100644 --- a/tests/baselines/reference/gettersAndSetters.types +++ b/tests/baselines/reference/gettersAndSetters.types @@ -214,8 +214,8 @@ interface I1 { var i:I1 = function (n) {return n;} >i : I1 > : ^^ ->function (n) {return n;} : (n: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +>function (n) {return n;} : I1 +> : ^^ >n : number > : ^^^^^^ >n : number diff --git a/tests/baselines/reference/heterogeneousArrayLiterals.types b/tests/baselines/reference/heterogeneousArrayLiterals.types index 19a6ae7003bb7..1b42cb3193b76 100644 --- a/tests/baselines/reference/heterogeneousArrayLiterals.types +++ b/tests/baselines/reference/heterogeneousArrayLiterals.types @@ -400,8 +400,8 @@ module WithContextualType { var a: Base[] = [derived, derived2]; >a : Base[] > : ^^^^^^ ->[derived, derived2] : (Derived | Derived2)[] -> : ^^^^^^^^^^^^^^^^^^^^^^ +>[derived, derived2] : Base[] +> : ^^^^^^ >derived : Derived > : ^^^^^^^ >derived2 : Derived2 @@ -410,20 +410,20 @@ module WithContextualType { var b: Derived[] = [null]; >b : Derived[] > : ^^^^^^^^^ ->[null] : null[] -> : ^^^^^^ +>[null] : Derived[] +> : ^^^^^^^^^ var c: Derived[] = []; >c : Derived[] > : ^^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : Derived[] +> : ^^^^^^^^^ var d: { (): Base }[] = [() => derived, () => derived2]; >d : (() => Base)[] > : ^^^^^^^ ^^^ ->[() => derived, () => derived2] : ((() => Derived) | (() => Derived2))[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[() => derived, () => derived2] : (() => Base)[] +> : ^^^^^^^ ^^^ >() => derived : () => Derived > : ^^^^^^^^^^^^^ >derived : Derived @@ -864,8 +864,8 @@ function foo4(t: T, u: U) { var k: Base[] = [t, u]; >k : Base[] > : ^^^^^^ ->[t, u] : (T | U)[] -> : ^^^^^^^^^ +>[t, u] : Base[] +> : ^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/ignoredJsxAttributes.errors.txt b/tests/baselines/reference/ignoredJsxAttributes.errors.txt index 0fcfd8cfb2702..4e4b1310241e3 100644 --- a/tests/baselines/reference/ignoredJsxAttributes.errors.txt +++ b/tests/baselines/reference/ignoredJsxAttributes.errors.txt @@ -1,4 +1,6 @@ -ignoredJsxAttributes.tsx(16,5): error TS2322: Type 'number' is not assignable to type 'string'. +ignoredJsxAttributes.tsx(14,20): error TS2322: Type '{ foo: string; "data-yadda": number; }' is not assignable to type 'Props'. + Property '"data-yadda"' is incompatible with index signature. + Type 'number' is not assignable to type 'string'. ignoredJsxAttributes.tsx(20,11): error TS2741: Property 'foo' is missing in type '{ bar: string; "data-yadda": number; }' but required in type 'Props'. @@ -17,12 +19,16 @@ ignoredJsxAttributes.tsx(20,11): error TS2741: Property 'foo' is missing in type declare function Yadda(props: Props): JSX.Element; let props: Props = { + ~ foo: "", + ~~~~~~~~~~~~ "data-yadda": 42, // Error - ~~~~~~~~~~~~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6501 ignoredJsxAttributes.tsx:9:5: The expected type comes from this index signature. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }; + ~ +!!! error TS2322: Type '{ foo: string; "data-yadda": number; }' is not assignable to type 'Props'. +!!! error TS2322: Property '"data-yadda"' is incompatible with index signature. +!!! error TS2322: Type 'number' is not assignable to type 'string'. let x1 = ; let x2 = ; // Error diff --git a/tests/baselines/reference/ignoredJsxAttributes.types b/tests/baselines/reference/ignoredJsxAttributes.types index 158233eda406f..e48e0e58a9321 100644 --- a/tests/baselines/reference/ignoredJsxAttributes.types +++ b/tests/baselines/reference/ignoredJsxAttributes.types @@ -36,8 +36,8 @@ declare function Yadda(props: Props): JSX.Element; let props: Props = { >props : Props > : ^^^^^ ->{ foo: "", "data-yadda": 42, // Error} : { foo: string; "data-yadda": number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ foo: "", "data-yadda": 42, // Error} : Props +> : ^^^^^ foo: "", >foo : string diff --git a/tests/baselines/reference/implicitAnyAnyReturningFunction.types b/tests/baselines/reference/implicitAnyAnyReturningFunction.types index 3b0793aa2b4d2..b8684a9b3a9fd 100644 --- a/tests/baselines/reference/implicitAnyAnyReturningFunction.types +++ b/tests/baselines/reference/implicitAnyAnyReturningFunction.types @@ -17,8 +17,7 @@ function B() { var someLocal: any = {}; >someLocal : any ->{} : {} -> : ^^ +>{} : any return someLocal; >someLocal : any @@ -44,8 +43,7 @@ class C { var someLocal: any = {}; >someLocal : any ->{} : {} -> : ^^ +>{} : any return someLocal; >someLocal : any diff --git a/tests/baselines/reference/implicitAnyWidenToAny.types b/tests/baselines/reference/implicitAnyWidenToAny.types index fd148986b0e40..858e91a618407 100644 --- a/tests/baselines/reference/implicitAnyWidenToAny.types +++ b/tests/baselines/reference/implicitAnyWidenToAny.types @@ -54,20 +54,20 @@ var foo1: any = null; var foo2: any = undefined; >foo2 : any > : ^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any +> : ^^^ var temp: number = 5; >temp : number > : ^^^^^^ ->5 : 5 -> : ^ +>5 : number +> : ^^^^^^ var c: AnimalObj = { x: null }; >c : AnimalObj > : ^^^^^^^^^ ->{ x: null } : { x: null; } -> : ^^^^^^^^^^^^ +>{ x: null } : AnimalObj +> : ^^^^^^^^^ >x : null > : ^^^^ @@ -84,22 +84,22 @@ var array1 = ["Bob",2]; var array2: any[] = []; >array2 : any[] > : ^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : any[] +> : ^^^^^ var array3: any[] = [null, undefined]; >array3 : any[] > : ^^^^^ ->[null, undefined] : null[] -> : ^^^^^^ +>[null, undefined] : any[] +> : ^^^^^ >undefined : undefined > : ^^^^^^^^^ var array4: number[] = [null, undefined]; >array4 : number[] > : ^^^^^^^^ ->[null, undefined] : null[] -> : ^^^^^^ +>[null, undefined] : number[] +> : ^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ diff --git a/tests/baselines/reference/importAliasIdentifiers.types b/tests/baselines/reference/importAliasIdentifiers.types index 0204cf9246d60..5fbd9f5f620fa 100644 --- a/tests/baselines/reference/importAliasIdentifiers.types +++ b/tests/baselines/reference/importAliasIdentifiers.types @@ -66,8 +66,8 @@ module clodule { var Point: Point = { x: 0, y: 0 }; >Point : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -136,8 +136,8 @@ module fundule { var Point: Point = { x: 0, y: 0 }; >Point : Point > : ^^^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/importAliasInModuleAugmentation.types b/tests/baselines/reference/importAliasInModuleAugmentation.types index 361cff4f663d4..966d083a8a0fc 100644 --- a/tests/baselines/reference/importAliasInModuleAugmentation.types +++ b/tests/baselines/reference/importAliasInModuleAugmentation.types @@ -45,8 +45,8 @@ const m: number = x; let s: x = { s: "" }; >s : x > : ^ ->{ s: "" } : { s: string; } -> : ^^^^^^^^^^^^^^ +>{ s: "" } : x +> : ^ >s : string > : ^^^^^^ >"" : "" diff --git a/tests/baselines/reference/importCallExpressionCheckReturntype1.errors.txt b/tests/baselines/reference/importCallExpressionCheckReturntype1.errors.txt index 3bb8f8795827b..45e5ab3a86b8e 100644 --- a/tests/baselines/reference/importCallExpressionCheckReturntype1.errors.txt +++ b/tests/baselines/reference/importCallExpressionCheckReturntype1.errors.txt @@ -1,4 +1,4 @@ -1.ts(4,5): error TS2322: Type 'Promise' is not assignable to type 'Promise'. +1.ts(4,41): error TS2322: Type 'Promise' is not assignable to type 'Promise'. Property 'D' is missing in type 'typeof import("defaultPath")' but required in type 'typeof import("anotherModule")'. 1.ts(5,10): error TS2352: Conversion of type 'Promise' to type 'Promise' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Property 'D' is missing in type 'typeof import("defaultPath")' but required in type 'typeof import("anotherModule")'. @@ -15,7 +15,7 @@ import * as anotherModule from "./anotherModule"; let p1: Promise = import("./defaultPath"); - ~~ + ~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'Promise' is not assignable to type 'Promise'. !!! error TS2322: Property 'D' is missing in type 'typeof import("defaultPath")' but required in type 'typeof import("anotherModule")'. !!! related TS2728 anotherModule.ts:1:14: 'D' is declared here. diff --git a/tests/baselines/reference/importCallExpressionCheckReturntype1.types b/tests/baselines/reference/importCallExpressionCheckReturntype1.types index 6d51f0dda69cf..0437d07b82f11 100644 --- a/tests/baselines/reference/importCallExpressionCheckReturntype1.types +++ b/tests/baselines/reference/importCallExpressionCheckReturntype1.types @@ -24,7 +24,7 @@ let p1: Promise = import("./defaultPath"); > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >anotherModule : typeof anotherModule > : ^^^^^^^^^^^^^^^^^^^^ ->import("./defaultPath") : Promise +>import("./defaultPath") : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"./defaultPath" : "./defaultPath" > : ^^^^^^^^^^^^^^^ @@ -44,8 +44,8 @@ let p2 = import("./defaultPath") as Promise; let p3: Promise = import("./defaultPath"); >p3 : Promise > : ^^^^^^^^^^^^ ->import("./defaultPath") : Promise -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>import("./defaultPath") : Promise +> : ^^^^^^^^^^^^ >"./defaultPath" : "./defaultPath" > : ^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importCallExpressionDeclarationEmit3.types b/tests/baselines/reference/importCallExpressionDeclarationEmit3.types index 22b32bd860271..e6030b392b28b 100644 --- a/tests/baselines/reference/importCallExpressionDeclarationEmit3.types +++ b/tests/baselines/reference/importCallExpressionDeclarationEmit3.types @@ -27,8 +27,8 @@ export var p0: Promise = import(getPath()); > : ^^^^^^^^^^^^^^^^^^^^ >Zero : typeof Zero > : ^^^^^^^^^^^ ->import(getPath()) : Promise -> : ^^^^^^^^^^^^ +>import(getPath()) : Promise +> : ^^^^^^^^^^^^^^^^^^^^ >getPath() : string > : ^^^^^^ >getPath : () => string @@ -47,8 +47,8 @@ export var p1: Promise = import("./0"); export var p2: Promise = import("./0"); >p2 : Promise > : ^^^^^^^^^^^^ ->import("./0") : Promise -> : ^^^^^^^^^^^^^^^^^^^^ +>import("./0") : Promise +> : ^^^^^^^^^^^^ >"./0" : "./0" > : ^^^^^ diff --git a/tests/baselines/reference/importCallExpressionReturnPromiseOfAny.types b/tests/baselines/reference/importCallExpressionReturnPromiseOfAny.types index 2cd909131f93d..a28dbca672ecb 100644 --- a/tests/baselines/reference/importCallExpressionReturnPromiseOfAny.types +++ b/tests/baselines/reference/importCallExpressionReturnPromiseOfAny.types @@ -79,8 +79,8 @@ var p11: Promise = import(getSpecifier()); > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >defaultModule : typeof defaultModule > : ^^^^^^^^^^^^^^^^^^^^ ->import(getSpecifier()) : Promise -> : ^^^^^^^^^^^^ +>import(getSpecifier()) : Promise +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getSpecifier() : string > : ^^^^^^ >getSpecifier : () => string @@ -138,8 +138,8 @@ var p3: Promise = import(j=getSpecifier()); > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >defaultModule : typeof defaultModule > : ^^^^^^^^^^^^^^^^^^^^ ->import(j=getSpecifier()) : Promise -> : ^^^^^^^^^^^^ +>import(j=getSpecifier()) : Promise +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >j=getSpecifier() : string > : ^^^^^^ >j : string diff --git a/tests/baselines/reference/importClause_default.types b/tests/baselines/reference/importClause_default.types index 576ea51ad7d5b..7a7522bc2d8b8 100644 --- a/tests/baselines/reference/importClause_default.types +++ b/tests/baselines/reference/importClause_default.types @@ -21,8 +21,8 @@ new A(); let a: A = { a: '' }; >a : A > : ^ ->{ a: '' } : { a: string; } -> : ^^^^^^^^^^^^^^ +>{ a: '' } : A +> : ^ >a : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/importTsBeforeDTs.types b/tests/baselines/reference/importTsBeforeDTs.types index d491d4701c9b7..5bc8793b66032 100644 --- a/tests/baselines/reference/importTsBeforeDTs.types +++ b/tests/baselines/reference/importTsBeforeDTs.types @@ -37,7 +37,7 @@ var z2 = foo.y + 10; // Should resolve export var y: number = 42; >y : number > : ^^^^^^ ->42 : 42 -> : ^^ +>42 : number +> : ^^^^^^ diff --git a/tests/baselines/reference/importTypeAmbient.types b/tests/baselines/reference/importTypeAmbient.types index e42b17d333c9a..53066a621d9cb 100644 --- a/tests/baselines/reference/importTypeAmbient.types +++ b/tests/baselines/reference/importTypeAmbient.types @@ -83,8 +83,8 @@ let y: import("foo2").Bar.I = { a: "", b: 0 }; > : ^^^^^^^^^^^^^^^^^^^^ >Bar : any > : ^^^ ->{ a: "", b: 0 } : { a: string; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: "", b: 0 } : import("foo2").Bar.I +> : ^^^^^^^^^^^^^^^^^^^^ >a : string > : ^^^^^^ >"" : "" @@ -115,7 +115,7 @@ class Bar2 { let shim: typeof import("foo2") = { >shim : typeof import("foo2") > : ^^^^^^^^^^^^^^^^^^^^^ ->{ Bar: Bar2} : { Bar: typeof Bar2; } +>{ Bar: Bar2} : typeof import("foo2") > : ^^^^^^^^^^^^^^^^^^^^^ Bar: Bar2 diff --git a/tests/baselines/reference/importTypeGenericTypes.types b/tests/baselines/reference/importTypeGenericTypes.types index db2338e7d72d3..bd2ee4d911e2f 100644 --- a/tests/baselines/reference/importTypeGenericTypes.types +++ b/tests/baselines/reference/importTypeGenericTypes.types @@ -103,8 +103,8 @@ export let y: import("./foo2").Bar.I<{x: number}> = { a: "", b: 0, data: {x: 12} > : ^^^ >x : number > : ^^^^^^ ->{ a: "", b: 0, data: {x: 12} } : { a: string; b: number; data: { x: number; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: "", b: 0, data: {x: 12} } : import("foo2").Bar.I<{ x: number; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >a : string > : ^^^^^^ >"" : "" @@ -145,7 +145,7 @@ export class Bar2 { export let shim: typeof import("./foo2") = { >shim : typeof import("foo2") > : ^^^^^^^^^^^^^^^^^^^^^ ->{ Bar: Bar2} : { Bar: typeof Bar2; } +>{ Bar: Bar2} : typeof import("foo2") > : ^^^^^^^^^^^^^^^^^^^^^ Bar: Bar2 diff --git a/tests/baselines/reference/importTypeLocal.types b/tests/baselines/reference/importTypeLocal.types index 1b4e783b1d118..4b791aaacae94 100644 --- a/tests/baselines/reference/importTypeLocal.types +++ b/tests/baselines/reference/importTypeLocal.types @@ -79,8 +79,8 @@ export let y: import("./foo2").Bar.I = { a: "", b: 0 }; > : ^^^^^^^^^^^^^^^^^^^^ >Bar : any > : ^^^ ->{ a: "", b: 0 } : { a: string; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: "", b: 0 } : import("foo2").Bar.I +> : ^^^^^^^^^^^^^^^^^^^^ >a : string > : ^^^^^^ >"" : "" @@ -111,7 +111,7 @@ export class Bar2 { export let shim: typeof import("./foo2") = { >shim : typeof import("foo2") > : ^^^^^^^^^^^^^^^^^^^^^ ->{ Bar: Bar2} : { Bar: typeof Bar2; } +>{ Bar: Bar2} : typeof import("foo2") > : ^^^^^^^^^^^^^^^^^^^^^ Bar: Bar2 diff --git a/tests/baselines/reference/importTypeLocalMissing.types b/tests/baselines/reference/importTypeLocalMissing.types index 8bc1dfb71a3c8..e869bc3d9411f 100644 --- a/tests/baselines/reference/importTypeLocalMissing.types +++ b/tests/baselines/reference/importTypeLocalMissing.types @@ -79,8 +79,8 @@ export let y: import("./fo2").Bar.I = { a: "", b: 0 }; > : ^^^ >Bar : any > : ^^^ ->{ a: "", b: 0 } : { a: string; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: "", b: 0 } : any +> : ^^^ >a : string > : ^^^^^^ >"" : "" @@ -95,8 +95,8 @@ export let z: import("./foo2").Bar.Q = { a: "", b: 0 }; > : ^^^ >Bar : any > : ^^^ ->{ a: "", b: 0 } : { a: string; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: "", b: 0 } : any +> : ^^^ >a : string > : ^^^^^^ >"" : "" @@ -128,8 +128,8 @@ export class Bar2 { export let shim: typeof import("./fo2") = { >shim : any > : ^^^ ->{ Bar: Bar2} : { Bar: typeof Bar2; } -> : ^^^^^^^^^^^^^^^^^^^^^ +>{ Bar: Bar2} : any +> : ^^^ Bar: Bar2 >Bar : typeof Bar2 diff --git a/tests/baselines/reference/importsNotUsedAsValues_error.types b/tests/baselines/reference/importsNotUsedAsValues_error.types index 3f439eeaf5389..0dc9c08c37e8a 100644 --- a/tests/baselines/reference/importsNotUsedAsValues_error.types +++ b/tests/baselines/reference/importsNotUsedAsValues_error.types @@ -138,12 +138,12 @@ C.One; let c: D = C.Two; >c : C > : ^ ->C.Two : C.Two -> : ^^^^^ +>C.Two : C +> : ^ >C : typeof C > : ^^^^^^^^ ->Two : C.Two -> : ^^^^^ +>Two : C +> : ^ let d: D.Two = C.Two; >d : C.Two @@ -166,8 +166,8 @@ console.log(c, d); > : ^^^^^^^ >log : (...data: any[]) => void > : ^^^^ ^^ ^^^^^ ->c : C.Two -> : ^^^^^ +>c : C +> : ^ >d : C.Two > : ^^^^^ @@ -217,8 +217,8 @@ import H = require('./h'); // Error let h: H = {}; >h : H > : ^ ->{} : {} -> : ^^ +>{} : H +> : ^ console.log(h); >console.log(h) : void diff --git a/tests/baselines/reference/inKeywordTypeguard(strict=false).types b/tests/baselines/reference/inKeywordTypeguard(strict=false).types index eaf32e71c8c0b..e82e562c8d80c 100644 --- a/tests/baselines/reference/inKeywordTypeguard(strict=false).types +++ b/tests/baselines/reference/inKeywordTypeguard(strict=false).types @@ -345,31 +345,31 @@ function negativePropTest(x: ClassWithUnionProp) { let y: string = x.prop.b; >y : string > : ^^^^^^ ->x.prop.b : any -> : ^^^ +>x.prop.b : string +> : ^^^^^^ >x.prop : A > : ^ >x : ClassWithUnionProp > : ^^^^^^^^^^^^^^^^^^ >prop : A > : ^ ->b : any -> : ^^^ +>b : string +> : ^^^^^^ } else { let z: string = x.prop.a; >z : string > : ^^^^^^ ->x.prop.a : any -> : ^^^ +>x.prop.a : string +> : ^^^^^^ >x.prop : B > : ^ >x : ClassWithUnionProp > : ^^^^^^^^^^^^^^^^^^ >prop : B > : ^ ->a : any -> : ^^^ +>a : string +> : ^^^^^^ } } @@ -400,31 +400,31 @@ class NegativeClassTest { let z: number = this.prop.b; >z : number > : ^^^^^^ ->this.prop.b : any -> : ^^^ +>this.prop.b : number +> : ^^^^^^ >this.prop : A > : ^ >this : this > : ^^^^ >prop : A > : ^ ->b : any -> : ^^^ +>b : number +> : ^^^^^^ } else { let y: string = this.prop.a; >y : string > : ^^^^^^ ->this.prop.a : any -> : ^^^ +>this.prop.a : string +> : ^^^^^^ >this.prop : B > : ^ >this : this > : ^^^^ >prop : B > : ^ ->a : any -> : ^^^ +>a : string +> : ^^^^^^ } } } diff --git a/tests/baselines/reference/inKeywordTypeguard(strict=true).types b/tests/baselines/reference/inKeywordTypeguard(strict=true).types index 118e1c698a636..5394c1b29f473 100644 --- a/tests/baselines/reference/inKeywordTypeguard(strict=true).types +++ b/tests/baselines/reference/inKeywordTypeguard(strict=true).types @@ -348,31 +348,31 @@ function negativePropTest(x: ClassWithUnionProp) { let y: string = x.prop.b; >y : string > : ^^^^^^ ->x.prop.b : any -> : ^^^ +>x.prop.b : string +> : ^^^^^^ >x.prop : A > : ^ >x : ClassWithUnionProp > : ^^^^^^^^^^^^^^^^^^ >prop : A > : ^ ->b : any -> : ^^^ +>b : string +> : ^^^^^^ } else { let z: string = x.prop.a; >z : string > : ^^^^^^ ->x.prop.a : any -> : ^^^ +>x.prop.a : string +> : ^^^^^^ >x.prop : B > : ^ >x : ClassWithUnionProp > : ^^^^^^^^^^^^^^^^^^ >prop : B > : ^ ->a : any -> : ^^^ +>a : string +> : ^^^^^^ } } @@ -403,31 +403,31 @@ class NegativeClassTest { let z: number = this.prop.b; >z : number > : ^^^^^^ ->this.prop.b : any -> : ^^^ +>this.prop.b : number +> : ^^^^^^ >this.prop : A > : ^ >this : this > : ^^^^ >prop : A > : ^ ->b : any -> : ^^^ +>b : number +> : ^^^^^^ } else { let y: string = this.prop.a; >y : string > : ^^^^^^ ->this.prop.a : any -> : ^^^ +>this.prop.a : string +> : ^^^^^^ >this.prop : B > : ^ >this : this > : ^^^^ >prop : B > : ^ ->a : any -> : ^^^ +>a : string +> : ^^^^^^ } } } diff --git a/tests/baselines/reference/incompatibleGenericTypes.errors.txt b/tests/baselines/reference/incompatibleGenericTypes.errors.txt index 5e8a29f4ed78b..ec88c7a8f041c 100644 --- a/tests/baselines/reference/incompatibleGenericTypes.errors.txt +++ b/tests/baselines/reference/incompatibleGenericTypes.errors.txt @@ -1,4 +1,4 @@ -incompatibleGenericTypes.ts(9,5): error TS2322: Type 'I1' is not assignable to type 'I1'. +incompatibleGenericTypes.ts(9,22): error TS2322: Type 'I1' is not assignable to type 'I1'. Type 'boolean' is not assignable to type 'number'. @@ -12,6 +12,6 @@ incompatibleGenericTypes.ts(9,5): error TS2322: Type 'I1' is not assign var v1: I1; var v2: I1 = v1; - ~~ + ~~ !!! error TS2322: Type 'I1' is not assignable to type 'I1'. !!! error TS2322: Type 'boolean' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/incompatibleGenericTypes.types b/tests/baselines/reference/incompatibleGenericTypes.types index 79eb21199d4ab..253f753a7eaef 100644 --- a/tests/baselines/reference/incompatibleGenericTypes.types +++ b/tests/baselines/reference/incompatibleGenericTypes.types @@ -20,6 +20,6 @@ var v1: I1; var v2: I1 = v1; >v2 : I1 > : ^^^^^^^^^^ ->v1 : I1 -> : ^^^^^^^^^^^ +>v1 : I1 +> : ^^^^^^^^^^ diff --git a/tests/baselines/reference/incompatibleTypes.errors.txt b/tests/baselines/reference/incompatibleTypes.errors.txt index 8d48f0173ee42..1957f5856494b 100644 --- a/tests/baselines/reference/incompatibleTypes.errors.txt +++ b/tests/baselines/reference/incompatibleTypes.errors.txt @@ -24,8 +24,8 @@ incompatibleTypes.ts(49,7): error TS2769: No overload matches this call. Overload 2 of 2, '(s: { c: { b: string; }; d: string; }): string', gave the following error. Object literal may only specify known properties, and 'e' does not exist in type '{ c: { b: string; }; d: string; }'. incompatibleTypes.ts(66,47): error TS2353: Object literal may only specify known properties, and 'e' does not exist in type '{ a: { a: string; }; b: string; }'. -incompatibleTypes.ts(72,5): error TS2322: Type 'number' is not assignable to type '() => string'. -incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. +incompatibleTypes.ts(72,29): error TS2322: Type 'number' is not assignable to type '() => string'. +incompatibleTypes.ts(74,21): error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. Target signature provides too few arguments. Expected 1 or more, but got 0. @@ -137,11 +137,11 @@ incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => number' is not assig var i1c1: { (): string; } = 5; - ~~~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '() => string'. var fp1: () =>any = a => 0; - ~~~ + ~~~~~~ !!! error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. !!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. \ No newline at end of file diff --git a/tests/baselines/reference/incompatibleTypes.types b/tests/baselines/reference/incompatibleTypes.types index 88c180f1d1637..c0a2ff566614c 100644 --- a/tests/baselines/reference/incompatibleTypes.types +++ b/tests/baselines/reference/incompatibleTypes.types @@ -218,8 +218,8 @@ var o1: { a: { a: string; }; b: string; } = { e: 0, f: 0 }; > : ^^^^^^ >b : string > : ^^^^^^ ->{ e: 0, f: 0 } : { e: number; f: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ e: 0, f: 0 } : { a: { a: string; }; b: string; } +> : ^^^^^ ^^^^^ ^^^ >e : number > : ^^^^^^ >0 : 0 @@ -270,14 +270,14 @@ var a1 = [{ e: 0, f: 0 }, { e: 0, f: 0 }, { e: 0, g: 0 }]; var i1c1: { (): string; } = 5; >i1c1 : () => string > : ^^^^^^ ->5 : 5 -> : ^ +>5 : () => string +> : ^^^^^^ var fp1: () =>any = a => 0; >fp1 : () => any > : ^^^^^^ ->a => 0 : (a: any) => number -> : ^ ^^^^^^^^^^^^^^^^ +>a => 0 : () => any +> : ^^^^^^ >a : any > : ^^^ >0 : 0 diff --git a/tests/baselines/reference/incrementOnNullAssertion.types b/tests/baselines/reference/incrementOnNullAssertion.types index f46393c755382..a14afe038c6de 100644 --- a/tests/baselines/reference/incrementOnNullAssertion.types +++ b/tests/baselines/reference/incrementOnNullAssertion.types @@ -15,8 +15,8 @@ const x = 'bar' let foo: Dictionary = {} >foo : Dictionary > : ^^^^^^^^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : Dictionary +> : ^^^^^^^^^^^^^^^^^^ if (foo[x] === undefined) { >foo[x] === undefined : boolean diff --git a/tests/baselines/reference/incrementOperatorWithAnyOtherType.types b/tests/baselines/reference/incrementOperatorWithAnyOtherType.types index d71b8b164396a..b709f90aee65a 100644 --- a/tests/baselines/reference/incrementOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/incrementOperatorWithAnyOtherType.types @@ -12,8 +12,8 @@ var ANY1: any; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.types b/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.types index 03e41340c7ee1..fe62cfb2a1d00 100644 --- a/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.types +++ b/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.types @@ -9,8 +9,8 @@ var ANY1: any; var ANY2: any[] = [1, 2]; >ANY2 : any[] > : ^^^^^ ->[1, 2] : number[] -> : ^^^^^^^^ +>[1, 2] : any[] +> : ^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/indexSignatureTypeCheck.types b/tests/baselines/reference/indexSignatureTypeCheck.types index 4d11e879d4a50..94f7bfa9e8509 100644 --- a/tests/baselines/reference/indexSignatureTypeCheck.types +++ b/tests/baselines/reference/indexSignatureTypeCheck.types @@ -17,8 +17,8 @@ var ps: IPropertySet = null; var index: any = "hello"; >index : any > : ^^^ ->"hello" : "hello" -> : ^^^^^^^ +>"hello" : any +> : ^^^ ps[index] = 12; >ps[index] = 12 : 12 diff --git a/tests/baselines/reference/indexSignatureTypeCheck2.types b/tests/baselines/reference/indexSignatureTypeCheck2.types index efd2868690854..77d178678106f 100644 --- a/tests/baselines/reference/indexSignatureTypeCheck2.types +++ b/tests/baselines/reference/indexSignatureTypeCheck2.types @@ -17,8 +17,8 @@ var ps: IPropertySet = null; var index: any = "hello"; >index : any > : ^^^ ->"hello" : "hello" -> : ^^^^^^^ +>"hello" : any +> : ^^^ ps[index] = 12; >ps[index] = 12 : 12 diff --git a/tests/baselines/reference/indexWithUndefinedAndNull.types b/tests/baselines/reference/indexWithUndefinedAndNull.types index 7a95b2db85abc..a55ba25374122 100644 --- a/tests/baselines/reference/indexWithUndefinedAndNull.types +++ b/tests/baselines/reference/indexWithUndefinedAndNull.types @@ -22,8 +22,8 @@ let s: S; let str: string = n[undefined]; >str : string > : ^^^^^^ ->n[undefined] : any -> : ^^^ +>n[undefined] : string +> : ^^^^^^ >n : N > : ^ >undefined : undefined @@ -42,8 +42,8 @@ str = n[null]; let num: number = s[undefined]; >num : number > : ^^^^^^ ->s[undefined] : any -> : ^^^ +>s[undefined] : number +> : ^^^^^^ >s : S > : ^ >undefined : undefined diff --git a/tests/baselines/reference/indexWithUndefinedAndNullStrictNullChecks.types b/tests/baselines/reference/indexWithUndefinedAndNullStrictNullChecks.types index 5a76b7ee48d1a..cd32bab3e2aca 100644 --- a/tests/baselines/reference/indexWithUndefinedAndNullStrictNullChecks.types +++ b/tests/baselines/reference/indexWithUndefinedAndNullStrictNullChecks.types @@ -22,8 +22,8 @@ let s: S; let str: string = n[undefined]; >str : string > : ^^^^^^ ->n[undefined] : any -> : ^^^ +>n[undefined] : string +> : ^^^^^^ >n : N > : ^ >undefined : undefined @@ -42,8 +42,8 @@ str = n[null]; let num: number = s[undefined]; >num : number > : ^^^^^^ ->s[undefined] : any -> : ^^^ +>s[undefined] : number +> : ^^^^^^ >s : S > : ^ >undefined : undefined diff --git a/tests/baselines/reference/indexedAccessConstraints.errors.txt b/tests/baselines/reference/indexedAccessConstraints.errors.txt index 02b87e2cad3d8..9f4f06c355156 100644 --- a/tests/baselines/reference/indexedAccessConstraints.errors.txt +++ b/tests/baselines/reference/indexedAccessConstraints.errors.txt @@ -1,4 +1,4 @@ -indexedAccessConstraints.ts(2,9): error TS2322: Type 'T[keyof T]' is not assignable to type 'number'. +indexedAccessConstraints.ts(2,21): error TS2322: Type 'T[keyof T]' is not assignable to type 'number'. Type 'T[string] | T[number] | T[symbol]' is not assignable to type 'number'. Type 'T[string]' is not assignable to type 'number'. @@ -6,7 +6,7 @@ indexedAccessConstraints.ts(2,9): error TS2322: Type 'T[keyof T]' is not assigna ==== indexedAccessConstraints.ts (1 errors) ==== function foo(a: T[keyof T]) { let b: number = a; // Error - ~ + ~ !!! error TS2322: Type 'T[keyof T]' is not assignable to type 'number'. !!! error TS2322: Type 'T[string] | T[number] | T[symbol]' is not assignable to type 'number'. !!! error TS2322: Type 'T[string]' is not assignable to type 'number'. diff --git a/tests/baselines/reference/indexedAccessConstraints.types b/tests/baselines/reference/indexedAccessConstraints.types index cf4424a04681e..008473b444d4a 100644 --- a/tests/baselines/reference/indexedAccessConstraints.types +++ b/tests/baselines/reference/indexedAccessConstraints.types @@ -10,8 +10,8 @@ function foo(a: T[keyof T]) { let b: number = a; // Error >b : number > : ^^^^^^ ->a : T[keyof T] -> : ^^^^^^^^^^ +>a : number +> : ^^^^^^ } // Repro from #54522 diff --git a/tests/baselines/reference/indexer.types b/tests/baselines/reference/indexer.types index 24e58a429cf82..4db85c9067ef7 100644 --- a/tests/baselines/reference/indexer.types +++ b/tests/baselines/reference/indexer.types @@ -16,8 +16,8 @@ interface JQuery { var jq:JQuery={ 0: { id : "a" }, 1: { id : "b" } }; >jq : JQuery > : ^^^^^^ ->{ 0: { id : "a" }, 1: { id : "b" } } : { 0: { id: string; }; 1: { id: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 0: { id : "a" }, 1: { id : "b" } } : JQuery +> : ^^^^^^ >0 : { id: string; } > : ^^^^^^^^^^^^^^^ >{ id : "a" } : { id: string; } diff --git a/tests/baselines/reference/indexer3.types b/tests/baselines/reference/indexer3.types index 68c862fd2773c..018b78fcc9cad 100644 --- a/tests/baselines/reference/indexer3.types +++ b/tests/baselines/reference/indexer3.types @@ -6,8 +6,8 @@ var dateMap: { [x: string]: Date; } = {} > : ^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{} : {} -> : ^^ +>{} : { [x: string]: Date; } +> : ^^^^^^^^^^^^^^^^^^^^^^ var r: Date = dateMap["hello"] // result type includes indexer using BCT >r : Date diff --git a/tests/baselines/reference/indexerA.types b/tests/baselines/reference/indexerA.types index 1185dfc4ce1f3..be6b5bf40219b 100644 --- a/tests/baselines/reference/indexerA.types +++ b/tests/baselines/reference/indexerA.types @@ -22,8 +22,8 @@ class JQuery { var jq:JQuery={ 0: { id : "a" }, 1: { id : "b" } }; >jq : JQuery > : ^^^^^^ ->{ 0: { id : "a" }, 1: { id : "b" } } : { 0: { id: string; }; 1: { id: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 0: { id : "a" }, 1: { id : "b" } } : JQuery +> : ^^^^^^ >0 : { id: string; } > : ^^^^^^^^^^^^^^^ >{ id : "a" } : { id: string; } diff --git a/tests/baselines/reference/indexerWithTuple.types b/tests/baselines/reference/indexerWithTuple.types index 3e8ff9641b7f9..3672f5324d921 100644 --- a/tests/baselines/reference/indexerWithTuple.types +++ b/tests/baselines/reference/indexerWithTuple.types @@ -28,8 +28,8 @@ var numTupleTuple: [number, [string, number]] = [10, ["bar", 20]]; var unionTuple1: [number, string| number] = [10, "foo"]; >unionTuple1 : [number, string | number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->[10, "foo"] : [number, string] -> : ^^^^^^^^^^^^^^^^ +>[10, "foo"] : [number, string | number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >10 : 10 > : ^^ >"foo" : "foo" @@ -38,8 +38,8 @@ var unionTuple1: [number, string| number] = [10, "foo"]; var unionTuple2: [boolean, string| number] = [true, "foo"]; >unionTuple2 : [boolean, string | number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ->[true, "foo"] : [true, string] -> : ^^^^^^^^^^^^^^ +>[true, "foo"] : [boolean, string | number] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >true : true > : ^^^^ >"foo" : "foo" diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes2.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes2.types index 0524f0f522e81..769577231321d 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes2.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes2.types @@ -42,8 +42,8 @@ declare function foo(f: Mapper): void; let f1: Mapper = s => s.length; >f1 : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ ->s => s.length : (s: string) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +>s => s.length : Mapper +> : ^^^^^^^^^^^^^^^^^^^^^^ >s : string > : ^^^^^^ >s.length : number @@ -96,8 +96,8 @@ let f3: Mapper = arrayize(wrap(s => s.length)); let f4: Mapper = combine(wrap(s => s.length), wrap(n => n >= 10)); >f4 : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^^ ->combine(wrap(s => s.length), wrap(n => n >= 10)) : (x: string) => boolean -> : ^ ^^^^^^^^^^^^^^^^^^^^ +>combine(wrap(s => s.length), wrap(n => n >= 10)) : Mapper +> : ^^^^^^^^^^^^^^^^^^^^^^^ >combine : (f: (x: A) => B, g: (x: B) => C) => (x: A) => C > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >wrap(s => s.length) : Mapper diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types index e20de1c2bbd86..3ff3c92979d44 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types @@ -155,8 +155,8 @@ interface FolderContentItem { let a: FolderContentItem[] = []; >a : FolderContentItem[] > : ^^^^^^^^^^^^^^^^^^^ ->[] : never[] -> : ^^^^^^^ +>[] : FolderContentItem[] +> : ^^^^^^^^^^^^^^^^^^^ a = [1, 2, 3, 4, 5].map(v => ({ type: 'folder' })); >a = [1, 2, 3, 4, 5].map(v => ({ type: 'folder' })) : { type: "folder"; }[] @@ -296,8 +296,8 @@ function bug(): Diagnostic[] { let values: any[] = []; >values : any[] > : ^^^^^ ->[] : never[] -> : ^^^^^^^ +>[] : any[] +> : ^^^^^ return values.map((value) => { >values.map((value) => { return { severity: DiagnosticSeverity.Error, message: 'message' } }) : { severity: 1; message: string; }[] @@ -465,8 +465,8 @@ type WinCondition = let zz: Box = box({ type: 'draw' }); >zz : Box > : ^^^^^^^^^^^^^^^^^ ->box({ type: 'draw' }) : Box<{ type: "draw"; }> -> : ^^^^^^^^^^^^^^^^^^^^^^ +>box({ type: 'draw' }) : Box +> : ^^^^^^^^^^^^^^^^^ >box : (value: T) => Box > : ^ ^^ ^^ ^^^^^ >{ type: 'draw' } : { type: "draw"; } @@ -483,8 +483,8 @@ type WinType = 'win' | 'draw'; let yy: Box = box('draw'); >yy : Box > : ^^^^^^^^^^^^ ->box('draw') : Box<"draw"> -> : ^^^^^^^^^^^ +>box('draw') : Box +> : ^^^^^^^^^^^^ >box : (value: T) => Box > : ^ ^^ ^^ ^^^^^ >'draw' : "draw" @@ -735,8 +735,8 @@ declare function bar(f: () => T[]): T[]; let x: Foo[] = bar(() => !!true ? [{ state: State.A }] : [{ state: State.B }]); // Error >x : Foo[] > : ^^^^^ ->bar(() => !!true ? [{ state: State.A }] : [{ state: State.B }]) : { state: State.A; }[] -> : ^^^^^^^^^^^^^^^^^^^^^ +>bar(() => !!true ? [{ state: State.A }] : [{ state: State.B }]) : Foo[] +> : ^^^^^ >bar : (f: () => T[]) => T[] > : ^ ^^ ^^ ^^^^^ >() => !!true ? [{ state: State.A }] : [{ state: State.B }] : () => { state: State.A; }[] | { state: State.B; }[] diff --git a/tests/baselines/reference/inferSecondaryParameter.types b/tests/baselines/reference/inferSecondaryParameter.types index c65978532d3d9..4cf8001647154 100644 --- a/tests/baselines/reference/inferSecondaryParameter.types +++ b/tests/baselines/reference/inferSecondaryParameter.types @@ -14,8 +14,8 @@ interface Ib { m(test: string, fn: Function); } var b: Ib = { m: function (test: string, fn: Function) { } }; >b : Ib > : ^^ ->{ m: function (test: string, fn: Function) { } } : { m: (test: string, fn: Function) => void; } -> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +>{ m: function (test: string, fn: Function) { } } : Ib +> : ^^ >m : (test: string, fn: Function) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >function (test: string, fn: Function) { } : (test: string, fn: Function) => void @@ -42,6 +42,7 @@ b.m("test", function (bug) { var a: number = bug; >a : number > : ^^^^^^ ->bug : any +>bug : number +> : ^^^^^^ }); diff --git a/tests/baselines/reference/inferTypePredicates.errors.txt b/tests/baselines/reference/inferTypePredicates.errors.txt index abb653265f3d9..063306585cb01 100644 --- a/tests/baselines/reference/inferTypePredicates.errors.txt +++ b/tests/baselines/reference/inferTypePredicates.errors.txt @@ -13,12 +13,12 @@ inferTypePredicates.ts(54,28): error TS2345: Argument of type 'string | undefine inferTypePredicates.ts(65,28): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. inferTypePredicates.ts(90,8): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -inferTypePredicates.ts(113,7): error TS2322: Type 'string | number' is not assignable to type 'string'. +inferTypePredicates.ts(113,19): error TS2322: Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. -inferTypePredicates.ts(115,7): error TS2322: Type 'string | number' is not assignable to type 'number'. +inferTypePredicates.ts(115,19): error TS2322: Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. -inferTypePredicates.ts(133,7): error TS2740: Type '{}' is missing the following properties from type 'Date': toDateString, toTimeString, toLocaleDateString, toLocaleTimeString, and 37 more. -inferTypePredicates.ts(205,7): error TS2741: Property 'z' is missing in type 'C1' but required in type 'C2'. +inferTypePredicates.ts(133,17): error TS2740: Type '{}' is missing the following properties from type 'Date': toDateString, toTimeString, toLocaleDateString, toLocaleTimeString, and 37 more. +inferTypePredicates.ts(205,16): error TS2741: Property 'z' is missing in type 'C1' but required in type 'C2'. ==== inferTypePredicates.ts (11 errors) ==== @@ -157,12 +157,12 @@ inferTypePredicates.ts(205,7): error TS2741: Property 'z' is missing in type 'C1 } if (flakyIsString(strOrNum)) { let t: string = strOrNum; // should error - ~ + ~~~~~~~~ !!! error TS2322: Type 'string | number' is not assignable to type 'string'. !!! error TS2322: Type 'number' is not assignable to type 'string'. } else { let t: number = strOrNum; // should error - ~ + ~~~~~~~~ !!! error TS2322: Type 'string | number' is not assignable to type 'number'. !!! error TS2322: Type 'string' is not assignable to type 'number'. } @@ -183,7 +183,7 @@ inferTypePredicates.ts(205,7): error TS2741: Property 'z' is missing in type 'C1 if (flakyIsDate(maybeDate)) { let t: Date = maybeDate; // should error - ~ + ~~~~~~~~~ !!! error TS2740: Type '{}' is missing the following properties from type 'Date': toDateString, toTimeString, toLocaleDateString, toLocaleTimeString, and 37 more. } else { let t: object = maybeDate; // should ok @@ -257,7 +257,7 @@ inferTypePredicates.ts(205,7): error TS2741: Property 'z' is missing in type 'C1 declare let c: C1; if (c.isC2()) { let c2: C2 = c; // should error - ~~ + ~ !!! error TS2741: Property 'z' is missing in type 'C1' but required in type 'C2'. !!! related TS2728 inferTypePredicates.ts:201:3: 'z' is declared here. } diff --git a/tests/baselines/reference/inferTypePredicates.types b/tests/baselines/reference/inferTypePredicates.types index a2837fd5d91c7..cbbe47595a690 100644 --- a/tests/baselines/reference/inferTypePredicates.types +++ b/tests/baselines/reference/inferTypePredicates.types @@ -838,15 +838,15 @@ if (flakyIsString(strOrNum)) { let t: string = strOrNum; // should error >t : string > : ^^^^^^ ->strOrNum : string | number -> : ^^^^^^^^^^^^^^^ +>strOrNum : string +> : ^^^^^^ } else { let t: number = strOrNum; // should error >t : number > : ^^^^^^ ->strOrNum : string | number -> : ^^^^^^^^^^^^^^^ +>strOrNum : number +> : ^^^^^^ } function isDate(x: object) { @@ -929,8 +929,8 @@ if (flakyIsDate(maybeDate)) { let t: Date = maybeDate; // should error >t : Date > : ^^^^ ->maybeDate : object -> : ^^^^^^ +>maybeDate : Date +> : ^^^^ } else { let t: object = maybeDate; // should ok @@ -1268,7 +1268,7 @@ if (c.isC2()) { let c2: C2 = c; // should error >c2 : C2 > : ^^ ->c : C1 +>c : C2 > : ^^ } diff --git a/tests/baselines/reference/inferenceLimit.types b/tests/baselines/reference/inferenceLimit.types index bb31cbbd3a13a..5be8e0acbff46 100644 --- a/tests/baselines/reference/inferenceLimit.types +++ b/tests/baselines/reference/inferenceLimit.types @@ -42,8 +42,8 @@ export class BrokenClass { > : ^^^^^^^^^^^^^^^^^^ >MyModule : any > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : MyModule.MyModel[] +> : ^^^^^^^^^^^^^^^^^^ let populateItems = (order) => { >populateItems : (order: any) => Promise diff --git a/tests/baselines/reference/infinitelyExpandingBaseTypes2.types b/tests/baselines/reference/infinitelyExpandingBaseTypes2.types index 215f9526a73ca..77cd891ae867e 100644 --- a/tests/baselines/reference/infinitelyExpandingBaseTypes2.types +++ b/tests/baselines/reference/infinitelyExpandingBaseTypes2.types @@ -22,6 +22,6 @@ var a: A var b: B = a >b : B > : ^^^^^^^^^ ->a : A +>a : B > : ^^^^^^^^^ diff --git a/tests/baselines/reference/infinitelyExpandingTypeAssignability.types b/tests/baselines/reference/infinitelyExpandingTypeAssignability.types index ee74339d5536f..6f62df4e13cff 100644 --- a/tests/baselines/reference/infinitelyExpandingTypeAssignability.types +++ b/tests/baselines/reference/infinitelyExpandingTypeAssignability.types @@ -18,6 +18,6 @@ var x : B var y : C = x >y : C > : ^^^^^^^^^ ->x : B +>x : C > : ^^^^^^^^^ diff --git a/tests/baselines/reference/innerTypeCheckOfLambdaArgument.errors.txt b/tests/baselines/reference/innerTypeCheckOfLambdaArgument.errors.txt index 6e9ef80173e92..34ff92377d97f 100644 --- a/tests/baselines/reference/innerTypeCheckOfLambdaArgument.errors.txt +++ b/tests/baselines/reference/innerTypeCheckOfLambdaArgument.errors.txt @@ -1,4 +1,4 @@ -innerTypeCheckOfLambdaArgument.ts(10,7): error TS2322: Type 'number' is not assignable to type 'string'. +innerTypeCheckOfLambdaArgument.ts(10,19): error TS2322: Type 'number' is not assignable to type 'string'. ==== innerTypeCheckOfLambdaArgument.ts (1 errors) ==== @@ -12,7 +12,7 @@ innerTypeCheckOfLambdaArgument.ts(10,7): error TS2322: Type 'number' is not assi // this line should raise an error // otherwise, there's a bug in overload resolution / partial typechecking var k: string = 10; - ~ + ~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. } ); diff --git a/tests/baselines/reference/innerTypeCheckOfLambdaArgument.types b/tests/baselines/reference/innerTypeCheckOfLambdaArgument.types index fb5eaecad412c..941b5fb5e5631 100644 --- a/tests/baselines/reference/innerTypeCheckOfLambdaArgument.types +++ b/tests/baselines/reference/innerTypeCheckOfLambdaArgument.types @@ -30,8 +30,8 @@ takesCallback( var k: string = 10; >k : string > : ^^^^^^ ->10 : 10 -> : ^^ +>10 : string +> : ^^^^^^ } ); diff --git a/tests/baselines/reference/instantiateContextualTypes.types b/tests/baselines/reference/instantiateContextualTypes.types index e51df99d1d857..a549c018b29f0 100644 --- a/tests/baselines/reference/instantiateContextualTypes.types +++ b/tests/baselines/reference/instantiateContextualTypes.types @@ -611,8 +611,8 @@ declare function invoke(f: () => T): T; let xx: 0 | 1 | 2 = invoke(() => 1); >xx : 0 | 1 | 2 > : ^^^^^^^^^ ->invoke(() => 1) : 1 -> : ^ +>invoke(() => 1) : 0 | 1 | 2 +> : ^^^^^^^^^ >invoke : (f: () => T) => T > : ^ ^^ ^^ ^^^^^ >() => 1 : () => 1 diff --git a/tests/baselines/reference/instantiatedModule.types b/tests/baselines/reference/instantiatedModule.types index ac3ccdbe4841b..2fdcba7657cb6 100644 --- a/tests/baselines/reference/instantiatedModule.types +++ b/tests/baselines/reference/instantiatedModule.types @@ -263,12 +263,12 @@ var blue: M3.Color = a3.Blue; > : ^^^^^^^^ >M3 : any > : ^^^ ->a3.Blue : M3.Color.Blue -> : ^^^^^^^^^^^^^ +>a3.Blue : M3.Color +> : ^^^^^^^^ >a3 : typeof M3.Color > : ^^^^^^^^^^^^^^^ ->Blue : M3.Color.Blue -> : ^^^^^^^^^^^^^ +>Blue : M3.Color +> : ^^^^^^^^ var p3: M3.Color; >p3 : M3.Color diff --git a/tests/baselines/reference/intTypeCheck.errors.txt b/tests/baselines/reference/intTypeCheck.errors.txt index 7555e19a87bbb..39bf284ab2b7d 100644 --- a/tests/baselines/reference/intTypeCheck.errors.txt +++ b/tests/baselines/reference/intTypeCheck.errors.txt @@ -1,95 +1,95 @@ intTypeCheck.ts(35,6): error TS2304: Cannot find name 'p'. intTypeCheck.ts(71,6): error TS2304: Cannot find name 'p'. intTypeCheck.ts(85,5): error TS2386: Overload signatures must all be optional or required. -intTypeCheck.ts(99,5): error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? +intTypeCheck.ts(99,16): error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? Type 'Object' is missing the following properties from type 'i1': p, p3, p6 intTypeCheck.ts(100,20): error TS2351: This expression is not constructable. Type 'i1' has no construct signatures. -intTypeCheck.ts(101,5): error TS2739: Type 'Base' is missing the following properties from type 'i1': p, p3, p6 -intTypeCheck.ts(103,5): error TS2322: Type '() => void' is not assignable to type 'i1'. -intTypeCheck.ts(106,5): error TS2322: Type 'boolean' is not assignable to type 'i1'. +intTypeCheck.ts(101,16): error TS2739: Type 'Base' is missing the following properties from type 'i1': p, p3, p6 +intTypeCheck.ts(103,16): error TS2322: Type '() => void' is not assignable to type 'i1'. +intTypeCheck.ts(106,16): error TS2322: Type 'boolean' is not assignable to type 'i1'. intTypeCheck.ts(106,20): error TS1109: Expression expected. intTypeCheck.ts(106,21): error TS2693: 'i1' only refers to a type, but is being used as a value here. intTypeCheck.ts(107,21): error TS2351: This expression is not constructable. Type '{}' has no construct signatures. -intTypeCheck.ts(112,5): error TS2322: Type '{}' is not assignable to type 'i2'. +intTypeCheck.ts(112,17): error TS2322: Type '{}' is not assignable to type 'i2'. Type '{}' provides no match for the signature '(): any'. -intTypeCheck.ts(113,5): error TS2322: Type 'Object' is not assignable to type 'i2'. +intTypeCheck.ts(113,17): error TS2322: Type 'Object' is not assignable to type 'i2'. The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? Type 'Object' provides no match for the signature '(): any'. intTypeCheck.ts(114,17): error TS2350: Only a void function can be called with the 'new' keyword. -intTypeCheck.ts(115,5): error TS2322: Type 'Base' is not assignable to type 'i2'. +intTypeCheck.ts(115,17): error TS2322: Type 'Base' is not assignable to type 'i2'. Type 'Base' provides no match for the signature '(): any'. -intTypeCheck.ts(120,5): error TS2322: Type 'boolean' is not assignable to type 'i2'. +intTypeCheck.ts(120,17): error TS2322: Type 'boolean' is not assignable to type 'i2'. intTypeCheck.ts(120,21): error TS1109: Expression expected. intTypeCheck.ts(120,22): error TS2693: 'i2' only refers to a type, but is being used as a value here. intTypeCheck.ts(121,21): error TS2351: This expression is not constructable. Type '{}' has no construct signatures. -intTypeCheck.ts(126,5): error TS2322: Type '{}' is not assignable to type 'i3'. +intTypeCheck.ts(126,17): error TS2322: Type '{}' is not assignable to type 'i3'. Type '{}' provides no match for the signature 'new (): any'. -intTypeCheck.ts(127,5): error TS2322: Type 'Object' is not assignable to type 'i3'. +intTypeCheck.ts(127,17): error TS2322: Type 'Object' is not assignable to type 'i3'. The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? Type 'Object' provides no match for the signature 'new (): any'. -intTypeCheck.ts(129,5): error TS2322: Type 'Base' is not assignable to type 'i3'. +intTypeCheck.ts(129,17): error TS2322: Type 'Base' is not assignable to type 'i3'. Type 'Base' provides no match for the signature 'new (): any'. -intTypeCheck.ts(131,5): error TS2322: Type '() => void' is not assignable to type 'i3'. +intTypeCheck.ts(131,17): error TS2322: Type '() => void' is not assignable to type 'i3'. Type '() => void' provides no match for the signature 'new (): any'. -intTypeCheck.ts(134,5): error TS2322: Type 'boolean' is not assignable to type 'i3'. +intTypeCheck.ts(134,17): error TS2322: Type 'boolean' is not assignable to type 'i3'. intTypeCheck.ts(134,21): error TS1109: Expression expected. intTypeCheck.ts(134,22): error TS2693: 'i3' only refers to a type, but is being used as a value here. intTypeCheck.ts(135,21): error TS2351: This expression is not constructable. Type '{}' has no construct signatures. intTypeCheck.ts(142,21): error TS2351: This expression is not constructable. Type 'i4' has no construct signatures. -intTypeCheck.ts(148,5): error TS2322: Type 'boolean' is not assignable to type 'i4'. +intTypeCheck.ts(148,17): error TS2322: Type 'boolean' is not assignable to type 'i4'. intTypeCheck.ts(148,21): error TS1109: Expression expected. intTypeCheck.ts(148,22): error TS2693: 'i4' only refers to a type, but is being used as a value here. intTypeCheck.ts(149,21): error TS2351: This expression is not constructable. Type '{}' has no construct signatures. -intTypeCheck.ts(154,5): error TS2739: Type '{}' is missing the following properties from type 'i5': p, p3, p6 -intTypeCheck.ts(155,5): error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? +intTypeCheck.ts(154,17): error TS2739: Type '{}' is missing the following properties from type 'i5': p, p3, p6 +intTypeCheck.ts(155,17): error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? Type 'Object' is missing the following properties from type 'i5': p, p3, p6 intTypeCheck.ts(156,21): error TS2351: This expression is not constructable. Type 'i5' has no construct signatures. -intTypeCheck.ts(157,5): error TS2739: Type 'Base' is missing the following properties from type 'i5': p, p3, p6 -intTypeCheck.ts(159,5): error TS2322: Type '() => void' is not assignable to type 'i5'. -intTypeCheck.ts(162,5): error TS2322: Type 'boolean' is not assignable to type 'i5'. +intTypeCheck.ts(157,17): error TS2739: Type 'Base' is missing the following properties from type 'i5': p, p3, p6 +intTypeCheck.ts(159,17): error TS2322: Type '() => void' is not assignable to type 'i5'. +intTypeCheck.ts(162,17): error TS2322: Type 'boolean' is not assignable to type 'i5'. intTypeCheck.ts(162,21): error TS1109: Expression expected. intTypeCheck.ts(162,22): error TS2693: 'i5' only refers to a type, but is being used as a value here. intTypeCheck.ts(163,21): error TS2351: This expression is not constructable. Type '{}' has no construct signatures. -intTypeCheck.ts(168,5): error TS2322: Type '{}' is not assignable to type 'i6'. +intTypeCheck.ts(168,17): error TS2322: Type '{}' is not assignable to type 'i6'. Type '{}' provides no match for the signature '(): any'. -intTypeCheck.ts(169,5): error TS2322: Type 'Object' is not assignable to type 'i6'. +intTypeCheck.ts(169,17): error TS2322: Type 'Object' is not assignable to type 'i6'. The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? Type 'Object' provides no match for the signature '(): any'. intTypeCheck.ts(170,17): error TS2350: Only a void function can be called with the 'new' keyword. -intTypeCheck.ts(171,5): error TS2322: Type 'Base' is not assignable to type 'i6'. +intTypeCheck.ts(171,17): error TS2322: Type 'Base' is not assignable to type 'i6'. Type 'Base' provides no match for the signature '(): any'. -intTypeCheck.ts(173,5): error TS2322: Type '() => void' is not assignable to type 'i6'. +intTypeCheck.ts(173,17): error TS2322: Type '() => void' is not assignable to type 'i6'. Type 'void' is not assignable to type 'number'. -intTypeCheck.ts(176,5): error TS2322: Type 'boolean' is not assignable to type 'i6'. +intTypeCheck.ts(176,17): error TS2322: Type 'boolean' is not assignable to type 'i6'. intTypeCheck.ts(176,21): error TS1109: Expression expected. intTypeCheck.ts(176,22): error TS2693: 'i6' only refers to a type, but is being used as a value here. intTypeCheck.ts(177,21): error TS2351: This expression is not constructable. Type '{}' has no construct signatures. -intTypeCheck.ts(182,5): error TS2322: Type '{}' is not assignable to type 'i7'. +intTypeCheck.ts(182,17): error TS2322: Type '{}' is not assignable to type 'i7'. Type '{}' provides no match for the signature 'new (): any'. -intTypeCheck.ts(183,5): error TS2322: Type 'Object' is not assignable to type 'i7'. +intTypeCheck.ts(183,17): error TS2322: Type 'Object' is not assignable to type 'i7'. The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? Type 'Object' provides no match for the signature 'new (): any'. intTypeCheck.ts(185,17): error TS2352: Conversion of type 'Base' to type 'i7' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type 'Base' provides no match for the signature 'new (): any'. -intTypeCheck.ts(187,5): error TS2322: Type '() => void' is not assignable to type 'i7'. +intTypeCheck.ts(187,17): error TS2322: Type '() => void' is not assignable to type 'i7'. Type '() => void' provides no match for the signature 'new (): any'. -intTypeCheck.ts(190,5): error TS2322: Type 'boolean' is not assignable to type 'i7'. +intTypeCheck.ts(190,17): error TS2322: Type 'boolean' is not assignable to type 'i7'. intTypeCheck.ts(190,21): error TS1109: Expression expected. intTypeCheck.ts(190,22): error TS2693: 'i7' only refers to a type, but is being used as a value here. intTypeCheck.ts(191,21): error TS2351: This expression is not constructable. Type '{}' has no construct signatures. intTypeCheck.ts(198,21): error TS2351: This expression is not constructable. Type 'i8' has no construct signatures. -intTypeCheck.ts(204,5): error TS2322: Type 'boolean' is not assignable to type 'i8'. +intTypeCheck.ts(204,17): error TS2322: Type 'boolean' is not assignable to type 'i8'. intTypeCheck.ts(204,21): error TS1109: Expression expected. intTypeCheck.ts(204,22): error TS2693: 'i8' only refers to a type, but is being used as a value here. intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. @@ -202,7 +202,7 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. p7: function (pa1, pa2):any { return 0; } }; var obj2: i1 = new Object(); - ~~~~ + ~~~~~~~~~~~~ !!! error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? !!! error TS2696: Type 'Object' is missing the following properties from type 'i1': p, p3, p6 var obj3: i1 = new obj0; @@ -210,16 +210,16 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. !!! error TS2351: This expression is not constructable. !!! error TS2351: Type 'i1' has no construct signatures. var obj4: i1 = new Base; - ~~~~ + ~~~~~~~~ !!! error TS2739: Type 'Base' is missing the following properties from type 'i1': p, p3, p6 var obj5: i1 = null; var obj6: i1 = function () { }; - ~~~~ + ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i1'. //var obj7: i1 = function foo() { }; var obj8: i1 = anyVar; var obj9: i1 = new anyVar; - ~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i1'. ~ !!! error TS1109: Expression expected. @@ -234,11 +234,11 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. // var obj11: i2; var obj12: i2 = {}; - ~~~~~ + ~~ !!! error TS2322: Type '{}' is not assignable to type 'i2'. !!! error TS2322: Type '{}' provides no match for the signature '(): any'. var obj13: i2 = new Object(); - ~~~~~ + ~~~~~~~~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i2'. !!! error TS2322: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? !!! error TS2322: Type 'Object' provides no match for the signature '(): any'. @@ -246,7 +246,7 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. ~~~~~~~~~ !!! error TS2350: Only a void function can be called with the 'new' keyword. var obj15: i2 = new Base; - ~~~~~ + ~~~~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i2'. !!! error TS2322: Type 'Base' provides no match for the signature '(): any'. var obj16: i2 = null; @@ -254,7 +254,7 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. //var obj18: i2 = function foo() { }; var obj19: i2 = anyVar; var obj20: i2 = new anyVar; - ~~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i2'. ~ !!! error TS1109: Expression expected. @@ -269,28 +269,28 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. // var obj22: i3; var obj23: i3 = {}; - ~~~~~ + ~~ !!! error TS2322: Type '{}' is not assignable to type 'i3'. !!! error TS2322: Type '{}' provides no match for the signature 'new (): any'. var obj24: i3 = new Object(); - ~~~~~ + ~~~~~~~~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i3'. !!! error TS2322: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? !!! error TS2322: Type 'Object' provides no match for the signature 'new (): any'. var obj25: i3 = new obj22; var obj26: i3 = new Base; - ~~~~~ + ~~~~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i3'. !!! error TS2322: Type 'Base' provides no match for the signature 'new (): any'. var obj27: i3 = null; var obj28: i3 = function () { }; - ~~~~~ + ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i3'. !!! error TS2322: Type '() => void' provides no match for the signature 'new (): any'. //var obj29: i3 = function foo() { }; var obj30: i3 = anyVar; var obj31: i3 = new anyVar; - ~~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i3'. ~ !!! error TS1109: Expression expected. @@ -316,7 +316,7 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. //var obj40: i4 = function foo() { }; var obj41: i4 = anyVar; var obj42: i4 = new anyVar; - ~~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i4'. ~ !!! error TS1109: Expression expected. @@ -331,10 +331,10 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. // var obj44: i5; var obj45: i5 = {}; - ~~~~~ + ~~ !!! error TS2739: Type '{}' is missing the following properties from type 'i5': p, p3, p6 var obj46: i5 = new Object(); - ~~~~~ + ~~~~~~~~~~~~ !!! error TS2696: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? !!! error TS2696: Type 'Object' is missing the following properties from type 'i5': p, p3, p6 var obj47: i5 = new obj44; @@ -342,16 +342,16 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. !!! error TS2351: This expression is not constructable. !!! error TS2351: Type 'i5' has no construct signatures. var obj48: i5 = new Base; - ~~~~~ + ~~~~~~~~ !!! error TS2739: Type 'Base' is missing the following properties from type 'i5': p, p3, p6 var obj49: i5 = null; var obj50: i5 = function () { }; - ~~~~~ + ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i5'. //var obj51: i5 = function foo() { }; var obj52: i5 = anyVar; var obj53: i5 = new anyVar; - ~~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i5'. ~ !!! error TS1109: Expression expected. @@ -366,11 +366,11 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. // var obj55: i6; var obj56: i6 = {}; - ~~~~~ + ~~ !!! error TS2322: Type '{}' is not assignable to type 'i6'. !!! error TS2322: Type '{}' provides no match for the signature '(): any'. var obj57: i6 = new Object(); - ~~~~~ + ~~~~~~~~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i6'. !!! error TS2322: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? !!! error TS2322: Type 'Object' provides no match for the signature '(): any'. @@ -378,18 +378,18 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. ~~~~~~~~~ !!! error TS2350: Only a void function can be called with the 'new' keyword. var obj59: i6 = new Base; - ~~~~~ + ~~~~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i6'. !!! error TS2322: Type 'Base' provides no match for the signature '(): any'. var obj60: i6 = null; var obj61: i6 = function () { }; - ~~~~~ + ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i6'. !!! error TS2322: Type 'void' is not assignable to type 'number'. //var obj62: i6 = function foo() { }; var obj63: i6 = anyVar; var obj64: i6 = new anyVar; - ~~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i6'. ~ !!! error TS1109: Expression expected. @@ -404,11 +404,11 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. // var obj66: i7; var obj67: i7 = {}; - ~~~~~ + ~~ !!! error TS2322: Type '{}' is not assignable to type 'i7'. !!! error TS2322: Type '{}' provides no match for the signature 'new (): any'. var obj68: i7 = new Object(); - ~~~~~ + ~~~~~~~~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i7'. !!! error TS2322: The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead? !!! error TS2322: Type 'Object' provides no match for the signature 'new (): any'. @@ -419,13 +419,13 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. !!! error TS2352: Type 'Base' provides no match for the signature 'new (): any'. var obj71: i7 = null; var obj72: i7 = function () { }; - ~~~~~ + ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i7'. !!! error TS2322: Type '() => void' provides no match for the signature 'new (): any'. //var obj73: i7 = function foo() { }; var obj74: i7 = anyVar; var obj75: i7 = new anyVar; - ~~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i7'. ~ !!! error TS1109: Expression expected. @@ -451,7 +451,7 @@ intTypeCheck.ts(205,21): error TS2351: This expression is not constructable. //var obj84: i8 = function foo() { }; var obj85: i8 = anyVar; var obj86: i8 = new anyVar; - ~~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i8'. ~ !!! error TS1109: Expression expected. diff --git a/tests/baselines/reference/intTypeCheck.types b/tests/baselines/reference/intTypeCheck.types index cf1d1dc400001..23e4a9d909c63 100644 --- a/tests/baselines/reference/intTypeCheck.types +++ b/tests/baselines/reference/intTypeCheck.types @@ -274,8 +274,8 @@ var obj0: i1; var obj1: i1 = { >obj1 : i1 > : ^^ ->{ p: null, p3: function ():any { return 0; }, p6: function (pa1):any { return 0; }, p7: function (pa1, pa2):any { return 0; }} : { p: null; p3: () => any; p6: (pa1: any) => any; p7: (pa1: any, pa2: any) => any; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^ +>{ p: null, p3: function ():any { return 0; }, p6: function (pa1):any { return 0; }, p7: function (pa1, pa2):any { return 0; }} : i1 +> : ^^ p: null, >p : null @@ -315,24 +315,24 @@ var obj1: i1 = { var obj2: i1 = new Object(); >obj2 : i1 > : ^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : i1 +> : ^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ var obj3: i1 = new obj0; >obj3 : i1 > : ^^ ->new obj0 : any -> : ^^^ +>new obj0 : i1 +> : ^^ >obj0 : i1 > : ^^ var obj4: i1 = new Base; >obj4 : i1 > : ^^ ->new Base : Base -> : ^^^^ +>new Base : i1 +> : ^^ >Base : typeof Base > : ^^^^^^^^^^^ @@ -343,8 +343,8 @@ var obj5: i1 = null; var obj6: i1 = function () { }; >obj6 : i1 > : ^^ ->function () { } : () => void -> : ^^^^^^^^^^ +>function () { } : i1 +> : ^^ //var obj7: i1 = function foo() { }; var obj8: i1 = anyVar; @@ -358,8 +358,8 @@ var obj8: i1 = anyVar; var obj9: i1 = new anyVar; >obj9 : i1 > : ^^ ->new anyVar : boolean -> : ^^^^^^^ +>new anyVar : i1 +> : ^^ >new : ^^^^^^^ >new : any @@ -374,8 +374,8 @@ var obj9: i1 = new anyVar; var obj10: i1 = new {}; >obj10 : i1 > : ^^ ->new {} : any -> : ^^^ +>new {} : i1 +> : ^^ >{} : {} > : ^^ @@ -389,30 +389,30 @@ var obj11: i2; var obj12: i2 = {}; >obj12 : i2 > : ^^ ->{} : {} +>{} : i2 > : ^^ var obj13: i2 = new Object(); >obj13 : i2 > : ^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : i2 +> : ^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ var obj14: i2 = new obj11; >obj14 : i2 > : ^^ ->new obj11 : any -> : ^^^ +>new obj11 : i2 +> : ^^ >obj11 : i2 > : ^^ var obj15: i2 = new Base; >obj15 : i2 > : ^^ ->new Base : Base -> : ^^^^ +>new Base : i2 +> : ^^ >Base : typeof Base > : ^^^^^^^^^^^ @@ -423,8 +423,8 @@ var obj16: i2 = null; var obj17: i2 = function ():any { return 0; }; >obj17 : i2 > : ^^ ->function ():any { return 0; } : () => any -> : ^^^^^^ +>function ():any { return 0; } : i2 +> : ^^ >0 : 0 > : ^ @@ -440,8 +440,8 @@ var obj19: i2 = anyVar; var obj20: i2 = new anyVar; >obj20 : i2 > : ^^ ->new anyVar : boolean -> : ^^^^^^^ +>new anyVar : i2 +> : ^^ >new : ^^^^^^^ >new : any @@ -456,8 +456,8 @@ var obj20: i2 = new anyVar; var obj21: i2 = new {}; >obj21 : i2 > : ^^ ->new {} : any -> : ^^^ +>new {} : i2 +> : ^^ >{} : {} > : ^^ @@ -471,30 +471,30 @@ var obj22: i3; var obj23: i3 = {}; >obj23 : i3 > : ^^ ->{} : {} +>{} : i3 > : ^^ var obj24: i3 = new Object(); >obj24 : i3 > : ^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : i3 +> : ^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ var obj25: i3 = new obj22; >obj25 : i3 > : ^^ ->new obj22 : any -> : ^^^ +>new obj22 : i3 +> : ^^ >obj22 : i3 > : ^^ var obj26: i3 = new Base; >obj26 : i3 > : ^^ ->new Base : Base -> : ^^^^ +>new Base : i3 +> : ^^ >Base : typeof Base > : ^^^^^^^^^^^ @@ -505,8 +505,8 @@ var obj27: i3 = null; var obj28: i3 = function () { }; >obj28 : i3 > : ^^ ->function () { } : () => void -> : ^^^^^^^^^^ +>function () { } : i3 +> : ^^ //var obj29: i3 = function foo() { }; var obj30: i3 = anyVar; @@ -520,8 +520,8 @@ var obj30: i3 = anyVar; var obj31: i3 = new anyVar; >obj31 : i3 > : ^^ ->new anyVar : boolean -> : ^^^^^^^ +>new anyVar : i3 +> : ^^ >new : ^^^^^^^ >new : any @@ -536,8 +536,8 @@ var obj31: i3 = new anyVar; var obj32: i3 = new {}; >obj32 : i3 > : ^^ ->new {} : any -> : ^^^ +>new {} : i3 +> : ^^ >{} : {} > : ^^ @@ -551,30 +551,30 @@ var obj33: i4; var obj34: i4 = {}; >obj34 : i4 > : ^^ ->{} : {} +>{} : i4 > : ^^ var obj35: i4 = new Object(); >obj35 : i4 > : ^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : i4 +> : ^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ var obj36: i4 = new obj33; >obj36 : i4 > : ^^ ->new obj33 : any -> : ^^^ +>new obj33 : i4 +> : ^^ >obj33 : i4 > : ^^ var obj37: i4 = new Base; >obj37 : i4 > : ^^ ->new Base : Base -> : ^^^^ +>new Base : i4 +> : ^^ >Base : typeof Base > : ^^^^^^^^^^^ @@ -585,8 +585,8 @@ var obj38: i4 = null; var obj39: i4 = function () { }; >obj39 : i4 > : ^^ ->function () { } : () => void -> : ^^^^^^^^^^ +>function () { } : i4 +> : ^^ //var obj40: i4 = function foo() { }; var obj41: i4 = anyVar; @@ -600,8 +600,8 @@ var obj41: i4 = anyVar; var obj42: i4 = new anyVar; >obj42 : i4 > : ^^ ->new anyVar : boolean -> : ^^^^^^^ +>new anyVar : i4 +> : ^^ >new : ^^^^^^^ >new : any @@ -616,8 +616,8 @@ var obj42: i4 = new anyVar; var obj43: i4 = new {}; >obj43 : i4 > : ^^ ->new {} : any -> : ^^^ +>new {} : i4 +> : ^^ >{} : {} > : ^^ @@ -631,30 +631,30 @@ var obj44: i5; var obj45: i5 = {}; >obj45 : i5 > : ^^ ->{} : {} +>{} : i5 > : ^^ var obj46: i5 = new Object(); >obj46 : i5 > : ^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : i5 +> : ^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ var obj47: i5 = new obj44; >obj47 : i5 > : ^^ ->new obj44 : any -> : ^^^ +>new obj44 : i5 +> : ^^ >obj44 : i5 > : ^^ var obj48: i5 = new Base; >obj48 : i5 > : ^^ ->new Base : Base -> : ^^^^ +>new Base : i5 +> : ^^ >Base : typeof Base > : ^^^^^^^^^^^ @@ -665,8 +665,8 @@ var obj49: i5 = null; var obj50: i5 = function () { }; >obj50 : i5 > : ^^ ->function () { } : () => void -> : ^^^^^^^^^^ +>function () { } : i5 +> : ^^ //var obj51: i5 = function foo() { }; var obj52: i5 = anyVar; @@ -680,8 +680,8 @@ var obj52: i5 = anyVar; var obj53: i5 = new anyVar; >obj53 : i5 > : ^^ ->new anyVar : boolean -> : ^^^^^^^ +>new anyVar : i5 +> : ^^ >new : ^^^^^^^ >new : any @@ -696,8 +696,8 @@ var obj53: i5 = new anyVar; var obj54: i5 = new {}; >obj54 : i5 > : ^^ ->new {} : any -> : ^^^ +>new {} : i5 +> : ^^ >{} : {} > : ^^ @@ -711,30 +711,30 @@ var obj55: i6; var obj56: i6 = {}; >obj56 : i6 > : ^^ ->{} : {} +>{} : i6 > : ^^ var obj57: i6 = new Object(); >obj57 : i6 > : ^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : i6 +> : ^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ var obj58: i6 = new obj55; >obj58 : i6 > : ^^ ->new obj55 : any -> : ^^^ +>new obj55 : i6 +> : ^^ >obj55 : i6 > : ^^ var obj59: i6 = new Base; >obj59 : i6 > : ^^ ->new Base : Base -> : ^^^^ +>new Base : i6 +> : ^^ >Base : typeof Base > : ^^^^^^^^^^^ @@ -745,8 +745,8 @@ var obj60: i6 = null; var obj61: i6 = function () { }; >obj61 : i6 > : ^^ ->function () { } : () => void -> : ^^^^^^^^^^ +>function () { } : i6 +> : ^^ //var obj62: i6 = function foo() { }; var obj63: i6 = anyVar; @@ -760,8 +760,8 @@ var obj63: i6 = anyVar; var obj64: i6 = new anyVar; >obj64 : i6 > : ^^ ->new anyVar : boolean -> : ^^^^^^^ +>new anyVar : i6 +> : ^^ >new : ^^^^^^^ >new : any @@ -776,8 +776,8 @@ var obj64: i6 = new anyVar; var obj65: i6 = new {}; >obj65 : i6 > : ^^ ->new {} : any -> : ^^^ +>new {} : i6 +> : ^^ >{} : {} > : ^^ @@ -791,22 +791,22 @@ var obj66: i7; var obj67: i7 = {}; >obj67 : i7 > : ^^ ->{} : {} +>{} : i7 > : ^^ var obj68: i7 = new Object(); >obj68 : i7 > : ^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : i7 +> : ^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ var obj69: i7 = new obj66; >obj69 : i7 > : ^^ ->new obj66 : any -> : ^^^ +>new obj66 : i7 +> : ^^ >obj66 : i7 > : ^^ @@ -827,8 +827,8 @@ var obj71: i7 = null; var obj72: i7 = function () { }; >obj72 : i7 > : ^^ ->function () { } : () => void -> : ^^^^^^^^^^ +>function () { } : i7 +> : ^^ //var obj73: i7 = function foo() { }; var obj74: i7 = anyVar; @@ -842,8 +842,8 @@ var obj74: i7 = anyVar; var obj75: i7 = new anyVar; >obj75 : i7 > : ^^ ->new anyVar : boolean -> : ^^^^^^^ +>new anyVar : i7 +> : ^^ >new : ^^^^^^^ >new : any @@ -858,8 +858,8 @@ var obj75: i7 = new anyVar; var obj76: i7 = new {}; >obj76 : i7 > : ^^ ->new {} : any -> : ^^^ +>new {} : i7 +> : ^^ >{} : {} > : ^^ @@ -873,30 +873,30 @@ var obj77: i8; var obj78: i8 = {}; >obj78 : i8 > : ^^ ->{} : {} +>{} : i8 > : ^^ var obj79: i8 = new Object(); >obj79 : i8 > : ^^ ->new Object() : Object -> : ^^^^^^ +>new Object() : i8 +> : ^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ var obj80: i8 = new obj77; >obj80 : i8 > : ^^ ->new obj77 : any -> : ^^^ +>new obj77 : i8 +> : ^^ >obj77 : i8 > : ^^ var obj81: i8 = new Base; >obj81 : i8 > : ^^ ->new Base : Base -> : ^^^^ +>new Base : i8 +> : ^^ >Base : typeof Base > : ^^^^^^^^^^^ @@ -907,8 +907,8 @@ var obj82: i8 = null; var obj83: i8 = function () { }; >obj83 : i8 > : ^^ ->function () { } : () => void -> : ^^^^^^^^^^ +>function () { } : i8 +> : ^^ //var obj84: i8 = function foo() { }; var obj85: i8 = anyVar; @@ -922,8 +922,8 @@ var obj85: i8 = anyVar; var obj86: i8 = new anyVar; >obj86 : i8 > : ^^ ->new anyVar : boolean -> : ^^^^^^^ +>new anyVar : i8 +> : ^^ >new : ^^^^^^^ >new : any @@ -938,8 +938,8 @@ var obj86: i8 = new anyVar; var obj87: i8 = new {}; >obj87 : i8 > : ^^ ->new {} : any -> : ^^^ +>new {} : i8 +> : ^^ >{} : {} > : ^^ diff --git a/tests/baselines/reference/interface0.types b/tests/baselines/reference/interface0.types index d7a725e41d3e8..7a07f82c174ed 100644 --- a/tests/baselines/reference/interface0.types +++ b/tests/baselines/reference/interface0.types @@ -10,8 +10,8 @@ interface Generic { var y: Generic = { x: 3 }; >y : Generic > : ^^^^^^^^^^^^^^^ ->{ x: 3 } : { x: number; } -> : ^^^^^^^^^^^^^^ +>{ x: 3 } : Generic +> : ^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ >3 : 3 diff --git a/tests/baselines/reference/interfaceAssignmentCompat.types b/tests/baselines/reference/interfaceAssignmentCompat.types index f235305b6f434..eb0260bad64be 100644 --- a/tests/baselines/reference/interfaceAssignmentCompat.types +++ b/tests/baselines/reference/interfaceAssignmentCompat.types @@ -91,8 +91,8 @@ module M { var x:IEye[]= []; >x : IEye[] > : ^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : IEye[] +> : ^^^^^^ var result=""; >result : string @@ -251,8 +251,8 @@ module M { var eeks:IFrenchEye[] = []; >eeks : IFrenchEye[] > : ^^^^^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : IFrenchEye[] +> : ^^^^^^^^^^^^ for (var j=z.length=1;j>=0;j--) { >j : number diff --git a/tests/baselines/reference/interfaceDeclaration1.types b/tests/baselines/reference/interfaceDeclaration1.types index 09a038b065466..fbc853b42ac23 100644 --- a/tests/baselines/reference/interfaceDeclaration1.types +++ b/tests/baselines/reference/interfaceDeclaration1.types @@ -75,8 +75,8 @@ class C1 implements I3 { var prototype: number = 3; >prototype : number > : ^^^^^^ ->3 : 3 -> : ^ +>3 : number +> : ^^^^^^ } } diff --git a/tests/baselines/reference/interfaceExtendingClass.types b/tests/baselines/reference/interfaceExtendingClass.types index ca2eb753fc16a..533f041225edf 100644 --- a/tests/baselines/reference/interfaceExtendingClass.types +++ b/tests/baselines/reference/interfaceExtendingClass.types @@ -68,8 +68,8 @@ var r3 = i.Z; var f: Foo = i; >f : Foo > : ^^^ ->i : I -> : ^ +>i : Foo +> : ^^^ i = f; >i = f : Foo diff --git a/tests/baselines/reference/interfaceImplementation1.errors.txt b/tests/baselines/reference/interfaceImplementation1.errors.txt index 7de348c7ce7b4..aa1c26954231e 100644 --- a/tests/baselines/reference/interfaceImplementation1.errors.txt +++ b/tests/baselines/reference/interfaceImplementation1.errors.txt @@ -2,7 +2,7 @@ interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' incorrectly implemen Property 'iObj' is private in type 'C1' but not in type 'I1'. interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' incorrectly implements interface 'I2'. Property 'iFn' is private in type 'C1' but not in type 'I2'. -interfaceImplementation1.ts(34,5): error TS2322: Type '() => C2' is not assignable to type 'I4'. +interfaceImplementation1.ts(34,12): error TS2322: Type '() => C2' is not assignable to type 'I4'. Type '() => C2' provides no match for the signature 'new (): I3'. @@ -47,7 +47,7 @@ interfaceImplementation1.ts(34,5): error TS2322: Type '() => C2' is not assignab } var a:I4 = function(){ - ~ + ~~~~~~~~ !!! error TS2322: Type '() => C2' is not assignable to type 'I4'. !!! error TS2322: Type '() => C2' provides no match for the signature 'new (): I3'. return new C2(); diff --git a/tests/baselines/reference/interfaceImplementation1.types b/tests/baselines/reference/interfaceImplementation1.types index d00a06ed54224..8c96a54795a6b 100644 --- a/tests/baselines/reference/interfaceImplementation1.types +++ b/tests/baselines/reference/interfaceImplementation1.types @@ -86,8 +86,8 @@ class C2 implements I3 { var a:I4 = function(){ >a : I4 > : ^^ ->function(){ return new C2();} : () => C2 -> : ^^^^^^^^ +>function(){ return new C2();} : I4 +> : ^^ return new C2(); >new C2() : C2 diff --git a/tests/baselines/reference/interfaceWithPropertyOfEveryType.types b/tests/baselines/reference/interfaceWithPropertyOfEveryType.types index ebe5752bb6c6a..2f5edd0eb9cb0 100644 --- a/tests/baselines/reference/interfaceWithPropertyOfEveryType.types +++ b/tests/baselines/reference/interfaceWithPropertyOfEveryType.types @@ -99,8 +99,8 @@ interface Foo { var a: Foo = { >a : Foo > : ^^^ ->{ a: 1, b: '', c: true, d: {}, e: null , f: [1], g: {}, h: (x: number) => 1, i: (x: T) => x, j: null, k: new C(), l: f1, m: M, n: {}, o: E.A} : { a: number; b: string; c: true; d: {}; e: null; f: number[]; g: {}; h: (x: number) => number; i: (x: T) => T; j: Foo; k: C; l: () => void; m: typeof M; n: {}; o: E; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: 1, b: '', c: true, d: {}, e: null , f: [1], g: {}, h: (x: number) => 1, i: (x: T) => x, j: null, k: new C(), l: f1, m: M, n: {}, o: E.A} : Foo +> : ^^^ a: 1, >a : number diff --git a/tests/baselines/reference/internalAliasEnum.types b/tests/baselines/reference/internalAliasEnum.types index 78c0fa3dc9c38..bacbe0589cf21 100644 --- a/tests/baselines/reference/internalAliasEnum.types +++ b/tests/baselines/reference/internalAliasEnum.types @@ -38,11 +38,11 @@ module c { export var bVal: b = b.Sunday; >bVal : b > : ^ ->b.Sunday : b.Sunday -> : ^^^^^^^^ +>b.Sunday : b +> : ^ >b : typeof b > : ^^^^^^^^ ->Sunday : b.Sunday -> : ^^^^^^^^ +>Sunday : b +> : ^ } diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.types b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.types index b668bd0fac14e..5d1406a95b787 100644 --- a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.types +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.types @@ -38,11 +38,11 @@ export module c { export var bVal: b = b.Sunday; >bVal : b > : ^ ->b.Sunday : b.Sunday -> : ^^^^^^^^ +>b.Sunday : b +> : ^ >b : typeof b > : ^^^^^^^^ ->Sunday : b.Sunday -> : ^^^^^^^^ +>Sunday : b +> : ^ } diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.types b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.types index 088e81132f7c7..c554276937ed7 100644 --- a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.types @@ -38,11 +38,11 @@ export module c { export var bVal: b = b.Sunday; >bVal : b > : ^ ->b.Sunday : b.Sunday -> : ^^^^^^^^ +>b.Sunday : b +> : ^ >b : typeof b > : ^^^^^^^^ ->Sunday : b.Sunday -> : ^^^^^^^^ +>Sunday : b +> : ^ } diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExportAccessError.types b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExportAccessError.types index 02458a9be1efb..47e52f154b205 100644 --- a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExportAccessError.types +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExportAccessError.types @@ -38,12 +38,12 @@ export module c { export var bVal: b = b.Sunday; >bVal : b > : ^ ->b.Sunday : b.Sunday -> : ^^^^^^^^ +>b.Sunday : b +> : ^ >b : typeof b > : ^^^^^^^^ ->Sunday : b.Sunday -> : ^^^^^^^^ +>Sunday : b +> : ^ } var happyFriday = c.b.Friday; diff --git a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.types b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.types index 8e202e8f1f596..6df12b6c0a7d4 100644 --- a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.types +++ b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.types @@ -34,10 +34,10 @@ export import b = a.weekend; export var bVal: b = b.Sunday; >bVal : b > : ^ ->b.Sunday : b.Sunday -> : ^^^^^^^^ +>b.Sunday : b +> : ^ >b : typeof b > : ^^^^^^^^ ->Sunday : b.Sunday -> : ^^^^^^^^ +>Sunday : b +> : ^ diff --git a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.types b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.types index 2c0c9699d3041..d7ad6797d63a0 100644 --- a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.types @@ -34,10 +34,10 @@ import b = a.weekend; export var bVal: b = b.Sunday; >bVal : b > : ^ ->b.Sunday : b.Sunday -> : ^^^^^^^^ +>b.Sunday : b +> : ^ >b : typeof b > : ^^^^^^^^ ->Sunday : b.Sunday -> : ^^^^^^^^ +>Sunday : b +> : ^ diff --git a/tests/baselines/reference/intersectionPropertyCheck.errors.txt b/tests/baselines/reference/intersectionPropertyCheck.errors.txt index 023539bd7b2e6..5c17a14aa91af 100644 --- a/tests/baselines/reference/intersectionPropertyCheck.errors.txt +++ b/tests/baselines/reference/intersectionPropertyCheck.errors.txt @@ -1,5 +1,7 @@ -intersectionPropertyCheck.ts(1,68): error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{ x: string; }'. -intersectionPropertyCheck.ts(4,5): error TS2322: Type '{ a: { y: string; }; }' is not assignable to type '{ a?: { x?: number | undefined; } | undefined; } & { c?: string | undefined; }'. +intersectionPropertyCheck.ts(1,68): error TS2322: Type '{ a: { x: string; y: number; }; c: number; }' is not assignable to type '{ a: { x: string; }; } & { c: number; }'. + Types of property 'a' are incompatible. + Object literal may only specify known properties, and 'y' does not exist in type '{ x: string; }'. +intersectionPropertyCheck.ts(4,53): error TS2322: Type '{ a: { y: string; }; }' is not assignable to type '{ a?: { x?: number | undefined; } | undefined; } & { c?: string | undefined; }'. Types of property 'a' are incompatible. Type '{ y: string; }' has no properties in common with type '{ x?: number | undefined; }'. intersectionPropertyCheck.ts(7,3): error TS2322: Type 'T & { a: boolean; }' is not assignable to type '{ a?: string | undefined; }'. @@ -11,12 +13,13 @@ intersectionPropertyCheck.ts(17,22): error TS2322: Type 'boolean' is not assigna ==== intersectionPropertyCheck.ts (4 errors) ==== let obj: { a: { x: string } } & { c: number } = { a: { x: 'hello', y: 2 }, c: 5 }; // Nested excess property ~ -!!! error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{ x: string; }'. -!!! related TS6500 intersectionPropertyCheck.ts:1:12: The expected type comes from property 'a' which is declared here on type '{ a: { x: string; }; } & { c: number; }' +!!! error TS2322: Type '{ a: { x: string; y: number; }; c: number; }' is not assignable to type '{ a: { x: string; }; } & { c: number; }'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Object literal may only specify known properties, and 'y' does not exist in type '{ x: string; }'. declare let wrong: { a: { y: string } }; let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak object type - ~~~~ + ~~~~~ !!! error TS2322: Type '{ a: { y: string; }; }' is not assignable to type '{ a?: { x?: number | undefined; } | undefined; } & { c?: string | undefined; }'. !!! error TS2322: Types of property 'a' are incompatible. !!! error TS2322: Type '{ y: string; }' has no properties in common with type '{ x?: number | undefined; }'. diff --git a/tests/baselines/reference/intersectionPropertyCheck.types b/tests/baselines/reference/intersectionPropertyCheck.types index 556b332d60374..39963a65e2671 100644 --- a/tests/baselines/reference/intersectionPropertyCheck.types +++ b/tests/baselines/reference/intersectionPropertyCheck.types @@ -10,8 +10,8 @@ let obj: { a: { x: string } } & { c: number } = { a: { x: 'hello', y: 2 }, c: 5 > : ^^^^^^ >c : number > : ^^^^^^ ->{ a: { x: 'hello', y: 2 }, c: 5 } : { a: { x: string; y: number; }; c: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: { x: 'hello', y: 2 }, c: 5 } : { a: { x: string; }; } & { c: number; } +> : ^^^^^ ^^^^^^^^^^^ ^^^ >a : { x: string; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >{ x: 'hello', y: 2 } : { x: string; y: number; } @@ -46,8 +46,8 @@ let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak objec > : ^^^^^^^^^^^^^^^^^^ >c : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->wrong : { a: { y: string; }; } -> : ^^^^^ ^^^ +>wrong : { a?: { x?: number; }; } & { c?: string; } +> : ^^^^^^ ^^^^^^^^^^^^ ^^^ function foo(x: { a?: string }, y: T & { a: boolean }) { >foo : (x: { a?: string; }, y: T & { a: boolean; }) => void diff --git a/tests/baselines/reference/intersectionReduction.types b/tests/baselines/reference/intersectionReduction.types index b6ca4e9036281..fc2cd65d4fba1 100644 --- a/tests/baselines/reference/intersectionReduction.types +++ b/tests/baselines/reference/intersectionReduction.types @@ -556,7 +556,7 @@ function bar(x: T & CA) { let ab: ABI = x; >ab : ABI > : ^^^ ->x : CA -> : ^^ +>x : ABI +> : ^^^ } diff --git a/tests/baselines/reference/intersectionWithUnionConstraint.errors.txt b/tests/baselines/reference/intersectionWithUnionConstraint.errors.txt index e9c123f08768d..34d89bd8c31e0 100644 --- a/tests/baselines/reference/intersectionWithUnionConstraint.errors.txt +++ b/tests/baselines/reference/intersectionWithUnionConstraint.errors.txt @@ -1,12 +1,12 @@ -intersectionWithUnionConstraint.ts(7,9): error TS2322: Type 'string | undefined' is not assignable to type 'string | number'. +intersectionWithUnionConstraint.ts(7,31): error TS2322: Type 'string | undefined' is not assignable to type 'string | number'. Type 'undefined' is not assignable to type 'string | number'. -intersectionWithUnionConstraint.ts(8,9): error TS2322: Type 'string | undefined' is not assignable to type 'string | null'. +intersectionWithUnionConstraint.ts(8,29): error TS2322: Type 'string | undefined' is not assignable to type 'string | null'. Type 'undefined' is not assignable to type 'string | null'. -intersectionWithUnionConstraint.ts(10,9): error TS2322: Type 'string | undefined' is not assignable to type 'number | null'. +intersectionWithUnionConstraint.ts(10,29): error TS2322: Type 'string | undefined' is not assignable to type 'number | null'. Type 'undefined' is not assignable to type 'number | null'. -intersectionWithUnionConstraint.ts(11,9): error TS2322: Type 'string | undefined' is not assignable to type 'number | undefined'. +intersectionWithUnionConstraint.ts(11,34): error TS2322: Type 'string | undefined' is not assignable to type 'number | undefined'. Type 'string' is not assignable to type 'number'. -intersectionWithUnionConstraint.ts(12,9): error TS2322: Type 'string | undefined' is not assignable to type 'null | undefined'. +intersectionWithUnionConstraint.ts(12,32): error TS2322: Type 'string | undefined' is not assignable to type 'null | undefined'. Type 'string' is not assignable to type 'null | undefined'. @@ -18,24 +18,24 @@ intersectionWithUnionConstraint.ts(12,9): error TS2322: Type 'string | undefined function f2(x: T & U) { let y1: string | number = x; // Error - ~~ + ~ !!! error TS2322: Type 'string | undefined' is not assignable to type 'string | number'. !!! error TS2322: Type 'undefined' is not assignable to type 'string | number'. let y2: string | null = x; // Error - ~~ + ~ !!! error TS2322: Type 'string | undefined' is not assignable to type 'string | null'. !!! error TS2322: Type 'undefined' is not assignable to type 'string | null'. let y3: string | undefined = x; let y4: number | null = x; // Error - ~~ + ~ !!! error TS2322: Type 'string | undefined' is not assignable to type 'number | null'. !!! error TS2322: Type 'undefined' is not assignable to type 'number | null'. let y5: number | undefined = x; // Error - ~~ + ~ !!! error TS2322: Type 'string | undefined' is not assignable to type 'number | undefined'. !!! error TS2322: Type 'string' is not assignable to type 'number'. let y6: null | undefined = x; // Error - ~~ + ~ !!! error TS2322: Type 'string | undefined' is not assignable to type 'null | undefined'. !!! error TS2322: Type 'string' is not assignable to type 'null | undefined'. } diff --git a/tests/baselines/reference/intersectionWithUnionConstraint.types b/tests/baselines/reference/intersectionWithUnionConstraint.types index 43435329a10f4..e4235d0763631 100644 --- a/tests/baselines/reference/intersectionWithUnionConstraint.types +++ b/tests/baselines/reference/intersectionWithUnionConstraint.types @@ -24,14 +24,14 @@ function f2y1 : string | number > : ^^^^^^^^^^^^^^^ ->x : string | undefined -> : ^^^^^^^^^^^^^^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ let y2: string | null = x; // Error >y2 : string | null > : ^^^^^^^^^^^^^ ->x : string | undefined -> : ^^^^^^^^^^^^^^^^^^ +>x : string | null +> : ^^^^^^^^^^^^^ let y3: string | undefined = x; >y3 : string | undefined @@ -42,20 +42,20 @@ function f2y4 : number | null > : ^^^^^^^^^^^^^ ->x : string | undefined -> : ^^^^^^^^^^^^^^^^^^ +>x : number | null +> : ^^^^^^^^^^^^^ let y5: number | undefined = x; // Error >y5 : number | undefined > : ^^^^^^^^^^^^^^^^^^ ->x : string | undefined +>x : number | undefined > : ^^^^^^^^^^^^^^^^^^ let y6: null | undefined = x; // Error >y6 : null | undefined > : ^^^^^^^^^^^^^^^^ ->x : string | undefined -> : ^^^^^^^^^^^^^^^^^^ +>x : null | undefined +> : ^^^^^^^^^^^^^^^^ } type T1 = (string | number | undefined) & (string | null | undefined); // string | undefined diff --git a/tests/baselines/reference/intrinsicKeyword.types b/tests/baselines/reference/intrinsicKeyword.types index ae043729da5d0..f5ce64274e799 100644 --- a/tests/baselines/reference/intrinsicKeyword.types +++ b/tests/baselines/reference/intrinsicKeyword.types @@ -64,7 +64,7 @@ function f3() { let s1: intrinsic = 'ok'; >s1 : string > : ^^^^^^ ->'ok' : "ok" -> : ^^^^ +>'ok' : string +> : ^^^^^^ } diff --git a/tests/baselines/reference/invalidBooleanAssignments.errors.txt b/tests/baselines/reference/invalidBooleanAssignments.errors.txt index 15f46942c2b1f..2016dc7ab46b4 100644 --- a/tests/baselines/reference/invalidBooleanAssignments.errors.txt +++ b/tests/baselines/reference/invalidBooleanAssignments.errors.txt @@ -1,10 +1,10 @@ -invalidBooleanAssignments.ts(3,5): error TS2322: Type 'boolean' is not assignable to type 'number'. -invalidBooleanAssignments.ts(4,5): error TS2322: Type 'boolean' is not assignable to type 'string'. -invalidBooleanAssignments.ts(5,5): error TS2322: Type 'boolean' is not assignable to type 'void'. -invalidBooleanAssignments.ts(9,5): error TS2322: Type 'true' is not assignable to type 'E'. -invalidBooleanAssignments.ts(12,5): error TS2322: Type 'boolean' is not assignable to type 'C'. -invalidBooleanAssignments.ts(15,5): error TS2322: Type 'boolean' is not assignable to type 'I'. -invalidBooleanAssignments.ts(17,5): error TS2322: Type 'boolean' is not assignable to type '() => string'. +invalidBooleanAssignments.ts(3,17): error TS2322: Type 'boolean' is not assignable to type 'number'. +invalidBooleanAssignments.ts(4,17): error TS2322: Type 'boolean' is not assignable to type 'string'. +invalidBooleanAssignments.ts(5,15): error TS2322: Type 'boolean' is not assignable to type 'void'. +invalidBooleanAssignments.ts(9,12): error TS2322: Type 'true' is not assignable to type 'E'. +invalidBooleanAssignments.ts(12,12): error TS2322: Type 'boolean' is not assignable to type 'C'. +invalidBooleanAssignments.ts(15,12): error TS2322: Type 'boolean' is not assignable to type 'I'. +invalidBooleanAssignments.ts(17,25): error TS2322: Type 'boolean' is not assignable to type '() => string'. invalidBooleanAssignments.ts(21,1): error TS2631: Cannot assign to 'M' because it is a namespace. invalidBooleanAssignments.ts(24,5): error TS2322: Type 'boolean' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'boolean'. @@ -15,33 +15,33 @@ invalidBooleanAssignments.ts(26,1): error TS2630: Cannot assign to 'i' because i var x = true; var a: number = x; - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type 'number'. var b: string = x; - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type 'string'. var c: void = x; - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type 'void'. var d: typeof undefined = x; enum E { A } var e: E = x; - ~ + ~ !!! error TS2322: Type 'true' is not assignable to type 'E'. class C { foo: string } var f: C = x; - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type 'C'. interface I { bar: string } var g: I = x; - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type 'I'. var h: { (): string } = x; - ~ + ~ !!! error TS2322: Type 'boolean' is not assignable to type '() => string'. var h2: { toString(): string } = x; // no error diff --git a/tests/baselines/reference/invalidBooleanAssignments.types b/tests/baselines/reference/invalidBooleanAssignments.types index 3063ae15cd718..1aedf2fd6d380 100644 --- a/tests/baselines/reference/invalidBooleanAssignments.types +++ b/tests/baselines/reference/invalidBooleanAssignments.types @@ -10,19 +10,19 @@ var x = true; var a: number = x; >a : number > : ^^^^^^ ->x : true -> : ^^^^ +>x : number +> : ^^^^^^ var b: string = x; >b : string > : ^^^^^^ ->x : true -> : ^^^^ +>x : string +> : ^^^^^^ var c: void = x; >c : void > : ^^^^ ->x : true +>x : void > : ^^^^ var d: typeof undefined = x; @@ -30,8 +30,8 @@ var d: typeof undefined = x; > : ^^^ >undefined : undefined > : ^^^^^^^^^ ->x : true -> : ^^^^ +>x : any +> : ^^^ enum E { A } >E : E @@ -42,8 +42,8 @@ enum E { A } var e: E = x; >e : E > : ^ ->x : true -> : ^^^^ +>x : E +> : ^ class C { foo: string } >C : C @@ -54,8 +54,8 @@ class C { foo: string } var f: C = x; >f : C > : ^ ->x : true -> : ^^^^ +>x : C +> : ^ interface I { bar: string } >bar : string @@ -64,22 +64,22 @@ interface I { bar: string } var g: I = x; >g : I > : ^ ->x : true -> : ^^^^ +>x : I +> : ^ var h: { (): string } = x; >h : () => string > : ^^^^^^ ->x : true -> : ^^^^ +>x : () => string +> : ^^^^^^ var h2: { toString(): string } = x; // no error >h2 : { toString(): string; } > : ^^^^^^^^^^^^^^ ^^^ >toString : () => string > : ^^^^^^ ->x : true -> : ^^^^ +>x : { toString(): string; } +> : ^^^^^^^^^^^^^^ ^^^ module M { export var a = 1; } >M : typeof M diff --git a/tests/baselines/reference/invalidModuleWithVarStatements.types b/tests/baselines/reference/invalidModuleWithVarStatements.types index 69b2289918f8d..c371c3eda66d5 100644 --- a/tests/baselines/reference/invalidModuleWithVarStatements.types +++ b/tests/baselines/reference/invalidModuleWithVarStatements.types @@ -10,8 +10,8 @@ module Y { public var x: number = 0; >x : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ } module Y2 { @@ -32,8 +32,8 @@ module Y4 { static var x: number = 0; >x : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ } module YY { @@ -54,8 +54,8 @@ module YY2 { private var x: number = 0; >x : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ } diff --git a/tests/baselines/reference/invalidNumberAssignments.errors.txt b/tests/baselines/reference/invalidNumberAssignments.errors.txt index fb57c501bccf7..fe96865ccfcfa 100644 --- a/tests/baselines/reference/invalidNumberAssignments.errors.txt +++ b/tests/baselines/reference/invalidNumberAssignments.errors.txt @@ -1,10 +1,10 @@ -invalidNumberAssignments.ts(3,5): error TS2322: Type 'number' is not assignable to type 'boolean'. -invalidNumberAssignments.ts(4,5): error TS2322: Type 'number' is not assignable to type 'string'. -invalidNumberAssignments.ts(5,5): error TS2322: Type 'number' is not assignable to type 'void'. -invalidNumberAssignments.ts(9,5): error TS2322: Type 'number' is not assignable to type 'C'. -invalidNumberAssignments.ts(12,5): error TS2322: Type 'number' is not assignable to type 'I'. -invalidNumberAssignments.ts(14,5): error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. -invalidNumberAssignments.ts(15,5): error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. +invalidNumberAssignments.ts(3,18): error TS2322: Type 'number' is not assignable to type 'boolean'. +invalidNumberAssignments.ts(4,17): error TS2322: Type 'number' is not assignable to type 'string'. +invalidNumberAssignments.ts(5,15): error TS2322: Type 'number' is not assignable to type 'void'. +invalidNumberAssignments.ts(9,12): error TS2322: Type 'number' is not assignable to type 'C'. +invalidNumberAssignments.ts(12,12): error TS2322: Type 'number' is not assignable to type 'I'. +invalidNumberAssignments.ts(14,26): error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. +invalidNumberAssignments.ts(15,25): error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. invalidNumberAssignments.ts(18,1): error TS2631: Cannot assign to 'M' because it is a namespace. invalidNumberAssignments.ts(21,5): error TS2322: Type 'number' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'number'. @@ -15,31 +15,31 @@ invalidNumberAssignments.ts(23,1): error TS2630: Cannot assign to 'i' because it var x = 1; var a: boolean = x; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'boolean'. var b: string = x; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'string'. var c: void = x; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'void'. var d: typeof undefined = x; class C { foo: string; } var e: C = x; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'C'. interface I { bar: string; } var f: I = x; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'I'. var g: { baz: string } = 1; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. var g2: { 0: number } = 1; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. module M { export var x = 1; } diff --git a/tests/baselines/reference/invalidNumberAssignments.types b/tests/baselines/reference/invalidNumberAssignments.types index ca5f9729de819..5aa2ef688db64 100644 --- a/tests/baselines/reference/invalidNumberAssignments.types +++ b/tests/baselines/reference/invalidNumberAssignments.types @@ -10,28 +10,28 @@ var x = 1; var a: boolean = x; >a : boolean > : ^^^^^^^ ->x : number -> : ^^^^^^ +>x : boolean +> : ^^^^^^^ var b: string = x; >b : string > : ^^^^^^ ->x : number +>x : string > : ^^^^^^ var c: void = x; >c : void > : ^^^^ ->x : number -> : ^^^^^^ +>x : void +> : ^^^^ var d: typeof undefined = x; >d : any > : ^^^ >undefined : undefined > : ^^^^^^^^^ ->x : number -> : ^^^^^^ +>x : any +> : ^^^ class C { foo: string; } >C : C @@ -42,8 +42,8 @@ class C { foo: string; } var e: C = x; >e : C > : ^ ->x : number -> : ^^^^^^ +>x : C +> : ^ interface I { bar: string; } >bar : string @@ -52,24 +52,24 @@ interface I { bar: string; } var f: I = x; >f : I > : ^ ->x : number -> : ^^^^^^ +>x : I +> : ^ var g: { baz: string } = 1; >g : { baz: string; } > : ^^^^^^^ ^^^ >baz : string > : ^^^^^^ ->1 : 1 -> : ^ +>1 : { baz: string; } +> : ^^^^^^^ ^^^ var g2: { 0: number } = 1; >g2 : { 0: number; } > : ^^^^^ ^^^ >0 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : { 0: number; } +> : ^^^^^ ^^^ module M { export var x = 1; } >M : typeof M diff --git a/tests/baselines/reference/invalidStringAssignments.errors.txt b/tests/baselines/reference/invalidStringAssignments.errors.txt index a7800011cddb4..19eea37f27d1b 100644 --- a/tests/baselines/reference/invalidStringAssignments.errors.txt +++ b/tests/baselines/reference/invalidStringAssignments.errors.txt @@ -1,46 +1,46 @@ -invalidStringAssignments.ts(3,5): error TS2322: Type 'string' is not assignable to type 'boolean'. -invalidStringAssignments.ts(4,5): error TS2322: Type 'string' is not assignable to type 'number'. -invalidStringAssignments.ts(5,5): error TS2322: Type 'string' is not assignable to type 'void'. -invalidStringAssignments.ts(9,5): error TS2322: Type 'string' is not assignable to type 'C'. -invalidStringAssignments.ts(12,5): error TS2322: Type 'string' is not assignable to type 'I'. -invalidStringAssignments.ts(14,5): error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. -invalidStringAssignments.ts(15,5): error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. +invalidStringAssignments.ts(3,18): error TS2322: Type 'string' is not assignable to type 'boolean'. +invalidStringAssignments.ts(4,17): error TS2322: Type 'string' is not assignable to type 'number'. +invalidStringAssignments.ts(5,15): error TS2322: Type 'string' is not assignable to type 'void'. +invalidStringAssignments.ts(9,12): error TS2322: Type 'string' is not assignable to type 'C'. +invalidStringAssignments.ts(12,12): error TS2322: Type 'string' is not assignable to type 'I'. +invalidStringAssignments.ts(14,26): error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. +invalidStringAssignments.ts(15,25): error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. invalidStringAssignments.ts(18,1): error TS2631: Cannot assign to 'M' because it is a namespace. invalidStringAssignments.ts(21,5): error TS2322: Type 'string' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'string'. invalidStringAssignments.ts(23,1): error TS2630: Cannot assign to 'i' because it is a function. -invalidStringAssignments.ts(26,5): error TS2322: Type 'string' is not assignable to type 'E'. +invalidStringAssignments.ts(26,12): error TS2322: Type 'string' is not assignable to type 'E'. ==== invalidStringAssignments.ts (11 errors) ==== var x = ''; var a: boolean = x; - ~ + ~ !!! error TS2322: Type 'string' is not assignable to type 'boolean'. var b: number = x; - ~ + ~ !!! error TS2322: Type 'string' is not assignable to type 'number'. var c: void = x; - ~ + ~ !!! error TS2322: Type 'string' is not assignable to type 'void'. var d: typeof undefined = x; class C { foo: string; } var e: C = x; - ~ + ~ !!! error TS2322: Type 'string' is not assignable to type 'C'. interface I { bar: string; } var f: I = x; - ~ + ~ !!! error TS2322: Type 'string' is not assignable to type 'I'. var g: { baz: string } = 1; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. var g2: { 0: number } = 1; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. module M { export var x = 1; } @@ -60,5 +60,5 @@ invalidStringAssignments.ts(26,5): error TS2322: Type 'string' is not assignable enum E { A } var j: E = x; - ~ + ~ !!! error TS2322: Type 'string' is not assignable to type 'E'. \ No newline at end of file diff --git a/tests/baselines/reference/invalidStringAssignments.types b/tests/baselines/reference/invalidStringAssignments.types index 5ee092d745ef6..48fb7f5fe54f5 100644 --- a/tests/baselines/reference/invalidStringAssignments.types +++ b/tests/baselines/reference/invalidStringAssignments.types @@ -10,28 +10,28 @@ var x = ''; var a: boolean = x; >a : boolean > : ^^^^^^^ ->x : string -> : ^^^^^^ +>x : boolean +> : ^^^^^^^ var b: number = x; >b : number > : ^^^^^^ ->x : string +>x : number > : ^^^^^^ var c: void = x; >c : void > : ^^^^ ->x : string -> : ^^^^^^ +>x : void +> : ^^^^ var d: typeof undefined = x; >d : any > : ^^^ >undefined : undefined > : ^^^^^^^^^ ->x : string -> : ^^^^^^ +>x : any +> : ^^^ class C { foo: string; } >C : C @@ -42,8 +42,8 @@ class C { foo: string; } var e: C = x; >e : C > : ^ ->x : string -> : ^^^^^^ +>x : C +> : ^ interface I { bar: string; } >bar : string @@ -52,24 +52,24 @@ interface I { bar: string; } var f: I = x; >f : I > : ^ ->x : string -> : ^^^^^^ +>x : I +> : ^ var g: { baz: string } = 1; >g : { baz: string; } > : ^^^^^^^ ^^^ >baz : string > : ^^^^^^ ->1 : 1 -> : ^ +>1 : { baz: string; } +> : ^^^^^^^ ^^^ var g2: { 0: number } = 1; >g2 : { 0: number; } > : ^^^^^ ^^^ >0 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : { 0: number; } +> : ^^^^^ ^^^ module M { export var x = 1; } >M : typeof M @@ -118,6 +118,6 @@ enum E { A } var j: E = x; >j : E > : ^ ->x : string -> : ^^^^^^ +>x : E +> : ^ diff --git a/tests/baselines/reference/invalidVoidAssignments.errors.txt b/tests/baselines/reference/invalidVoidAssignments.errors.txt index dee819985c8d5..397ac828b859a 100644 --- a/tests/baselines/reference/invalidVoidAssignments.errors.txt +++ b/tests/baselines/reference/invalidVoidAssignments.errors.txt @@ -1,10 +1,10 @@ -invalidVoidAssignments.ts(3,5): error TS2322: Type 'void' is not assignable to type 'boolean'. -invalidVoidAssignments.ts(4,5): error TS2322: Type 'void' is not assignable to type 'string'. -invalidVoidAssignments.ts(5,5): error TS2322: Type 'void' is not assignable to type 'number'. -invalidVoidAssignments.ts(9,5): error TS2322: Type 'void' is not assignable to type 'C'. -invalidVoidAssignments.ts(12,5): error TS2322: Type 'void' is not assignable to type 'I'. -invalidVoidAssignments.ts(14,5): error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. -invalidVoidAssignments.ts(15,5): error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. +invalidVoidAssignments.ts(3,18): error TS2322: Type 'void' is not assignable to type 'boolean'. +invalidVoidAssignments.ts(4,17): error TS2322: Type 'void' is not assignable to type 'string'. +invalidVoidAssignments.ts(5,17): error TS2322: Type 'void' is not assignable to type 'number'. +invalidVoidAssignments.ts(9,12): error TS2322: Type 'void' is not assignable to type 'C'. +invalidVoidAssignments.ts(12,12): error TS2322: Type 'void' is not assignable to type 'I'. +invalidVoidAssignments.ts(14,26): error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. +invalidVoidAssignments.ts(15,25): error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. invalidVoidAssignments.ts(18,1): error TS2631: Cannot assign to 'M' because it is a namespace. invalidVoidAssignments.ts(21,5): error TS2322: Type 'void' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'void'. @@ -18,31 +18,31 @@ invalidVoidAssignments.ts(29,1): error TS2322: Type '{ f(): void; }' is not assi var x: void; var a: boolean = x; - ~ + ~ !!! error TS2322: Type 'void' is not assignable to type 'boolean'. var b: string = x; - ~ + ~ !!! error TS2322: Type 'void' is not assignable to type 'string'. var c: number = x; - ~ + ~ !!! error TS2322: Type 'void' is not assignable to type 'number'. var d: typeof undefined = x; class C { foo: string; } var e: C = x; - ~ + ~ !!! error TS2322: Type 'void' is not assignable to type 'C'. interface I { bar: string; } var f: I = x; - ~ + ~ !!! error TS2322: Type 'void' is not assignable to type 'I'. var g: { baz: string } = 1; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ baz: string; }'. var g2: { 0: number } = 1; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ 0: number; }'. module M { export var x = 1; } diff --git a/tests/baselines/reference/invalidVoidAssignments.types b/tests/baselines/reference/invalidVoidAssignments.types index 7967ebed09317..b7d95ccbe6ea9 100644 --- a/tests/baselines/reference/invalidVoidAssignments.types +++ b/tests/baselines/reference/invalidVoidAssignments.types @@ -8,28 +8,28 @@ var x: void; var a: boolean = x; >a : boolean > : ^^^^^^^ ->x : void -> : ^^^^ +>x : boolean +> : ^^^^^^^ var b: string = x; >b : string > : ^^^^^^ ->x : void -> : ^^^^ +>x : string +> : ^^^^^^ var c: number = x; >c : number > : ^^^^^^ ->x : void -> : ^^^^ +>x : number +> : ^^^^^^ var d: typeof undefined = x; >d : any > : ^^^ >undefined : undefined > : ^^^^^^^^^ ->x : void -> : ^^^^ +>x : any +> : ^^^ class C { foo: string; } >C : C @@ -40,8 +40,8 @@ class C { foo: string; } var e: C = x; >e : C > : ^ ->x : void -> : ^^^^ +>x : C +> : ^ interface I { bar: string; } >bar : string @@ -50,24 +50,24 @@ interface I { bar: string; } var f: I = x; >f : I > : ^ ->x : void -> : ^^^^ +>x : I +> : ^ var g: { baz: string } = 1; >g : { baz: string; } > : ^^^^^^^ ^^^ >baz : string > : ^^^^^^ ->1 : 1 -> : ^ +>1 : { baz: string; } +> : ^^^^^^^ ^^^ var g2: { 0: number } = 1; >g2 : { 0: number; } > : ^^^^^ ^^^ >0 : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : { 0: number; } +> : ^^^^^ ^^^ module M { export var x = 1; } >M : typeof M diff --git a/tests/baselines/reference/isLiteral1.types b/tests/baselines/reference/isLiteral1.types index 7a6bd62378a03..2b152e0bf4232 100644 --- a/tests/baselines/reference/isLiteral1.types +++ b/tests/baselines/reference/isLiteral1.types @@ -4,6 +4,6 @@ var x: number = 02343; >x : number > : ^^^^^^ ->02343 : 1251 -> : ^^^^ +>02343 : number +> : ^^^^^^ diff --git a/tests/baselines/reference/isolatedDeclarationErrorsClasses.types b/tests/baselines/reference/isolatedDeclarationErrorsClasses.types index aa310b6119e7c..da46c22a868e8 100644 --- a/tests/baselines/reference/isolatedDeclarationErrorsClasses.types +++ b/tests/baselines/reference/isolatedDeclarationErrorsClasses.types @@ -109,14 +109,14 @@ export class Cls { let noAnnotationStringName: string = "noAnnotationStringName"; >noAnnotationStringName : string > : ^^^^^^ ->"noAnnotationStringName" : "noAnnotationStringName" -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>"noAnnotationStringName" : string +> : ^^^^^^ let noParamAnnotationStringName: string = "noParamAnnotationStringName"; >noParamAnnotationStringName : string > : ^^^^^^ ->"noParamAnnotationStringName" : "noParamAnnotationStringName" -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>"noParamAnnotationStringName" : string +> : ^^^^^^ const noAnnotationLiteralName = "noAnnotationLiteralName"; >noAnnotationLiteralName : "noAnnotationLiteralName" diff --git a/tests/baselines/reference/iterableContextualTyping1.types b/tests/baselines/reference/iterableContextualTyping1.types index a5f32840bbffb..1e0c6eeecfc63 100644 --- a/tests/baselines/reference/iterableContextualTyping1.types +++ b/tests/baselines/reference/iterableContextualTyping1.types @@ -6,8 +6,8 @@ var iter: Iterable<(x: string) => number> = [s => s.length]; > : ^^^^^^^^^^ ^^ ^^^^^ ^ >x : string > : ^^^^^^ ->[s => s.length] : ((s: string) => number)[] -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^ +>[s => s.length] : Iterable<(x: string) => number> +> : ^^^^^^^^^^ ^^ ^^^^^ ^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string diff --git a/tests/baselines/reference/iteratorSpreadInArray5.errors.txt b/tests/baselines/reference/iteratorSpreadInArray5.errors.txt index 490c726f6a1e5..ef28d989a6345 100644 --- a/tests/baselines/reference/iteratorSpreadInArray5.errors.txt +++ b/tests/baselines/reference/iteratorSpreadInArray5.errors.txt @@ -1,4 +1,6 @@ -iteratorSpreadInArray5.ts(14,30): error TS2322: Type 'symbol' is not assignable to type 'number'. +iteratorSpreadInArray5.ts(14,23): error TS2322: Type '(number | symbol)[]' is not assignable to type 'number[]'. + Type 'number | symbol' is not assignable to type 'number'. + Type 'symbol' is not assignable to type 'number'. ==== iteratorSpreadInArray5.ts (1 errors) ==== @@ -16,5 +18,7 @@ iteratorSpreadInArray5.ts(14,30): error TS2322: Type 'symbol' is not assignable } var array: number[] = [0, 1, ...new SymbolIterator]; - ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2322: Type 'symbol' is not assignable to type 'number'. \ No newline at end of file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '(number | symbol)[]' is not assignable to type 'number[]'. +!!! error TS2322: Type 'number | symbol' is not assignable to type 'number'. +!!! error TS2322: Type 'symbol' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/iteratorSpreadInArray5.types b/tests/baselines/reference/iteratorSpreadInArray5.types index 4a450509d81c1..e33869ea16c05 100644 --- a/tests/baselines/reference/iteratorSpreadInArray5.types +++ b/tests/baselines/reference/iteratorSpreadInArray5.types @@ -49,8 +49,8 @@ class SymbolIterator { var array: number[] = [0, 1, ...new SymbolIterator]; >array : number[] > : ^^^^^^^^ ->[0, 1, ...new SymbolIterator] : (number | symbol)[] -> : ^^^^^^^^^^^^^^^^^^^ +>[0, 1, ...new SymbolIterator] : number[] +> : ^^^^^^^^ >0 : 0 > : ^ >1 : 1 diff --git a/tests/baselines/reference/jsdocDisallowedInTypescript.errors.txt b/tests/baselines/reference/jsdocDisallowedInTypescript.errors.txt index 266257887faf8..d9cfbb19d340b 100644 --- a/tests/baselines/reference/jsdocDisallowedInTypescript.errors.txt +++ b/tests/baselines/reference/jsdocDisallowedInTypescript.errors.txt @@ -9,8 +9,8 @@ jsdocDisallowedInTypescript.ts(14,11): error TS8020: JSDoc types can only be use jsdocDisallowedInTypescript.ts(15,8): error TS8020: JSDoc types can only be used inside documentation comments. jsdocDisallowedInTypescript.ts(16,11): error TS17020: '!' at the start of a type is not valid TypeScript syntax. Did you mean to write 'string'? jsdocDisallowedInTypescript.ts(17,17): error TS17019: '!' at the end of a type is not valid TypeScript syntax. Did you mean to write 'number'? -jsdocDisallowedInTypescript.ts(18,5): error TS2322: Type 'undefined' is not assignable to type 'number | null'. jsdocDisallowedInTypescript.ts(18,17): error TS17019: '?' at the end of a type is not valid TypeScript syntax. Did you mean to write 'number | undefined'? +jsdocDisallowedInTypescript.ts(18,27): error TS2322: Type 'undefined' is not assignable to type 'number | null'. jsdocDisallowedInTypescript.ts(20,16): error TS17020: '?' at the start of a type is not valid TypeScript syntax. Did you mean to write 'number | null | undefined'? jsdocDisallowedInTypescript.ts(21,16): error TS17020: '!' at the start of a type is not valid TypeScript syntax. Did you mean to write 'number'? jsdocDisallowedInTypescript.ts(22,17): error TS8020: JSDoc types can only be used inside documentation comments. @@ -57,10 +57,10 @@ jsdocDisallowedInTypescript.ts(22,17): error TS8020: JSDoc types can only be use ~~~~~~~ !!! error TS17019: '!' at the end of a type is not valid TypeScript syntax. Did you mean to write 'number'? var postfixopt: number? = undefined; - ~~~~~~~~~~ -!!! error TS2322: Type 'undefined' is not assignable to type 'number | null'. ~~~~~~~ !!! error TS17019: '?' at the end of a type is not valid TypeScript syntax. Did you mean to write 'number | undefined'? + ~~~~~~~~~ +!!! error TS2322: Type 'undefined' is not assignable to type 'number | null'. var nns: Array; ~~~~~~~ diff --git a/tests/baselines/reference/jsdocDisallowedInTypescript.types b/tests/baselines/reference/jsdocDisallowedInTypescript.types index d9b8c342d3db9..2e655ba935d4b 100644 --- a/tests/baselines/reference/jsdocDisallowedInTypescript.types +++ b/tests/baselines/reference/jsdocDisallowedInTypescript.types @@ -81,20 +81,20 @@ function hof2(f: function(this: number, string): string) { var whatevs: * = 1001; >whatevs : any > : ^^^ ->1001 : 1001 -> : ^^^^ +>1001 : any +> : ^^^ var ques: ? = 'what'; >ques : any > : ^^^ ->'what' : "what" -> : ^^^^^^ +>'what' : any +> : ^^^ var g: function(number, number): number = (n,m) => n + m; >g : (arg0: number, arg1: number) => number > : ^^^^^^^ ^^^^^^^^ ^^^^^ ->(n,m) => n + m : (n: number, m: number) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +>(n,m) => n + m : (arg0: number, arg1: number) => number +> : ^^^^^^^ ^^^^^^^^ ^^^^^ >n : number > : ^^^^^^ >m : number @@ -109,20 +109,20 @@ var g: function(number, number): number = (n,m) => n + m; var most: !string = 'definite'; >most : string > : ^^^^^^ ->'definite' : "definite" -> : ^^^^^^^^^^ +>'definite' : string +> : ^^^^^^ var postfixdef: number! = 101; >postfixdef : number > : ^^^^^^ ->101 : 101 -> : ^^^ +>101 : number +> : ^^^^^^ var postfixopt: number? = undefined; >postfixopt : number | null > : ^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : number | null +> : ^^^^^^^^^^^^^ var nns: Array; >nns : (number | null)[] diff --git a/tests/baselines/reference/keyofAndIndexedAccess.types b/tests/baselines/reference/keyofAndIndexedAccess.types index 33fafc02e83a9..8055d2aa7e564 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess.types +++ b/tests/baselines/reference/keyofAndIndexedAccess.types @@ -3302,8 +3302,8 @@ class Unbounded { let y: {} | undefined | null = x; >y : {} | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^ ->x : T[keyof T] -> : ^^^^^^^^^^ +>x : {} | null | undefined +> : ^^^^^^^^^^^^^^^^^^^^^ } } diff --git a/tests/baselines/reference/keyofAndIndexedAccess2.types b/tests/baselines/reference/keyofAndIndexedAccess2.types index 526abef4fd1bf..083c220da119f 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess2.types +++ b/tests/baselines/reference/keyofAndIndexedAccess2.types @@ -799,14 +799,14 @@ function fn4() { let x: Array[K] = 'abc'; >x : string[][K] > : ^^^^^^^^^^^ ->'abc' : "abc" -> : ^^^^^ +>'abc' : string[][K] +> : ^^^^^^^^^^^ let y: ReadonlyArray[K] = 'abc'; >y : (readonly string[])[K] > : ^^^^^^^^^^^^^^^^^^^^^^ ->'abc' : "abc" -> : ^^^^^ +>'abc' : (readonly string[])[K] +> : ^^^^^^^^^^^^^^^^^^^^^^ } // Repro from #31439 and #31691 diff --git a/tests/baselines/reference/keyofAndIndexedAccessErrors.types b/tests/baselines/reference/keyofAndIndexedAccessErrors.types index e909c7b2fa8b9..fb1c5207cf4fd 100644 --- a/tests/baselines/reference/keyofAndIndexedAccessErrors.types +++ b/tests/baselines/reference/keyofAndIndexedAccessErrors.types @@ -727,8 +727,8 @@ function f30() { let x: Partial>[K] = "hello"; >x : Partial>[K] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->"hello" : "hello" -> : ^^^^^^^ +>"hello" : Partial>[K] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } function f31() { @@ -738,8 +738,8 @@ function f31() { let x: Partial>>>>>>>[K] = "hello"; >x : Partial>>>>>>>[K] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->"hello" : "hello" -> : ^^^^^^^ +>"hello" : Partial>>>>>>>[K] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } // Repro from #51069 diff --git a/tests/baselines/reference/keyofGenericExtendingClassDoubleLayer.types b/tests/baselines/reference/keyofGenericExtendingClassDoubleLayer.types index 09e8baf8c5a01..5b45fcf00c06e 100644 --- a/tests/baselines/reference/keyofGenericExtendingClassDoubleLayer.types +++ b/tests/baselines/reference/keyofGenericExtendingClassDoubleLayer.types @@ -37,8 +37,8 @@ class PersonModel extends AutoModel { let x: keyof this = 'createdAt'; >x : keyof this > : ^^^^^^^^^^ ->'createdAt' : "createdAt" -> : ^^^^^^^^^^^ +>'createdAt' : keyof this +> : ^^^^^^^^^^ } } diff --git a/tests/baselines/reference/keyofIsLiteralContexualType.errors.txt b/tests/baselines/reference/keyofIsLiteralContexualType.errors.txt index 48ee72f90f34a..6d31afc88c323 100644 --- a/tests/baselines/reference/keyofIsLiteralContexualType.errors.txt +++ b/tests/baselines/reference/keyofIsLiteralContexualType.errors.txt @@ -1,5 +1,7 @@ -keyofIsLiteralContexualType.ts(5,37): error TS2322: Type 'string' is not assignable to type 'keyof T'. - Type '"c"' is not assignable to type '"a" | "b"'. +keyofIsLiteralContexualType.ts(5,26): error TS2322: Type '("a" | "b" | "c")[]' is not assignable to type '(keyof T)[]'. + Type 'string' is not assignable to type 'keyof T'. + Type 'string' is not assignable to type 'keyof T'. + Type '"c"' is not assignable to type '"a" | "b"'. keyofIsLiteralContexualType.ts(13,11): error TS2339: Property 'b' does not exist on type 'Pick<{ a: number; b: number; c: number; }, "a" | "c">'. @@ -9,9 +11,11 @@ keyofIsLiteralContexualType.ts(13,11): error TS2339: Property 'b' does not exist function foo() { let a: (keyof T)[] = ["a", "b"]; let b: (keyof T)[] = ["a", "b", "c"]; - ~~~ -!!! error TS2322: Type 'string' is not assignable to type 'keyof T'. -!!! error TS2322: Type '"c"' is not assignable to type '"a" | "b"'. + ~~~~~~~~~~~~~~~ +!!! error TS2322: Type '("a" | "b" | "c")[]' is not assignable to type '(keyof T)[]'. +!!! error TS2322: Type 'string' is not assignable to type 'keyof T'. +!!! error TS2322: Type 'string' is not assignable to type 'keyof T'. +!!! error TS2322: Type '"c"' is not assignable to type '"a" | "b"'. } // Repro from #12455 diff --git a/tests/baselines/reference/keyofIsLiteralContexualType.types b/tests/baselines/reference/keyofIsLiteralContexualType.types index e9622776829a0..e2fc245205fae 100644 --- a/tests/baselines/reference/keyofIsLiteralContexualType.types +++ b/tests/baselines/reference/keyofIsLiteralContexualType.types @@ -14,8 +14,8 @@ function foo() { let a: (keyof T)[] = ["a", "b"]; >a : (keyof T)[] > : ^^^^^^^^^^^ ->["a", "b"] : ("a" | "b")[] -> : ^^^^^^^^^^^^^ +>["a", "b"] : (keyof T)[] +> : ^^^^^^^^^^^ >"a" : "a" > : ^^^ >"b" : "b" @@ -24,8 +24,8 @@ function foo() { let b: (keyof T)[] = ["a", "b", "c"]; >b : (keyof T)[] > : ^^^^^^^^^^^ ->["a", "b", "c"] : ("a" | "b" | "c")[] -> : ^^^^^^^^^^^^^^^^^^^ +>["a", "b", "c"] : (keyof T)[] +> : ^^^^^^^^^^^ >"a" : "a" > : ^^^ >"b" : "b" diff --git a/tests/baselines/reference/keywordField.types b/tests/baselines/reference/keywordField.types index 4b004fa85d3b6..9b08fccaf754a 100644 --- a/tests/baselines/reference/keywordField.types +++ b/tests/baselines/reference/keywordField.types @@ -3,8 +3,7 @@ === keywordField.ts === var obj:any = {}; >obj : any ->{} : {} -> : ^^ +>{} : any obj.if = 1; >obj.if = 1 : 1 diff --git a/tests/baselines/reference/letDeclarations-es5-1.types b/tests/baselines/reference/letDeclarations-es5-1.types index cde05165b263a..73f34e67ab60a 100644 --- a/tests/baselines/reference/letDeclarations-es5-1.types +++ b/tests/baselines/reference/letDeclarations-es5-1.types @@ -24,8 +24,8 @@ let l8: number = 23; >l8 : number > : ^^^^^^ ->23 : 23 -> : ^^ +>23 : number +> : ^^^^^^ let l9 = 0, l10 :string = "", l11 = null; >l9 : number @@ -34,7 +34,7 @@ > : ^ >l10 : string > : ^^^^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ >l11 : any diff --git a/tests/baselines/reference/letDeclarations-es5.types b/tests/baselines/reference/letDeclarations-es5.types index f7e902488ae8e..ee07f4519f376 100644 --- a/tests/baselines/reference/letDeclarations-es5.types +++ b/tests/baselines/reference/letDeclarations-es5.types @@ -24,8 +24,8 @@ let l7 = false; let l8: number = 23; >l8 : number > : ^^^^^^ ->23 : 23 -> : ^^ +>23 : number +> : ^^^^^^ let l9 = 0, l10 :string = "", l11 = null; >l9 : number @@ -34,8 +34,8 @@ let l9 = 0, l10 :string = "", l11 = null; > : ^ >l10 : string > : ^^^^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ >l11 : any for(let l11 in {}) { } diff --git a/tests/baselines/reference/letDeclarations-scopes.types b/tests/baselines/reference/letDeclarations-scopes.types index c16a11edfeb75..9690714642b5d 100644 --- a/tests/baselines/reference/letDeclarations-scopes.types +++ b/tests/baselines/reference/letDeclarations-scopes.types @@ -442,8 +442,8 @@ module m { var b2: boolean = l; >b2 : boolean > : ^^^^^^^ ->l : false -> : ^^^^^ +>l : boolean +> : ^^^^^^^ } lable: let l2 = 0; diff --git a/tests/baselines/reference/letDeclarations.types b/tests/baselines/reference/letDeclarations.types index 4c0a80b15ad76..e7f693631b2fe 100644 --- a/tests/baselines/reference/letDeclarations.types +++ b/tests/baselines/reference/letDeclarations.types @@ -24,8 +24,8 @@ let l7 = false; let l8: number = 23; >l8 : number > : ^^^^^^ ->23 : 23 -> : ^^ +>23 : number +> : ^^^^^^ let l9 = 0, l10 :string = "", l11 = null; >l9 : number @@ -34,8 +34,8 @@ let l9 = 0, l10 :string = "", l11 = null; > : ^ >l10 : string > : ^^^^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ >l11 : any for(let l11 in {}) { } diff --git a/tests/baselines/reference/letIdentifierInElementAccess01.types b/tests/baselines/reference/letIdentifierInElementAccess01.types index eaf69777d7509..dec46b54faca5 100644 --- a/tests/baselines/reference/letIdentifierInElementAccess01.types +++ b/tests/baselines/reference/letIdentifierInElementAccess01.types @@ -3,8 +3,7 @@ === letIdentifierInElementAccess01.ts === var let: any = {}; >let : any ->{} : {} -> : ^^ +>{} : any (let[0] = 100); >(let[0] = 100) : 100 diff --git a/tests/baselines/reference/literalFreshnessPropagationOnNarrowing.types b/tests/baselines/reference/literalFreshnessPropagationOnNarrowing.types index a2a7572599f0f..56067ec9b35bb 100644 --- a/tests/baselines/reference/literalFreshnessPropagationOnNarrowing.types +++ b/tests/baselines/reference/literalFreshnessPropagationOnNarrowing.types @@ -72,28 +72,28 @@ function f2() { let a1: ElementOrArray = el; >a1 : (string | false) | (string | false)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->el : string | false -> : ^^^^^^^^^^^^^^ +>el : (string | false) | (string | false)[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ let a2: ElementOrArray = arr; >a2 : (string | false) | (string | false)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->arr : (string | false)[] -> : ^^^^^^^^^^^^^^^^^^ +>arr : (string | false) | (string | false)[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ let a3: ElementOrArray = [el]; >a3 : (string | false) | (string | false)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->[el] : (string | false)[] -> : ^^^^^^^^^^^^^^^^^^ +>[el] : (string | false) | (string | false)[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >el : string | false > : ^^^^^^^^^^^^^^ let a4: ElementOrArray = Array.isArray(elOrA) ? elOrA : [elOrA]; >a4 : (string | false) | (string | false)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->Array.isArray(elOrA) ? elOrA : [elOrA] : (string | false)[] -> : ^^^^^^^^^^^^^^^^^^ +>Array.isArray(elOrA) ? elOrA : [elOrA] : (string | false) | (string | false)[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Array.isArray(elOrA) : boolean > : ^^^^^^^ >Array.isArray : (arg: any) => arg is any[] @@ -117,8 +117,8 @@ function f2() { let a5: ElementOrArray = [...Array.isArray(elOrA) ? elOrA : [elOrA]]; >a5 : (string | false) | (string | false)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->[...Array.isArray(elOrA) ? elOrA : [elOrA]] : (string | false)[] -> : ^^^^^^^^^^^^^^^^^^ +>[...Array.isArray(elOrA) ? elOrA : [elOrA]] : (string | false) | (string | false)[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...Array.isArray(elOrA) ? elOrA : [elOrA] : string | false > : ^^^^^^^^^^^^^^ >Array.isArray(elOrA) ? elOrA : [elOrA] : (string | false)[] @@ -176,8 +176,8 @@ function f3() { let x3: XY = x; >x3 : "x" | "y" > : ^^^^^^^^^ ->x : "x" -> : ^^^ +>x : "x" | "y" +> : ^^^^^^^^^ x3 = 'y'; >x3 = 'y' : "y" @@ -228,8 +228,8 @@ function f5() { let arr: XY[] = ['x']; >arr : ("x" | "y")[] > : ^^^^^^^^^^^^^ ->['x'] : "x"[] -> : ^^^^^ +>['x'] : ("x" | "y")[] +> : ^^^^^^^^^^^^^ >'x' : "x" > : ^^^ diff --git a/tests/baselines/reference/literalTypes2.types b/tests/baselines/reference/literalTypes2.types index 2744be4c5f10b..5329612bc7b74 100644 --- a/tests/baselines/reference/literalTypes2.types +++ b/tests/baselines/reference/literalTypes2.types @@ -693,8 +693,8 @@ function f4() { > : ^^^^^ >b : "foo" | "bar" > : ^^^^^^^^^^^^^ ->{ a: 1, b: "foo" } : { a: 1; b: "foo"; } -> : ^^^^^^^^^^^^^^^^^^^ +>{ a: 1, b: "foo" } : { a: 0 | 1; b: "foo" | "bar"; } +> : ^^^^^ ^^^^^ ^^^ >a : 1 > : ^ >1 : 1 diff --git a/tests/baselines/reference/localTypes1.types b/tests/baselines/reference/localTypes1.types index 577f7bcdd2431..04b3cc7e4cf13 100644 --- a/tests/baselines/reference/localTypes1.types +++ b/tests/baselines/reference/localTypes1.types @@ -37,7 +37,7 @@ function f1() { let a: A = [new C()]; >a : I[] > : ^^^ ->[new C()] : C[] +>[new C()] : I[] > : ^^^ >new C() : C > : ^ @@ -109,7 +109,7 @@ function f2() { let a: A = [new C()]; >a : I[] > : ^^^ ->[new C()] : C[] +>[new C()] : I[] > : ^^^ >new C() : C > : ^ @@ -193,7 +193,7 @@ function f3(b: boolean) { let a: A = [new C()]; >a : I[] > : ^^^ ->[new C()] : C[] +>[new C()] : I[] > : ^^^ >new C() : C > : ^ @@ -245,7 +245,7 @@ function f3(b: boolean) { let c: C = [new A()]; >c : J[] > : ^^^ ->[new A()] : A[] +>[new A()] : J[] > : ^^^ >new A() : A > : ^ diff --git a/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.types b/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.types index 5a076c8d61b03..7383d6c08181e 100644 --- a/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.types @@ -14,8 +14,8 @@ var ANY1; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.types b/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.types index 038b0d1c12af9..b56502f12f0f0 100644 --- a/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.types +++ b/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.types @@ -11,8 +11,8 @@ var r: { a: string } = { a: '', b: 123 } || { a: '', b: true }; > : ^^^^^ ^^^ >a : string > : ^^^^^^ ->{ a: '', b: 123 } || { a: '', b: true } : { a: string; b: number; } | { a: string; b: boolean; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: '', b: 123 } || { a: '', b: true } : { a: string; } +> : ^^^^^ ^^^ >{ a: '', b: 123 } : { a: string; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : string diff --git a/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types index c14aa703ff34a..2b68b9ce8d373 100644 --- a/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types +++ b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types @@ -42,8 +42,8 @@ function fn1(t: T, u: U) { var r4: {} = t || u; >r4 : {} > : ^^ ->t || u : T | U -> : ^^^^^ +>t || u : {} +> : ^^ >t : T > : ^ >u : U @@ -104,8 +104,8 @@ function fn2(t: T, u: U, v: V) { var r6: {} = u || v; >r6 : {} > : ^^ ->u || v : U | V -> : ^^^^^ +>u || v : {} +> : ^^ >u : U > : ^ >v : V @@ -143,8 +143,8 @@ function fn3r2 : {} > : ^^ ->t || u : T | U -> : ^^^^^ +>t || u : {} +> : ^^ >t : T > : ^ >u : U @@ -169,8 +169,8 @@ function fn3 : ^^^^^ ^^^ >a : string > : ^^^^^^ ->t || u : T | U -> : ^^^^^ +>t || u : { a: string; } +> : ^^^^^ ^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/looseThisTypeInFunctions.types b/tests/baselines/reference/looseThisTypeInFunctions.types index 094d633a0bf9c..48297ea6bdf20 100644 --- a/tests/baselines/reference/looseThisTypeInFunctions.types +++ b/tests/baselines/reference/looseThisTypeInFunctions.types @@ -157,14 +157,14 @@ let o = { let i: I = o; >i : I > : ^ ->o : { n: number; explicitThis: (m: number) => any; implicitThis(m: number): number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +>o : I +> : ^ let o2: I = { >o2 : I > : ^ ->{ n: 1001, explicitThis: function (m) { return m + this.n.length; // error, this.n: number, no member 'length' },} : { n: number; explicitThis: (this: I, m: number) => any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ +>{ n: 1001, explicitThis: function (m) { return m + this.n.length; // error, this.n: number, no member 'length' },} : I +> : ^ n: 1001, >n : number diff --git a/tests/baselines/reference/m7Bugs.types b/tests/baselines/reference/m7Bugs.types index 13ea74edf9a04..0e409b5f172e0 100644 --- a/tests/baselines/reference/m7Bugs.types +++ b/tests/baselines/reference/m7Bugs.types @@ -52,7 +52,7 @@ class C2 extends C1 {} var y1: C1 = new C2(); >y1 : C1 > : ^^ ->new C2() : C2 +>new C2() : C1 > : ^^ >C2 : typeof C2 > : ^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeAsClauseRelationships.errors.txt b/tests/baselines/reference/mappedTypeAsClauseRelationships.errors.txt index b2a07d632f892..998dde781ccb1 100644 --- a/tests/baselines/reference/mappedTypeAsClauseRelationships.errors.txt +++ b/tests/baselines/reference/mappedTypeAsClauseRelationships.errors.txt @@ -1,7 +1,7 @@ -mappedTypeAsClauseRelationships.ts(12,9): error TS2322: Type 'T' is not assignable to type 'Modify'. -mappedTypeAsClauseRelationships.ts(22,9): error TS2322: Type 'T' is not assignable to type 'ModifyInclOpt'. -mappedTypeAsClauseRelationships.ts(23,9): error TS2322: Type 'T' is not assignable to type 'FilterExclOpt'. -mappedTypeAsClauseRelationships.ts(24,9): error TS2322: Type 'T' is not assignable to type 'ModifyExclOpt'. +mappedTypeAsClauseRelationships.ts(12,24): error TS2322: Type 'T' is not assignable to type 'Modify'. +mappedTypeAsClauseRelationships.ts(22,31): error TS2322: Type 'T' is not assignable to type 'ModifyInclOpt'. +mappedTypeAsClauseRelationships.ts(23,31): error TS2322: Type 'T' is not assignable to type 'FilterExclOpt'. +mappedTypeAsClauseRelationships.ts(24,31): error TS2322: Type 'T' is not assignable to type 'ModifyExclOpt'. ==== mappedTypeAsClauseRelationships.ts (4 errors) ==== @@ -17,7 +17,7 @@ mappedTypeAsClauseRelationships.ts(24,9): error TS2322: Type 'T' is not assignab function fun(val: T) { let x: Filter = val; // Ok let y: Modify = val; // Error - ~ + ~~~ !!! error TS2322: Type 'T' is not assignable to type 'Modify'. !!! related TS2208 mappedTypeAsClauseRelationships.ts:10:14: This type parameter might need an `extends Modify` constraint. } @@ -30,15 +30,15 @@ mappedTypeAsClauseRelationships.ts(24,9): error TS2322: Type 'T' is not assignab function fun2(val: T) { let x: FilterInclOpt = val; // Ok let y: ModifyInclOpt = val; // Ok - ~ + ~~~ !!! error TS2322: Type 'T' is not assignable to type 'ModifyInclOpt'. !!! related TS2208 mappedTypeAsClauseRelationships.ts:20:15: This type parameter might need an `extends ModifyInclOpt` constraint. let z: FilterExclOpt = val; // Error - ~ + ~~~ !!! error TS2322: Type 'T' is not assignable to type 'FilterExclOpt'. !!! related TS2208 mappedTypeAsClauseRelationships.ts:20:15: This type parameter might need an `extends FilterExclOpt` constraint. let w: ModifyExclOpt = val; // Error - ~ + ~~~ !!! error TS2322: Type 'T' is not assignable to type 'ModifyExclOpt'. !!! related TS2208 mappedTypeAsClauseRelationships.ts:20:15: This type parameter might need an `extends ModifyExclOpt` constraint. } diff --git a/tests/baselines/reference/mappedTypeAsClauseRelationships.types b/tests/baselines/reference/mappedTypeAsClauseRelationships.types index 92c94148d6732..5b06654700ee0 100644 --- a/tests/baselines/reference/mappedTypeAsClauseRelationships.types +++ b/tests/baselines/reference/mappedTypeAsClauseRelationships.types @@ -29,14 +29,14 @@ function fun(val: T) { let x: Filter = val; // Ok >x : Filter > : ^^^^^^^^^ ->val : T -> : ^ +>val : Filter +> : ^^^^^^^^^ let y: Modify = val; // Error >y : Modify > : ^^^^^^^^^ ->val : T -> : ^ +>val : Modify +> : ^^^^^^^^^ } type FilterInclOpt = { [P in keyof T as T[P] extends Function ? P : never]+?: T[P] }; @@ -64,26 +64,26 @@ function fun2(val: T) { let x: FilterInclOpt = val; // Ok >x : FilterInclOpt > : ^^^^^^^^^^^^^^^^ ->val : T -> : ^ +>val : FilterInclOpt +> : ^^^^^^^^^^^^^^^^ let y: ModifyInclOpt = val; // Ok >y : ModifyInclOpt > : ^^^^^^^^^^^^^^^^ ->val : T -> : ^ +>val : ModifyInclOpt +> : ^^^^^^^^^^^^^^^^ let z: FilterExclOpt = val; // Error >z : FilterExclOpt > : ^^^^^^^^^^^^^^^^ ->val : T -> : ^ +>val : FilterExclOpt +> : ^^^^^^^^^^^^^^^^ let w: ModifyExclOpt = val; // Error >w : ModifyExclOpt > : ^^^^^^^^^^^^^^^^ ->val : T -> : ^ +>val : ModifyExclOpt +> : ^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/mappedTypeConstraints2.errors.txt b/tests/baselines/reference/mappedTypeConstraints2.errors.txt index 0d3b3244c9e66..14c65323be3b8 100644 --- a/tests/baselines/reference/mappedTypeConstraints2.errors.txt +++ b/tests/baselines/reference/mappedTypeConstraints2.errors.txt @@ -3,7 +3,7 @@ mappedTypeConstraints2.ts(10,11): error TS2322: Type 'Mapped2[`get${K}`]' is mappedTypeConstraints2.ts(16,11): error TS2322: Type 'Mapped3[Uppercase]' is not assignable to type '{ a: K; }'. Type 'Mapped3[Uppercase]' is not assignable to type '{ a: K; }'. Type 'Mapped3[string]' is not assignable to type '{ a: K; }'. -mappedTypeConstraints2.ts(42,7): error TS2322: Type 'Mapped6[keyof Mapped6]' is not assignable to type '`_${string}`'. +mappedTypeConstraints2.ts(42,25): error TS2322: Type 'Mapped6[keyof Mapped6]' is not assignable to type '`_${string}`'. Type 'Mapped6[string] | Mapped6[number] | Mapped6[symbol]' is not assignable to type '`_${string}`'. Type 'Mapped6[string]' is not assignable to type '`_${string}`'. mappedTypeConstraints2.ts(51,57): error TS2322: Type 'Foo[`get${T}`]' is not assignable to type 'T'. @@ -62,7 +62,7 @@ mappedTypeConstraints2.ts(82,9): error TS2322: Type 'ObjectWithUnderscoredKeys(obj: Mapped6, key: keyof Mapped6) { let s: `_${string}` = obj[key]; // Error - ~ + ~~~~~~~~ !!! error TS2322: Type 'Mapped6[keyof Mapped6]' is not assignable to type '`_${string}`'. !!! error TS2322: Type 'Mapped6[string] | Mapped6[number] | Mapped6[symbol]' is not assignable to type '`_${string}`'. !!! error TS2322: Type 'Mapped6[string]' is not assignable to type '`_${string}`'. diff --git a/tests/baselines/reference/mappedTypeConstraints2.types b/tests/baselines/reference/mappedTypeConstraints2.types index b975d98fa9293..6a2007d220eb2 100644 --- a/tests/baselines/reference/mappedTypeConstraints2.types +++ b/tests/baselines/reference/mappedTypeConstraints2.types @@ -100,8 +100,8 @@ function f4(obj: Mapped4, key: keyof Mapped4) { let s: `_${string}` = obj[key]; >s : `_${string}` > : ^^^^^^^^^^^^ ->obj[key] : Mapped4[K] -> : ^^^^^^^^^^^^^ +>obj[key] : `_${string}` +> : ^^^^^^^^^^^^ >obj : Mapped4 > : ^^^^^^^^^^ >key : K @@ -126,8 +126,8 @@ function f5(obj: Mapped5, key: keyof Mapped5) { let s: `_${string}` = obj[key]; >s : `_${string}` > : ^^^^^^^^^^^^ ->obj[key] : Mapped5[K extends `_${string}` ? K : never] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>obj[key] : `_${string}` +> : ^^^^^^^^^^^^ >obj : Mapped5 > : ^^^^^^^^^^ >key : K extends `_${string}` ? K : never @@ -154,8 +154,8 @@ function f6(obj: Mapped6, key: keyof Mapped6) { let s: `_${string}` = obj[key]; // Error >s : `_${string}` > : ^^^^^^^^^^^^ ->obj[key] : Mapped6[keyof Mapped6] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>obj[key] : `_${string}` +> : ^^^^^^^^^^^^ >obj : Mapped6 > : ^^^^^^^^^^ >key : keyof Mapped6 diff --git a/tests/baselines/reference/mappedTypeErrors.errors.txt b/tests/baselines/reference/mappedTypeErrors.errors.txt index e03c20d64bff7..e3d1a06ed8978 100644 --- a/tests/baselines/reference/mappedTypeErrors.errors.txt +++ b/tests/baselines/reference/mappedTypeErrors.errors.txt @@ -23,9 +23,15 @@ mappedTypeErrors.ts(105,17): error TS2322: Type 'undefined' is not assignable to mappedTypeErrors.ts(106,17): error TS2353: Object literal may only specify known properties, and 'c' does not exist in type 'Pick'. mappedTypeErrors.ts(123,14): error TS2322: Type 'undefined' is not assignable to type 'string'. mappedTypeErrors.ts(124,14): error TS2353: Object literal may only specify known properties, and 'c' does not exist in type 'Pick'. -mappedTypeErrors.ts(128,16): error TS2322: Type 'string' is not assignable to type 'number'. -mappedTypeErrors.ts(129,25): error TS2322: Type 'string' is not assignable to type 'number'. -mappedTypeErrors.ts(130,39): error TS2322: Type 'string' is not assignable to type 'number'. +mappedTypeErrors.ts(128,14): error TS2322: Type '{ a: string; }' is not assignable to type 'T2'. + Types of property 'a' are incompatible. + Type 'string' is not assignable to type 'number'. +mappedTypeErrors.ts(129,23): error TS2322: Type '{ a: string; }' is not assignable to type 'Partial'. + Types of property 'a' are incompatible. + Type 'string' is not assignable to type 'number'. +mappedTypeErrors.ts(130,37): error TS2322: Type '{ a: string; }' is not assignable to type '{ [x: string]: any; a?: number | undefined; }'. + Types of property 'a' are incompatible. + Type 'string' is not assignable to type 'number'. mappedTypeErrors.ts(136,16): error TS2322: Type 'T' is not assignable to type 'string | number | symbol'. mappedTypeErrors.ts(136,21): error TS2536: Type 'P' cannot be used to index type 'T'. mappedTypeErrors.ts(148,17): error TS2339: Property 'foo' does not exist on type 'Pick'. @@ -214,17 +220,20 @@ mappedTypeErrors.ts(152,17): error TS2339: Property 'foo' does not exist on type type T2 = { a?: number, [key: string]: any }; let x1: T2 = { a: 'no' }; // Error - ~ -!!! error TS2322: Type 'string' is not assignable to type 'number'. -!!! related TS6500 mappedTypeErrors.ts:126:13: The expected type comes from property 'a' which is declared here on type 'T2' + ~~~~~~~~~~~ +!!! error TS2322: Type '{ a: string; }' is not assignable to type 'T2'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. let x2: Partial = { a: 'no' }; // Error - ~ -!!! error TS2322: Type 'string' is not assignable to type 'number'. -!!! related TS6500 mappedTypeErrors.ts:126:13: The expected type comes from property 'a' which is declared here on type 'Partial' + ~~~~~~~~~~~ +!!! error TS2322: Type '{ a: string; }' is not assignable to type 'Partial'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. let x3: { [P in keyof T2]: T2[P]} = { a: 'no' }; // Error - ~ -!!! error TS2322: Type 'string' is not assignable to type 'number'. -!!! related TS6500 mappedTypeErrors.ts:126:13: The expected type comes from property 'a' which is declared here on type '{ [x: string]: any; a?: number | undefined; }' + ~~~~~~~~~~~ +!!! error TS2322: Type '{ a: string; }' is not assignable to type '{ [x: string]: any; a?: number | undefined; }'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. // Repro from #13044 diff --git a/tests/baselines/reference/mappedTypeErrors.types b/tests/baselines/reference/mappedTypeErrors.types index 32839343182fc..aec6e373f0426 100644 --- a/tests/baselines/reference/mappedTypeErrors.types +++ b/tests/baselines/reference/mappedTypeErrors.types @@ -425,8 +425,8 @@ function setState(obj: T, props: Pick) { let foo: Foo = { a: "hello", b: 42 }; >foo : Foo > : ^^^ ->{ a: "hello", b: 42 } : { a: string; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: "hello", b: 42 } : Foo +> : ^^^ >a : string > : ^^^^^^ >"hello" : "hello" @@ -700,8 +700,8 @@ type T2 = { a?: number, [key: string]: any }; let x1: T2 = { a: 'no' }; // Error >x1 : T2 > : ^^ ->{ a: 'no' } : { a: string; } -> : ^^^^^^^^^^^^^^ +>{ a: 'no' } : T2 +> : ^^ >a : string > : ^^^^^^ >'no' : "no" @@ -710,8 +710,8 @@ let x1: T2 = { a: 'no' }; // Error let x2: Partial = { a: 'no' }; // Error >x2 : Partial > : ^^^^^^^^^^^ ->{ a: 'no' } : { a: string; } -> : ^^^^^^^^^^^^^^ +>{ a: 'no' } : Partial +> : ^^^^^^^^^^^ >a : string > : ^^^^^^ >'no' : "no" @@ -720,8 +720,8 @@ let x2: Partial = { a: 'no' }; // Error let x3: { [P in keyof T2]: T2[P]} = { a: 'no' }; // Error >x3 : { [x: string]: any; a?: number | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ->{ a: 'no' } : { a: string; } -> : ^^^^^^^^^^^^^^ +>{ a: 'no' } : { [x: string]: any; a?: number | undefined; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ >a : string > : ^^^^^^ >'no' : "no" @@ -753,8 +753,8 @@ type O = {x: number, y: boolean}; let o: O = {x: 5, y: false}; >o : O > : ^ ->{x: 5, y: false} : { x: number; y: false; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>{x: 5, y: false} : O +> : ^ >x : number > : ^^^^^^ >5 : 5 @@ -767,8 +767,8 @@ let o: O = {x: 5, y: false}; let f: Foo2 = { >f : Foo2 > : ^^^^^^^^^^^^ ->{ pf: {x: 7}, pt: {x: 7, y: false},} : { pf: { x: number; }; pt: { x: number; y: boolean; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ pf: {x: 7}, pt: {x: 7, y: false},} : Foo2 +> : ^^^^^^^^^^^^ pf: {x: 7}, >pf : { x: number; } diff --git a/tests/baselines/reference/mappedTypeIndexedAccess.errors.txt b/tests/baselines/reference/mappedTypeIndexedAccess.errors.txt index 26b737c83f701..49e18afe31344 100644 --- a/tests/baselines/reference/mappedTypeIndexedAccess.errors.txt +++ b/tests/baselines/reference/mappedTypeIndexedAccess.errors.txt @@ -1,7 +1,7 @@ -mappedTypeIndexedAccess.ts(18,5): error TS2322: Type '{ key: "foo"; value: number; }' is not assignable to type 'Pair'. +mappedTypeIndexedAccess.ts(18,27): error TS2322: Type '{ key: "foo"; value: number; }' is not assignable to type 'Pair'. Types of property 'value' are incompatible. Type 'number' is not assignable to type 'string'. -mappedTypeIndexedAccess.ts(24,5): error TS2322: Type '{ key: "foo"; value: number; }' is not assignable to type '{ key: "foo"; value: string; } | { key: "bar"; value: number; }'. +mappedTypeIndexedAccess.ts(24,42): error TS2322: Type '{ key: "foo"; value: number; }' is not assignable to type '{ key: "foo"; value: string; } | { key: "bar"; value: number; }'. Types of property 'value' are incompatible. Type 'number' is not assignable to type 'string'. @@ -25,21 +25,27 @@ mappedTypeIndexedAccess.ts(24,5): error TS2322: Type '{ key: "foo"; value: numbe // Error expected here let pair1: Pair = { - ~~~~~ -!!! error TS2322: Type '{ key: "foo"; value: number; }' is not assignable to type 'Pair'. -!!! error TS2322: Types of property 'value' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. + ~ key: "foo", + ~~~~~~~~~~~~~~~ value: 3 + ~~~~~~~~~~~~ }; + ~ +!!! error TS2322: Type '{ key: "foo"; value: number; }' is not assignable to type 'Pair'. +!!! error TS2322: Types of property 'value' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. // Error expected here let pair2: Pairs[keyof FooBar] = { - ~~~~~ -!!! error TS2322: Type '{ key: "foo"; value: number; }' is not assignable to type '{ key: "foo"; value: string; } | { key: "bar"; value: number; }'. -!!! error TS2322: Types of property 'value' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. + ~ key: "foo", + ~~~~~~~~~~~~~~~ value: 3 + ~~~~~~~~~~~~ }; + ~ +!!! error TS2322: Type '{ key: "foo"; value: number; }' is not assignable to type '{ key: "foo"; value: string; } | { key: "bar"; value: number; }'. +!!! error TS2322: Types of property 'value' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/mappedTypeIndexedAccess.types b/tests/baselines/reference/mappedTypeIndexedAccess.types index 351619b94f5b6..732b34c541a34 100644 --- a/tests/baselines/reference/mappedTypeIndexedAccess.types +++ b/tests/baselines/reference/mappedTypeIndexedAccess.types @@ -41,8 +41,8 @@ type FooBar = { let pair1: Pair = { >pair1 : Pair > : ^^^^^^^^^^^^ ->{ key: "foo", value: 3} : { key: "foo"; value: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ key: "foo", value: 3} : Pair +> : ^^^^^^^^^^^^ key: "foo", >key : "foo" @@ -62,8 +62,8 @@ let pair1: Pair = { let pair2: Pairs[keyof FooBar] = { >pair2 : { key: "foo"; value: string; } | { key: "bar"; value: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ key: "foo", value: 3} : { key: "foo"; value: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ key: "foo", value: 3} : { key: "foo"; value: string; } | { key: "bar"; value: number; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ key: "foo", >key : "foo" diff --git a/tests/baselines/reference/mappedTypeRelationships.types b/tests/baselines/reference/mappedTypeRelationships.types index ea45a0eb3041c..88ef1a5043ec2 100644 --- a/tests/baselines/reference/mappedTypeRelationships.types +++ b/tests/baselines/reference/mappedTypeRelationships.types @@ -688,8 +688,8 @@ function f50(obj: T, key: keyof T) { let item: Item = obj[key]; >item : Item > : ^^^^ ->obj[key] : T[keyof T] -> : ^^^^^^^^^^ +>obj[key] : Item +> : ^^^^ >obj : T > : ^ >key : keyof T @@ -719,7 +719,7 @@ function f51(obj: T, key: K) { let item: Item = obj[key]; >item : Item > : ^^^^ ->obj[key] : T[K] +>obj[key] : Item > : ^^^^ >obj : T > : ^ diff --git a/tests/baselines/reference/mappedTypeWithAny.errors.txt b/tests/baselines/reference/mappedTypeWithAny.errors.txt index f53402fd7fcb4..6b08ba93a0e45 100644 --- a/tests/baselines/reference/mappedTypeWithAny.errors.txt +++ b/tests/baselines/reference/mappedTypeWithAny.errors.txt @@ -1,7 +1,7 @@ mappedTypeWithAny.ts(23,16): error TS2339: Property 'notAValue' does not exist on type 'Data'. mappedTypeWithAny.ts(45,5): error TS2740: Type 'Objectish' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. mappedTypeWithAny.ts(46,5): error TS2740: Type 'Objectish' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. -mappedTypeWithAny.ts(53,5): error TS2322: Type 'string[]' is not assignable to type '[any, any]'. +mappedTypeWithAny.ts(53,23): error TS2322: Type 'string[]' is not assignable to type '[any, any]'. Target requires 2 element(s) but source may have fewer. @@ -65,7 +65,7 @@ mappedTypeWithAny.ts(53,5): error TS2322: Type 'string[]' is not assignable to t declare function stringifyPair(arr: T): { -readonly [K in keyof T]: string }; let def: [any, any] = stringifyPair(void 0 as any); - ~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'string[]' is not assignable to type '[any, any]'. !!! error TS2322: Target requires 2 element(s) but source may have fewer. diff --git a/tests/baselines/reference/mappedTypeWithAny.types b/tests/baselines/reference/mappedTypeWithAny.types index 587ff68bb42f3..aed736f4b9217 100644 --- a/tests/baselines/reference/mappedTypeWithAny.types +++ b/tests/baselines/reference/mappedTypeWithAny.types @@ -151,8 +151,8 @@ declare function stringifyArray(arr: T): { -readonly [ let abc: any[] = stringifyArray(void 0 as any); >abc : any[] > : ^^^^^ ->stringifyArray(void 0 as any) : string[] -> : ^^^^^^^^ +>stringifyArray(void 0 as any) : any[] +> : ^^^^^ >stringifyArray : (arr: T) => { -readonly [K in keyof T]: string; } > : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >void 0 as any : any @@ -171,8 +171,8 @@ declare function stringifyPair(arr: T): { -readon let def: [any, any] = stringifyPair(void 0 as any); >def : [any, any] > : ^^^^^^^^^^ ->stringifyPair(void 0 as any) : string[] -> : ^^^^^^^^ +>stringifyPair(void 0 as any) : [any, any] +> : ^^^^^^^^^^ >stringifyPair : (arr: T) => { -readonly [K in keyof T]: string; } > : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >void 0 as any : any diff --git a/tests/baselines/reference/mappedTypes2.types b/tests/baselines/reference/mappedTypes2.types index d1225adb76505..9ca22b54e6e79 100644 --- a/tests/baselines/reference/mappedTypes2.types +++ b/tests/baselines/reference/mappedTypes2.types @@ -252,8 +252,8 @@ function f2(shape: Shape) { var partial: Partial = {}; >partial : PartialShape > : ^^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : Partial +> : ^^^^^^^^^^^^^^ } function f3(shape: Shape) { diff --git a/tests/baselines/reference/mappedTypes5.errors.txt b/tests/baselines/reference/mappedTypes5.errors.txt index 72bcb85211f47..87c645154a772 100644 --- a/tests/baselines/reference/mappedTypes5.errors.txt +++ b/tests/baselines/reference/mappedTypes5.errors.txt @@ -1,6 +1,6 @@ -mappedTypes5.ts(6,9): error TS2322: Type 'Partial' is not assignable to type 'Readonly'. -mappedTypes5.ts(8,9): error TS2322: Type 'Partial>' is not assignable to type 'Readonly'. -mappedTypes5.ts(9,9): error TS2322: Type 'Readonly>' is not assignable to type 'Readonly'. +mappedTypes5.ts(6,27): error TS2322: Type 'Partial' is not assignable to type 'Readonly'. +mappedTypes5.ts(8,27): error TS2322: Type 'Partial>' is not assignable to type 'Readonly'. +mappedTypes5.ts(9,27): error TS2322: Type 'Readonly>' is not assignable to type 'Readonly'. ==== mappedTypes5.ts (3 errors) ==== @@ -10,14 +10,14 @@ mappedTypes5.ts(9,9): error TS2322: Type 'Readonly>' is not assignabl let a3: Partial = pr; let a4: Partial = rp; let b1: Readonly = p; // Error - ~~ + ~ !!! error TS2322: Type 'Partial' is not assignable to type 'Readonly'. let b2: Readonly = r; let b3: Readonly = pr; // Error - ~~ + ~~ !!! error TS2322: Type 'Partial>' is not assignable to type 'Readonly'. let b4: Readonly = rp; // Error - ~~ + ~~ !!! error TS2322: Type 'Readonly>' is not assignable to type 'Readonly'. let c1: Partial> = p; let c2: Partial> = r; diff --git a/tests/baselines/reference/mappedTypes5.types b/tests/baselines/reference/mappedTypes5.types index 6af8925bca196..83f28e89873ab 100644 --- a/tests/baselines/reference/mappedTypes5.types +++ b/tests/baselines/reference/mappedTypes5.types @@ -22,26 +22,26 @@ function f(p: Partial, r: Readonly, pr: Partial>, rp: Reado let a2: Partial = r; >a2 : Partial > : ^^^^^^^^^^ ->r : Readonly -> : ^^^^^^^^^^^ +>r : Partial +> : ^^^^^^^^^^ let a3: Partial = pr; >a3 : Partial > : ^^^^^^^^^^ ->pr : Partial> -> : ^^^^^^^^^^^^^^^^^^^^ +>pr : Partial +> : ^^^^^^^^^^ let a4: Partial = rp; >a4 : Partial > : ^^^^^^^^^^ ->rp : Readonly> -> : ^^^^^^^^^^^^^^^^^^^^ +>rp : Partial +> : ^^^^^^^^^^ let b1: Readonly = p; // Error >b1 : Readonly > : ^^^^^^^^^^^ ->p : Partial -> : ^^^^^^^^^^ +>p : Readonly +> : ^^^^^^^^^^^ let b2: Readonly = r; >b2 : Readonly @@ -52,26 +52,26 @@ function f(p: Partial, r: Readonly, pr: Partial>, rp: Reado let b3: Readonly = pr; // Error >b3 : Readonly > : ^^^^^^^^^^^ ->pr : Partial> -> : ^^^^^^^^^^^^^^^^^^^^ +>pr : Readonly +> : ^^^^^^^^^^^ let b4: Readonly = rp; // Error >b4 : Readonly > : ^^^^^^^^^^^ ->rp : Readonly> -> : ^^^^^^^^^^^^^^^^^^^^ +>rp : Readonly +> : ^^^^^^^^^^^ let c1: Partial> = p; >c1 : Partial> > : ^^^^^^^^^^^^^^^^^^^^ ->p : Partial -> : ^^^^^^^^^^ +>p : Partial> +> : ^^^^^^^^^^^^^^^^^^^^ let c2: Partial> = r; >c2 : Partial> > : ^^^^^^^^^^^^^^^^^^^^ ->r : Readonly -> : ^^^^^^^^^^^ +>r : Partial> +> : ^^^^^^^^^^^^^^^^^^^^ let c3: Partial> = pr; >c3 : Partial> @@ -82,25 +82,25 @@ function f(p: Partial, r: Readonly, pr: Partial>, rp: Reado let c4: Partial> = rp; >c4 : Partial> > : ^^^^^^^^^^^^^^^^^^^^ ->rp : Readonly> +>rp : Partial> > : ^^^^^^^^^^^^^^^^^^^^ let d1: Readonly> = p; >d1 : Readonly> > : ^^^^^^^^^^^^^^^^^^^^ ->p : Partial -> : ^^^^^^^^^^ +>p : Readonly> +> : ^^^^^^^^^^^^^^^^^^^^ let d2: Readonly> = r; >d2 : Readonly> > : ^^^^^^^^^^^^^^^^^^^^ ->r : Readonly -> : ^^^^^^^^^^^ +>r : Readonly> +> : ^^^^^^^^^^^^^^^^^^^^ let d3: Readonly> = pr; >d3 : Readonly> > : ^^^^^^^^^^^^^^^^^^^^ ->pr : Partial> +>pr : Readonly> > : ^^^^^^^^^^^^^^^^^^^^ let d4: Readonly> = rp; @@ -157,8 +157,8 @@ function doit() { let previous: Partial = Object.create(null); >previous : Partial > : ^^^^^^^^^^ ->Object.create(null) : any -> : ^^^ +>Object.create(null) : Partial +> : ^^^^^^^^^^ >Object.create : { (o: object | null): any; (o: object | null, properties: PropertyDescriptorMap & ThisType): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >Object : ObjectConstructor @@ -169,8 +169,8 @@ function doit() { let current: Partial = Object.create(null); >current : Partial > : ^^^^^^^^^^ ->Object.create(null) : any -> : ^^^ +>Object.create(null) : Partial +> : ^^^^^^^^^^ >Object.create : { (o: object | null): any; (o: object | null, properties: PropertyDescriptorMap & ThisType): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >Object : ObjectConstructor @@ -181,8 +181,8 @@ function doit() { let args1: Args1 = { previous, current }; >args1 : Args1 > : ^^^^^^^^ ->{ previous, current } : { previous: Partial; current: Partial; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ previous, current } : Args1 +> : ^^^^^^^^ >previous : Partial > : ^^^^^^^^^^ >current : Partial @@ -191,8 +191,8 @@ function doit() { let args2: Args2 = { previous, current }; >args2 : Args2 > : ^^^^^^^^ ->{ previous, current } : { previous: Partial; current: Partial; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ previous, current } : Args2 +> : ^^^^^^^^ >previous : Partial > : ^^^^^^^^^^ >current : Partial @@ -242,8 +242,8 @@ function doit2() { let previous: Partial = Object.create(null); >previous : Partial > : ^^^^^^^^^^^^^^^ ->Object.create(null) : any -> : ^^^ +>Object.create(null) : Partial +> : ^^^^^^^^^^^^^^^ >Object.create : { (o: object | null): any; (o: object | null, properties: PropertyDescriptorMap & ThisType): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >Object : ObjectConstructor @@ -254,8 +254,8 @@ function doit2() { let current: Partial = Object.create(null); >current : Partial > : ^^^^^^^^^^^^^^^ ->Object.create(null) : any -> : ^^^ +>Object.create(null) : Partial +> : ^^^^^^^^^^^^^^^ >Object.create : { (o: object | null): any; (o: object | null, properties: PropertyDescriptorMap & ThisType): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >Object : ObjectConstructor @@ -266,8 +266,8 @@ function doit2() { let args1: Args3 = { previous, current }; >args1 : Args3 > : ^^^^^ ->{ previous, current } : { previous: Partial; current: Partial; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ previous, current } : Args3 +> : ^^^^^ >previous : Partial > : ^^^^^^^^^^^^^^^ >current : Partial @@ -276,8 +276,8 @@ function doit2() { let args2: Args4 = { previous, current }; >args2 : Args4 > : ^^^^^ ->{ previous, current } : { previous: Partial; current: Partial; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ previous, current } : Args4 +> : ^^^^^ >previous : Partial > : ^^^^^^^^^^^^^^^ >current : Partial diff --git a/tests/baselines/reference/maxConstraints.types b/tests/baselines/reference/maxConstraints.types index 7c035fa1691ac..5481545bcd215 100644 --- a/tests/baselines/reference/maxConstraints.types +++ b/tests/baselines/reference/maxConstraints.types @@ -18,8 +18,8 @@ interface Comparer { var max2: Comparer = (x, y) => { return (x.compareTo(y) > 0) ? x : y }; >max2 : Comparer > : ^^^^^^^^ ->(x, y) => { return (x.compareTo(y) > 0) ? x : y } : >(x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ +>(x, y) => { return (x.compareTo(y) > 0) ? x : y } : Comparer +> : ^^^^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/mergedDeclarations7.errors.txt b/tests/baselines/reference/mergedDeclarations7.errors.txt index 57f347379d8e0..e8e7743d2a553 100644 --- a/tests/baselines/reference/mergedDeclarations7.errors.txt +++ b/tests/baselines/reference/mergedDeclarations7.errors.txt @@ -1,4 +1,4 @@ -test.ts(4,5): error TS2322: Type 'PassportStatic' is not assignable to type 'Passport'. +test.ts(4,19): error TS2322: Type 'PassportStatic' is not assignable to type 'Passport'. The types returned by 'use()' are incompatible between these types. Type 'PassportStatic' is not assignable to type 'this'. 'PassportStatic' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'Passport'. @@ -25,7 +25,7 @@ test.ts(4,5): error TS2322: Type 'PassportStatic' is not assignable to type 'Pas import { Passport } from "passport"; let p: Passport = passport.use(); - ~ + ~~~~~~~~~~~~~~ !!! error TS2322: Type 'PassportStatic' is not assignable to type 'Passport'. !!! error TS2322: The types returned by 'use()' are incompatible between these types. !!! error TS2322: Type 'PassportStatic' is not assignable to type 'this'. diff --git a/tests/baselines/reference/mismatchedExplicitTypeParameterAndArgumentType.types b/tests/baselines/reference/mismatchedExplicitTypeParameterAndArgumentType.types index b9b42cc5fc935..2e0f1a964c4da 100644 --- a/tests/baselines/reference/mismatchedExplicitTypeParameterAndArgumentType.types +++ b/tests/baselines/reference/mismatchedExplicitTypeParameterAndArgumentType.types @@ -14,8 +14,8 @@ function map(xs: T[], f: (x: T) => U) { var ys: U[] = []; >ys : U[] > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : U[] +> : ^^^ xs.forEach(x => ys.push(f(x))); >xs.forEach(x => ys.push(f(x))) : void diff --git a/tests/baselines/reference/modifierParenCast.types b/tests/baselines/reference/modifierParenCast.types index 7e3555464015b..d4d974d17f362 100644 --- a/tests/baselines/reference/modifierParenCast.types +++ b/tests/baselines/reference/modifierParenCast.types @@ -3,23 +3,19 @@ === modifierParenCast.ts === let readonly: any = undefined; >readonly : any ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any let override: any = undefined; >override : any ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any let out: any = undefined; >out : any ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any let declare: any = undefined; >declare : any ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any export const a = (readonly as number); >a : number diff --git a/tests/baselines/reference/moduleClassArrayCodeGenTest.types b/tests/baselines/reference/moduleClassArrayCodeGenTest.types index ced3a0ab7a366..a2eb5daa960a4 100644 --- a/tests/baselines/reference/moduleClassArrayCodeGenTest.types +++ b/tests/baselines/reference/moduleClassArrayCodeGenTest.types @@ -21,14 +21,14 @@ var t: M.A[] = []; > : ^^^^^ >M : any > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : M.A[] +> : ^^^^^ var t2: M.B[] = []; >t2 : M.B[] > : ^^^^^ >M : any > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : M.B[] +> : ^^^^^ diff --git a/tests/baselines/reference/multiCallOverloads.types b/tests/baselines/reference/multiCallOverloads.types index 2d70b74d3b54a..03585f7a2c7eb 100644 --- a/tests/baselines/reference/multiCallOverloads.types +++ b/tests/baselines/reference/multiCallOverloads.types @@ -16,16 +16,16 @@ function load(f: ICallback) {} var f1: ICallback = function(z?) {} >f1 : ICallback > : ^^^^^^^^^ ->function(z?) {} : (z?: string) => void -> : ^ ^^^^^^^^^^^^^^^^^^ +>function(z?) {} : ICallback +> : ^^^^^^^^^ >z : string > : ^^^^^^ var f2: ICallback = function(z?) {} >f2 : ICallback > : ^^^^^^^^^ ->function(z?) {} : (z?: string) => void -> : ^ ^^^^^^^^^^^^^^^^^^ +>function(z?) {} : ICallback +> : ^^^^^^^^^ >z : string > : ^^^^^^ diff --git a/tests/baselines/reference/multipleNumericIndexers.types b/tests/baselines/reference/multipleNumericIndexers.types index aa7adc6ed6e25..ffd57cfc005f7 100644 --- a/tests/baselines/reference/multipleNumericIndexers.types +++ b/tests/baselines/reference/multipleNumericIndexers.types @@ -52,8 +52,8 @@ var b: { > : ^^^^^^ } = { 1: '', "2": '' } ->{ 1: '', "2": '' } : { 1: string; "2": string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 1: '', "2": '' } : { [x: number]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >1 : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/multipleStringIndexers.types b/tests/baselines/reference/multipleStringIndexers.types index fb7ae1863c57e..6d2796ef4ebbd 100644 --- a/tests/baselines/reference/multipleStringIndexers.types +++ b/tests/baselines/reference/multipleStringIndexers.types @@ -52,8 +52,8 @@ var b: { > : ^^^^^^ } = { y: '' } ->{ y: '' } : { y: string; } -> : ^^^^^^^^^^^^^^ +>{ y: '' } : { [x: string]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >y : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/multivar.types b/tests/baselines/reference/multivar.types index c4b66a709feea..8baf7aa123c86 100644 --- a/tests/baselines/reference/multivar.types +++ b/tests/baselines/reference/multivar.types @@ -32,8 +32,8 @@ module m2 { > : ^^^ >b2 : number > : ^^^^^^ ->10 : 10 -> : ^^ +>10 : number +> : ^^^^^^ >b : any > : ^^^ @@ -46,8 +46,8 @@ module m2 { > : ^^^ >b22 : number > : ^^^^^^ ->10 : 10 -> : ^^ +>10 : number +> : ^^^^^^ >b222 : any > : ^^^ diff --git a/tests/baselines/reference/namespaceImportTypeQuery.types b/tests/baselines/reference/namespaceImportTypeQuery.types index 6f14487d0af1f..45b566bc814db 100644 --- a/tests/baselines/reference/namespaceImportTypeQuery.types +++ b/tests/baselines/reference/namespaceImportTypeQuery.types @@ -43,8 +43,8 @@ let t: typeof types = { > : ^^^^^^^^^^^^ >types : typeof types > : ^^^^^^^^^^^^ ->{ // error: while you can ask for `typeof types.A`, // `typeof types` does not include `A` A: undefined as any, B: undefined as any,} : { A: any; B: any; } -> : ^^^^^ ^^^^^ ^^^ +>{ // error: while you can ask for `typeof types.A`, // `typeof types` does not include `A` A: undefined as any, B: undefined as any,} : typeof types +> : ^^^^^^^^^^^^ // error: while you can ask for `typeof types.A`, // `typeof types` does not include `A` diff --git a/tests/baselines/reference/namespaceImportTypeQuery2.types b/tests/baselines/reference/namespaceImportTypeQuery2.types index 9c472dccacf13..27a26c6ae34f3 100644 --- a/tests/baselines/reference/namespaceImportTypeQuery2.types +++ b/tests/baselines/reference/namespaceImportTypeQuery2.types @@ -35,8 +35,8 @@ let t: typeof types = { > : ^^^^^^^^^^^^ >types : typeof types > : ^^^^^^^^^^^^ ->{ A: undefined as any, // ok B: undefined as any,} : { A: any; B: any; } -> : ^^^^^ ^^^^^ ^^^ +>{ A: undefined as any, // ok B: undefined as any,} : typeof types +> : ^^^^^^^^^^^^ A: undefined as any, // ok >A : any diff --git a/tests/baselines/reference/namespaceImportTypeQuery3.types b/tests/baselines/reference/namespaceImportTypeQuery3.types index c9618523ef0ac..e743c802a3755 100644 --- a/tests/baselines/reference/namespaceImportTypeQuery3.types +++ b/tests/baselines/reference/namespaceImportTypeQuery3.types @@ -29,8 +29,8 @@ let t: typeof types = { > : ^^^^^^^^^^^^ >types : typeof types > : ^^^^^^^^^^^^ ->{ A: undefined as any, // ok B: undefined as any,} : { A: any; B: any; } -> : ^^^^^ ^^^^^ ^^^ +>{ A: undefined as any, // ok B: undefined as any,} : typeof types +> : ^^^^^^^^^^^^ A: undefined as any, // ok >A : any diff --git a/tests/baselines/reference/namespaceImportTypeQuery4.types b/tests/baselines/reference/namespaceImportTypeQuery4.types index dc73c7ad48ec8..08d55477a1c34 100644 --- a/tests/baselines/reference/namespaceImportTypeQuery4.types +++ b/tests/baselines/reference/namespaceImportTypeQuery4.types @@ -27,8 +27,8 @@ let t: typeof types = { > : ^^^^^^^^^^^^ >types : typeof types > : ^^^^^^^^^^^^ ->{ A: undefined as any, // error B: undefined as any,} : { A: any; B: any; } -> : ^^^^^ ^^^^^ ^^^ +>{ A: undefined as any, // error B: undefined as any,} : typeof types +> : ^^^^^^^^^^^^ A: undefined as any, // error >A : any diff --git a/tests/baselines/reference/narrowingPastLastAssignment.types b/tests/baselines/reference/narrowingPastLastAssignment.types index f2c62a10d1381..9a9c8566cef18 100644 --- a/tests/baselines/reference/narrowingPastLastAssignment.types +++ b/tests/baselines/reference/narrowingPastLastAssignment.types @@ -186,8 +186,8 @@ function f4(cond: () => boolean) { let x: string | number = 0; >x : string | number > : ^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : string | number +> : ^^^^^^^^^^^^^^^ while (cond()) { >cond() : boolean @@ -238,8 +238,8 @@ function f4(cond: () => boolean) { > : ^ ^^ ^^^^^^^^^ >() => { x /* number */ } : () => void > : ^^^^^^^^^^ ->x : number -> : ^^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ } function f5(x: string | number, cond: () => boolean) { diff --git a/tests/baselines/reference/negateOperatorWithAnyOtherType.types b/tests/baselines/reference/negateOperatorWithAnyOtherType.types index e0d6fd9727f5f..ab7b31a3bfc36 100644 --- a/tests/baselines/reference/negateOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/negateOperatorWithAnyOtherType.types @@ -14,8 +14,8 @@ var ANY1: any; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/nestedExcessPropertyChecking.errors.txt b/tests/baselines/reference/nestedExcessPropertyChecking.errors.txt index 7c131d020aa34..3487f5fd3258a 100644 --- a/tests/baselines/reference/nestedExcessPropertyChecking.errors.txt +++ b/tests/baselines/reference/nestedExcessPropertyChecking.errors.txt @@ -2,8 +2,8 @@ nestedExcessPropertyChecking.ts(6,7): error TS2322: Type 'C1' is not assignable Types of property 'x' are incompatible. Type '{ c: string; }' has no properties in common with type '{ a?: string | undefined; } & { b?: string | undefined; }'. nestedExcessPropertyChecking.ts(13,7): error TS2559: Type 'C2' has no properties in common with type 'A2 & B2'. -nestedExcessPropertyChecking.ts(17,5): error TS2559: Type 'E' has no properties in common with type '{ nope?: any; }'. -nestedExcessPropertyChecking.ts(18,5): error TS2559: Type '"A"' has no properties in common with type '{ nope?: any; }'. +nestedExcessPropertyChecking.ts(17,25): error TS2559: Type 'E' has no properties in common with type '{ nope?: any; }'. +nestedExcessPropertyChecking.ts(18,25): error TS2559: Type '"A"' has no properties in common with type '{ nope?: any; }'. nestedExcessPropertyChecking.ts(30,22): error TS2559: Type 'false' has no properties in common with type 'OverridesInput'. nestedExcessPropertyChecking.ts(40,9): error TS2559: Type 'false' has no properties in common with type 'OverridesInput'. @@ -32,10 +32,10 @@ nestedExcessPropertyChecking.ts(40,9): error TS2559: Type 'false' has no propert enum E { A = "A" } let x: { nope?: any } = E.A; // Error - ~ + ~~~ !!! error TS2559: Type 'E' has no properties in common with type '{ nope?: any; }'. let y: { nope?: any } = "A"; // Error - ~ + ~~~ !!! error TS2559: Type '"A"' has no properties in common with type '{ nope?: any; }'. // Repros from #51043 diff --git a/tests/baselines/reference/nestedExcessPropertyChecking.types b/tests/baselines/reference/nestedExcessPropertyChecking.types index 556fe677a74f0..755c62830e5cd 100644 --- a/tests/baselines/reference/nestedExcessPropertyChecking.types +++ b/tests/baselines/reference/nestedExcessPropertyChecking.types @@ -72,20 +72,20 @@ let x: { nope?: any } = E.A; // Error > : ^^^^^^^^^ ^^^ >nope : any > : ^^^ ->E.A : E -> : ^ +>E.A : { nope?: any; } +> : ^^^^^^^^^ ^^^ >E : typeof E > : ^^^^^^^^ ->A : E -> : ^ +>A : { nope?: any; } +> : ^^^^^^^^^ ^^^ let y: { nope?: any } = "A"; // Error >y : { nope?: any; } > : ^^^^^^^^^ ^^^ >nope : any > : ^^^ ->"A" : "A" -> : ^^^ +>"A" : { nope?: any; } +> : ^^^^^^^^^ ^^^ // Repros from #51043 diff --git a/tests/baselines/reference/nestedFreshLiteral.errors.txt b/tests/baselines/reference/nestedFreshLiteral.errors.txt index 983d5bd7e5a8b..836f907e1b931 100644 --- a/tests/baselines/reference/nestedFreshLiteral.errors.txt +++ b/tests/baselines/reference/nestedFreshLiteral.errors.txt @@ -1,4 +1,6 @@ -nestedFreshLiteral.ts(12,21): error TS2561: Object literal may only specify known properties, but 'colour' does not exist in type 'CSSProps'. Did you mean to write 'color'? +nestedFreshLiteral.ts(12,21): error TS2322: Type '{ nested: { prop: { colour: string; }; }; }' is not assignable to type 'NestedCSSProps'. + The types of 'nested.prop' are incompatible between these types. + Object literal may only specify known properties, but 'colour' does not exist in type 'CSSProps'. Did you mean to write 'color'? ==== nestedFreshLiteral.ts (1 errors) ==== @@ -15,5 +17,7 @@ nestedFreshLiteral.ts(12,21): error TS2561: Object literal may only specify know let stylen: NestedCSSProps = { nested: { prop: { colour: 'red' } } ~~~~~~ -!!! error TS2561: Object literal may only specify known properties, but 'colour' does not exist in type 'CSSProps'. Did you mean to write 'color'? +!!! error TS2322: Type '{ nested: { prop: { colour: string; }; }; }' is not assignable to type 'NestedCSSProps'. +!!! error TS2322: The types of 'nested.prop' are incompatible between these types. +!!! error TS2322: Object literal may only specify known properties, but 'colour' does not exist in type 'CSSProps'. Did you mean to write 'color'? } \ No newline at end of file diff --git a/tests/baselines/reference/nestedFreshLiteral.types b/tests/baselines/reference/nestedFreshLiteral.types index 624274136729e..89a8a1171d97c 100644 --- a/tests/baselines/reference/nestedFreshLiteral.types +++ b/tests/baselines/reference/nestedFreshLiteral.types @@ -20,8 +20,8 @@ interface NestedSelector { let stylen: NestedCSSProps = { >stylen : NestedCSSProps > : ^^^^^^^^^^^^^^ ->{ nested: { prop: { colour: 'red' } }} : { nested: { prop: { colour: string; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ nested: { prop: { colour: 'red' } }} : NestedCSSProps +> : ^^^^^^^^^^^^^^ nested: { prop: { colour: 'red' } } >nested : { prop: { colour: string; }; } diff --git a/tests/baselines/reference/nestedModules.types b/tests/baselines/reference/nestedModules.types index df7ba930ab5b4..f34a7e78b730d 100644 --- a/tests/baselines/reference/nestedModules.types +++ b/tests/baselines/reference/nestedModules.types @@ -26,8 +26,8 @@ module A { > : ^^^^^^^ >C : any > : ^^^ ->{ x: 0, y: 0 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: 0 } : C.Point +> : ^^^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/neverTypeErrors1.types b/tests/baselines/reference/neverTypeErrors1.types index 1f5248472c09a..6eac645102d78 100644 --- a/tests/baselines/reference/neverTypeErrors1.types +++ b/tests/baselines/reference/neverTypeErrors1.types @@ -106,8 +106,8 @@ function f5() { let x: never[] = []; // Ok >x : never[] > : ^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : never[] +> : ^^^^^^^ } // Repro from #46032 diff --git a/tests/baselines/reference/noEmitOnError.errors.txt b/tests/baselines/reference/noEmitOnError.errors.txt index 9a2e74959e2a6..7d6a9d3da2927 100644 --- a/tests/baselines/reference/noEmitOnError.errors.txt +++ b/tests/baselines/reference/noEmitOnError.errors.txt @@ -1,8 +1,8 @@ -noEmitOnError.ts(1,5): error TS2322: Type 'string' is not assignable to type 'number'. +noEmitOnError.ts(1,17): error TS2322: Type 'string' is not assignable to type 'number'. ==== noEmitOnError.ts (1 errors) ==== var x: number = ""; - ~ + ~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/noEmitOnError.types b/tests/baselines/reference/noEmitOnError.types index 955420e7f8947..dfbc66c000143 100644 --- a/tests/baselines/reference/noEmitOnError.types +++ b/tests/baselines/reference/noEmitOnError.types @@ -4,6 +4,6 @@ var x: number = ""; >x : number > : ^^^^^^ ->"" : "" -> : ^^ +>"" : number +> : ^^^^^^ diff --git a/tests/baselines/reference/noImplicitAnyForIn.types b/tests/baselines/reference/noImplicitAnyForIn.types index e45cdeadcea2c..4da31b3f8bd08 100644 --- a/tests/baselines/reference/noImplicitAnyForIn.types +++ b/tests/baselines/reference/noImplicitAnyForIn.types @@ -4,8 +4,8 @@ var x: {}[] = [[1, 2, 3], ["hello"]]; >x : {}[] > : ^^^^ ->[[1, 2, 3], ["hello"]] : (number[] | string[])[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>[[1, 2, 3], ["hello"]] : {}[] +> : ^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types b/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types index 8a51c56c23c97..d2ad9633ac660 100644 --- a/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types +++ b/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types @@ -5,8 +5,8 @@ var x: (a: any) => void = function (x: T) { >x : (a: any) => void > : ^ ^^ ^^^^^ >a : any ->function (x: T) { return null;} : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +>function (x: T) { return null;} : (a: any) => void +> : ^ ^^ ^^^^^ >x : T > : ^ @@ -17,8 +17,8 @@ var x2: (a: any) => void = function f(x: T) { >x2 : (a: any) => void > : ^ ^^ ^^^^^ >a : any ->function f(x: T) { return null;} : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +>function f(x: T) { return null;} : (a: any) => void +> : ^ ^^ ^^^^^ >f : (x: T) => any > : ^ ^^ ^^ ^^^^^^^^ >x : T diff --git a/tests/baselines/reference/noImplicitAnyIndexing.types b/tests/baselines/reference/noImplicitAnyIndexing.types index 5376b1db6586d..46d7a4e5880c3 100644 --- a/tests/baselines/reference/noImplicitAnyIndexing.types +++ b/tests/baselines/reference/noImplicitAnyIndexing.types @@ -85,8 +85,8 @@ var y = {}[10]; var hi: any = "hi"; >hi : any > : ^^^ ->"hi" : "hi" -> : ^^^^ +>"hi" : any +> : ^^^ var emptyObj = {}; >emptyObj : {} @@ -128,8 +128,8 @@ interface MyMap { var m: MyMap = { >m : MyMap > : ^^^^^^^^^^^^^ ->{ "0": 0, "1": 1, "2": 2, "Okay that's enough for today.": NaN} : { "0": number; "1": number; "2": number; "Okay that's enough for today.": number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ "0": 0, "1": 1, "2": 2, "Okay that's enough for today.": NaN} : MyMap +> : ^^^^^^^^^^^^^ "0": 0, >"0" : number diff --git a/tests/baselines/reference/noImplicitAnyIndexingSuppressed.types b/tests/baselines/reference/noImplicitAnyIndexingSuppressed.types index 90539ba4cfc7b..9dad11775daad 100644 --- a/tests/baselines/reference/noImplicitAnyIndexingSuppressed.types +++ b/tests/baselines/reference/noImplicitAnyIndexingSuppressed.types @@ -84,8 +84,8 @@ var y = {}[10]; var hi: any = "hi"; >hi : any > : ^^^ ->"hi" : "hi" -> : ^^^^ +>"hi" : any +> : ^^^ var emptyObj = {}; >emptyObj : {} @@ -127,8 +127,8 @@ interface MyMap { var m: MyMap = { >m : MyMap > : ^^^^^^^^^^^^^ ->{ "0": 0, "1": 1, "2": 2, "Okay that's enough for today.": NaN} : { "0": number; "1": number; "2": number; "Okay that's enough for today.": number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ "0": 0, "1": 1, "2": 2, "Okay that's enough for today.": NaN} : MyMap +> : ^^^^^^^^^^^^^ "0": 0, >"0" : number diff --git a/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.types b/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.types index 534eb2113b5b5..c3032901abfc5 100644 --- a/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.types +++ b/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.types @@ -684,8 +684,8 @@ interface Dog { bark(): void; } let rover: Dog = { bark() {} }; >rover : Dog > : ^^^ ->{ bark() {} } : { bark(): void; } -> : ^^^^^^^^^^^^^^^^^ +>{ bark() {} } : Dog +> : ^^^ >bark : () => void > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/noImplicitThisFunctions.types b/tests/baselines/reference/noImplicitThisFunctions.types index 298ba96554a3a..5ad6320c57885 100644 --- a/tests/baselines/reference/noImplicitThisFunctions.types +++ b/tests/baselines/reference/noImplicitThisFunctions.types @@ -59,8 +59,8 @@ let f4: (b: number) => number = b => this.c + b; > : ^ ^^ ^^^^^ >b : number > : ^^^^^^ ->b => this.c + b : (b: number) => any -> : ^ ^^^^^^^^^^^^^^^^ +>b => this.c + b : (b: number) => number +> : ^ ^^ ^^^^^ >b : number > : ^^^^^^ >this.c + b : any diff --git a/tests/baselines/reference/nonArrayRestArgs.types b/tests/baselines/reference/nonArrayRestArgs.types index 7d31e60ce9d36..5bdd02785fd3b 100644 --- a/tests/baselines/reference/nonArrayRestArgs.types +++ b/tests/baselines/reference/nonArrayRestArgs.types @@ -10,8 +10,8 @@ function foo(...rest: number) { // error var x: string = rest[0]; >x : string > : ^^^^^^ ->rest[0] : any -> : ^^^ +>rest[0] : string +> : ^^^^^^ >rest : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/nonPrimitiveAndTypeVariables.errors.txt b/tests/baselines/reference/nonPrimitiveAndTypeVariables.errors.txt index 2929c9cd00bfa..08319aba72d0f 100644 --- a/tests/baselines/reference/nonPrimitiveAndTypeVariables.errors.txt +++ b/tests/baselines/reference/nonPrimitiveAndTypeVariables.errors.txt @@ -1,5 +1,5 @@ -nonPrimitiveAndTypeVariables.ts(10,9): error TS2322: Type 'T' is not assignable to type 'object'. -nonPrimitiveAndTypeVariables.ts(11,9): error TS2322: Type 'T' is not assignable to type 'object | U'. +nonPrimitiveAndTypeVariables.ts(10,21): error TS2322: Type 'T' is not assignable to type 'object'. +nonPrimitiveAndTypeVariables.ts(11,25): error TS2322: Type 'T' is not assignable to type 'object | U'. ==== nonPrimitiveAndTypeVariables.ts (2 errors) ==== @@ -13,11 +13,11 @@ nonPrimitiveAndTypeVariables.ts(11,9): error TS2322: Type 'T' is not assignable function foo(x: T) { let a: object = x; // Error - ~ + ~ !!! error TS2322: Type 'T' is not assignable to type 'object'. !!! related TS2208 nonPrimitiveAndTypeVariables.ts:9:14: This type parameter might need an `extends object` constraint. let b: U | object = x; // Error - ~ + ~ !!! error TS2322: Type 'T' is not assignable to type 'object | U'. !!! related TS2208 nonPrimitiveAndTypeVariables.ts:9:14: This type parameter might need an `extends object | U` constraint. } diff --git a/tests/baselines/reference/nonPrimitiveAndTypeVariables.types b/tests/baselines/reference/nonPrimitiveAndTypeVariables.types index fd91a1ce8cf4b..c80e634f05e98 100644 --- a/tests/baselines/reference/nonPrimitiveAndTypeVariables.types +++ b/tests/baselines/reference/nonPrimitiveAndTypeVariables.types @@ -16,8 +16,8 @@ let a: A<{ a: 0 | 1 }, 0> = { a: 0 }; > : ^^^^^^^ ^^^^^^^ >a : 0 | 1 > : ^^^^^ ->{ a: 0 } : { a: 0; } -> : ^^^^^^^^^ +>{ a: 0 } : A<{ a: 0 | 1; }, 0> +> : ^^^^^^^ ^^^^^^^ >a : 0 > : ^ >0 : 0 @@ -28,8 +28,8 @@ let b: B<{ a: 0 | 1 }, 0> = { a: 0 }; > : ^^^^^^^ ^^^^^^^ >a : 0 | 1 > : ^^^^^ ->{ a: 0 } : { a: 0; } -> : ^^^^^^^^^ +>{ a: 0 } : B<{ a: 0 | 1; }, 0> +> : ^^^^^^^ ^^^^^^^ >a : 0 > : ^ >0 : 0 @@ -44,13 +44,13 @@ function foo(x: T) { let a: object = x; // Error >a : object > : ^^^^^^ ->x : T -> : ^ +>x : object +> : ^^^^^^ let b: U | object = x; // Error >b : object | U > : ^^^^^^^^^^ ->x : T -> : ^ +>x : object | U +> : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/nonPrimitiveAsProperty.errors.txt b/tests/baselines/reference/nonPrimitiveAsProperty.errors.txt index ccbdac16461cc..643d124c09866 100644 --- a/tests/baselines/reference/nonPrimitiveAsProperty.errors.txt +++ b/tests/baselines/reference/nonPrimitiveAsProperty.errors.txt @@ -1,4 +1,6 @@ -nonPrimitiveAsProperty.ts(7,28): error TS2322: Type 'string' is not assignable to type 'object'. +nonPrimitiveAsProperty.ts(7,27): error TS2322: Type '{ foo: string; }' is not assignable to type 'WithNonPrimitive'. + Types of property 'foo' are incompatible. + Type 'string' is not assignable to type 'object'. ==== nonPrimitiveAsProperty.ts (1 errors) ==== @@ -9,7 +11,8 @@ nonPrimitiveAsProperty.ts(7,28): error TS2322: Type 'string' is not assignable t var a: WithNonPrimitive = { foo: {bar: "bar"} }; var b: WithNonPrimitive = {foo: "bar"}; // expect error - ~~~ -!!! error TS2322: Type 'string' is not assignable to type 'object'. -!!! related TS6500 nonPrimitiveAsProperty.ts:2:5: The expected type comes from property 'foo' which is declared here on type 'WithNonPrimitive' + ~~~~~~~~~~~~ +!!! error TS2322: Type '{ foo: string; }' is not assignable to type 'WithNonPrimitive'. +!!! error TS2322: Types of property 'foo' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'object'. \ No newline at end of file diff --git a/tests/baselines/reference/nonPrimitiveAsProperty.types b/tests/baselines/reference/nonPrimitiveAsProperty.types index 9878f6bd4f8e5..7aea2e712e0bb 100644 --- a/tests/baselines/reference/nonPrimitiveAsProperty.types +++ b/tests/baselines/reference/nonPrimitiveAsProperty.types @@ -10,8 +10,8 @@ interface WithNonPrimitive { var a: WithNonPrimitive = { foo: {bar: "bar"} }; >a : WithNonPrimitive > : ^^^^^^^^^^^^^^^^ ->{ foo: {bar: "bar"} } : { foo: { bar: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ foo: {bar: "bar"} } : WithNonPrimitive +> : ^^^^^^^^^^^^^^^^ >foo : { bar: string; } > : ^^^^^^^^^^^^^^^^ >{bar: "bar"} : { bar: string; } @@ -24,7 +24,7 @@ var a: WithNonPrimitive = { foo: {bar: "bar"} }; var b: WithNonPrimitive = {foo: "bar"}; // expect error >b : WithNonPrimitive > : ^^^^^^^^^^^^^^^^ ->{foo: "bar"} : { foo: string; } +>{foo: "bar"} : WithNonPrimitive > : ^^^^^^^^^^^^^^^^ >foo : string > : ^^^^^^ diff --git a/tests/baselines/reference/nonPrimitiveAssignError.types b/tests/baselines/reference/nonPrimitiveAssignError.types index bd836112c0460..7f86d94be0dad 100644 --- a/tests/baselines/reference/nonPrimitiveAssignError.types +++ b/tests/baselines/reference/nonPrimitiveAssignError.types @@ -122,20 +122,20 @@ s = a; // expect error var numObj: Number = 123; >numObj : Number > : ^^^^^^ ->123 : 123 -> : ^^^ +>123 : Number +> : ^^^^^^ var boolObj: Boolean = true; >boolObj : Boolean > : ^^^^^^^ ->true : true -> : ^^^^ +>true : Boolean +> : ^^^^^^^ var strObj: String = "string"; >strObj : String > : ^^^^^^ ->"string" : "string" -> : ^^^^^^^^ +>"string" : String +> : ^^^^^^ a = numObj; // ok >a = numObj : Number diff --git a/tests/baselines/reference/nonPrimitiveInGeneric.errors.txt b/tests/baselines/reference/nonPrimitiveInGeneric.errors.txt index bbac4acdc41e2..f5e37955b33a6 100644 --- a/tests/baselines/reference/nonPrimitiveInGeneric.errors.txt +++ b/tests/baselines/reference/nonPrimitiveInGeneric.errors.txt @@ -1,4 +1,4 @@ -nonPrimitiveInGeneric.ts(2,9): error TS2322: Type 'T' is not assignable to type 'object'. +nonPrimitiveInGeneric.ts(2,21): error TS2322: Type 'T' is not assignable to type 'object'. nonPrimitiveInGeneric.ts(9,17): error TS2345: Argument of type 'number' is not assignable to parameter of type 'object'. nonPrimitiveInGeneric.ts(10,17): error TS2345: Argument of type 'string' is not assignable to parameter of type 'object'. nonPrimitiveInGeneric.ts(18,7): error TS2345: Argument of type 'number' is not assignable to parameter of type 'object'. @@ -11,7 +11,7 @@ nonPrimitiveInGeneric.ts(34,14): error TS2344: Type 'number' does not satisfy th ==== nonPrimitiveInGeneric.ts (8 errors) ==== function generic(t: T) { var o: object = t; // expect error - ~ + ~ !!! error TS2322: Type 'T' is not assignable to type 'object'. !!! related TS2208 nonPrimitiveInGeneric.ts:1:18: This type parameter might need an `extends object` constraint. } diff --git a/tests/baselines/reference/nonPrimitiveInGeneric.types b/tests/baselines/reference/nonPrimitiveInGeneric.types index d5dc27ff77861..28fe70d9feeb0 100644 --- a/tests/baselines/reference/nonPrimitiveInGeneric.types +++ b/tests/baselines/reference/nonPrimitiveInGeneric.types @@ -10,8 +10,8 @@ function generic(t: T) { var o: object = t; // expect error >o : object > : ^^^^^^ ->t : T -> : ^ +>t : object +> : ^^^^^^ } var a = {}; >a : {} @@ -66,8 +66,8 @@ function bound(t: T) { var o: object = t; // ok >o : object > : ^^^^^^ ->t : T -> : ^ +>t : object +> : ^^^^^^ } bound({}); @@ -139,8 +139,8 @@ function bound3(t: T) { var o: object = t; // ok >o : object > : ^^^^^^ ->t : T -> : ^ +>t : object +> : ^^^^^^ } interface Proxy {} diff --git a/tests/baselines/reference/nonPrimitiveRhsSideOfInExpression.types b/tests/baselines/reference/nonPrimitiveRhsSideOfInExpression.types index bb81a7ec9f4ce..00c2d7b87e3b8 100644 --- a/tests/baselines/reference/nonPrimitiveRhsSideOfInExpression.types +++ b/tests/baselines/reference/nonPrimitiveRhsSideOfInExpression.types @@ -4,8 +4,8 @@ let o: object = {}; >o : object > : ^^^^^^ ->{} : {} -> : ^^ +>{} : object +> : ^^^^^^ function f(): object { >f : () => object diff --git a/tests/baselines/reference/nonPrimitiveUnionIntersection.errors.txt b/tests/baselines/reference/nonPrimitiveUnionIntersection.errors.txt index f0f27b507ba3e..f30663ed86767 100644 --- a/tests/baselines/reference/nonPrimitiveUnionIntersection.errors.txt +++ b/tests/baselines/reference/nonPrimitiveUnionIntersection.errors.txt @@ -1,20 +1,22 @@ -nonPrimitiveUnionIntersection.ts(1,5): error TS2322: Type '""' is not assignable to type 'never'. -nonPrimitiveUnionIntersection.ts(3,5): error TS2322: Type 'number' is not assignable to type 'object'. -nonPrimitiveUnionIntersection.ts(4,1): error TS2322: Type 'string' is not assignable to type 'never'. +nonPrimitiveUnionIntersection.ts(1,26): error TS2322: Type '""' is not assignable to type 'never'. +nonPrimitiveUnionIntersection.ts(3,22): error TS2322: Type 'number' is not assignable to type 'object'. +nonPrimitiveUnionIntersection.ts(4,1): error TS2322: Type 'string | object' is not assignable to type 'never'. + Type 'string' is not assignable to type 'never'. nonPrimitiveUnionIntersection.ts(8,38): error TS2353: Object literal may only specify known properties, and 'bar' does not exist in type 'object & { err: string; }'. ==== nonPrimitiveUnionIntersection.ts (4 errors) ==== var a: object & string = ""; // error - ~ + ~~ !!! error TS2322: Type '""' is not assignable to type 'never'. var b: object | string = ""; // ok var c: object & {} = 123; // error - ~ + ~~~ !!! error TS2322: Type 'number' is not assignable to type 'object'. a = b; // error ~ -!!! error TS2322: Type 'string' is not assignable to type 'never'. +!!! error TS2322: Type 'string | object' is not assignable to type 'never'. +!!! error TS2322: Type 'string' is not assignable to type 'never'. b = a; // ok const foo: object & {} = {bar: 'bar'}; // ok diff --git a/tests/baselines/reference/nonPrimitiveUnionIntersection.types b/tests/baselines/reference/nonPrimitiveUnionIntersection.types index 977132a9f1e09..10bfb34d66906 100644 --- a/tests/baselines/reference/nonPrimitiveUnionIntersection.types +++ b/tests/baselines/reference/nonPrimitiveUnionIntersection.types @@ -4,28 +4,28 @@ var a: object & string = ""; // error >a : never > : ^^^^^ ->"" : "" -> : ^^ +>"" : never +> : ^^^^^ var b: object | string = ""; // ok >b : string | object > : ^^^^^^^^^^^^^^^ ->"" : "" -> : ^^ +>"" : string | object +> : ^^^^^^^^^^^^^^^ var c: object & {} = 123; // error >c : object > : ^^^^^^ ->123 : 123 -> : ^^^ +>123 : object +> : ^^^^^^ a = b; // error ->a = b : string -> : ^^^^^^ +>a = b : string | object +> : ^^^^^^^^^^^^^^^ >a : never > : ^^^^^ ->b : string -> : ^^^^^^ +>b : string | object +> : ^^^^^^^^^^^^^^^ b = a; // ok >b = a : never diff --git a/tests/baselines/reference/null.types b/tests/baselines/reference/null.types index 8887c02ac6ed9..1823a4e4fae63 100644 --- a/tests/baselines/reference/null.types +++ b/tests/baselines/reference/null.types @@ -59,8 +59,8 @@ interface I { var w:I={x:null,y:3}; >w : I > : ^ ->{x:null,y:3} : { x: null; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>{x:null,y:3} : I +> : ^ >x : null > : ^^^^ >y : number diff --git a/tests/baselines/reference/nullOrUndefinedTypeGuardIsOrderIndependent.types b/tests/baselines/reference/nullOrUndefinedTypeGuardIsOrderIndependent.types index 02612dd1de16a..aa27045060572 100644 --- a/tests/baselines/reference/nullOrUndefinedTypeGuardIsOrderIndependent.types +++ b/tests/baselines/reference/nullOrUndefinedTypeGuardIsOrderIndependent.types @@ -12,8 +12,8 @@ function test(strOrNull: string | null, strOrUndefined: string | undefined) { var str: string = "original"; >str : string > : ^^^^^^ ->"original" : "original" -> : ^^^^^^^^^^ +>"original" : string +> : ^^^^^^ var nil: null; >nil : null diff --git a/tests/baselines/reference/numberAssignableToEnumInsideUnion.types b/tests/baselines/reference/numberAssignableToEnumInsideUnion.types index ddc4877e6e771..f09b3836bb011 100644 --- a/tests/baselines/reference/numberAssignableToEnumInsideUnion.types +++ b/tests/baselines/reference/numberAssignableToEnumInsideUnion.types @@ -16,6 +16,6 @@ let n: number; let z: E | boolean = n; >z : boolean | E > : ^^^^^^^^^^^ ->n : number -> : ^^^^^^ +>n : boolean | E +> : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.errors.txt b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.errors.txt index b1f10f66370d2..f08b41709d540 100644 --- a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.errors.txt +++ b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.errors.txt @@ -2,7 +2,7 @@ numericIndexerConstrainsPropertyDeclarations.ts(18,5): error TS2411: Property '2 numericIndexerConstrainsPropertyDeclarations.ts(21,5): error TS2411: Property '3.0' of type 'MyNumber' is not assignable to 'number' index type 'string'. numericIndexerConstrainsPropertyDeclarations.ts(50,5): error TS2411: Property '2.0' of type 'number' is not assignable to 'number' index type 'string'. numericIndexerConstrainsPropertyDeclarations.ts(68,5): error TS2411: Property '2.0' of type 'number' is not assignable to 'number' index type 'string'. -numericIndexerConstrainsPropertyDeclarations.ts(85,5): error TS2322: Type 'number' is not assignable to type 'string'. +numericIndexerConstrainsPropertyDeclarations.ts(79,5): error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{ [x: number]: string; }'. numericIndexerConstrainsPropertyDeclarations.ts(88,9): error TS2304: Cannot find name 'Myn'. @@ -94,15 +94,14 @@ numericIndexerConstrainsPropertyDeclarations.ts(88,9): error TS2304: Cannot find // error var b: { [x: number]: string; } = { a: '', + ~ +!!! error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{ [x: number]: string; }'. b: 1, c: () => { }, "d": '', "e": 1, 1.0: '', 2.0: 1, - ~~~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6501 numericIndexerConstrainsPropertyDeclarations.ts:78:10: The expected type comes from this index signature. "3.0": '', "4.0": 1, f: null, diff --git a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.types b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.types index 207ce7288e2cb..4964bff90e1bb 100644 --- a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.types +++ b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.types @@ -223,8 +223,8 @@ var b: { [x: number]: string; } = { > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ ->{ a: '', b: 1, c: () => { }, "d": '', "e": 1, 1.0: '', 2.0: 1, "3.0": '', "4.0": 1, f: null, get X() { return ''; }, set X(v) { }, foo() { return ''; }} : { a: string; b: number; c: () => void; d: string; e: number; 1: string; 2: number; "3.0": string; "4.0": number; f: Myn; X: string; foo(): string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: '', b: 1, c: () => { }, "d": '', "e": 1, 1.0: '', 2.0: 1, "3.0": '', "4.0": 1, f: null, get X() { return ''; }, set X(v) { }, foo() { return ''; }} : { [x: number]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ a: '', >a : string diff --git a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations2.errors.txt b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations2.errors.txt index e8423b1fe55cc..dcc15650b7d22 100644 --- a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations2.errors.txt +++ b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations2.errors.txt @@ -1,7 +1,7 @@ numericIndexerConstrainsPropertyDeclarations2.ts(16,5): error TS2411: Property '3.0' of type 'number' is not assignable to 'number' index type 'A'. numericIndexerConstrainsPropertyDeclarations2.ts(25,5): error TS2411: Property '3.0' of type 'number' is not assignable to 'number' index type 'A'. numericIndexerConstrainsPropertyDeclarations2.ts(34,5): error TS2411: Property '3.0' of type 'number' is not assignable to 'number' index type 'A'. -numericIndexerConstrainsPropertyDeclarations2.ts(43,5): error TS2322: Type 'number' is not assignable to type 'A'. +numericIndexerConstrainsPropertyDeclarations2.ts(44,5): error TS2353: Object literal may only specify known properties, and '"4.0"' does not exist in type '{ [x: number]: A; }'. ==== numericIndexerConstrainsPropertyDeclarations2.ts (4 errors) ==== @@ -54,8 +54,7 @@ numericIndexerConstrainsPropertyDeclarations2.ts(43,5): error TS2322: Type 'numb 2.0: new B(), "2.5": new B(), 3.0: 1, - ~~~ -!!! error TS2322: Type 'number' is not assignable to type 'A'. -!!! related TS6501 numericIndexerConstrainsPropertyDeclarations2.ts:39:10: The expected type comes from this index signature. "4.0": '' + ~~~~~ +!!! error TS2353: Object literal may only specify known properties, and '"4.0"' does not exist in type '{ [x: number]: A; }'. } \ No newline at end of file diff --git a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations2.types b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations2.types index 5a701d5f8583f..d3f03a05b5c16 100644 --- a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations2.types +++ b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations2.types @@ -118,8 +118,8 @@ var b: { [x: number]: A } = { > : ^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ ->{ 1.0: new A(), 2.0: new B(), "2.5": new B(), 3.0: 1, "4.0": ''} : { 1: A; 2: B; "2.5": B; 3: number; "4.0": string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 1.0: new A(), 2.0: new B(), "2.5": new B(), 3.0: 1, "4.0": ''} : { [x: number]: A; } +> : ^^^^^^^^^^^^^^^^^^^ 1.0: new A(), >1.0 : A diff --git a/tests/baselines/reference/numericIndexerConstraint1.errors.txt b/tests/baselines/reference/numericIndexerConstraint1.errors.txt index ee8e910c2fb4f..2b4ceabd2a20e 100644 --- a/tests/baselines/reference/numericIndexerConstraint1.errors.txt +++ b/tests/baselines/reference/numericIndexerConstraint1.errors.txt @@ -1,10 +1,10 @@ -numericIndexerConstraint1.ts(3,5): error TS2322: Type 'number' is not assignable to type 'Foo'. +numericIndexerConstraint1.ts(3,19): error TS2322: Type 'number' is not assignable to type 'Foo'. ==== numericIndexerConstraint1.ts (1 errors) ==== class Foo { foo() { } } var x: { [index: string]: number; }; var result: Foo = x["one"]; // error - ~~~~~~ + ~~~~~~~~ !!! error TS2322: Type 'number' is not assignable to type 'Foo'. \ No newline at end of file diff --git a/tests/baselines/reference/numericIndexerConstraint1.types b/tests/baselines/reference/numericIndexerConstraint1.types index 7d288c77529dc..a947ae2e8bac8 100644 --- a/tests/baselines/reference/numericIndexerConstraint1.types +++ b/tests/baselines/reference/numericIndexerConstraint1.types @@ -16,8 +16,8 @@ var x: { [index: string]: number; }; var result: Foo = x["one"]; // error >result : Foo > : ^^^ ->x["one"] : number -> : ^^^^^^ +>x["one"] : Foo +> : ^^^ >x : { [index: string]: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"one" : "one" diff --git a/tests/baselines/reference/numericIndexerConstraint4.types b/tests/baselines/reference/numericIndexerConstraint4.types index 8675f4373b84e..d0c5918735a74 100644 --- a/tests/baselines/reference/numericIndexerConstraint4.types +++ b/tests/baselines/reference/numericIndexerConstraint4.types @@ -30,8 +30,8 @@ var x: { > : ^^^^^^ } = { 0: new B() } ->{ 0: new B() } : { 0: B; } -> : ^^^^^^^^^ +>{ 0: new B() } : { [idx: number]: A; } +> : ^^^^^^^^^^^^^^^^^^^^^ >0 : B > : ^ >new B() : B diff --git a/tests/baselines/reference/numericIndexerConstraint5.errors.txt b/tests/baselines/reference/numericIndexerConstraint5.errors.txt index db8882ac3e59a..40902a7e7e3c2 100644 --- a/tests/baselines/reference/numericIndexerConstraint5.errors.txt +++ b/tests/baselines/reference/numericIndexerConstraint5.errors.txt @@ -1,4 +1,4 @@ -numericIndexerConstraint5.ts(2,5): error TS2322: Type '{ name: string; 0: Date; }' is not assignable to type '{ [name: number]: string; }'. +numericIndexerConstraint5.ts(2,37): error TS2322: Type '{ name: string; 0: Date; }' is not assignable to type '{ [name: number]: string; }'. Property '0' is incompatible with index signature. Type 'Date' is not assignable to type 'string'. @@ -6,7 +6,7 @@ numericIndexerConstraint5.ts(2,5): error TS2322: Type '{ name: string; 0: Date; ==== numericIndexerConstraint5.ts (1 errors) ==== var x = { name: "x", 0: new Date() }; var z: { [name: number]: string } = x; - ~ + ~ !!! error TS2322: Type '{ name: string; 0: Date; }' is not assignable to type '{ [name: number]: string; }'. !!! error TS2322: Property '0' is incompatible with index signature. !!! error TS2322: Type 'Date' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/numericIndexerConstraint5.types b/tests/baselines/reference/numericIndexerConstraint5.types index 2d171ad693e88..ca7699e48c545 100644 --- a/tests/baselines/reference/numericIndexerConstraint5.types +++ b/tests/baselines/reference/numericIndexerConstraint5.types @@ -22,6 +22,6 @@ var z: { [name: number]: string } = x; > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : number > : ^^^^^^ ->x : { name: string; 0: Date; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : { [name: number]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/numericIndexerTyping1.errors.txt b/tests/baselines/reference/numericIndexerTyping1.errors.txt index e7f2a9cd9c443..c067d72619e1d 100644 --- a/tests/baselines/reference/numericIndexerTyping1.errors.txt +++ b/tests/baselines/reference/numericIndexerTyping1.errors.txt @@ -1,5 +1,5 @@ -numericIndexerTyping1.ts(9,5): error TS2322: Type 'Date' is not assignable to type 'string'. -numericIndexerTyping1.ts(12,5): error TS2322: Type 'Date' is not assignable to type 'string'. +numericIndexerTyping1.ts(9,17): error TS2322: Type 'Date' is not assignable to type 'string'. +numericIndexerTyping1.ts(12,18): error TS2322: Type 'Date' is not assignable to type 'string'. ==== numericIndexerTyping1.ts (2 errors) ==== @@ -12,10 +12,10 @@ numericIndexerTyping1.ts(12,5): error TS2322: Type 'Date' is not assignable to t var i: I; var r: string = i[1]; // error: numeric indexer returns the type of the string indexer - ~ + ~~~~ !!! error TS2322: Type 'Date' is not assignable to type 'string'. var i2: I2; var r2: string = i2[1]; // error: numeric indexer returns the type of the string indexer - ~~ + ~~~~~ !!! error TS2322: Type 'Date' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/numericIndexerTyping1.types b/tests/baselines/reference/numericIndexerTyping1.types index 2d5897fb5bc9c..e66abbe954ad9 100644 --- a/tests/baselines/reference/numericIndexerTyping1.types +++ b/tests/baselines/reference/numericIndexerTyping1.types @@ -17,8 +17,8 @@ var i: I; var r: string = i[1]; // error: numeric indexer returns the type of the string indexer >r : string > : ^^^^^^ ->i[1] : Date -> : ^^^^ +>i[1] : string +> : ^^^^^^ >i : I > : ^ >1 : 1 @@ -31,8 +31,8 @@ var i2: I2; var r2: string = i2[1]; // error: numeric indexer returns the type of the string indexer >r2 : string > : ^^^^^^ ->i2[1] : Date -> : ^^^^ +>i2[1] : string +> : ^^^^^^ >i2 : I2 > : ^^ >1 : 1 diff --git a/tests/baselines/reference/numericIndexerTyping2.errors.txt b/tests/baselines/reference/numericIndexerTyping2.errors.txt index 336f812631cfc..d1a0ed11be1fc 100644 --- a/tests/baselines/reference/numericIndexerTyping2.errors.txt +++ b/tests/baselines/reference/numericIndexerTyping2.errors.txt @@ -1,5 +1,5 @@ -numericIndexerTyping2.ts(9,5): error TS2322: Type 'Date' is not assignable to type 'string'. -numericIndexerTyping2.ts(12,5): error TS2322: Type 'Date' is not assignable to type 'string'. +numericIndexerTyping2.ts(9,17): error TS2322: Type 'Date' is not assignable to type 'string'. +numericIndexerTyping2.ts(12,18): error TS2322: Type 'Date' is not assignable to type 'string'. ==== numericIndexerTyping2.ts (2 errors) ==== @@ -12,10 +12,10 @@ numericIndexerTyping2.ts(12,5): error TS2322: Type 'Date' is not assignable to t var i: I; var r: string = i[1]; // error: numeric indexer returns the type of the string indexer - ~ + ~~~~ !!! error TS2322: Type 'Date' is not assignable to type 'string'. var i2: I2; var r2: string = i2[1]; // error: numeric indexer returns the type of the string indexere - ~~ + ~~~~~ !!! error TS2322: Type 'Date' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/numericIndexerTyping2.types b/tests/baselines/reference/numericIndexerTyping2.types index f08cc0205c7ed..cfc163c208bac 100644 --- a/tests/baselines/reference/numericIndexerTyping2.types +++ b/tests/baselines/reference/numericIndexerTyping2.types @@ -24,8 +24,8 @@ var i: I; var r: string = i[1]; // error: numeric indexer returns the type of the string indexer >r : string > : ^^^^^^ ->i[1] : Date -> : ^^^^ +>i[1] : string +> : ^^^^^^ >i : I > : ^ >1 : 1 @@ -38,8 +38,8 @@ var i2: I2; var r2: string = i2[1]; // error: numeric indexer returns the type of the string indexere >r2 : string > : ^^^^^^ ->i2[1] : Date -> : ^^^^ +>i2[1] : string +> : ^^^^^^ >i2 : I2 > : ^^ >1 : 1 diff --git a/tests/baselines/reference/numericIndexingResults.types b/tests/baselines/reference/numericIndexingResults.types index 5d0c4aba4a5e8..b33579febd4f9 100644 --- a/tests/baselines/reference/numericIndexingResults.types +++ b/tests/baselines/reference/numericIndexingResults.types @@ -246,8 +246,8 @@ var b: { [x: number]: string } = { 1: '', "2": '' } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ ->{ 1: '', "2": '' } : { 1: string; "2": string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 1: '', "2": '' } : { [x: number]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >1 : string > : ^^^^^^ >'' : "" @@ -326,8 +326,8 @@ var b2: { [x: number]: string; 1: string; "2": string; } = { 1: '', "2": '' } > : ^^^^^^ >"2" : string > : ^^^^^^ ->{ 1: '', "2": '' } : { 1: string; "2": string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 1: '', "2": '' } : { [x: number]: string; 1: string; "2": string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ >1 : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/numericLiteralTypes1.types b/tests/baselines/reference/numericLiteralTypes1.types index 33f88ca37b238..ec0397a0e45c5 100644 --- a/tests/baselines/reference/numericLiteralTypes1.types +++ b/tests/baselines/reference/numericLiteralTypes1.types @@ -87,7 +87,7 @@ function f2() { var b: B1 = -1; >b : B1 > : ^^ ->-1 : -1 +>-1 : B1 > : ^^ >1 : 1 > : ^ @@ -95,14 +95,14 @@ function f2() { var b: B2 = 0; >b : B1 > : ^^ ->0 : 0 -> : ^ +>0 : B2 +> : ^^ var b: B3 = 1; >b : B1 > : ^^ ->1 : 1 -> : ^ +>1 : B3 +> : ^^ } function f3(a: 1, b: 0 | 1 | 2) { diff --git a/tests/baselines/reference/numericLiteralTypes2.types b/tests/baselines/reference/numericLiteralTypes2.types index 126d8471c2bb1..bfa8e8726148a 100644 --- a/tests/baselines/reference/numericLiteralTypes2.types +++ b/tests/baselines/reference/numericLiteralTypes2.types @@ -87,7 +87,7 @@ function f2() { var b: B1 = -1; >b : B1 > : ^^ ->-1 : -1 +>-1 : B1 > : ^^ >1 : 1 > : ^ @@ -95,14 +95,14 @@ function f2() { var b: B2 = 0; >b : B1 > : ^^ ->0 : 0 -> : ^ +>0 : B2 +> : ^^ var b: B3 = 1; >b : B1 > : ^^ ->1 : 1 -> : ^ +>1 : B3 +> : ^^ } function f3(a: 1, b: 0 | 1 | 2) { diff --git a/tests/baselines/reference/numericLiteralsWithTrailingDecimalPoints01.types b/tests/baselines/reference/numericLiteralsWithTrailingDecimalPoints01.types index 80664c96927ad..5a1308e173e20 100644 --- a/tests/baselines/reference/numericLiteralsWithTrailingDecimalPoints01.types +++ b/tests/baselines/reference/numericLiteralsWithTrailingDecimalPoints01.types @@ -45,8 +45,8 @@ var i: number = 1; >i : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ var test1 = i.toString(); >test1 : string diff --git a/tests/baselines/reference/numericLiteralsWithTrailingDecimalPoints02.types b/tests/baselines/reference/numericLiteralsWithTrailingDecimalPoints02.types index 3e60cfed28f3c..75e758770880a 100644 --- a/tests/baselines/reference/numericLiteralsWithTrailingDecimalPoints02.types +++ b/tests/baselines/reference/numericLiteralsWithTrailingDecimalPoints02.types @@ -45,8 +45,8 @@ var i: number = 1; >i : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ var test1 = i.toString(); >test1 : string diff --git a/tests/baselines/reference/objectCreationOfElementAccessExpression.types b/tests/baselines/reference/objectCreationOfElementAccessExpression.types index b850cdf25eb51..8ecd356d3efe5 100644 --- a/tests/baselines/reference/objectCreationOfElementAccessExpression.types +++ b/tests/baselines/reference/objectCreationOfElementAccessExpression.types @@ -259,8 +259,8 @@ var foods = new PetFood[new IceCream('Mint chocolate chip') , Cookie('Chocolate var foods2: MonsterFood[] = new PetFood[new IceCream('Mint chocolate chip') , Cookie('Chocolate chip', false) , new Cookie('Peanut butter', true)]; >foods2 : MonsterFood[] > : ^^^^^^^^^^^^^ ->new PetFood[new IceCream('Mint chocolate chip') , Cookie('Chocolate chip', false) , new Cookie('Peanut butter', true)] : any -> : ^^^ +>new PetFood[new IceCream('Mint chocolate chip') , Cookie('Chocolate chip', false) , new Cookie('Peanut butter', true)] : MonsterFood[] +> : ^^^^^^^^^^^^^ >PetFood[new IceCream('Mint chocolate chip') , Cookie('Chocolate chip', false) , new Cookie('Peanut butter', true)] : any > : ^^^ >PetFood : typeof PetFood diff --git a/tests/baselines/reference/objectLitStructuralTypeMismatch.types b/tests/baselines/reference/objectLitStructuralTypeMismatch.types index 0f2d831997c6b..6f4ebc0e3c861 100644 --- a/tests/baselines/reference/objectLitStructuralTypeMismatch.types +++ b/tests/baselines/reference/objectLitStructuralTypeMismatch.types @@ -7,8 +7,8 @@ var x: { a: number; } = { b: 5 }; > : ^^^^^ ^^^ >a : number > : ^^^^^^ ->{ b: 5 } : { b: number; } -> : ^^^^^^^^^^^^^^ +>{ b: 5 } : { a: number; } +> : ^^^^^ ^^^ >b : number > : ^^^^^^ >5 : 5 diff --git a/tests/baselines/reference/objectLiteralExcessProperties.errors.txt b/tests/baselines/reference/objectLiteralExcessProperties.errors.txt index f70d099248298..476c5f9d3dcc3 100644 --- a/tests/baselines/reference/objectLiteralExcessProperties.errors.txt +++ b/tests/baselines/reference/objectLiteralExcessProperties.errors.txt @@ -1,14 +1,19 @@ objectLiteralExcessProperties.ts(9,18): error TS2561: Object literal may only specify known properties, but 'forword' does not exist in type 'Book'. Did you mean to write 'foreword'? objectLiteralExcessProperties.ts(11,27): error TS2561: Object literal may only specify known properties, but 'foreward' does not exist in type 'Book'. Did you mean to write 'foreword'? -objectLiteralExcessProperties.ts(13,53): error TS2353: Object literal may only specify known properties, and 'forwards' does not exist in type 'Book'. +objectLiteralExcessProperties.ts(13,53): error TS2322: Type '({ foreword: string; } | { forwards: string; })[]' is not assignable to type 'Book | Book[]'. + Type '({ foreword: string; } | { forwards: string; })[]' is not assignable to type 'Book[]'. + Type '{ foreword: string; } | { forwards: string; }' is not assignable to type 'Book'. + Object literal may only specify known properties, and 'forwards' does not exist in type 'Book'. objectLiteralExcessProperties.ts(15,42): error TS2561: Object literal may only specify known properties, but 'colour' does not exist in type 'Book & Cover'. Did you mean to write 'color'? objectLiteralExcessProperties.ts(17,26): error TS2561: Object literal may only specify known properties, but 'foreward' does not exist in type 'Book & Cover'. Did you mean to write 'foreword'? objectLiteralExcessProperties.ts(19,57): error TS2353: Object literal may only specify known properties, and 'price' does not exist in type 'Book & Cover'. -objectLiteralExcessProperties.ts(21,5): error TS2322: Type '{ foreword: string; price: number; }' is not assignable to type 'Book & number'. +objectLiteralExcessProperties.ts(21,25): error TS2322: Type '{ foreword: string; price: number; }' is not assignable to type 'Book & number'. Type '{ foreword: string; price: number; }' is not assignable to type 'number'. objectLiteralExcessProperties.ts(23,29): error TS2353: Object literal may only specify known properties, and 'couleur' does not exist in type 'Cover | Cover[]'. objectLiteralExcessProperties.ts(25,27): error TS2353: Object literal may only specify known properties, and 'forewarned' does not exist in type 'Book | Book[]'. -objectLiteralExcessProperties.ts(33,27): error TS2561: Object literal may only specify known properties, but 'colour' does not exist in type 'Cover'. Did you mean to write 'color'? +objectLiteralExcessProperties.ts(33,27): error TS2322: Type '{ 0: { colour: string; }; }' is not assignable to type 'Indexed'. + Property '0' is incompatible with index signature. + Object literal may only specify known properties, but 'colour' does not exist in type 'Cover'. Did you mean to write 'color'? objectLiteralExcessProperties.ts(37,25): error TS2304: Cannot find name 'IFoo'. objectLiteralExcessProperties.ts(39,11): error TS2322: Type '{ name: string; }' is not assignable to type 'T'. '{ name: string; }' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'IFoo'. @@ -39,7 +44,10 @@ objectLiteralExcessProperties.ts(49,44): error TS2353: Object literal may only s var b3: Book | (Book[]) = [{ foreword: "hello" }, { forwards: "back" }]; ~~~~~~~~ -!!! error TS2353: Object literal may only specify known properties, and 'forwards' does not exist in type 'Book'. +!!! error TS2322: Type '({ foreword: string; } | { forwards: string; })[]' is not assignable to type 'Book | Book[]'. +!!! error TS2322: Type '({ foreword: string; } | { forwards: string; })[]' is not assignable to type 'Book[]'. +!!! error TS2322: Type '{ foreword: string; } | { forwards: string; }' is not assignable to type 'Book'. +!!! error TS2322: Object literal may only specify known properties, and 'forwards' does not exist in type 'Book'. var b4: Book & Cover = { foreword: "hi", colour: "blue" }; ~~~~~~ @@ -54,7 +62,7 @@ objectLiteralExcessProperties.ts(49,44): error TS2353: Object literal may only s !!! error TS2353: Object literal may only specify known properties, and 'price' does not exist in type 'Book & Cover'. var b7: Book & number = { foreword: "hi", price: 10.99 }; - ~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ foreword: string; price: number; }' is not assignable to type 'Book & number'. !!! error TS2322: Type '{ foreword: string; price: number; }' is not assignable to type 'number'. @@ -74,8 +82,9 @@ objectLiteralExcessProperties.ts(49,44): error TS2353: Object literal may only s var b11: Indexed = { 0: { colour: "blue" } }; // nested object literal still errors ~~~~~~ -!!! error TS2561: Object literal may only specify known properties, but 'colour' does not exist in type 'Cover'. Did you mean to write 'color'? -!!! related TS6501 objectLiteralExcessProperties.ts:28:5: The expected type comes from this index signature. +!!! error TS2322: Type '{ 0: { colour: string; }; }' is not assignable to type 'Indexed'. +!!! error TS2322: Property '0' is incompatible with index signature. +!!! error TS2322: Object literal may only specify known properties, but 'colour' does not exist in type 'Cover'. Did you mean to write 'color'? // Repros inspired by #28752 diff --git a/tests/baselines/reference/objectLiteralExcessProperties.types b/tests/baselines/reference/objectLiteralExcessProperties.types index c47665c97faf3..4b19497b00b14 100644 --- a/tests/baselines/reference/objectLiteralExcessProperties.types +++ b/tests/baselines/reference/objectLiteralExcessProperties.types @@ -16,8 +16,8 @@ interface Cover { var b1: Book = { forword: "oops" }; >b1 : Book > : ^^^^ ->{ forword: "oops" } : { forword: string; } -> : ^^^^^^^^^^^^^^^^^^^^ +>{ forword: "oops" } : Book +> : ^^^^ >forword : string > : ^^^^^^ >"oops" : "oops" @@ -26,8 +26,8 @@ var b1: Book = { forword: "oops" }; var b2: Book | string = { foreward: "nope" }; >b2 : string | Book > : ^^^^^^^^^^^^^ ->{ foreward: "nope" } : { foreward: string; } -> : ^^^^^^^^^^^^^^^^^^^^^ +>{ foreward: "nope" } : string | Book +> : ^^^^^^^^^^^^^ >foreward : string > : ^^^^^^ >"nope" : "nope" @@ -36,8 +36,8 @@ var b2: Book | string = { foreward: "nope" }; var b3: Book | (Book[]) = [{ foreword: "hello" }, { forwards: "back" }]; >b3 : Book | Book[] > : ^^^^^^^^^^^^^ ->[{ foreword: "hello" }, { forwards: "back" }] : ({ foreword: string; } | { forwards: string; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ foreword: "hello" }, { forwards: "back" }] : Book | Book[] +> : ^^^^^^^^^^^^^ >{ foreword: "hello" } : { foreword: string; } > : ^^^^^^^^^^^^^^^^^^^^^ >foreword : string @@ -54,8 +54,8 @@ var b3: Book | (Book[]) = [{ foreword: "hello" }, { forwards: "back" }]; var b4: Book & Cover = { foreword: "hi", colour: "blue" }; >b4 : Book & Cover > : ^^^^^^^^^^^^ ->{ foreword: "hi", colour: "blue" } : { foreword: string; colour: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ foreword: "hi", colour: "blue" } : Book & Cover +> : ^^^^^^^^^^^^ >foreword : string > : ^^^^^^ >"hi" : "hi" @@ -68,8 +68,8 @@ var b4: Book & Cover = { foreword: "hi", colour: "blue" }; var b5: Book & Cover = { foreward: "hi", color: "blue" }; >b5 : Book & Cover > : ^^^^^^^^^^^^ ->{ foreward: "hi", color: "blue" } : { foreward: string; color: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ foreward: "hi", color: "blue" } : Book & Cover +> : ^^^^^^^^^^^^ >foreward : string > : ^^^^^^ >"hi" : "hi" @@ -82,8 +82,8 @@ var b5: Book & Cover = { foreward: "hi", color: "blue" }; var b6: Book & Cover = { foreword: "hi", color: "blue", price: 10.99 }; >b6 : Book & Cover > : ^^^^^^^^^^^^ ->{ foreword: "hi", color: "blue", price: 10.99 } : { foreword: string; color: string; price: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ foreword: "hi", color: "blue", price: 10.99 } : Book & Cover +> : ^^^^^^^^^^^^ >foreword : string > : ^^^^^^ >"hi" : "hi" @@ -100,8 +100,8 @@ var b6: Book & Cover = { foreword: "hi", color: "blue", price: 10.99 }; var b7: Book & number = { foreword: "hi", price: 10.99 }; >b7 : Book & number > : ^^^^^^^^^^^^^ ->{ foreword: "hi", price: 10.99 } : { foreword: string; price: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ foreword: "hi", price: 10.99 } : Book & number +> : ^^^^^^^^^^^^^ >foreword : string > : ^^^^^^ >"hi" : "hi" @@ -114,8 +114,8 @@ var b7: Book & number = { foreword: "hi", price: 10.99 }; var b8: Cover | Cover[] = { couleur : "non" }; >b8 : Cover | Cover[] > : ^^^^^^^^^^^^^^^ ->{ couleur : "non" } : { couleur: string; } -> : ^^^^^^^^^^^^^^^^^^^^ +>{ couleur : "non" } : Cover | Cover[] +> : ^^^^^^^^^^^^^^^ >couleur : string > : ^^^^^^ >"non" : "non" @@ -124,8 +124,8 @@ var b8: Cover | Cover[] = { couleur : "non" }; var b9: Book | Book[] = { forewarned: "still no" }; >b9 : Book | Book[] > : ^^^^^^^^^^^^^ ->{ forewarned: "still no" } : { forewarned: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>{ forewarned: "still no" } : Book | Book[] +> : ^^^^^^^^^^^^^ >forewarned : string > : ^^^^^^ >"still no" : "still no" @@ -140,8 +140,8 @@ interface Indexed { var b10: Indexed = { 0: { }, '1': { } }; // ok >b10 : Indexed > : ^^^^^^^ ->{ 0: { }, '1': { } } : { 0: {}; '1': {}; } -> : ^^^^^^^^^^^^^^^^^^^ +>{ 0: { }, '1': { } } : Indexed +> : ^^^^^^^ >0 : {} > : ^^ >{ } : {} @@ -154,8 +154,8 @@ var b10: Indexed = { 0: { }, '1': { } }; // ok var b11: Indexed = { 0: { colour: "blue" } }; // nested object literal still errors >b11 : Indexed > : ^^^^^^^ ->{ 0: { colour: "blue" } } : { 0: { colour: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 0: { colour: "blue" } } : Indexed +> : ^^^^^^^ >0 : { colour: string; } > : ^^^^^^^^^^^^^^^^^^^ >{ colour: "blue" } : { colour: string; } diff --git a/tests/baselines/reference/objectLiteralFreshnessWithSpread.types b/tests/baselines/reference/objectLiteralFreshnessWithSpread.types index b6964986b3acf..ce19712ec1ceb 100644 --- a/tests/baselines/reference/objectLiteralFreshnessWithSpread.types +++ b/tests/baselines/reference/objectLiteralFreshnessWithSpread.types @@ -22,8 +22,8 @@ let xx: { a, b } = { a: 1, ...x, z: 3 } // error for 'z', no error for 'extra' > : ^^^ >b : any > : ^^^ ->{ a: 1, ...x, z: 3 } : { z: number; b: number; extra: number; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: 1, ...x, z: 3 } : { a: any; b: any; } +> : ^^^^^^^^^^^^^^^^^^^ >a : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/objectLiteralIndexerErrors.errors.txt b/tests/baselines/reference/objectLiteralIndexerErrors.errors.txt index c819749e009b0..111b845b89f85 100644 --- a/tests/baselines/reference/objectLiteralIndexerErrors.errors.txt +++ b/tests/baselines/reference/objectLiteralIndexerErrors.errors.txt @@ -1,4 +1,6 @@ -objectLiteralIndexerErrors.ts(13,54): error TS2741: Property 'y' is missing in type 'A' but required in type 'B'. +objectLiteralIndexerErrors.ts(13,46): error TS2322: Type '{ x: B; 0: A; }' is not assignable to type '{ [s: string]: A; [n: number]: B; }'. + Property '0' is incompatible with index signature. + Property 'y' is missing in type 'A' but required in type 'B'. objectLiteralIndexerErrors.ts(14,14): error TS2741: Property 'y' is missing in type 'A' but required in type 'B'. @@ -16,10 +18,11 @@ objectLiteralIndexerErrors.ts(14,14): error TS2741: Property 'y' is missing in t var c: any; var o1: { [s: string]: A;[n: number]: B; } = { x: b, 0: a }; // both indexers are A - ~ -!!! error TS2741: Property 'y' is missing in type 'A' but required in type 'B'. + ~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ x: B; 0: A; }' is not assignable to type '{ [s: string]: A; [n: number]: B; }'. +!!! error TS2322: Property '0' is incompatible with index signature. +!!! error TS2322: Property 'y' is missing in type 'A' but required in type 'B'. !!! related TS2728 objectLiteralIndexerErrors.ts:6:5: 'y' is declared here. -!!! related TS6501 objectLiteralIndexerErrors.ts:13:26: The expected type comes from this index signature. o1 = { x: c, 0: a }; // string indexer is any, number indexer is A ~ !!! error TS2741: Property 'y' is missing in type 'A' but required in type 'B'. diff --git a/tests/baselines/reference/objectLiteralIndexerErrors.types b/tests/baselines/reference/objectLiteralIndexerErrors.types index a0dcded9806a7..611f40fa2c779 100644 --- a/tests/baselines/reference/objectLiteralIndexerErrors.types +++ b/tests/baselines/reference/objectLiteralIndexerErrors.types @@ -32,8 +32,8 @@ var o1: { [s: string]: A;[n: number]: B; } = { x: b, 0: a }; // both indexers ar > : ^^^^^^ >n : number > : ^^^^^^ ->{ x: b, 0: a } : { x: B; 0: A; } -> : ^^^^^^^^^^^^^^^ +>{ x: b, 0: a } : { [s: string]: A; [n: number]: B; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : B > : ^ >b : B diff --git a/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types index 0077e4f21ce80..fbe6fd1ede275 100644 --- a/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types +++ b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types @@ -10,8 +10,8 @@ interface I { var x: I = { >x : I > : ^ ->{ p: null} : { p: null; } -> : ^^^^^^^^^^^^ +>{ p: null} : I +> : ^ p: null >p : null diff --git a/tests/baselines/reference/objectLiteralIndexers.types b/tests/baselines/reference/objectLiteralIndexers.types index 729eba21d6091..ba6dfb7b6bae8 100644 --- a/tests/baselines/reference/objectLiteralIndexers.types +++ b/tests/baselines/reference/objectLiteralIndexers.types @@ -31,8 +31,8 @@ var o1: { [s: string]: A;[n: number]: B; } = { x: a, 0: b }; // string indexer i > : ^^^^^^ >n : number > : ^^^^^^ ->{ x: a, 0: b } : { x: A; 0: B; } -> : ^^^^^^^^^^^^^^^ +>{ x: a, 0: b } : { [s: string]: A; [n: number]: B; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : A > : ^ >a : A diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types index c79a544f1d96e..79882db8242f3 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types @@ -4,14 +4,14 @@ var id: number = 10000; >id : number > : ^^^^^^ ->10000 : 10000 -> : ^^^^^ +>10000 : number +> : ^^^^^^ var name: string = "my name"; >name : string > : ^^^^^^ ->"my name" : "my name" -> : ^^^^^^^^^ +>"my name" : string +> : ^^^^^^ var person: { name: string; id: number } = { name, id }; >person : { name: string; id: number; } @@ -21,7 +21,7 @@ var person: { name: string; id: number } = { name, id }; >id : number > : ^^^^^^ >{ name, id } : { name: string; id: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^ ^^^ >name : string > : ^^^^^^ >id : number diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types index 5fd6f717c806a..ecea26bc1c077 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types @@ -4,14 +4,14 @@ var id: number = 10000; >id : number > : ^^^^^^ ->10000 : 10000 -> : ^^^^^ +>10000 : number +> : ^^^^^^ var name: string = "my name"; >name : string > : ^^^^^^ ->"my name" : "my name" -> : ^^^^^^^^^ +>"my name" : string +> : ^^^^^^ var person: { name: string; id: number } = { name, id }; >person : { name: string; id: number; } @@ -21,7 +21,7 @@ var person: { name: string; id: number } = { name, id }; >id : number > : ^^^^^^ >{ name, id } : { name: string; id: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^ ^^^ >name : string > : ^^^^^^ >id : number diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.types index 0ab665122e78a..df4b7a488c58f 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.types @@ -4,14 +4,14 @@ var id: number = 10000; >id : number > : ^^^^^^ ->10000 : 10000 -> : ^^^^^ +>10000 : number +> : ^^^^^^ var name: string = "my name"; >name : string > : ^^^^^^ ->"my name" : "my name" -> : ^^^^^^^^^ +>"my name" : string +> : ^^^^^^ var person: { b: string; id: number } = { name, id }; // error >person : { b: string; id: number; } @@ -20,8 +20,8 @@ var person: { b: string; id: number } = { name, id }; // error > : ^^^^^^ >id : number > : ^^^^^^ ->{ name, id } : { name: string; id: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name, id } : { b: string; id: number; } +> : ^^^^^ ^^^^^^ ^^^ >name : string > : ^^^^^^ >id : number diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.errors.txt b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.errors.txt index 79bec80bd7c5d..f0350216ecf2d 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.errors.txt +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.errors.txt @@ -1,7 +1,7 @@ objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(4,43): error TS2353: Object literal may only specify known properties, and 'name' does not exist in type '{ b: string; id: number; }'. objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(5,81): error TS2322: Type 'string' is not assignable to type 'number'. objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(5,87): error TS2322: Type 'number' is not assignable to type 'string'. -objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(8,5): error TS2322: Type '{ name: number; id: string; }' is not assignable to type '{ name: string; id: number; }'. +objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(8,45): error TS2322: Type '{ name: number; id: string; }' is not assignable to type '{ name: string; id: number; }'. Types of property 'name' are incompatible. Type 'number' is not assignable to type 'string'. @@ -23,7 +23,7 @@ objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(8,5): er function foo(name: string, id: number): { name: string, id: number } { return { name, id }; } // error var person1: { name, id }; // ok var person2: { name: string, id: number } = bar("hello", 5); - ~~~~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ name: number; id: string; }' is not assignable to type '{ name: string; id: number; }'. !!! error TS2322: Types of property 'name' are incompatible. !!! error TS2322: Type 'number' is not assignable to type 'string'. diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.types index 0597a019c03ae..3528104416a59 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.types @@ -4,14 +4,14 @@ var id: number = 10000; >id : number > : ^^^^^^ ->10000 : 10000 -> : ^^^^^ +>10000 : number +> : ^^^^^^ var name: string = "my name"; >name : string > : ^^^^^^ ->"my name" : "my name" -> : ^^^^^^^^^ +>"my name" : string +> : ^^^^^^ var person: { b: string; id: number } = { name, id }; // error >person : { b: string; id: number; } @@ -20,8 +20,8 @@ var person: { b: string; id: number } = { name, id }; // error > : ^^^^^^ >id : number > : ^^^^^^ ->{ name, id } : { name: string; id: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name, id } : { b: string; id: number; } +> : ^^^^^ ^^^^^^ ^^^ >name : string > : ^^^^^^ >id : number diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types index 9fe8e58a27577..9d5f479e16eee 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types @@ -4,14 +4,14 @@ var id: number = 10000; >id : number > : ^^^^^^ ->10000 : 10000 -> : ^^^^^ +>10000 : number +> : ^^^^^^ var name: string = "my name"; >name : string > : ^^^^^^ ->"my name" : "my name" -> : ^^^^^^^^^ +>"my name" : string +> : ^^^^^^ var person = { name, id }; >person : { name: string; id: number; } diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.types b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.types index de8e4c7ab8db7..de4f15c964511 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.types @@ -4,14 +4,14 @@ var id: number = 10000; >id : number > : ^^^^^^ ->10000 : 10000 -> : ^^^^^ +>10000 : number +> : ^^^^^^ var name: string = "my name"; >name : string > : ^^^^^^ ->"my name" : "my name" -> : ^^^^^^^^^ +>"my name" : string +> : ^^^^^^ var person = { name, id }; >person : { name: string; id: number; } diff --git a/tests/baselines/reference/objectLiteralWithNumericPropertyName.errors.txt b/tests/baselines/reference/objectLiteralWithNumericPropertyName.errors.txt index 4a71e241285d5..4dca020b87ebc 100644 --- a/tests/baselines/reference/objectLiteralWithNumericPropertyName.errors.txt +++ b/tests/baselines/reference/objectLiteralWithNumericPropertyName.errors.txt @@ -1,4 +1,6 @@ -objectLiteralWithNumericPropertyName.ts(5,5): error TS2322: Type 'number' is not assignable to type 'string'. +objectLiteralWithNumericPropertyName.ts(4,12): error TS2322: Type '{ 0: number; }' is not assignable to type 'A'. + Types of property '0' are incompatible. + Type 'number' is not assignable to type 'string'. ==== objectLiteralWithNumericPropertyName.ts (1 errors) ==== @@ -6,9 +8,12 @@ objectLiteralWithNumericPropertyName.ts(5,5): error TS2322: Type 'number' is not 0: string; } var x: A = { + ~ 0: 3 - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6500 objectLiteralWithNumericPropertyName.ts:2:5: The expected type comes from property '0' which is declared here on type 'A' + ~~~~~~~~ }; + ~ +!!! error TS2322: Type '{ 0: number; }' is not assignable to type 'A'. +!!! error TS2322: Types of property '0' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralWithNumericPropertyName.types b/tests/baselines/reference/objectLiteralWithNumericPropertyName.types index 989ed796b6f89..b5f46d6a7d4aa 100644 --- a/tests/baselines/reference/objectLiteralWithNumericPropertyName.types +++ b/tests/baselines/reference/objectLiteralWithNumericPropertyName.types @@ -9,8 +9,8 @@ interface A { var x: A = { >x : A > : ^ ->{ 0: 3} : { 0: number; } -> : ^^^^^^^^^^^^^^ +>{ 0: 3} : A +> : ^ 0: 3 >0 : number diff --git a/tests/baselines/reference/objectLiteralsAgainstUnionsOfArrays01.errors.txt b/tests/baselines/reference/objectLiteralsAgainstUnionsOfArrays01.errors.txt index c769b44d966b5..0e1ed35f0e9a5 100644 --- a/tests/baselines/reference/objectLiteralsAgainstUnionsOfArrays01.errors.txt +++ b/tests/baselines/reference/objectLiteralsAgainstUnionsOfArrays01.errors.txt @@ -1,4 +1,8 @@ -objectLiteralsAgainstUnionsOfArrays01.ts(10,12): error TS2322: Type 'number' is not assignable to type 'string'. +objectLiteralsAgainstUnionsOfArrays01.ts(9,16): error TS2322: Type '{ bar: { prop: number; }; }[]' is not assignable to type 'Foo[]'. + Types of property 'bar' are incompatible. + Type '{ prop: number; }' is not assignable to type 'Bar | Bar[]'. + Types of property 'prop' are incompatible. + Type 'number' is not assignable to type 'string'. ==== objectLiteralsAgainstUnionsOfArrays01.ts (1 errors) ==== @@ -11,8 +15,14 @@ objectLiteralsAgainstUnionsOfArrays01.ts(10,12): error TS2322: Type 'number' is } let x: Foo[] = [ + ~ { bar: { prop: 100 } } - ~~~~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. + ~~~~~~~~~~~~~~~~~~~~~~~~ ] + ~ +!!! error TS2322: Type '{ bar: { prop: number; }; }[]' is not assignable to type 'Foo[]'. +!!! error TS2322: Types of property 'bar' are incompatible. +!!! error TS2322: Type '{ prop: number; }' is not assignable to type 'Bar | Bar[]'. +!!! error TS2322: Types of property 'prop' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralsAgainstUnionsOfArrays01.types b/tests/baselines/reference/objectLiteralsAgainstUnionsOfArrays01.types index 5605e330deec2..fa54a7afbcdd4 100644 --- a/tests/baselines/reference/objectLiteralsAgainstUnionsOfArrays01.types +++ b/tests/baselines/reference/objectLiteralsAgainstUnionsOfArrays01.types @@ -16,8 +16,8 @@ interface Bar { let x: Foo[] = [ >x : Foo[] > : ^^^^^ ->[ { bar: { prop: 100 } }] : { bar: { prop: number; }; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[ { bar: { prop: 100 } }] : Foo[] +> : ^^^^^ { bar: { prop: 100 } } >{ bar: { prop: 100 } } : { bar: { prop: number; }; } diff --git a/tests/baselines/reference/objectRest.types b/tests/baselines/reference/objectRest.types index f363e066c76c9..1d44fa6a2713d 100644 --- a/tests/baselines/reference/objectRest.types +++ b/tests/baselines/reference/objectRest.types @@ -301,8 +301,8 @@ var { removed, ...removableRest } = removable; var i: I = removable; >i : I > : ^ ->removable : Removable -> : ^^^^^^^^^ +>removable : I +> : ^ var { removed, ...removableRest2 } = i; >removed : string diff --git a/tests/baselines/reference/objectSpread.types b/tests/baselines/reference/objectSpread.types index 92ca81fce93ad..2d65d10ed938a 100644 --- a/tests/baselines/reference/objectSpread.types +++ b/tests/baselines/reference/objectSpread.types @@ -56,8 +56,8 @@ let addAfter: { a: number, b: string, c: boolean } = > : ^^^^^^^ { ...o, c: false } ->{ ...o, c: false } : { c: false; a: number; b: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...o, c: false } : { a: number; b: string; c: boolean; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^ >o : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >c : false @@ -76,8 +76,8 @@ let addBefore: { a: number, b: string, c: boolean } = > : ^^^^^^^ { c: false, ...o } ->{ c: false, ...o } : { a: number; b: string; c: false; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ c: false, ...o } : { a: number; b: string; c: boolean; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^ >c : false > : ^^^^^ >false : false @@ -94,8 +94,8 @@ let override: { a: number, b: string } = > : ^^^^^^ { ...o, b: 'override' } ->{ ...o, b: 'override' } : { b: string; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...o, b: 'override' } : { a: number; b: string; } +> : ^^^^^ ^^^^^ ^^^ >o : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >b : string @@ -114,8 +114,8 @@ let nested: { a: number, b: boolean, c: string } = > : ^^^^^^ { ...{ a: 3, ...{ b: false, c: 'overriden' } }, c: 'whatever' } ->{ ...{ a: 3, ...{ b: false, c: 'overriden' } }, c: 'whatever' } : { c: string; b: false; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...{ a: 3, ...{ b: false, c: 'overriden' } }, c: 'whatever' } : { a: number; b: boolean; c: string; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^ >{ a: 3, ...{ b: false, c: 'overriden' } } : { b: false; c: string; a: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -148,8 +148,8 @@ let combined: { a: number, b: string, c: boolean } = > : ^^^^^^^ { ...o, ...o2 } ->{ ...o, ...o2 } : { b: string; c: boolean; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...o, ...o2 } : { a: number; b: string; c: boolean; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^ >o : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >o2 : { b: string; c: boolean; } @@ -166,8 +166,8 @@ let combinedAfter: { a: number, b: string, c: boolean } = > : ^^^^^^^ { ...o, ...o2, b: 'ok' } ->{ ...o, ...o2, b: 'ok' } : { b: string; c: boolean; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...o, ...o2, b: 'ok' } : { a: number; b: string; c: boolean; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^ >o : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >o2 : { b: string; c: boolean; } @@ -188,8 +188,8 @@ let combinedNestedChangeType: { a: number, b: boolean, c: number } = > : ^^^^^^ { ...{ a: 1, ...{ b: false, c: 'overriden' } }, c: -1 } ->{ ...{ a: 1, ...{ b: false, c: 'overriden' } }, c: -1 } : { c: number; b: false; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...{ a: 1, ...{ b: false, c: 'overriden' } }, c: -1 } : { a: number; b: boolean; c: number; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^ >{ a: 1, ...{ b: false, c: 'overriden' } } : { b: false; c: string; a: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -225,7 +225,7 @@ let propertyNested: { a: { a: number, b: string } } = { a: { ... o } } >{ a: { ... o } } : { a: { a: number; b: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >a : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >{ ... o } : { a: number; b: string; } @@ -254,8 +254,8 @@ let getter: { a: number, c: number } = > : ^^^^^^ { ...op, c: 7 } ->{ ...op, c: 7 } : { c: number; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...op, c: 7 } : { a: number; c: number; } +> : ^^^^^ ^^^^^ ^^^ >op : { readonly a: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >c : number @@ -575,7 +575,7 @@ let spreadC: { p: number } = { ...c } >p : number > : ^^^^^^ >{ ...c } : { p: number; } -> : ^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >c : C > : ^ @@ -587,8 +587,8 @@ let cplus: { p: number, plus(): void } = { ...c, plus() { return this.p + 1; } } > : ^^^^^^ >plus : () => void > : ^^^^^^ ->{ ...c, plus() { return this.p + 1; } } : { plus(): any; p: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...c, plus() { return this.p + 1; } } : { p: number; plus(): void; } +> : ^^^^^ ^^^^^^^^^^ ^^^ >c : C > : ^ >plus : () => any @@ -623,7 +623,7 @@ let changeTypeAfter: { a: string, b: string } = { ...o, a: 'wrong type?' } >{ ...o, a: 'wrong type?' } : { a: string; b: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >o : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : string @@ -641,7 +641,7 @@ let changeTypeBoth: { a: string, b: number } = { ...o, ...swap }; >{ ...o, ...swap } : { a: string; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >o : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >swap : { a: string; b: number; } @@ -681,8 +681,8 @@ function container( > : ^^^^^^ ^^^ >sn : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ ...definiteBoolean, ...definiteString, ...optionalNumber } : { sn: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...definiteBoolean, ...definiteString, ...optionalNumber } : { sn: string | number | boolean; } +> : ^^^^^^ ^^^ >definiteBoolean : { sn: boolean; } > : ^^^^^^ ^^^ >definiteString : { sn: string; } @@ -696,7 +696,7 @@ function container( >sn : string | number > : ^^^^^^^^^^^^^^^ >{ ...definiteBoolean, ...definiteString, ...optionalString, ...optionalNumber } : { sn: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^ >definiteBoolean : { sn: boolean; } > : ^^^^^^ ^^^ >definiteString : { sn: string; } @@ -711,8 +711,8 @@ function container( > : ^^^^^^^ ^^^ >sn : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ ...optionalString, ...optionalNumber } : { sn?: string | number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...optionalString, ...optionalNumber } : { sn?: string | number; } +> : ^^^^^^^ ^^^ >optionalString : { sn?: string; } > : ^^^^^^^ ^^^ >optionalNumber : { sn?: number; } @@ -730,8 +730,8 @@ function container( > : ^^^^^^ { ['before everything']: 12, ...o, b: 'yes' } ->{ ['before everything']: 12, ...o, b: 'yes' } : { b: string; a: number; "before everything": number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ['before everything']: 12, ...o, b: 'yes' } : { a: number; b: string; "before everything": number; } +> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >['before everything'] : number > : ^^^^^^ >'before everything' : "before everything" @@ -756,8 +756,8 @@ function container( > : ^^^^^^ { ...o, b: 'yeah', ['at the end']: 14 } ->{ ...o, b: 'yeah', ['at the end']: 14 } : { b: string; "at the end": number; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...o, b: 'yeah', ['at the end']: 14 } : { a: number; b: string; "at the end": number; } +> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^ >o : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >b : string @@ -786,7 +786,7 @@ let shortCutted: { a: number, b: string } = { ...o, a } >b : string > : ^^^^^^ >{ ...o, a } : { a: number; b: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >o : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -841,8 +841,8 @@ let exclusive: { id: string, a: number, b: string, c: string, d: boolean } = > : ^^^^^^^ f({ a: 1, b: 'yes' }, { c: 'no', d: false }) ->f({ a: 1, b: 'yes' }, { c: 'no', d: false }) : { a: number; b: string; } & { c: string; d: boolean; } & { id: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>f({ a: 1, b: 'yes' }, { c: 'no', d: false }) : { id: string; a: number; b: string; c: string; d: boolean; } +> : ^^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^ >f : (t: T, u: U) => T & U & { id: string; } > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1, b: 'yes' } : { a: number; b: string; } @@ -877,8 +877,8 @@ let overlap: { id: string, a: number, b: string } = > : ^^^^^^ f({ a: 1 }, { a: 2, b: 'extra' }) ->f({ a: 1 }, { a: 2, b: 'extra' }) : { a: number; } & { a: number; b: string; } & { id: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>f({ a: 1 }, { a: 2, b: 'extra' }) : { id: string; a: number; b: string; } +> : ^^^^^^ ^^^^^ ^^^^^ ^^^ >f : (t: T, u: U) => T & U & { id: string; } > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1 } : { a: number; } @@ -907,8 +907,8 @@ let overlapConflict: { id:string, a: string } = > : ^^^^^^ f({ a: 1 }, { a: 'mismatch' }) ->f({ a: 1 }, { a: 'mismatch' }) : { a: number; } & { a: string; } & { id: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>f({ a: 1 }, { a: 'mismatch' }) : { id: string; a: string; } +> : ^^^^^^ ^^^^^ ^^^ >f : (t: T, u: U) => T & U & { id: string; } > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1 } : { a: number; } @@ -937,8 +937,8 @@ let overwriteId: { id: string, a: number, c: number, d: string } = > : ^^^^^^ f({ a: 1, id: true }, { c: 1, d: 'no' }) ->f({ a: 1, id: true }, { c: 1, d: 'no' }) : never -> : ^^^^^ +>f({ a: 1, id: true }, { c: 1, d: 'no' }) : { id: string; a: number; c: number; d: string; } +> : ^^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^ >f : (t: T, u: U) => T & U & { id: string; } > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1, id: true } : { a: number; id: true; } diff --git a/tests/baselines/reference/objectSpreadComputedProperty.types b/tests/baselines/reference/objectSpreadComputedProperty.types index e01a76d1cc634..0fb06b085ded4 100644 --- a/tests/baselines/reference/objectSpreadComputedProperty.types +++ b/tests/baselines/reference/objectSpreadComputedProperty.types @@ -9,14 +9,14 @@ function f() { let n: number = 12; >n : number > : ^^^^^^ ->12 : 12 -> : ^^ +>12 : number +> : ^^^^^^ let m: number = 13; >m : number > : ^^^^^^ ->13 : 13 -> : ^^ +>13 : number +> : ^^^^^^ let a: any = null; >a : any diff --git a/tests/baselines/reference/objectSpreadNegative.errors.txt b/tests/baselines/reference/objectSpreadNegative.errors.txt index 860b430be4bd3..5be7a6df81020 100644 --- a/tests/baselines/reference/objectSpreadNegative.errors.txt +++ b/tests/baselines/reference/objectSpreadNegative.errors.txt @@ -1,5 +1,5 @@ objectSpreadNegative.ts(13,21): error TS2339: Property 'x' does not exist on type '{}'. -objectSpreadNegative.ts(16,5): error TS2322: Type '{ sn?: string | number | undefined; }' is not assignable to type '{ sn: string | number; }'. +objectSpreadNegative.ts(16,44): error TS2322: Type '{ sn?: string | number | undefined; }' is not assignable to type '{ sn: string | number; }'. Types of property 'sn' are incompatible. Type 'string | number | undefined' is not assignable to type 'string | number'. Type 'undefined' is not assignable to type 'string | number'. @@ -45,7 +45,7 @@ objectSpreadNegative.ts(74,11): error TS2339: Property 'a' does not exist on typ declare let optionalString: { sn?: string }; declare let optionalNumber: { sn?: number }; let allOptional: { sn: string | number } = { ...optionalString, ...optionalNumber }; - ~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ sn?: string | number | undefined; }' is not assignable to type '{ sn: string | number; }'. !!! error TS2322: Types of property 'sn' are incompatible. !!! error TS2322: Type 'string | number | undefined' is not assignable to type 'string | number'. diff --git a/tests/baselines/reference/objectSpreadNegative.types b/tests/baselines/reference/objectSpreadNegative.types index 5a228136893ef..9d1fa2104e45e 100644 --- a/tests/baselines/reference/objectSpreadNegative.types +++ b/tests/baselines/reference/objectSpreadNegative.types @@ -53,12 +53,12 @@ let o2 = { ...publicX, ...privateOptionalX }; let sn: number = o2.x; // error, x is private >sn : number > : ^^^^^^ ->o2.x : any -> : ^^^ +>o2.x : number +> : ^^^^^^ >o2 : {} > : ^^ ->x : any -> : ^^^ +>x : number +> : ^^^^^^ declare let optionalString: { sn?: string }; >optionalString : { sn?: string; } @@ -77,8 +77,8 @@ let allOptional: { sn: string | number } = { ...optionalString, ...optionalNumbe > : ^^^^^^ ^^^ >sn : string | number > : ^^^^^^^^^^^^^^^ ->{ ...optionalString, ...optionalNumber } : { sn?: string | number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...optionalString, ...optionalNumber } : { sn: string | number; } +> : ^^^^^^ ^^^ >optionalString : { sn?: string; } > : ^^^^^^^ ^^^ >optionalNumber : { sn?: number; } @@ -187,7 +187,7 @@ let ignore: { a: number, b: string } = { b: 'ignored', ...o } >{ b: 'ignored', ...o } : { a: number; b: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >b : string > : ^^^^^^ >'ignored' : "ignored" @@ -234,8 +234,8 @@ let combinedBefore: { a: number, b: string, c: boolean } = > : ^^^^^^^ { b: 'ok', ...o3, ...o4 } ->{ b: 'ok', ...o3, ...o4 } : { b: string; c: boolean; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ b: 'ok', ...o3, ...o4 } : { a: number; b: string; c: boolean; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^ >b : string > : ^^^^^^ >'ok' : "ok" @@ -256,8 +256,8 @@ let combinedMid: { a: number, b: string, c: boolean } = > : ^^^^^^^ { ...o3, b: 'ok', ...o4 } ->{ ...o3, b: 'ok', ...o4 } : { b: string; c: boolean; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...o3, b: 'ok', ...o4 } : { a: number; b: string; c: boolean; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^ >o3 : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >b : string @@ -280,8 +280,8 @@ let combinedNested: { a: number, b: boolean, c: string, d: string } = > : ^^^^^^ { ...{ a: 4, ...{ b: false, c: 'overriden' } }, d: 'actually new', ...{ a: 5, d: 'maybe new' } } ->{ ...{ a: 4, ...{ b: false, c: 'overriden' } }, d: 'actually new', ...{ a: 5, d: 'maybe new' } } : { a: number; d: string; b: false; c: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...{ a: 4, ...{ b: false, c: 'overriden' } }, d: 'actually new', ...{ a: 5, d: 'maybe new' } } : { a: number; b: boolean; c: string; d: string; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^ >{ a: 4, ...{ b: false, c: 'overriden' } } : { b: false; c: string; a: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -323,7 +323,7 @@ let changeTypeBefore: { a: number, b: string } = { a: 'wrong type?', ...o3 }; >{ a: 'wrong type?', ...o3 } : { a: number; b: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >a : string > : ^^^^^^ >'wrong type?' : "wrong type?" @@ -344,8 +344,8 @@ let computedMiddle: { a: number, b: string, c: boolean, "in the middle": number > : ^^^^^^ { ...o3, ['in the middle']: 13, b: 'maybe?', ...o4 } ->{ ...o3, ['in the middle']: 13, b: 'maybe?', ...o4 } : { b: string; c: boolean; "in the middle": number; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...o3, ['in the middle']: 13, b: 'maybe?', ...o4 } : { a: number; b: string; c: boolean; "in the middle": number; } +> : ^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ >o3 : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >['in the middle'] : number @@ -527,8 +527,8 @@ spreadC.m(); // error 'm' is not in '{ ... c }' let obj: object = { a: 123 }; >obj : object > : ^^^^^^ ->{ a: 123 } : { a: number; } -> : ^^^^^^^^^^^^^^ +>{ a: 123 } : object +> : ^^^^^^ >a : number > : ^^^^^^ >123 : 123 diff --git a/tests/baselines/reference/objectSpreadStrictNull.errors.txt b/tests/baselines/reference/objectSpreadStrictNull.errors.txt index 2ead2fb05bb7e..8b57b437e78a4 100644 --- a/tests/baselines/reference/objectSpreadStrictNull.errors.txt +++ b/tests/baselines/reference/objectSpreadStrictNull.errors.txt @@ -1,12 +1,12 @@ -objectSpreadStrictNull.ts(14,9): error TS2322: Type '{ sn: number | undefined; }' is not assignable to type '{ sn: string | number; }'. +objectSpreadStrictNull.ts(14,56): error TS2322: Type '{ sn: number | undefined; }' is not assignable to type '{ sn: string | number; }'. Types of property 'sn' are incompatible. Type 'number | undefined' is not assignable to type 'string | number'. Type 'undefined' is not assignable to type 'string | number'. -objectSpreadStrictNull.ts(15,9): error TS2322: Type '{ sn: number | undefined; }' is not assignable to type '{ sn: string | number; }'. +objectSpreadStrictNull.ts(15,61): error TS2322: Type '{ sn: number | undefined; }' is not assignable to type '{ sn: string | number; }'. Types of property 'sn' are incompatible. Type 'number | undefined' is not assignable to type 'string | number'. Type 'undefined' is not assignable to type 'string | number'. -objectSpreadStrictNull.ts(18,9): error TS2322: Type '{ sn: string | number | undefined; }' is not assignable to type '{ sn: string | number | boolean; }'. +objectSpreadStrictNull.ts(18,77): error TS2322: Type '{ sn: string | number | undefined; }' is not assignable to type '{ sn: string | number | boolean; }'. Types of property 'sn' are incompatible. Type 'string | number | undefined' is not assignable to type 'string | number | boolean'. Type 'undefined' is not assignable to type 'string | number | boolean'. @@ -32,13 +32,13 @@ objectSpreadStrictNull.ts(42,5): error TS2322: Type '{ foo: number | undefined; // undefined let undefinedUnionStops: { sn: string | number } = { ...definiteBoolean, ...definiteString, ...undefinedNumber }; - ~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ sn: number | undefined; }' is not assignable to type '{ sn: string | number; }'. !!! error TS2322: Types of property 'sn' are incompatible. !!! error TS2322: Type 'number | undefined' is not assignable to type 'string | number'. !!! error TS2322: Type 'undefined' is not assignable to type 'string | number'. let undefinedUnionDuplicates: { sn: string | number } = { ...definiteBoolean, ...definiteString, ...undefinedString, ...undefinedNumber }; - ~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ sn: number | undefined; }' is not assignable to type '{ sn: string | number; }'. !!! error TS2322: Types of property 'sn' are incompatible. !!! error TS2322: Type 'number | undefined' is not assignable to type 'string | number'. @@ -46,7 +46,7 @@ objectSpreadStrictNull.ts(42,5): error TS2322: Type '{ foo: number | undefined; let allUndefined: { sn: string | number | undefined } = { ...undefinedString, ...undefinedNumber }; let undefinedWithOptionalContinues: { sn: string | number | boolean } = { ...definiteBoolean, ...undefinedString, ...optionalNumber }; - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ sn: string | number | undefined; }' is not assignable to type '{ sn: string | number | boolean; }'. !!! error TS2322: Types of property 'sn' are incompatible. !!! error TS2322: Type 'string | number | undefined' is not assignable to type 'string | number | boolean'. diff --git a/tests/baselines/reference/objectSpreadStrictNull.types b/tests/baselines/reference/objectSpreadStrictNull.types index b8d6a1cbeb5e7..394d188748885 100644 --- a/tests/baselines/reference/objectSpreadStrictNull.types +++ b/tests/baselines/reference/objectSpreadStrictNull.types @@ -48,7 +48,7 @@ function f( >sn : string | number > : ^^^^^^^^^^^^^^^ >{ ...definiteBoolean, ...definiteString, ...optionalNumber } : { sn: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^ >definiteBoolean : { sn: boolean; } > : ^^^^^^ ^^^ >definiteString : { sn: string; } @@ -62,7 +62,7 @@ function f( >sn : string | number > : ^^^^^^^^^^^^^^^ >{ ...definiteBoolean, ...definiteString, ...optionalString, ...optionalNumber } : { sn: string | number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^ >definiteBoolean : { sn: boolean; } > : ^^^^^^ ^^^ >definiteString : { sn: string; } @@ -77,8 +77,8 @@ function f( > : ^^^^^^^ ^^^ >sn : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ ...optionalString, ...optionalNumber } : { sn?: string | number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...optionalString, ...optionalNumber } : { sn?: string | number; } +> : ^^^^^^^ ^^^ >optionalString : { sn?: string; } > : ^^^^^^^ ^^^ >optionalNumber : { sn?: number; } @@ -90,8 +90,8 @@ function f( > : ^^^^^^ ^^^ >sn : string | number > : ^^^^^^^^^^^^^^^ ->{ ...definiteBoolean, ...definiteString, ...undefinedNumber } : { sn: number | undefined; } -> : ^^^^^^ ^^^ +>{ ...definiteBoolean, ...definiteString, ...undefinedNumber } : { sn: string | number; } +> : ^^^^^^ ^^^ >definiteBoolean : { sn: boolean; } > : ^^^^^^ ^^^ >definiteString : { sn: string; } @@ -104,8 +104,8 @@ function f( > : ^^^^^^ ^^^ >sn : string | number > : ^^^^^^^^^^^^^^^ ->{ ...definiteBoolean, ...definiteString, ...undefinedString, ...undefinedNumber } : { sn: number | undefined; } -> : ^^^^^^ ^^^ +>{ ...definiteBoolean, ...definiteString, ...undefinedString, ...undefinedNumber } : { sn: string | number; } +> : ^^^^^^ ^^^ >definiteBoolean : { sn: boolean; } > : ^^^^^^ ^^^ >definiteString : { sn: string; } @@ -120,8 +120,8 @@ function f( > : ^^^^^^ ^^^ >sn : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ ...undefinedString, ...undefinedNumber } : { sn: number | undefined; } -> : ^^^^^^ ^^^ +>{ ...undefinedString, ...undefinedNumber } : { sn: string | number | undefined; } +> : ^^^^^^ ^^^ >undefinedString : { sn: string | undefined; } > : ^^^^^^ ^^^ >undefinedNumber : { sn: number | undefined; } @@ -132,8 +132,8 @@ function f( > : ^^^^^^ ^^^ >sn : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->{ ...definiteBoolean, ...undefinedString, ...optionalNumber } : { sn: string | number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ ...definiteBoolean, ...undefinedString, ...optionalNumber } : { sn: string | number | boolean; } +> : ^^^^^^ ^^^ >definiteBoolean : { sn: boolean; } > : ^^^^^^ ^^^ >undefinedString : { sn: string | undefined; } diff --git a/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.types b/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.types index eb392542f2549..314b6a62175c1 100644 --- a/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.types +++ b/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.types @@ -25,12 +25,12 @@ var r2b: (x: any, y?: any) => any = i.apply; > : ^ ^^ ^^ ^^^ ^^^^^ >x : any >y : any ->i.apply : (this: Function, thisArg: any, argArray?: any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +>i.apply : (x: any, y?: any) => any +> : ^ ^^ ^^ ^^^ ^^^^^ >i : I > : ^ ->apply : (this: Function, thisArg: any, argArray?: any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +>apply : (x: any, y?: any) => any +> : ^ ^^ ^^ ^^^ ^^^^^ var b: { >b : () => void @@ -52,10 +52,10 @@ var rb4: (x: any, y?: any) => any = b.apply; > : ^ ^^ ^^ ^^^ ^^^^^ >x : any >y : any ->b.apply : (this: Function, thisArg: any, argArray?: any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +>b.apply : (x: any, y?: any) => any +> : ^ ^^ ^^ ^^^ ^^^^^ >b : () => void > : ^^^^^^ ->apply : (this: Function, thisArg: any, argArray?: any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +>apply : (x: any, y?: any) => any +> : ^ ^^ ^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.types b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.types index 4f0e22af53940..a066525947034 100644 --- a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.types +++ b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.types @@ -54,12 +54,12 @@ var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; > : ^^^^^^ >argArray : number[] > : ^^^^^^^^ ->i.call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>i.call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ >i : I > : ^ ->call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ var r1c = i.arguments; >r1c : any @@ -126,12 +126,12 @@ var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; > : ^^^^^^ >argArray : number[] > : ^^^^^^^^ ->x.call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>x.call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ >x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } > : ^^^^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ->call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ var r2c = x.arguments; >r2c : any diff --git a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.types b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.types index 92a0418827371..692acbe80b1a1 100644 --- a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.types +++ b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.types @@ -44,12 +44,12 @@ var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; > : ^^^^^^ >argArray : number[] > : ^^^^^^^^ ->i.call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>i.call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ >i : I > : ^ ->call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ var r1c = i.arguments; >r1c : any @@ -98,12 +98,12 @@ var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; > : ^^^^^^ >argArray : number[] > : ^^^^^^^^ ->x.call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>x.call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ >x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } > : ^^^^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ->call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ var r2c = x.arguments; >r2c : any diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureAppearsToBeFunctionType.types b/tests/baselines/reference/objectTypeWithConstructSignatureAppearsToBeFunctionType.types index 9526daf2cd7a0..32004200ce5eb 100644 --- a/tests/baselines/reference/objectTypeWithConstructSignatureAppearsToBeFunctionType.types +++ b/tests/baselines/reference/objectTypeWithConstructSignatureAppearsToBeFunctionType.types @@ -14,8 +14,8 @@ var i: I; var r2: number = i(); >r2 : number > : ^^^^^^ ->i() : any -> : ^^^ +>i() : number +> : ^^^^^^ >i : I > : ^ @@ -34,12 +34,12 @@ var r2c: (x: any, y?: any) => any = i.apply; > : ^^^ >y : any > : ^^^ ->i.apply : (this: Function, thisArg: any, argArray?: any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +>i.apply : (x: any, y?: any) => any +> : ^ ^^ ^^ ^^^ ^^^^^ >i : I > : ^ ->apply : (this: Function, thisArg: any, argArray?: any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +>apply : (x: any, y?: any) => any +> : ^ ^^ ^^ ^^^ ^^^^^ var b: { >b : new () => number @@ -51,8 +51,8 @@ var b: { var r4: number = b(); >r4 : number > : ^^^^^^ ->b() : any -> : ^^^ +>b() : number +> : ^^^^^^ >b : new () => number > : ^^^^^^^^^^ @@ -71,10 +71,10 @@ var r4c: (x: any, y?: any) => any = b.apply; > : ^^^ >y : any > : ^^^ ->b.apply : (this: Function, thisArg: any, argArray?: any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +>b.apply : (x: any, y?: any) => any +> : ^ ^^ ^^ ^^^ ^^^^^ >b : new () => number > : ^^^^^^^^^^ ->apply : (this: Function, thisArg: any, argArray?: any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +>apply : (x: any, y?: any) => any +> : ^ ^^ ^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.types b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.types index e2afe0291538d..1c6a4275820ee 100644 --- a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.types +++ b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.types @@ -51,12 +51,12 @@ var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; > : ^^^^^^ >argArray : number[] > : ^^^^^^^^ ->i.call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>i.call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ >i : I > : ^ ->call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ var r1c = i.arguments; >r1c : any @@ -123,12 +123,12 @@ var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; > : ^^^^^^ >argArray : number[] > : ^^^^^^^^ ->x.call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>x.call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ >x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } > : ^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ->call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ var r2c = x.arguments; >r2c : any diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.types b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.types index dba1f49ab3c48..0f8083c6d7f0f 100644 --- a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.types +++ b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.types @@ -41,12 +41,12 @@ var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; > : ^^^^^^ >argArray : number[] > : ^^^^^^^^ ->i.call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>i.call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ >i : I > : ^ ->call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ var r1c = i.arguments; >r1c : any @@ -95,12 +95,12 @@ var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; > : ^^^^^^ >argArray : number[] > : ^^^^^^^^ ->x.call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>x.call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ >x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } > : ^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ->call : (thisArg: number, ...argArray: number[]) => any -> : ^ ^^ ^^^^^ ^^ ^^^^^ +>call : (thisArg: number, ...argArray: number[]) => void +> : ^ ^^ ^^^^^ ^^ ^^^^^ var r2c = x.arguments; >r2c : any diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types index bf3edffdf542a..0b12cba9a3b2d 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types @@ -63,8 +63,8 @@ var b: { [x: number]: string; } = { 0: '' }; > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ ->{ 0: '' } : { 0: string; } -> : ^^^^^^^^^^^^^^ +>{ 0: '' } : { [x: number]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >0 : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types index 336e499260cc6..58738ca12e749 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types @@ -77,8 +77,8 @@ var b: { [x: number]: Derived; } = { 0: null }; > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ ->{ 0: null } : { 0: Derived; } -> : ^^^^^ ^^^ +>{ 0: null } : { [x: number]: Derived; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : Derived > : ^^^^^^^ >null : Derived diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types index f7baf1b6bb4a9..24f49cd4b2711 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types @@ -63,8 +63,8 @@ var b: { [x: number]: string; } = { 0: '' }; > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ ->{ 0: '' } : { 0: string; } -> : ^^^^^^^^^^^^^^ +>{ 0: '' } : { [x: number]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >0 : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types index 7bc1599ef7ac4..ab4c005c48faf 100644 --- a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types @@ -63,8 +63,8 @@ var b: { [x: string]: string; } = { foo: '' }; > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{ foo: '' } : { foo: string; } -> : ^^^^^^^^^^^^^^^^ +>{ foo: '' } : { [x: string]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >foo : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types index cc36c3770342e..563698facfed8 100644 --- a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types @@ -77,8 +77,8 @@ var b: { [x: string]: Derived; } = { foo: null }; > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{ foo: null } : { foo: Derived; } -> : ^^^^^^^ ^^^ +>{ foo: null } : { [x: string]: Derived; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : Derived > : ^^^^^^^ >null : Derived diff --git a/tests/baselines/reference/operatorsAndIntersectionTypes.types b/tests/baselines/reference/operatorsAndIntersectionTypes.types index aa72d3577368f..bc863ae46ee45 100644 --- a/tests/baselines/reference/operatorsAndIntersectionTypes.types +++ b/tests/baselines/reference/operatorsAndIntersectionTypes.types @@ -38,8 +38,8 @@ let map1: { [x: string]: number } = {}; > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{} : {} -> : ^^ +>{} : { [x: string]: number; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ let guid = createGuid(); >guid : Guid @@ -66,8 +66,8 @@ let map2: { [x: number]: string } = {}; > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ ->{} : {} -> : ^^ +>{} : { [x: number]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ let serialNo = createSerialNo(); >serialNo : SerialNo diff --git a/tests/baselines/reference/optionalParamArgsTest.types b/tests/baselines/reference/optionalParamArgsTest.types index 389e09f6a8d8d..8efea47efd30b 100644 --- a/tests/baselines/reference/optionalParamArgsTest.types +++ b/tests/baselines/reference/optionalParamArgsTest.types @@ -280,7 +280,7 @@ var c1o1:C1 = new C1(5); var i1o1:I1 = new C1(5); >i1o1 : I1 > : ^^ ->new C1(5) : C1 +>new C1(5) : I1 > : ^^ >C1 : typeof C1 > : ^^^^^^^^^ diff --git a/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt b/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt index df554d1d1fd01..5135a1d104184 100644 --- a/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt +++ b/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt @@ -18,5 +18,4 @@ optionalParamAssignmentCompat.ts(10,13): error TS2322: Type '(p1?: string) => I1 !!! error TS2322: Type '(p1?: string) => I1' is not assignable to type 'I1'. !!! error TS2322: Types of parameters 'p1' and 'p1' are incompatible. !!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6212 optionalParamAssignmentCompat.ts:10:13: Did you mean to call this expression? \ No newline at end of file diff --git a/tests/baselines/reference/optionalParamAssignmentCompat.types b/tests/baselines/reference/optionalParamAssignmentCompat.types index 3cebb1e292b27..e364018272da2 100644 --- a/tests/baselines/reference/optionalParamAssignmentCompat.types +++ b/tests/baselines/reference/optionalParamAssignmentCompat.types @@ -36,10 +36,10 @@ var c: I1 = i2.p1; // should be ok var d: I1 = i2.m1; // should error >d : I1 > : ^^ ->i2.m1 : (p1?: string) => I1 -> : ^ ^^^ ^^^^^ +>i2.m1 : I1 +> : ^^ >i2 : I2 > : ^^ ->m1 : (p1?: string) => I1 -> : ^ ^^^ ^^^^^ +>m1 : I1 +> : ^^ diff --git a/tests/baselines/reference/optionalPropertiesTest.errors.txt b/tests/baselines/reference/optionalPropertiesTest.errors.txt index eef03891edf85..63f2937a6d92d 100644 --- a/tests/baselines/reference/optionalPropertiesTest.errors.txt +++ b/tests/baselines/reference/optionalPropertiesTest.errors.txt @@ -1,6 +1,6 @@ optionalPropertiesTest.ts(14,1): error TS2741: Property 'id' is missing in type '{ name: string; }' but required in type 'IFoo'. -optionalPropertiesTest.ts(25,5): error TS2741: Property 'M' is missing in type '{}' but required in type 'i1'. -optionalPropertiesTest.ts(26,5): error TS2741: Property 'M' is missing in type '{}' but required in type 'i3'. +optionalPropertiesTest.ts(25,17): error TS2741: Property 'M' is missing in type '{}' but required in type 'i1'. +optionalPropertiesTest.ts(26,17): error TS2741: Property 'M' is missing in type '{}' but required in type 'i3'. optionalPropertiesTest.ts(40,1): error TS2322: Type 'i2' is not assignable to type 'i1'. Property 'M' is optional in type 'i2' but required in type 'i1'. @@ -34,11 +34,11 @@ optionalPropertiesTest.ts(40,1): error TS2322: Type 'i2' is not assignable to ty interface i4 { M?: number; }; var test1: i1 = {}; - ~~~~~ + ~~ !!! error TS2741: Property 'M' is missing in type '{}' but required in type 'i1'. !!! related TS2728 optionalPropertiesTest.ts:20:16: 'M' is declared here. var test2: i3 = {}; - ~~~~~ + ~~ !!! error TS2741: Property 'M' is missing in type '{}' but required in type 'i3'. !!! related TS2728 optionalPropertiesTest.ts:22:16: 'M' is declared here. var test3: i2 = {}; diff --git a/tests/baselines/reference/optionalPropertiesTest.types b/tests/baselines/reference/optionalPropertiesTest.types index 4a907bb1ca1a4..725495e330103 100644 --- a/tests/baselines/reference/optionalPropertiesTest.types +++ b/tests/baselines/reference/optionalPropertiesTest.types @@ -140,32 +140,32 @@ interface i4 { M?: number; }; var test1: i1 = {}; >test1 : i1 > : ^^ ->{} : {} +>{} : i1 > : ^^ var test2: i3 = {}; >test2 : i3 > : ^^ ->{} : {} +>{} : i3 > : ^^ var test3: i2 = {}; >test3 : i2 > : ^^ ->{} : {} +>{} : i2 > : ^^ var test4: i4 = {}; >test4 : i4 > : ^^ ->{} : {} +>{} : i4 > : ^^ var test5: i1 = { M: function () { } }; >test5 : i1 > : ^^ ->{ M: function () { } } : { M: () => void; } -> : ^^^^^^^^^^^^^^^^^^ +>{ M: function () { } } : i1 +> : ^^ >M : () => void > : ^^^^^^^^^^ >function () { } : () => void @@ -174,8 +174,8 @@ var test5: i1 = { M: function () { } }; var test6: i3 = { M: 5 }; >test6 : i3 > : ^^ ->{ M: 5 } : { M: number; } -> : ^^^^^^^^^^^^^^ +>{ M: 5 } : i3 +> : ^^ >M : number > : ^^^^^^ >5 : 5 @@ -184,8 +184,8 @@ var test6: i3 = { M: 5 }; var test7: i2 = { M: function () { } }; >test7 : i2 > : ^^ ->{ M: function () { } } : { M: () => void; } -> : ^^^^^^^^^^^^^^^^^^ +>{ M: function () { } } : i2 +> : ^^ >M : () => void > : ^^^^^^^^^^ >function () { } : () => void @@ -202,8 +202,8 @@ test7 = {}; var test8: i4 = { M: 5 } >test8 : i4 > : ^^ ->{ M: 5 } : { M: number; } -> : ^^^^^^^^^^^^^^ +>{ M: 5 } : i4 +> : ^^ >M : number > : ^^^^^^ >5 : 5 diff --git a/tests/baselines/reference/optionalPropertyAssignableToStringIndexSignature.errors.txt b/tests/baselines/reference/optionalPropertyAssignableToStringIndexSignature.errors.txt index 48416c1318882..a7e4502349218 100644 --- a/tests/baselines/reference/optionalPropertyAssignableToStringIndexSignature.errors.txt +++ b/tests/baselines/reference/optionalPropertyAssignableToStringIndexSignature.errors.txt @@ -6,7 +6,7 @@ optionalPropertyAssignableToStringIndexSignature.ts(10,1): error TS2322: Type '{ Property '1' is incompatible with index signature. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. -optionalPropertyAssignableToStringIndexSignature.ts(13,5): error TS2322: Type '{ k1?: undefined; }' is not assignable to type '{ [key: string]: string; }'. +optionalPropertyAssignableToStringIndexSignature.ts(13,39): error TS2322: Type '{ k1?: undefined; }' is not assignable to type '{ [key: string]: string; }'. Property 'k1' is incompatible with index signature. Type 'undefined' is not assignable to type 'string'. @@ -35,7 +35,7 @@ optionalPropertyAssignableToStringIndexSignature.ts(13,5): error TS2322: Type '{ declare let optionalUndefined: { k1?: undefined }; let dict: { [key: string]: string } = optionalUndefined; // error - ~~~~ + ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ k1?: undefined; }' is not assignable to type '{ [key: string]: string; }'. !!! error TS2322: Property 'k1' is incompatible with index signature. !!! error TS2322: Type 'undefined' is not assignable to type 'string'. diff --git a/tests/baselines/reference/optionalPropertyAssignableToStringIndexSignature.types b/tests/baselines/reference/optionalPropertyAssignableToStringIndexSignature.types index 6a3e456f87062..bd66c77580122 100644 --- a/tests/baselines/reference/optionalPropertyAssignableToStringIndexSignature.types +++ b/tests/baselines/reference/optionalPropertyAssignableToStringIndexSignature.types @@ -66,8 +66,8 @@ let dict: { [key: string]: string } = optionalUndefined; // error > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : string > : ^^^^^^ ->optionalUndefined : { k1?: undefined; } -> : ^^^^^^^ ^^^ +>optionalUndefined : { [key: string]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ function f() { >f : () => void @@ -78,8 +78,8 @@ function f() { > : ^^^^^^^ ^^^ >k1 : T | undefined > : ^^^^^^^^^^^^^ ->undefined! : never -> : ^^^^^ +>undefined! : { k1?: T; } +> : ^^^^^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ @@ -88,7 +88,7 @@ function f() { > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : string > : ^^^^^^ ->optional : { k1?: T; } -> : ^^^^^^^ ^^^ +>optional : { [key: string]: number | T; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/overEagerReturnTypeSpecialization.errors.txt b/tests/baselines/reference/overEagerReturnTypeSpecialization.errors.txt index 61558fa63081f..355de132d191d 100644 --- a/tests/baselines/reference/overEagerReturnTypeSpecialization.errors.txt +++ b/tests/baselines/reference/overEagerReturnTypeSpecialization.errors.txt @@ -1,4 +1,4 @@ -overEagerReturnTypeSpecialization.ts(8,5): error TS2322: Type 'I1' is not assignable to type 'I1'. +overEagerReturnTypeSpecialization.ts(8,22): error TS2322: Type 'I1' is not assignable to type 'I1'. Type 'number' is not assignable to type 'string'. @@ -11,10 +11,11 @@ overEagerReturnTypeSpecialization.ts(8,5): error TS2322: Type 'I1' is no declare var v1: I1; var r1: I1 = v1.func(num => num.toString()) // Correctly returns an I1 - ~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + .func(str => str.length); // should error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'I1' is not assignable to type 'I1'. !!! error TS2322: Type 'number' is not assignable to type 'string'. - .func(str => str.length); // should error var r2: I1 = v1.func(num => num.toString()) // Correctly returns an I1 .func(str => str.length); // should be ok diff --git a/tests/baselines/reference/overEagerReturnTypeSpecialization.types b/tests/baselines/reference/overEagerReturnTypeSpecialization.types index 40d8343e5ec2f..975ff8d782d9a 100644 --- a/tests/baselines/reference/overEagerReturnTypeSpecialization.types +++ b/tests/baselines/reference/overEagerReturnTypeSpecialization.types @@ -20,7 +20,7 @@ declare var v1: I1; var r1: I1 = v1.func(num => num.toString()) // Correctly returns an I1 >r1 : I1 > : ^^^^^^^^^^ ->v1.func(num => num.toString()) // Correctly returns an I1 .func(str => str.length) : I1 +>v1.func(num => num.toString()) // Correctly returns an I1 .func(str => str.length) : I1 > : ^^^^^^^^^^ >v1.func(num => num.toString()) // Correctly returns an I1 .func : (callback: (value: string) => U) => I1 > : ^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/overload1.errors.txt b/tests/baselines/reference/overload1.errors.txt index 5a000bae8bd24..64b0edc84acc0 100644 --- a/tests/baselines/reference/overload1.errors.txt +++ b/tests/baselines/reference/overload1.errors.txt @@ -1,4 +1,4 @@ -overload1.ts(27,5): error TS2322: Type 'C' is not assignable to type 'string'. +overload1.ts(27,14): error TS2322: Type 'C' is not assignable to type 'string'. overload1.ts(29,1): error TS2322: Type 'number' is not assignable to type 'string'. overload1.ts(31,11): error TS2554: Expected 1-2 arguments, but got 3. overload1.ts(32,5): error TS2554: Expected 1-2 arguments, but got 0. @@ -38,7 +38,7 @@ overload1.ts(34,5): error TS2769: No overload matches this call. declare var x:O.I; var e:string=x.g(new O.A()); // matches overload but bad assignment - ~ + ~~~~~~~~~~~~~~ !!! error TS2322: Type 'C' is not assignable to type 'string'. var y:string=x.f(3); // good y=x.f("nope"); // can't assign number to string diff --git a/tests/baselines/reference/overload1.types b/tests/baselines/reference/overload1.types index 610004a716bc7..e409cf26093d1 100644 --- a/tests/baselines/reference/overload1.types +++ b/tests/baselines/reference/overload1.types @@ -92,8 +92,8 @@ declare var x:O.I; var e:string=x.g(new O.A()); // matches overload but bad assignment >e : string > : ^^^^^^ ->x.g(new O.A()) : O.C -> : ^^^ +>x.g(new O.A()) : string +> : ^^^^^^ >x.g : { (n1: number, n2: number): number; (n: number): string; (a: O.A): O.C; (c: O.C): string; } > : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^ ^^^ >x : O.I diff --git a/tests/baselines/reference/overloadOnConstAsTypeAnnotation.types b/tests/baselines/reference/overloadOnConstAsTypeAnnotation.types index dc28aaafe6b2d..1a84e7a8ee289 100644 --- a/tests/baselines/reference/overloadOnConstAsTypeAnnotation.types +++ b/tests/baselines/reference/overloadOnConstAsTypeAnnotation.types @@ -7,7 +7,7 @@ var f: (x: 'hi') => number = (x: 'hi') => { return 1; }; >x : "hi" > : ^^^^ >(x: 'hi') => { return 1; } : (x: "hi") => number -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : "hi" > : ^^^^ >1 : 1 diff --git a/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.types b/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.types index fd6ec9be0733e..d7c40d501ab3c 100644 --- a/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.types +++ b/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.types @@ -16,8 +16,8 @@ interface I { 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) => { } } : I +> : ^ >x1 : (a: number, cb: (x: "hi") => number) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >(a: number, cb: (x: 'hi') => number) => { } : (a: number, cb: (x: "hi") => number) => void diff --git a/tests/baselines/reference/overloadOnConstNoAnyImplementation.types b/tests/baselines/reference/overloadOnConstNoAnyImplementation.types index dfdb13723b2b8..c3d7009075a5f 100644 --- a/tests/baselines/reference/overloadOnConstNoAnyImplementation.types +++ b/tests/baselines/reference/overloadOnConstNoAnyImplementation.types @@ -83,8 +83,8 @@ var cb: (number) => number = (x: number) => 1; > : ^ ^^^^^^^^^^ >number : any > : ^^^ ->(x: number) => 1 : (x: number) => number -> : ^ ^^ ^^^^^^^^^^^ +>(x: number) => 1 : (number: any) => number +> : ^ ^^^^^^^^^^ >x : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/overloadOnConstNoStringImplementation.types b/tests/baselines/reference/overloadOnConstNoStringImplementation.types index b377838889555..94f063c66272a 100644 --- a/tests/baselines/reference/overloadOnConstNoStringImplementation.types +++ b/tests/baselines/reference/overloadOnConstNoStringImplementation.types @@ -81,8 +81,8 @@ var cb: (number) => number = (x: number) => 1; >cb : (number: any) => number > : ^ ^^^^^^^^^^ >number : any ->(x: number) => 1 : (x: number) => number -> : ^ ^^ ^^^^^^^^^^^ +>(x: number) => 1 : (number: any) => number +> : ^ ^^^^^^^^^^ >x : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.types b/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.types index 70f803ce6b125..477c7696f368e 100644 --- a/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.types +++ b/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.types @@ -39,8 +39,8 @@ module Bugs { var tokens:IToken[]= []; >tokens : IToken[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : IToken[] +> : ^^^^^^^^ tokens.push({ startIndex: 1, type: '', bracket: 3 }); >tokens.push({ startIndex: 1, type: '', bracket: 3 }) : number diff --git a/tests/baselines/reference/overloadingOnConstants1.errors.txt b/tests/baselines/reference/overloadingOnConstants1.errors.txt index 8c3139b94c5ae..d55a985146a59 100644 --- a/tests/baselines/reference/overloadingOnConstants1.errors.txt +++ b/tests/baselines/reference/overloadingOnConstants1.errors.txt @@ -1,7 +1,7 @@ -overloadingOnConstants1.ts(22,5): error TS2741: Property 'bar' is missing in type 'Base' but required in type 'Derived1'. -overloadingOnConstants1.ts(23,5): error TS2741: Property 'biz' is missing in type 'Derived1' but required in type 'Derived3'. -overloadingOnConstants1.ts(24,5): error TS2741: Property 'bar' is missing in type 'Derived2' but required in type 'Derived1'. -overloadingOnConstants1.ts(25,5): error TS2741: Property 'bar' is missing in type 'Derived3' but required in type 'Derived1'. +overloadingOnConstants1.ts(22,30): error TS2741: Property 'bar' is missing in type 'Base' but required in type 'Derived1'. +overloadingOnConstants1.ts(23,36): error TS2741: Property 'biz' is missing in type 'Derived1' but required in type 'Derived3'. +overloadingOnConstants1.ts(24,33): error TS2741: Property 'bar' is missing in type 'Derived2' but required in type 'Derived1'. +overloadingOnConstants1.ts(25,34): error TS2741: Property 'bar' is missing in type 'Derived3' but required in type 'Derived1'. ==== overloadingOnConstants1.ts (4 errors) ==== @@ -27,18 +27,18 @@ overloadingOnConstants1.ts(25,5): error TS2741: Property 'bar' is missing in typ // these are errors var htmlElement2: Derived1 = d2.createElement("yo") - ~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2741: Property 'bar' is missing in type 'Base' but required in type 'Derived1'. !!! related TS2728 overloadingOnConstants1.ts:2:31: 'bar' is declared here. var htmlCanvasElement2: Derived3 = d2.createElement("canvas"); - ~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2741: Property 'biz' is missing in type 'Derived1' but required in type 'Derived3'. !!! related TS2728 overloadingOnConstants1.ts:4:31: 'biz' is declared here. var htmlDivElement2: Derived1 = d2.createElement("div"); - ~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2741: Property 'bar' is missing in type 'Derived2' but required in type 'Derived1'. !!! related TS2728 overloadingOnConstants1.ts:2:31: 'bar' is declared here. var htmlSpanElement2: Derived1 = d2.createElement("span"); - ~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2741: Property 'bar' is missing in type 'Derived3' but required in type 'Derived1'. !!! related TS2728 overloadingOnConstants1.ts:2:31: 'bar' is declared here. \ No newline at end of file diff --git a/tests/baselines/reference/overloadingOnConstants1.types b/tests/baselines/reference/overloadingOnConstants1.types index d5eaa38fcc370..4bbba8116a9f1 100644 --- a/tests/baselines/reference/overloadingOnConstants1.types +++ b/tests/baselines/reference/overloadingOnConstants1.types @@ -122,8 +122,8 @@ var htmlSpanElement: Derived3 = d2.createElement("span"); var htmlElement2: Derived1 = d2.createElement("yo") >htmlElement2 : Derived1 > : ^^^^^^^^ ->d2.createElement("yo") : Base -> : ^^^^ +>d2.createElement("yo") : Derived1 +> : ^^^^^^^^ >d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >d2 : Document2 @@ -136,7 +136,7 @@ var htmlElement2: Derived1 = d2.createElement("yo") var htmlCanvasElement2: Derived3 = d2.createElement("canvas"); >htmlCanvasElement2 : Derived3 > : ^^^^^^^^ ->d2.createElement("canvas") : Derived1 +>d2.createElement("canvas") : Derived3 > : ^^^^^^^^ >d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ @@ -150,7 +150,7 @@ var htmlCanvasElement2: Derived3 = d2.createElement("canvas"); var htmlDivElement2: Derived1 = d2.createElement("div"); >htmlDivElement2 : Derived1 > : ^^^^^^^^ ->d2.createElement("div") : Derived2 +>d2.createElement("div") : Derived1 > : ^^^^^^^^ >d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ @@ -164,7 +164,7 @@ var htmlDivElement2: Derived1 = d2.createElement("div"); var htmlSpanElement2: Derived1 = d2.createElement("span"); >htmlSpanElement2 : Derived1 > : ^^^^^^^^ ->d2.createElement("span") : Derived3 +>d2.createElement("span") : Derived1 > : ^^^^^^^^ >d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/overloadingOnConstants2.types b/tests/baselines/reference/overloadingOnConstants2.types index bcb5e6eb3aae7..e977a4a2035ce 100644 --- a/tests/baselines/reference/overloadingOnConstants2.types +++ b/tests/baselines/reference/overloadingOnConstants2.types @@ -121,7 +121,7 @@ function bar(x: string, items: string[]): C { var d: D = bar("hi", []); // D >d : D > : ^ ->bar("hi", []) : C +>bar("hi", []) : D > : ^ >bar : { (x: "bye", items: string[]): E; (x: string, items: string[]): C; } > : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.types b/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.types index 335f52b8f58e4..9d11e3409b287 100644 --- a/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.types +++ b/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.types @@ -55,8 +55,8 @@ declare function foo(arg: (x: B) => any): number; var result: number = foo(x => new G(x)); // x has type D, new G(x) fails, so first overload is picked. >result : number > : ^^^^^^ ->foo(x => new G(x)) : never -> : ^^^^^ +>foo(x => new G(x)) : number +> : ^^^^^^ >foo : { (arg: (x: D) => number): string; (arg: (x: C) => any): string; (arg: (x: B) => any): number; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x => new G(x) : (x: D) => G @@ -73,8 +73,8 @@ var result: number = foo(x => new G(x)); // x has type D, new G(x) fails, so fir var result2: number = foo(x => new G(x)); // x has type D, new G(x) fails, so first overload is picked. >result2 : number > : ^^^^^^ ->foo(x => new G(x)) : never -> : ^^^^^ +>foo(x => new G(x)) : number +> : ^^^^^^ >foo : { (arg: (x: D) => number): string; (arg: (x: C) => any): string; (arg: (x: B) => any): number; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x => new G(x) : (x: D) => G @@ -93,8 +93,8 @@ var result2: number = foo(x => new G(x)); // x has type D, new G(x) fa var result3: string = foo(x => { // x has type D >result3 : string > : ^^^^^^ ->foo(x => { // x has type D var y: G; // error that D does not satisfy constraint, y is of type G, entire call to foo is an error return y;}) : never -> : ^^^^^ +>foo(x => { // x has type D var y: G; // error that D does not satisfy constraint, y is of type G, entire call to foo is an error return y;}) : string +> : ^^^^^^ >foo : { (arg: (x: D) => number): string; (arg: (x: C) => any): string; (arg: (x: B) => any): number; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x => { // x has type D var y: G; // error that D does not satisfy constraint, y is of type G, entire call to foo is an error return y;} : (x: D) => G diff --git a/tests/baselines/reference/parameterInitializersForwardReferencing1.types b/tests/baselines/reference/parameterInitializersForwardReferencing1.types index f18d9ae0f4903..3f662bb58b6a2 100644 --- a/tests/baselines/reference/parameterInitializersForwardReferencing1.types +++ b/tests/baselines/reference/parameterInitializersForwardReferencing1.types @@ -4,8 +4,8 @@ let foo: string = ""; >foo : string > : ^^^^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ function f1 (bar = foo) { // unexpected compiler error; works at runtime >f1 : (bar?: number) => number @@ -18,8 +18,8 @@ function f1 (bar = foo) { // unexpected compiler error; works at runtime var foo: number = 2; >foo : number > : ^^^^^^ ->2 : 2 -> : ^ +>2 : number +> : ^^^^^^ return bar; // returns 1 >bar : number @@ -43,8 +43,8 @@ function f2 (bar = (baz = foo) => baz) { // unexpected compiler error; works at var foo: number = 2; >foo : number > : ^^^^^^ ->2 : 2 -> : ^ +>2 : number +> : ^^^^^^ return bar(); // returns 1 >bar() : number @@ -122,8 +122,8 @@ function f7({[foo]: bar}: any[]) { let foo: number = 2; >foo : number > : ^^^^^^ ->2 : 2 -> : ^ +>2 : number +> : ^^^^^^ } class Foo { diff --git a/tests/baselines/reference/parameterInitializersForwardReferencing1_es6.types b/tests/baselines/reference/parameterInitializersForwardReferencing1_es6.types index 6f755605b1fd8..d56f06c020e8a 100644 --- a/tests/baselines/reference/parameterInitializersForwardReferencing1_es6.types +++ b/tests/baselines/reference/parameterInitializersForwardReferencing1_es6.types @@ -4,8 +4,8 @@ let foo: string = ""; >foo : string > : ^^^^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ function f1 (bar = foo) { // unexpected compiler error; works at runtime >f1 : (bar?: string) => string @@ -18,8 +18,8 @@ function f1 (bar = foo) { // unexpected compiler error; works at runtime var foo: number = 2; >foo : number > : ^^^^^^ ->2 : 2 -> : ^ +>2 : number +> : ^^^^^^ return bar; // returns 1 >bar : string @@ -43,8 +43,8 @@ function f2 (bar = (baz = foo) => baz) { // unexpected compiler error; works at var foo: number = 2; >foo : number > : ^^^^^^ ->2 : 2 -> : ^ +>2 : number +> : ^^^^^^ return bar(); // returns 1 >bar() : string @@ -122,8 +122,8 @@ function f7({[foo]: bar}: any[]) { let foo: number = 2; >foo : number > : ^^^^^^ ->2 : 2 -> : ^ +>2 : number +> : ^^^^^^ } class Foo { diff --git a/tests/baselines/reference/parenthesizedContexualTyping1.types b/tests/baselines/reference/parenthesizedContexualTyping1.types index 4dbdd3324df21..4b1e962f83974 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping1.types +++ b/tests/baselines/reference/parenthesizedContexualTyping1.types @@ -423,7 +423,7 @@ var lambda1: (x: number) => number = x => x; >x : number > : ^^^^^^ >x => x : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ >x : number @@ -435,7 +435,7 @@ var lambda2: (x: number) => number = (x => x); >x : number > : ^^^^^^ >(x => x) : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x => x : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -458,8 +458,8 @@ type ObjType = { x: (p: number) => string; y: (p: string) => number }; var obj1: ObjType = { x: x => (x, undefined), y: y => (y, undefined) }; >obj1 : ObjType > : ^^^^^^^ ->{ x: x => (x, undefined), y: y => (y, undefined) } : { x: (x: number) => any; y: (y: string) => any; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +>{ x: x => (x, undefined), y: y => (y, undefined) } : ObjType +> : ^^^^^^^ >x : (x: number) => any > : ^ ^^^^^^^^^^^^^^^^ >x => (x, undefined) : (x: number) => any @@ -492,8 +492,8 @@ var obj1: ObjType = { x: x => (x, undefined), y: y => (y, undefined) }; var obj2: ObjType = ({ x: x => (x, undefined), y: y => (y, undefined) }); >obj2 : ObjType > : ^^^^^^^ ->({ x: x => (x, undefined), y: y => (y, undefined) }) : { x: (x: number) => any; y: (y: string) => any; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +>({ x: x => (x, undefined), y: y => (y, undefined) }) : ObjType +> : ^^^^^^^ >{ x: x => (x, undefined), y: y => (y, undefined) } : { x: (x: number) => any; y: (y: string) => any; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >x : (x: number) => any diff --git a/tests/baselines/reference/parenthesizedContexualTyping2.types b/tests/baselines/reference/parenthesizedContexualTyping2.types index 922ea10a8a21a..a0104ee96c6bd 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping2.types +++ b/tests/baselines/reference/parenthesizedContexualTyping2.types @@ -530,8 +530,8 @@ var l = fun(((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) var lambda1: FuncType = x => { x(undefined); return x; }; >lambda1 : FuncType > : ^^^^^^^^ ->x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +>x => { x(undefined); return x; } : FuncType +> : ^^^^^^^^ >x : (p: T) => T > : ^ ^^ ^^ ^^^^^ >x(undefined) : number @@ -546,8 +546,8 @@ var lambda1: FuncType = x => { x(undefined); return x; }; var lambda2: FuncType = (x => { x(undefined); return x; }); >lambda2 : FuncType > : ^^^^^^^^ ->(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +>(x => { x(undefined); return x; }) : FuncType +> : ^^^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T > : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ >x : (p: T) => T @@ -576,8 +576,8 @@ type ObjType = { x: (p: number) => string; y: (p: string) => number }; var obj1: ObjType = { x: x => (x, undefined), y: y => (y, undefined) }; >obj1 : ObjType > : ^^^^^^^ ->{ x: x => (x, undefined), y: y => (y, undefined) } : { x: (x: number) => any; y: (y: string) => any; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +>{ x: x => (x, undefined), y: y => (y, undefined) } : ObjType +> : ^^^^^^^ >x : (x: number) => any > : ^ ^^^^^^^^^^^^^^^^ >x => (x, undefined) : (x: number) => any @@ -610,8 +610,8 @@ var obj1: ObjType = { x: x => (x, undefined), y: y => (y, undefined) }; var obj2: ObjType = ({ x: x => (x, undefined), y: y => (y, undefined) }); >obj2 : ObjType > : ^^^^^^^ ->({ x: x => (x, undefined), y: y => (y, undefined) }) : { x: (x: number) => any; y: (y: string) => any; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +>({ x: x => (x, undefined), y: y => (y, undefined) }) : ObjType +> : ^^^^^^^ >{ x: x => (x, undefined), y: y => (y, undefined) } : { x: (x: number) => any; y: (y: string) => any; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >x : (x: number) => any diff --git a/tests/baselines/reference/parserES5ForOfStatement7.types b/tests/baselines/reference/parserES5ForOfStatement7.types index 4c595e321c500..f1e8e59d27d84 100644 --- a/tests/baselines/reference/parserES5ForOfStatement7.types +++ b/tests/baselines/reference/parserES5ForOfStatement7.types @@ -4,12 +4,12 @@ for (var a: number = 1, b: string = "" of X) { >a : any > : ^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ >b : any > : ^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ >X : any > : ^^^ } diff --git a/tests/baselines/reference/parserErrorRecovery_IncompleteMemberVariable1.types b/tests/baselines/reference/parserErrorRecovery_IncompleteMemberVariable1.types index 3450d8be6e31b..33c1d45b51b4d 100644 --- a/tests/baselines/reference/parserErrorRecovery_IncompleteMemberVariable1.types +++ b/tests/baselines/reference/parserErrorRecovery_IncompleteMemberVariable1.types @@ -92,8 +92,8 @@ module Shapes { var p: IPoint = new Shapes.Point(3, 4); >p : IPoint > : ^^^^^^ ->new Shapes.Point(3, 4) : Shapes.Point -> : ^^^^^^^^^^^^ +>new Shapes.Point(3, 4) : IPoint +> : ^^^^^^ >Shapes.Point : typeof Shapes.Point > : ^^^^^^^^^^^^^^^^^^^ >Shapes : typeof Shapes diff --git a/tests/baselines/reference/parserErrorRecovery_IncompleteMemberVariable2.types b/tests/baselines/reference/parserErrorRecovery_IncompleteMemberVariable2.types index 615d9357f26ea..3a7fa8aa17e83 100644 --- a/tests/baselines/reference/parserErrorRecovery_IncompleteMemberVariable2.types +++ b/tests/baselines/reference/parserErrorRecovery_IncompleteMemberVariable2.types @@ -94,8 +94,8 @@ module Shapes { var p: IPoint = new Shapes.Point(3, 4); >p : IPoint > : ^^^^^^ ->new Shapes.Point(3, 4) : Shapes.Point -> : ^^^^^^^^^^^^ +>new Shapes.Point(3, 4) : IPoint +> : ^^^^^^ >Shapes.Point : typeof Shapes.Point > : ^^^^^^^^^^^^^^^^^^^ >Shapes : typeof Shapes diff --git a/tests/baselines/reference/parserForInStatement7.types b/tests/baselines/reference/parserForInStatement7.types index 400efabee239d..2e07b9f42b442 100644 --- a/tests/baselines/reference/parserForInStatement7.types +++ b/tests/baselines/reference/parserForInStatement7.types @@ -4,12 +4,12 @@ for (var a: number = 1, b: string = "" in X) { >a : string > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ >b : string > : ^^^^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ >X : any > : ^^^ } diff --git a/tests/baselines/reference/parserForOfStatement7.types b/tests/baselines/reference/parserForOfStatement7.types index 05edac7020c20..026caa4a96e9c 100644 --- a/tests/baselines/reference/parserForOfStatement7.types +++ b/tests/baselines/reference/parserForOfStatement7.types @@ -4,12 +4,12 @@ for (var a: number = 1, b: string = "" of X) { >a : any > : ^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ >b : any > : ^^^ ->"" : "" -> : ^^ +>"" : string +> : ^^^^^^ >X : any > : ^^^ } diff --git a/tests/baselines/reference/parserGenericsInVariableDeclaration1.types b/tests/baselines/reference/parserGenericsInVariableDeclaration1.types index da603b981ca25..7f371faa99b42 100644 --- a/tests/baselines/reference/parserGenericsInVariableDeclaration1.types +++ b/tests/baselines/reference/parserGenericsInVariableDeclaration1.types @@ -4,36 +4,36 @@ var v : Foo = 1; >v : Foo > : ^^^^^^ ->1 : 1 -> : ^ +>1 : Foo +> : ^^^^^^ var v : Foo= 1; >v : Foo > : ^^^^^^ ->1 : 1 -> : ^ +>1 : Foo +> : ^^^^^^ var v : Foo> = 1; >v : Foo > : ^^^^^^ ->1 : 1 -> : ^ +>1 : Foo> +> : ^^^^^^^^^^^ var v : Foo>= 1; >v : Foo > : ^^^^^^ ->1 : 1 -> : ^ +>1 : Foo> +> : ^^^^^^^^^^^ var v : Foo>> = 1; >v : Foo > : ^^^^^^ ->1 : 1 -> : ^ +>1 : Foo>> +> : ^^^^^^^^^^^^^^^^^ var v : Foo>>= 1; >v : Foo > : ^^^^^^ ->1 : 1 -> : ^ +>1 : Foo>> +> : ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/parserModule1.types b/tests/baselines/reference/parserModule1.types index d4f0a3e9d931c..e9628e21d6dbc 100644 --- a/tests/baselines/reference/parserModule1.types +++ b/tests/baselines/reference/parserModule1.types @@ -26,8 +26,8 @@ export var analysisPass: number = 0; >analysisPass : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ export function Alert(output: string) { >Alert : (output: string) => void diff --git a/tests/baselines/reference/parserObjectCreation1.errors.txt b/tests/baselines/reference/parserObjectCreation1.errors.txt index f86c2264114bb..65fafc8da0add 100644 --- a/tests/baselines/reference/parserObjectCreation1.errors.txt +++ b/tests/baselines/reference/parserObjectCreation1.errors.txt @@ -1,9 +1,9 @@ -parserObjectCreation1.ts(1,5): error TS2322: Type 'number[][]' is not assignable to type 'number[]'. +parserObjectCreation1.ts(1,27): error TS2322: Type 'number[][]' is not assignable to type 'number[]'. Type 'number[]' is not assignable to type 'number'. ==== parserObjectCreation1.ts (1 errors) ==== var autoToken: number[] = new Array(1); - ~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'number[][]' is not assignable to type 'number[]'. !!! error TS2322: Type 'number[]' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/parserObjectCreation1.types b/tests/baselines/reference/parserObjectCreation1.types index c092e539cb868..038edc2d84daa 100644 --- a/tests/baselines/reference/parserObjectCreation1.types +++ b/tests/baselines/reference/parserObjectCreation1.types @@ -4,8 +4,8 @@ var autoToken: number[] = new Array(1); >autoToken : number[] > : ^^^^^^^^ ->new Array(1) : number[][] -> : ^^^^^^^^^^ +>new Array(1) : number[] +> : ^^^^^^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/parserRealSource1.types b/tests/baselines/reference/parserRealSource1.types index dd6543ab65839..bfe71f3900057 100644 --- a/tests/baselines/reference/parserRealSource1.types +++ b/tests/baselines/reference/parserRealSource1.types @@ -35,8 +35,8 @@ module TypeScript { export var analysisPass: number = 0; >analysisPass : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ export function Alert(output: string) { >Alert : (output: string) => void diff --git a/tests/baselines/reference/parserRealSource14.types b/tests/baselines/reference/parserRealSource14.types index 6619d911f4142..8bbd31fa97cd7 100644 --- a/tests/baselines/reference/parserRealSource14.types +++ b/tests/baselines/reference/parserRealSource14.types @@ -7644,12 +7644,12 @@ module TypeScript { > : ^^^^^^^ >TypeScript : any > : ^^^ ->walker.state : any -> : ^^^ +>walker.state : AstPath +> : ^^^^^^^ >walker : TypeScript.IAstWalker > : ^^^^^^^^^^^^^^^^^^^^^ ->state : any -> : ^^^ +>state : AstPath +> : ^^^^^^^ path.push(cur); >path.push(cur) : void @@ -7700,12 +7700,12 @@ module TypeScript { > : ^^^^^^^ >TypeScript : any > : ^^^ ->walker.state : any -> : ^^^ +>walker.state : AstPath +> : ^^^^^^^ >walker : TypeScript.IAstWalker > : ^^^^^^^^^^^^^^^^^^^^^ ->state : any -> : ^^^ +>state : AstPath +> : ^^^^^^^ path.pop(); >path.pop() : TypeScript.AST diff --git a/tests/baselines/reference/parserRealSource2.types b/tests/baselines/reference/parserRealSource2.types index beb7a8348569c..989afac06555d 100644 --- a/tests/baselines/reference/parserRealSource2.types +++ b/tests/baselines/reference/parserRealSource2.types @@ -1857,22 +1857,22 @@ module TypeScript { export var codeGenTarget: CodeGenTarget = CodeGenTarget.ES3; >codeGenTarget : CodeGenTarget > : ^^^^^^^^^^^^^ ->CodeGenTarget.ES3 : CodeGenTarget.ES3 -> : ^^^^^^^^^^^^^^^^^ +>CodeGenTarget.ES3 : CodeGenTarget +> : ^^^^^^^^^^^^^ >CodeGenTarget : typeof CodeGenTarget > : ^^^^^^^^^^^^^^^^^^^^ ->ES3 : CodeGenTarget.ES3 -> : ^^^^^^^^^^^^^^^^^ +>ES3 : CodeGenTarget +> : ^^^^^^^^^^^^^ export var moduleGenTarget: ModuleGenTarget = ModuleGenTarget.Synchronous; >moduleGenTarget : ModuleGenTarget > : ^^^^^^^^^^^^^^^ ->ModuleGenTarget.Synchronous : ModuleGenTarget.Synchronous -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>ModuleGenTarget.Synchronous : ModuleGenTarget +> : ^^^^^^^^^^^^^^^ >ModuleGenTarget : typeof ModuleGenTarget > : ^^^^^^^^^^^^^^^^^^^^^^ ->Synchronous : ModuleGenTarget.Synchronous -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>Synchronous : ModuleGenTarget +> : ^^^^^^^^^^^^^^^ export var optimizeModuleCodeGen = true; >optimizeModuleCodeGen : boolean diff --git a/tests/baselines/reference/parserRealSource4.types b/tests/baselines/reference/parserRealSource4.types index 639d1e2f0595e..fd67507ee9eae 100644 --- a/tests/baselines/reference/parserRealSource4.types +++ b/tests/baselines/reference/parserRealSource4.types @@ -177,8 +177,8 @@ module TypeScript { var result: string[] = []; >result : string[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : string[] +> : ^^^^^^^^ for (var k in this.table) { >k : string @@ -1239,8 +1239,8 @@ module TypeScript { for (var i: number = 0; i < this.size; i++) { >i : number > : ^^^^^^ ->0 : 0 -> : ^ +>0 : number +> : ^^^^^^ >i < this.size : boolean > : ^^^^^^^ >i : number diff --git a/tests/baselines/reference/parserRealSource6.types b/tests/baselines/reference/parserRealSource6.types index 0ca3b7cf60791..d5c5e58180c02 100644 --- a/tests/baselines/reference/parserRealSource6.types +++ b/tests/baselines/reference/parserRealSource6.types @@ -352,12 +352,12 @@ module TypeScript { var memScope: MemberScopeContext = walker.state; >memScope : MemberScopeContext > : ^^^^^^^^^^^^^^^^^^ ->walker.state : any -> : ^^^ +>walker.state : MemberScopeContext +> : ^^^^^^^^^^^^^^^^^^ >walker : IAstWalker > : ^^^^^^^^^^ ->state : any -> : ^^^ +>state : MemberScopeContext +> : ^^^^^^^^^^^^^^^^^^ if (hasFlag(ast.flags, memScope.matchFlag) && ((memScope.pos < 0) || (memScope.pos == ast.limChar))) { >hasFlag(ast.flags, memScope.matchFlag) && ((memScope.pos < 0) || (memScope.pos == ast.limChar)) : boolean @@ -565,8 +565,8 @@ module TypeScript { var chain: ScopeChain = new ScopeChain(container, context.scopeChain, builder); >chain : ScopeChain > : ^^^^^^^^^^ ->new ScopeChain(container, context.scopeChain, builder) : any -> : ^^^ +>new ScopeChain(container, context.scopeChain, builder) : ScopeChain +> : ^^^^^^^^^^ >ScopeChain : any > : ^^^ >container : Symbol @@ -669,12 +669,12 @@ module TypeScript { var context: EnclosingScopeContext = walker.state; >context : EnclosingScopeContext > : ^^^^^^^^^^^^^^^^^^^^^ ->walker.state : any -> : ^^^ +>walker.state : EnclosingScopeContext +> : ^^^^^^^^^^^^^^^^^^^^^ >walker : IAstWalker > : ^^^^^^^^^^ ->state : any -> : ^^^ +>state : EnclosingScopeContext +> : ^^^^^^^^^^^^^^^^^^^^^ var minChar = ast.minChar; >minChar : any diff --git a/tests/baselines/reference/parserRealSource7.types b/tests/baselines/reference/parserRealSource7.types index 8b2d40b9c40ca..1d22a5f9e988a 100644 --- a/tests/baselines/reference/parserRealSource7.types +++ b/tests/baselines/reference/parserRealSource7.types @@ -5805,16 +5805,16 @@ module TypeScript { var containerScope: SymbolScope = context.scopeChain.scope; >containerScope : SymbolScope > : ^^^^^^^^^^^ ->context.scopeChain.scope : any -> : ^^^ +>context.scopeChain.scope : SymbolScope +> : ^^^^^^^^^^^ >context.scopeChain : any > : ^^^ >context : TypeCollectionContext > : ^^^^^^^^^^^^^^^^^^^^^ >scopeChain : any > : ^^^ ->scope : any -> : ^^^ +>scope : SymbolScope +> : ^^^^^^^^^^^ var isGlobal = containerSym == context.checker.gloMod; >isGlobal : boolean @@ -7466,12 +7466,12 @@ module TypeScript { var context: TypeCollectionContext = walker.state; >context : TypeCollectionContext > : ^^^^^^^^^^^^^^^^^^^^^ ->walker.state : any -> : ^^^ +>walker.state : TypeCollectionContext +> : ^^^^^^^^^^^^^^^^^^^^^ >walker : IAstWalker > : ^^^^^^^^^^ ->state : any -> : ^^^ +>state : TypeCollectionContext +> : ^^^^^^^^^^^^^^^^^^^^^ var go = false; >go : boolean @@ -7907,12 +7907,12 @@ module TypeScript { var context: TypeCollectionContext = walker.state; >context : TypeCollectionContext > : ^^^^^^^^^^^^^^^^^^^^^ ->walker.state : any -> : ^^^ +>walker.state : TypeCollectionContext +> : ^^^^^^^^^^^^^^^^^^^^^ >walker : IAstWalker > : ^^^^^^^^^^ ->state : any -> : ^^^ +>state : TypeCollectionContext +> : ^^^^^^^^^^^^^^^^^^^^^ if (ast.nodeType == NodeType.ModuleDeclaration) { >ast.nodeType == NodeType.ModuleDeclaration : boolean diff --git a/tests/baselines/reference/parserRealSource8.types b/tests/baselines/reference/parserRealSource8.types index 011cf47ae9f94..56fdb2aedc197 100644 --- a/tests/baselines/reference/parserRealSource8.types +++ b/tests/baselines/reference/parserRealSource8.types @@ -1949,16 +1949,16 @@ module TypeScript { var outerFnc: FuncDecl = context.scopeChain.fnc; >outerFnc : FuncDecl > : ^^^^^^^^ ->context.scopeChain.fnc : any -> : ^^^ +>context.scopeChain.fnc : FuncDecl +> : ^^^^^^^^ >context.scopeChain : ScopeChain > : ^^^^^^^^^^ >context : AssignScopeContext > : ^^^^^^^^^^^^^^^^^^ >scopeChain : ScopeChain > : ^^^^^^^^^^ ->fnc : any -> : ^^^ +>fnc : FuncDecl +> : ^^^^^^^^ var nameText = funcDecl.name ? funcDecl.name.actualText : null; >nameText : any @@ -3117,8 +3117,8 @@ module TypeScript { var paramSym: ParameterSymbol = signature.parameters[i]; >paramSym : ParameterSymbol > : ^^^^^^^^^^^^^^^ ->signature.parameters[i] : any -> : ^^^ +>signature.parameters[i] : ParameterSymbol +> : ^^^^^^^^^^^^^^^ >signature.parameters : any > : ^^^ >signature : any @@ -3433,12 +3433,12 @@ module TypeScript { var context:AssignScopeContext = walker.state; >context : AssignScopeContext > : ^^^^^^^^^^^^^^^^^^ ->walker.state : any -> : ^^^ +>walker.state : AssignScopeContext +> : ^^^^^^^^^^^^^^^^^^ >walker : IAstWalker > : ^^^^^^^^^^ ->state : any -> : ^^^ +>state : AssignScopeContext +> : ^^^^^^^^^^^^^^^^^^ var go = true; >go : boolean @@ -3709,12 +3709,12 @@ module TypeScript { var context:AssignScopeContext = walker.state; >context : AssignScopeContext > : ^^^^^^^^^^^^^^^^^^ ->walker.state : any -> : ^^^ +>walker.state : AssignScopeContext +> : ^^^^^^^^^^^^^^^^^^ >walker : IAstWalker > : ^^^^^^^^^^ ->state : any -> : ^^^ +>state : AssignScopeContext +> : ^^^^^^^^^^^^^^^^^^ var go = true; >go : boolean diff --git a/tests/baselines/reference/parserharness.types b/tests/baselines/reference/parserharness.types index 0326d8453ba19..0ea9bf4392acb 100644 --- a/tests/baselines/reference/parserharness.types +++ b/tests/baselines/reference/parserharness.types @@ -359,8 +359,8 @@ module Harness { export var bugIds: string[] = []; >bugIds : string[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : string[] +> : ^^^^^^^^ export var throwAssertError = (error: Error) => { >throwAssertError : (error: Error) => never @@ -1572,8 +1572,8 @@ module Harness { var loggers: ILogger[] = []; >loggers : ILogger[] > : ^^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : ILogger[] +> : ^^^^^^^^^ export function registerLogger(logger: ILogger) { >registerLogger : (logger: ILogger) => void @@ -2471,8 +2471,8 @@ module Harness { var metadata: IScenarioMetadata = { id: undefined, desc: this.description, pass: false, bugs: assert.bugIds }; >metadata : IScenarioMetadata > : ^^^^^^^^^^^^^^^^^ ->{ id: undefined, desc: this.description, pass: false, bugs: assert.bugIds } : { id: undefined; desc: any; pass: false; bugs: any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ id: undefined, desc: this.description, pass: false, bugs: assert.bugIds } : IScenarioMetadata +> : ^^^^^^^^^^^^^^^^^ >id : undefined > : ^^^^^^^^^ >undefined : undefined @@ -2707,8 +2707,8 @@ module Harness { var metadata: IScenarioMetadata = { id: undefined, desc: this.description, pass: this.passed, bugs: assert.bugIds }; >metadata : IScenarioMetadata > : ^^^^^^^^^^^^^^^^^ ->{ id: undefined, desc: this.description, pass: this.passed, bugs: assert.bugIds } : { id: undefined; desc: string; pass: any; bugs: any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ id: undefined, desc: this.description, pass: this.passed, bugs: assert.bugIds } : IScenarioMetadata +> : ^^^^^^^^^^^^^^^^^ >id : undefined > : ^^^^^^^^^ >undefined : undefined @@ -3669,8 +3669,8 @@ module Harness { export var benchmarks: { new (): Benchmark; }[] = []; >benchmarks : (new () => Benchmark)[] > : ^^^^^^^^^^^ ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : (new () => Benchmark)[] +> : ^^^^^^^^^^^ ^^^ var timeFunction: ( >timeFunction : (benchmark: Benchmark, description?: string, name?: string, f?: (bench?: { (): void; }) => void) => void @@ -4457,8 +4457,8 @@ module Harness { > : ^^^^^^ >file : WriterAggregator > : ^^^^^^^^^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : { filename: string; file: WriterAggregator; }[] +> : ^^^^^^^^^^^^ ^^^^^^^^ ^^^^^ for (var p in this.fileCollection) { >p : string @@ -4591,8 +4591,8 @@ module Harness { var libFolder: string = global['WScript'] ? TypeScript.filePath(global['WScript'].ScriptFullName) : (__dirname + '/'); >libFolder : string > : ^^^^^^ ->global['WScript'] ? TypeScript.filePath(global['WScript'].ScriptFullName) : (__dirname + '/') : any -> : ^^^ +>global['WScript'] ? TypeScript.filePath(global['WScript'].ScriptFullName) : (__dirname + '/') : string +> : ^^^^^^ >global['WScript'] : any > : ^^^ >global : any @@ -6162,8 +6162,8 @@ module Harness { var matchingIdentifiers: Type[] = []; >matchingIdentifiers : Type[] > : ^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : Type[] +> : ^^^^^^ if (!usePull) { >!usePull : boolean @@ -9232,8 +9232,8 @@ module Harness { > : ^^^^^^^^^^^^^^^^^^^ >TypeScript : any > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : TypeScript.Script[] +> : ^^^^^^^^^^^^^^^^^^^ reset(); >reset() : void @@ -9783,8 +9783,8 @@ module Harness { var files: TestUnitData[] = []; >files : TestUnitData[] > : ^^^^^^^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : TestUnitData[] +> : ^^^^^^^^^^^^^^ var lines = splitContentByNewlines(code); >lines : string[] @@ -9816,8 +9816,8 @@ module Harness { > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >TypeScript : any > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : TypeScript.IFileReference[] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ for (var i = 0; i < lines.length; i++) { >i : number @@ -12205,8 +12205,8 @@ module Harness { > : ^^^^^^^^^^^^^^^^^^^ >Services : any > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : Services.TextEdit[] +> : ^^^^^^^^^^^^^^^^^^^ function mapEdits(edits: Services.TextEdit[]): { edit: Services.TextEdit; index: number; }[] { >mapEdits : (edits: Services.TextEdit[]) => { edit: Services.TextEdit; index: number; }[] @@ -12831,16 +12831,16 @@ module Harness { var dangerNames: any = ['Array']; >dangerNames : any > : ^^^ ->['Array'] : string[] -> : ^^^^^^^^ +>['Array'] : any +> : ^^^ >'Array' : "Array" > : ^^^^^^^ var globalBackup: any = {}; >globalBackup : any > : ^^^ ->{} : {} -> : ^^ +>{} : any +> : ^^^ var n: string = null; >n : string diff --git a/tests/baselines/reference/plusOperatorWithAnyOtherType.types b/tests/baselines/reference/plusOperatorWithAnyOtherType.types index 1f19877f8bc0f..ffdbee189b60a 100644 --- a/tests/baselines/reference/plusOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/plusOperatorWithAnyOtherType.types @@ -14,8 +14,8 @@ var ANY1; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/primaryExpressionMods.types b/tests/baselines/reference/primaryExpressionMods.types index 11cc211066ef1..c75730e555324 100644 --- a/tests/baselines/reference/primaryExpressionMods.types +++ b/tests/baselines/reference/primaryExpressionMods.types @@ -26,8 +26,8 @@ var p: M.P; // Used as ModuleName var m: M = M; // Used as TypeName and PrimaryExpression (error on TypeName) >m : M > : ^ ->M : typeof M -> : ^^^^^^^^ +>M : M +> : ^ var m2: typeof M = M; // Used as PrimaryExpression in TypeQuery >m2 : typeof M diff --git a/tests/baselines/reference/primitiveMembers.types b/tests/baselines/reference/primitiveMembers.types index bd2f700c7279d..b900b70e9903e 100644 --- a/tests/baselines/reference/primitiveMembers.types +++ b/tests/baselines/reference/primitiveMembers.types @@ -70,14 +70,14 @@ N = n; // should work var o: Object = {} >o : Object > : ^^^^^^ ->{} : {} -> : ^^ +>{} : Object +> : ^^^^^^ var f: Function = (x: string) => x.length; >f : Function > : ^^^^^^^^ ->(x: string) => x.length : (x: string) => number -> : ^ ^^ ^^^^^^^^^^^ +>(x: string) => x.length : Function +> : ^^^^^^^^ >x : string > : ^^^^^^ >x.length : number @@ -96,20 +96,20 @@ var r2: RegExp = /./g; var n2: Number = 34; >n2 : Number > : ^^^^^^ ->34 : 34 -> : ^^ +>34 : Number +> : ^^^^^^ var s: String = "yo"; >s : String > : ^^^^^^ ->"yo" : "yo" -> : ^^^^ +>"yo" : String +> : ^^^^^^ var b: Boolean = true; >b : Boolean > : ^^^^^^^ ->true : true -> : ^^^^ +>true : Boolean +> : ^^^^^^^ var n3 = 5 || {}; >n3 : {} diff --git a/tests/baselines/reference/privateNameAccessorsAccess.types b/tests/baselines/reference/privateNameAccessorsAccess.types index 7bc0fa7eb962f..df4598fdf7af6 100644 --- a/tests/baselines/reference/privateNameAccessorsAccess.types +++ b/tests/baselines/reference/privateNameAccessorsAccess.types @@ -35,8 +35,8 @@ class A2 { let a: A2 = this; >a : A2 > : ^^ ->this : this -> : ^^^^ +>this : A2 +> : ^^ a.#prop; >a.#prop : string diff --git a/tests/baselines/reference/privateNameMethodAccess.types b/tests/baselines/reference/privateNameMethodAccess.types index 7c0d500b508b3..76386d875afc2 100644 --- a/tests/baselines/reference/privateNameMethodAccess.types +++ b/tests/baselines/reference/privateNameMethodAccess.types @@ -29,8 +29,8 @@ class A2 { let a: A2 = this; >a : A2 > : ^^ ->this : this -> : ^^^^ +>this : A2 +> : ^^ a.#method(); >a.#method() : string diff --git a/tests/baselines/reference/privateNamesAndkeyof.types b/tests/baselines/reference/privateNamesAndkeyof.types index 5622fc7df30aa..b94b849d979e8 100644 --- a/tests/baselines/reference/privateNamesAndkeyof.types +++ b/tests/baselines/reference/privateNamesAndkeyof.types @@ -44,8 +44,8 @@ class A { let k: keyof A = "bar"; // OK >k : keyof A > : ^^^^^^^ ->"bar" : "bar" -> : ^^^^^ +>"bar" : keyof A +> : ^^^^^^^ k = "baz"; // OK >k = "baz" : "baz" diff --git a/tests/baselines/reference/propertyAccess.types b/tests/baselines/reference/propertyAccess.types index 4d8b083563337..31245120f4e5d 100644 --- a/tests/baselines/reference/propertyAccess.types +++ b/tests/baselines/reference/propertyAccess.types @@ -39,8 +39,8 @@ var numIndex: { [n: number]: string } = { 3: 'three', 'three': 'three' }; > : ^^^^^^^^^^^^^^^^^^^^^^^^ >n : number > : ^^^^^^ ->{ 3: 'three', 'three': 'three' } : { 3: string; three: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 3: 'three', 'three': 'three' } : { [n: number]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >3 : string > : ^^^^^^ >'three' : "three" @@ -55,8 +55,8 @@ var strIndex: { [n: string]: Compass } = { 'N': Compass.North, 'E': Compass.East > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >n : string > : ^^^^^^ ->{ 'N': Compass.North, 'E': Compass.East } : { N: Compass.North; E: Compass.East; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ 'N': Compass.North, 'E': Compass.East } : { [n: string]: Compass; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >'N' : Compass.North > : ^^^^^^^^^^^^^ >Compass.North : Compass.North @@ -146,8 +146,8 @@ var obj = { var anyVar: any = {}; >anyVar : any > : ^^^ ->{} : {} -> : ^^ +>{} : any +> : ^^^ var stringOrNumber: string | number; >stringOrNumber : string | number diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints4.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints4.types index 001aa437a7eaf..9b44c71b46ae7 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints4.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints4.types @@ -107,8 +107,8 @@ var a: { var r3: string = a().notHere(); >r3 : string > : ^^^^^^ ->a().notHere() : any -> : ^^^ +>a().notHere() : string +> : ^^^^^^ >a().notHere : any > : ^^^ >a() : Date @@ -121,8 +121,8 @@ var r3: string = a().notHere(); var r3b: string = a()['notHere'](); >r3b : string > : ^^^^^^ ->a()['notHere']() : any -> : ^^^ +>a()['notHere']() : string +> : ^^^^^^ >a()['notHere'] : any > : ^^^ >a() : Date diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints5.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints5.types index 57655018bed08..9958c8b17a87e 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints5.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints5.types @@ -145,8 +145,8 @@ var a: { var r3: string = a().notHere(); >r3 : string > : ^^^^^^ ->a().notHere() : any -> : ^^^ +>a().notHere() : string +> : ^^^^^^ >a().notHere : any > : ^^^ >a() : A diff --git a/tests/baselines/reference/propertyParameterWithQuestionMark.errors.txt b/tests/baselines/reference/propertyParameterWithQuestionMark.errors.txt index fb4e795e5ff62..44d2ac7ead66c 100644 --- a/tests/baselines/reference/propertyParameterWithQuestionMark.errors.txt +++ b/tests/baselines/reference/propertyParameterWithQuestionMark.errors.txt @@ -1,4 +1,4 @@ -propertyParameterWithQuestionMark.ts(9,5): error TS2322: Type 'C' is not assignable to type '{ x: any; }'. +propertyParameterWithQuestionMark.ts(9,17): error TS2322: Type 'C' is not assignable to type '{ x: any; }'. Property 'x' is optional in type 'C' but required in type '{ x: any; }'. @@ -12,6 +12,6 @@ propertyParameterWithQuestionMark.ts(9,5): error TS2322: Type 'C' is not assigna var v2: { x? } v = v2; // Should succeed var v3: { x } = new C; // Should fail - ~~ + ~~~~~ !!! error TS2322: Type 'C' is not assignable to type '{ x: any; }'. !!! error TS2322: Property 'x' is optional in type 'C' but required in type '{ x: any; }'. \ No newline at end of file diff --git a/tests/baselines/reference/propertyParameterWithQuestionMark.types b/tests/baselines/reference/propertyParameterWithQuestionMark.types index 7d3d223d1ce6c..3ff5cef2172fd 100644 --- a/tests/baselines/reference/propertyParameterWithQuestionMark.types +++ b/tests/baselines/reference/propertyParameterWithQuestionMark.types @@ -14,8 +14,8 @@ class C { var v: C = {}; // Should succeed >v : C > : ^ ->{} : {} -> : ^^ +>{} : C +> : ^ var v2: { x? } >v2 : { x?: any; } @@ -36,8 +36,8 @@ var v3: { x } = new C; // Should fail > : ^^^^^^^^^^^ >x : any > : ^^^ ->new C : C -> : ^ +>new C : { x: any; } +> : ^^^^^^^^^^^ >C : typeof C > : ^^^^^^^^ diff --git a/tests/baselines/reference/qualify.errors.txt b/tests/baselines/reference/qualify.errors.txt index e1e3b3218758f..fee9f30568a8f 100644 --- a/tests/baselines/reference/qualify.errors.txt +++ b/tests/baselines/reference/qualify.errors.txt @@ -1,13 +1,13 @@ -qualify.ts(21,13): error TS2322: Type 'number' is not assignable to type 'I'. -qualify.ts(30,13): error TS2322: Type 'number' is not assignable to type 'I2'. -qualify.ts(45,13): error TS2741: Property 'zeep' is missing in type 'I4' but required in type 'I3'. -qualify.ts(46,13): error TS2740: Type 'I4' is missing the following properties from type 'I3[]': length, pop, push, concat, and 16 more. -qualify.ts(47,13): error TS2322: Type 'I4' is not assignable to type '() => I3'. +qualify.ts(21,17): error TS2322: Type 'number' is not assignable to type 'I'. +qualify.ts(30,22): error TS2322: Type 'number' is not assignable to type 'I2'. +qualify.ts(45,22): error TS2741: Property 'zeep' is missing in type 'I4' but required in type 'I3'. +qualify.ts(46,24): error TS2740: Type 'I4' is missing the following properties from type 'I3[]': length, pop, push, concat, and 16 more. +qualify.ts(47,26): error TS2322: Type 'I4' is not assignable to type '() => I3'. Type 'I4' provides no match for the signature '(): I3'. -qualify.ts(48,13): error TS2322: Type 'I4' is not assignable to type '(k: I3) => void'. +qualify.ts(48,32): error TS2322: Type 'I4' is not assignable to type '(k: I3) => void'. Type 'I4' provides no match for the signature '(k: I3): void'. -qualify.ts(49,13): error TS2741: Property 'k' is missing in type 'I4' but required in type '{ k: I3; }'. -qualify.ts(58,5): error TS2741: Property 'p' is missing in type 'I' but required in type 'T.I'. +qualify.ts(49,27): error TS2741: Property 'k' is missing in type 'I4' but required in type '{ k: I3; }'. +qualify.ts(58,11): error TS2741: Property 'p' is missing in type 'I' but required in type 'T.I'. ==== qualify.ts (8 errors) ==== @@ -32,7 +32,7 @@ qualify.ts(58,5): error TS2741: Property 'p' is missing in type 'I' but required } export module U { var z:I=3; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'I'. export interface I2 { q; @@ -43,7 +43,7 @@ qualify.ts(58,5): error TS2741: Property 'p' is missing in type 'I' but required module Peer { export module U2 { var z:T.U.I2=3; - ~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'I2'. } } @@ -60,22 +60,22 @@ qualify.ts(58,5): error TS2741: Property 'p' is missing in type 'I' but required } var v1:I4; var v2:K1.I3=v1; - ~~ + ~~ !!! error TS2741: Property 'zeep' is missing in type 'I4' but required in type 'I3'. !!! related TS2728 qualify.ts:37:13: 'zeep' is declared here. var v3:K1.I3[]=v1; - ~~ + ~~ !!! error TS2740: Type 'I4' is missing the following properties from type 'I3[]': length, pop, push, concat, and 16 more. var v4:()=>K1.I3=v1; - ~~ + ~~ !!! error TS2322: Type 'I4' is not assignable to type '() => I3'. !!! error TS2322: Type 'I4' provides no match for the signature '(): I3'. var v5:(k:K1.I3)=>void=v1; - ~~ + ~~ !!! error TS2322: Type 'I4' is not assignable to type '(k: I3) => void'. !!! error TS2322: Type 'I4' provides no match for the signature '(k: I3): void'. var v6:{k:K1.I3;}=v1; - ~~ + ~~ !!! error TS2741: Property 'k' is missing in type 'I4' but required in type '{ k: I3; }'. !!! related TS2728 qualify.ts:49:17: 'k' is declared here. } @@ -87,7 +87,7 @@ qualify.ts(58,5): error TS2741: Property 'p' is missing in type 'I' but required var y:I; var x:T.I=y; - ~ + ~ !!! error TS2741: Property 'p' is missing in type 'I' but required in type 'T.I'. !!! related TS2728 qualify.ts:18:9: 'p' is declared here. diff --git a/tests/baselines/reference/qualify.types b/tests/baselines/reference/qualify.types index 30848af6bbd61..b93882492281e 100644 --- a/tests/baselines/reference/qualify.types +++ b/tests/baselines/reference/qualify.types @@ -66,7 +66,7 @@ module T { var z:I=3; >z : I > : ^ ->3 : 3 +>3 : I > : ^ export interface I2 { @@ -92,8 +92,8 @@ module Peer { > : ^^^ >U : any > : ^^^ ->3 : 3 -> : ^ +>3 : T.U.I2 +> : ^^^^^^ } } @@ -126,24 +126,24 @@ module Everest { > : ^^^^^ >K1 : any > : ^^^ ->v1 : I4 -> : ^^ +>v1 : K1.I3 +> : ^^^^^ var v3:K1.I3[]=v1; >v3 : K1.I3[] > : ^^^^^^^ >K1 : any > : ^^^ ->v1 : I4 -> : ^^ +>v1 : K1.I3[] +> : ^^^^^^^ var v4:()=>K1.I3=v1; >v4 : () => K1.I3 > : ^^^^^^ >K1 : any > : ^^^ ->v1 : I4 -> : ^^ +>v1 : () => K1.I3 +> : ^^^^^^ var v5:(k:K1.I3)=>void=v1; >v5 : (k: K1.I3) => void @@ -152,8 +152,8 @@ module Everest { > : ^^^^^ >K1 : any > : ^^^ ->v1 : I4 -> : ^^ +>v1 : (k: K1.I3) => void +> : ^ ^^ ^^^^^ var v6:{k:K1.I3;}=v1; >v6 : { k: K1.I3; } @@ -162,8 +162,8 @@ module Everest { > : ^^^^^ >K1 : any > : ^^^ ->v1 : I4 -> : ^^ +>v1 : { k: K1.I3; } +> : ^^^^^ ^^^ } } @@ -182,7 +182,7 @@ var x:T.I=y; > : ^^^ >T : any > : ^^^ ->y : I -> : ^ +>y : T.I +> : ^^^ diff --git a/tests/baselines/reference/readonlyMembers.types b/tests/baselines/reference/readonlyMembers.types index 852ed3e69251c..36d7ed1639140 100644 --- a/tests/baselines/reference/readonlyMembers.types +++ b/tests/baselines/reference/readonlyMembers.types @@ -13,8 +13,8 @@ interface X { var x: X = { a: 0 }; >x : X > : ^ ->{ a: 0 } : { a: number; } -> : ^^^^^^^^^^^^^^ +>{ a: 0 } : X +> : ^ >a : number > : ^^^^^^ >0 : 0 @@ -288,8 +288,8 @@ var p: { readonly a: number, b: number } = { a: 1, b: 1 }; > : ^^^^^^ >b : number > : ^^^^^^ ->{ a: 1, b: 1 } : { a: number; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: 1, b: 1 } : { readonly a: number; b: number; } +> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ >a : number > : ^^^^^^ >1 : 1 @@ -330,8 +330,8 @@ var q: { a: number, b: number } = p; > : ^^^^^^ >b : number > : ^^^^^^ ->p : { readonly a: number; b: number; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +>p : { a: number; b: number; } +> : ^^^^^ ^^^^^ ^^^ q.a = 1; >q.a = 1 : 1 diff --git a/tests/baselines/reference/recursiveBaseConstructorCreation3.types b/tests/baselines/reference/recursiveBaseConstructorCreation3.types index 106c0ae23e5c3..e2b3e469b0529 100644 --- a/tests/baselines/reference/recursiveBaseConstructorCreation3.types +++ b/tests/baselines/reference/recursiveBaseConstructorCreation3.types @@ -33,10 +33,10 @@ var bar = new xyz(); // Error: Invalid 'new' expression. var r: xyz = bar.foo; >r : xyz > : ^^^ ->bar.foo : any +>bar.foo : xyz > : ^^^ >bar : any > : ^^^ ->foo : any +>foo : xyz > : ^^^ diff --git a/tests/baselines/reference/recursiveFunctionTypes.errors.txt b/tests/baselines/reference/recursiveFunctionTypes.errors.txt index 024ccdcba532c..1b919064800f1 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.errors.txt +++ b/tests/baselines/reference/recursiveFunctionTypes.errors.txt @@ -1,10 +1,10 @@ recursiveFunctionTypes.ts(1,28): error TS2322: Type 'number' is not assignable to type '() => typeof fn'. -recursiveFunctionTypes.ts(3,5): error TS2322: Type '() => typeof fn' is not assignable to type 'number'. -recursiveFunctionTypes.ts(4,5): error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. +recursiveFunctionTypes.ts(3,17): error TS2322: Type '() => typeof fn' is not assignable to type 'number'. +recursiveFunctionTypes.ts(4,23): error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. Type '() => typeof fn' is not assignable to type 'number'. recursiveFunctionTypes.ts(11,16): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value. recursiveFunctionTypes.ts(12,16): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value. -recursiveFunctionTypes.ts(17,5): error TS2322: Type '() => I' is not assignable to type 'number'. +recursiveFunctionTypes.ts(17,17): error TS2322: Type '() => I' is not assignable to type 'number'. recursiveFunctionTypes.ts(22,5): error TS2345: Argument of type 'number' is not assignable to parameter of type '(t: typeof g) => void'. recursiveFunctionTypes.ts(25,1): error TS2322: Type 'number' is not assignable to type '() => any'. recursiveFunctionTypes.ts(30,10): error TS2394: This overload signature is not compatible with its implementation signature. @@ -26,10 +26,10 @@ recursiveFunctionTypes.ts(43,4): error TS2769: No overload matches this call. !!! error TS2322: Type 'number' is not assignable to type '() => typeof fn'. var x: number = fn; // error - ~ + ~~ !!! error TS2322: Type '() => typeof fn' is not assignable to type 'number'. var y: () => number = fn; // ok - ~ + ~~ !!! error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. !!! error TS2322: Type '() => typeof fn' is not assignable to type 'number'. @@ -49,7 +49,7 @@ recursiveFunctionTypes.ts(43,4): error TS2769: No overload matches this call. function f3(): I { return f3; } var a: number = f3; // error - ~ + ~~ !!! error TS2322: Type '() => I' is not assignable to type 'number'. class C { diff --git a/tests/baselines/reference/recursiveFunctionTypes.types b/tests/baselines/reference/recursiveFunctionTypes.types index 2ead748c9b405..7fa699afa6b84 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.types +++ b/tests/baselines/reference/recursiveFunctionTypes.types @@ -12,14 +12,14 @@ function fn(): typeof fn { return 1; } var x: number = fn; // error >x : number > : ^^^^^^ ->fn : () => typeof fn -> : ^^^^^^ +>fn : number +> : ^^^^^^ var y: () => number = fn; // ok >y : () => number > : ^^^^^^ ->fn : () => typeof fn -> : ^^^^^^ +>fn : () => number +> : ^^^^^^ var f: () => typeof g; >f : () => typeof g @@ -65,8 +65,8 @@ function f3(): I { return f3; } var a: number = f3; // error >a : number > : ^^^^^^ ->f3 : () => I -> : ^^^^^^ +>f3 : number +> : ^^^^^^ class C { >C : C diff --git a/tests/baselines/reference/recursiveIdenticalAssignment.types b/tests/baselines/reference/recursiveIdenticalAssignment.types index 24f218d0419a5..cfa013c8166ea 100644 --- a/tests/baselines/reference/recursiveIdenticalAssignment.types +++ b/tests/baselines/reference/recursiveIdenticalAssignment.types @@ -20,6 +20,6 @@ var a: A> var b: B> = a // Error, any does not satisfy constraint B> >b : B> > : ^^^^^^^^^ ->a : A> +>a : B> > : ^^^^^^^^^ diff --git a/tests/baselines/reference/recursiveTypeComparison.types b/tests/baselines/reference/recursiveTypeComparison.types index 98ea2d90f7b57..a89428671ec8c 100644 --- a/tests/baselines/reference/recursiveTypeComparison.types +++ b/tests/baselines/reference/recursiveTypeComparison.types @@ -31,6 +31,6 @@ var p: Observable<{}>; var stuck: Property = p; >stuck : Property > : ^^^^^^^^^^^^^^^^ ->p : Observable<{}> -> : ^^^^^^^^^^^^^^ +>p : Property +> : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/recursiveTypeReferences1.types b/tests/baselines/reference/recursiveTypeReferences1.types index db0722b2e0c3e..8f567ffc31d39 100644 --- a/tests/baselines/reference/recursiveTypeReferences1.types +++ b/tests/baselines/reference/recursiveTypeReferences1.types @@ -100,8 +100,8 @@ type Json = string | number | boolean | null | Json[] | { [key: string]: Json }; let data: Json = { >data : Json > : ^^^^ ->{ caption: "Test", location: { x: 10, y: 20 }, values: [true, [10, 20], null]} : { caption: string; location: { x: number; y: number; }; values: (true | number[] | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ caption: "Test", location: { x: 10, y: 20 }, values: [true, [10, 20], null]} : Json +> : ^^^^ caption: "Test", >caption : string diff --git a/tests/baselines/reference/referenceSatisfiesExpression.types b/tests/baselines/reference/referenceSatisfiesExpression.types index 1d0fb0b0dffd8..e41856ba32804 100644 --- a/tests/baselines/reference/referenceSatisfiesExpression.types +++ b/tests/baselines/reference/referenceSatisfiesExpression.types @@ -147,8 +147,8 @@ for ((g satisfies number) of [10]) { let x: string = "hello" >x : string > : ^^^^^^ ->"hello" : "hello" -> : ^^^^^^^ +>"hello" : string +> : ^^^^^^ for ((x satisfies string) in { a: 10 }) { >(x satisfies string) : string diff --git a/tests/baselines/reference/reorderProperties.types b/tests/baselines/reference/reorderProperties.types index c27b992221511..0b56676a0492a 100644 --- a/tests/baselines/reference/reorderProperties.types +++ b/tests/baselines/reference/reorderProperties.types @@ -40,6 +40,6 @@ var d: D<{ n: number; s: string }> = c > : ^^^^^^ >s : string > : ^^^^^^ ->c : C<{ s: string; n: number; }> +>c : D<{ n: number; s: string; }> > : ^^^^^^^ ^^^^^ ^^^^ diff --git a/tests/baselines/reference/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.types b/tests/baselines/reference/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.types index fef4278242aa1..49256f9486d1e 100644 --- a/tests/baselines/reference/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.types +++ b/tests/baselines/reference/requireOfJsonFileNonRelativeWithoutExtensionResolvesToTs.types @@ -8,8 +8,8 @@ import f = require("f"); // should work to f.ts let fnumber: number = f; >fnumber : number > : ^^^^^^ ->f : 10 -> : ^^ +>f : number +> : ^^^^^^ === /src/node_modules/f.ts === diff --git a/tests/baselines/reference/restParameterNoTypeAnnotation.types b/tests/baselines/reference/restParameterNoTypeAnnotation.types index 84cc13033ad44..a06200e79b130 100644 --- a/tests/baselines/reference/restParameterNoTypeAnnotation.types +++ b/tests/baselines/reference/restParameterNoTypeAnnotation.types @@ -10,7 +10,8 @@ function foo(...rest) { var x: number = rest[0]; >x : number > : ^^^^^^ ->rest[0] : any +>rest[0] : number +> : ^^^^^^ >rest : any[] > : ^^^^^ >0 : 0 diff --git a/tests/baselines/reference/signatureCombiningRestParameters2.types b/tests/baselines/reference/signatureCombiningRestParameters2.types index 8d8a820d9002e..7b45a450545a6 100644 --- a/tests/baselines/reference/signatureCombiningRestParameters2.types +++ b/tests/baselines/reference/signatureCombiningRestParameters2.types @@ -13,8 +13,8 @@ interface Console { let logs: string[] = []; >logs : string[] > : ^^^^^^^^ ->[] : never[] -> : ^^^^^^^ +>[] : string[] +> : ^^^^^^^^ let originalLog: typeof console.log; >originalLog : { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; } diff --git a/tests/baselines/reference/sourceMap-Comments.types b/tests/baselines/reference/sourceMap-Comments.types index 237c24a863a12..313c7557c5aec 100644 --- a/tests/baselines/reference/sourceMap-Comments.types +++ b/tests/baselines/reference/sourceMap-Comments.types @@ -18,8 +18,8 @@ module sas.tools { let f: number = 2; >f : number > : ^^^^^^ ->2 : 2 -> : ^ +>2 : number +> : ^^^^^^ switch (f) { >f : number diff --git a/tests/baselines/reference/sourceMap-FileWithComments.types b/tests/baselines/reference/sourceMap-FileWithComments.types index 3ee2579e00eee..d070d647f44ed 100644 --- a/tests/baselines/reference/sourceMap-FileWithComments.types +++ b/tests/baselines/reference/sourceMap-FileWithComments.types @@ -108,8 +108,8 @@ module Shapes { var p: IPoint = new Shapes.Point(3, 4); >p : IPoint > : ^^^^^^ ->new Shapes.Point(3, 4) : Shapes.Point -> : ^^^^^^^^^^^^ +>new Shapes.Point(3, 4) : IPoint +> : ^^^^^^ >Shapes.Point : typeof Shapes.Point > : ^^^^^^^^^^^^^^^^^^^ >Shapes : typeof Shapes diff --git a/tests/baselines/reference/sourceMapSample.types b/tests/baselines/reference/sourceMapSample.types index 18833168898e4..9bd6f468867ac 100644 --- a/tests/baselines/reference/sourceMapSample.types +++ b/tests/baselines/reference/sourceMapSample.types @@ -95,8 +95,8 @@ module Foo.Bar { var greeters: Greeter[] = []; >greeters : Greeter[] > : ^^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : Greeter[] +> : ^^^^^^^^^ greeters[0] = new Greeter(greeting); >greeters[0] = new Greeter(greeting) : Greeter diff --git a/tests/baselines/reference/sourceMapValidationClasses.types b/tests/baselines/reference/sourceMapValidationClasses.types index 15c3c6d1dac57..3f06aaaee1b5c 100644 --- a/tests/baselines/reference/sourceMapValidationClasses.types +++ b/tests/baselines/reference/sourceMapValidationClasses.types @@ -91,8 +91,8 @@ module Foo.Bar { var greeters: Greeter[] = []; /* inline block comment */ >greeters : Greeter[] > : ^^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : Greeter[] +> : ^^^^^^^^^ greeters[0] = new Greeter(greeting); >greeters[0] = new Greeter(greeting) : Greeter diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPattern.types index 11a3aa5c22453..1f7ddda379023 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPattern.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, [string, string]]; let robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -42,8 +42,8 @@ function getRobot() { let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -56,8 +56,8 @@ let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPattern2.types b/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPattern2.types index 4e98942c92a10..787ecb36be67e 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPattern2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPattern2.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, [string, string]]; let robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -42,8 +42,8 @@ function getRobot() { let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -56,8 +56,8 @@ let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPatternDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPatternDefaultValues.types index f20d3304689be..9c285650bb796 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPatternDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPatternDefaultValues.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, string[]]; let robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -42,8 +42,8 @@ function getRobot() { let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, string[]] -> : ^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : string[] @@ -56,8 +56,8 @@ let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, string[]] -> : ^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : string[] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPatternDefaultValues2.types b/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPatternDefaultValues2.types index e52ddba83cbc6..0a53069af30c1 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPatternDefaultValues2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForArrayBindingPatternDefaultValues2.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, [string, string]]; let robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -42,8 +42,8 @@ function getRobot() { let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -56,8 +56,8 @@ let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPattern.types index e84e013a836cf..d8de99b6975be 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPattern.types @@ -43,8 +43,8 @@ interface MultiRobot { let robot: Robot = { name: "mower", skill: "mowing" }; >robot : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -57,8 +57,8 @@ let robot: Robot = { name: "mower", skill: "mowing" }; let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }; >multiRobot : MultiRobot > : ^^^^^^^^^^ ->{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : MultiRobot +> : ^^^^^^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPattern2.types b/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPattern2.types index 60343ca9b8439..dba48af8312a2 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPattern2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPattern2.types @@ -43,8 +43,8 @@ interface MultiRobot { let robot: Robot = { name: "mower", skill: "mowing" }; >robot : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -57,8 +57,8 @@ let robot: Robot = { name: "mower", skill: "mowing" }; let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }; >multiRobot : MultiRobot > : ^^^^^^^^^^ ->{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : MultiRobot +> : ^^^^^^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPatternDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPatternDefaultValues.types index 50bc0a493296c..bc5fe34367ab5 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPatternDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPatternDefaultValues.types @@ -43,8 +43,8 @@ interface MultiRobot { let robot: Robot = { name: "mower", skill: "mowing" }; >robot : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -57,8 +57,8 @@ let robot: Robot = { name: "mower", skill: "mowing" }; let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }; >multiRobot : MultiRobot > : ^^^^^^^^^^ ->{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : MultiRobot +> : ^^^^^^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPatternDefaultValues2.types b/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPatternDefaultValues2.types index edf8bb79fa778..60de91ec731f2 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPatternDefaultValues2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForObjectBindingPatternDefaultValues2.types @@ -43,8 +43,8 @@ interface MultiRobot { let robot: Robot = { name: "mower", skill: "mowing" }; >robot : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -57,8 +57,8 @@ let robot: Robot = { name: "mower", skill: "mowing" }; let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }; >multiRobot : MultiRobot > : ^^^^^^^^^^ ->{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : MultiRobot +> : ^^^^^^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPattern.types index cca716efa5480..cc15b766962b3 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPattern.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, [string, string]]; let robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -33,8 +33,8 @@ let robotA: Robot = [1, "mower", "mowing"]; let robotB: Robot = [2, "trimmer", "trimming"]; >robotB : Robot > : ^^^^^ ->[2, "trimmer", "trimming"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[2, "trimmer", "trimming"] : Robot +> : ^^^^^ >2 : 2 > : ^ >"trimmer" : "trimmer" @@ -64,8 +64,8 @@ function getRobots() { let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -78,8 +78,8 @@ let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPattern2.types b/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPattern2.types index 8cfff566e87b2..59a4dd1e86149 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPattern2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPattern2.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, [string, string]]; let robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -33,8 +33,8 @@ let robotA: Robot = [1, "mower", "mowing"]; let robotB: Robot = [2, "trimmer", "trimming"]; >robotB : Robot > : ^^^^^ ->[2, "trimmer", "trimming"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[2, "trimmer", "trimming"] : Robot +> : ^^^^^ >2 : 2 > : ^ >"trimmer" : "trimmer" @@ -64,8 +64,8 @@ function getRobots() { let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -78,8 +78,8 @@ let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPatternDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPatternDefaultValues.types index c932fd489b889..3813751f169b3 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPatternDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPatternDefaultValues.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, [string, string]]; let robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -33,8 +33,8 @@ let robotA: Robot = [1, "mower", "mowing"]; let robotB: Robot = [2, "trimmer", "trimming"]; >robotB : Robot > : ^^^^^ ->[2, "trimmer", "trimming"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[2, "trimmer", "trimming"] : Robot +> : ^^^^^ >2 : 2 > : ^ >"trimmer" : "trimmer" @@ -64,8 +64,8 @@ function getRobots() { let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -78,8 +78,8 @@ let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPatternDefaultValues2.types b/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPatternDefaultValues2.types index 0659af5e1a0f5..c7ea4b0ce0e76 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPatternDefaultValues2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForOfArrayBindingPatternDefaultValues2.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, [string, string]]; let robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -33,8 +33,8 @@ let robotA: Robot = [1, "mower", "mowing"]; let robotB: Robot = [2, "trimmer", "trimming"]; >robotB : Robot > : ^^^^^ ->[2, "trimmer", "trimming"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[2, "trimmer", "trimming"] : Robot +> : ^^^^^ >2 : 2 > : ^ >"trimmer" : "trimmer" @@ -64,8 +64,8 @@ function getRobots() { let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -78,8 +78,8 @@ let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPattern.types index ed48a298e5bba..d0da8ae9206b7 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPattern.types @@ -43,8 +43,8 @@ interface MultiRobot { let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]; >robots : Robot[] > : ^^^^^^^ ->[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }] : { name: string; skill: string; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }] : Robot[] +> : ^^^^^^^ >{ name: "mower", skill: "mowing" } : { name: string; skill: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string @@ -69,8 +69,8 @@ let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", sk let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, >multiRobots : MultiRobot[] > : ^^^^^^^^^^^^ ->[{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }] : { name: string; skills: { primary: string; secondary: string; }; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }] : MultiRobot[] +> : ^^^^^^^^^^^^ >{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPattern2.types b/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPattern2.types index 63c5d399ef3d1..0104240d148c8 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPattern2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPattern2.types @@ -43,8 +43,8 @@ interface MultiRobot { let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]; >robots : Robot[] > : ^^^^^^^ ->[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }] : { name: string; skill: string; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }] : Robot[] +> : ^^^^^^^ >{ name: "mower", skill: "mowing" } : { name: string; skill: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string @@ -69,8 +69,8 @@ let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", sk let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, >multiRobots : MultiRobot[] > : ^^^^^^^^^^^^ ->[{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }] : { name: string; skills: { primary: string; secondary: string; }; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }] : MultiRobot[] +> : ^^^^^^^^^^^^ >{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPatternDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPatternDefaultValues.types index 6b340234e2806..ae2253c4ee5bb 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPatternDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPatternDefaultValues.types @@ -43,8 +43,8 @@ interface MultiRobot { let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]; >robots : Robot[] > : ^^^^^^^ ->[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }] : { name: string; skill: string; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }] : Robot[] +> : ^^^^^^^ >{ name: "mower", skill: "mowing" } : { name: string; skill: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string @@ -69,8 +69,8 @@ let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", sk let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, >multiRobots : MultiRobot[] > : ^^^^^^^^^^^^ ->[{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }] : { name: string; skills: { primary: string; secondary: string; }; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }] : MultiRobot[] +> : ^^^^^^^^^^^^ >{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string diff --git a/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPatternDefaultValues2.types b/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPatternDefaultValues2.types index 61071a5da110c..42339158213e5 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPatternDefaultValues2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringForOfObjectBindingPatternDefaultValues2.types @@ -43,8 +43,8 @@ interface MultiRobot { let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]; >robots : Robot[] > : ^^^^^^^ ->[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }] : { name: string; skill: string; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }] : Robot[] +> : ^^^^^^^ >{ name: "mower", skill: "mowing" } : { name: string; skill: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string @@ -69,8 +69,8 @@ let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", sk let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, >multiRobots : MultiRobot[] > : ^^^^^^^^^^^^ ->[{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }] : { name: string; skills: { primary: string; secondary: string; }; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } }, { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }] : MultiRobot[] +> : ^^^^^^^^^^^^ >{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string diff --git a/tests/baselines/reference/sourceMapValidationDestructuringParameterNestedObjectBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringParameterNestedObjectBindingPattern.types index 978a8bccac0c3..277d61569fcb0 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringParameterNestedObjectBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringParameterNestedObjectBindingPattern.types @@ -33,8 +33,8 @@ interface Robot { var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringParameterNestedObjectBindingPatternDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringParameterNestedObjectBindingPatternDefaultValues.types index dc0af84bf16c9..57083117e3050 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringParameterNestedObjectBindingPatternDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringParameterNestedObjectBindingPatternDefaultValues.types @@ -33,8 +33,8 @@ interface Robot { var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringParameterObjectBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringParameterObjectBindingPattern.types index 9fdb7fcd7b0b4..f74efcd8f6ba0 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringParameterObjectBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringParameterObjectBindingPattern.types @@ -29,8 +29,8 @@ var hello = "hello"; var robotA: Robot = { name: "mower", skill: "mowing" }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.types index 935c9aecb9402..70d411d59466b 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.types @@ -29,8 +29,8 @@ var hello = "hello"; var robotA: Robot = { name: "mower", skill: "mowing" }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPattern.types index 52edb6fd0a0ab..6a6e42f6b9614 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPattern.types @@ -17,8 +17,8 @@ type Robot = [number, string, string]; var robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPattern2.types b/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPattern2.types index 4de0b5be5819c..730b44c170150 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPattern2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPattern2.types @@ -17,8 +17,8 @@ type Robot = [string, [string, string]]; var robotA: Robot = ["trimmer", ["trimming", "edging"]]; >robotA : Robot > : ^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : Robot +> : ^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.types index 8f83f04f17c7a..b337da9eecfde 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.types @@ -17,8 +17,8 @@ type Robot = [number, string, string]; var robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.types b/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.types index 9fb722f961905..9cefcb9b1352c 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.types @@ -17,8 +17,8 @@ type Robot = [string, string[]]; var robotA: Robot = ["trimmer", ["trimming", "edging"]]; >robotA : Robot > : ^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, string[]] -> : ^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : Robot +> : ^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : string[] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatement.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatement.types index 3bf079b6ce082..22d63ccf6d461 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatement.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatement.types @@ -29,8 +29,8 @@ var hello = "hello"; var robotA: Robot = { name: "mower", skill: "mowing" }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -43,8 +43,8 @@ var robotA: Robot = { name: "mower", skill: "mowing" }; var robotB: Robot = { name: "trimmer", skill: "trimming" }; >robotB : Robot > : ^^^^^ ->{ name: "trimmer", skill: "trimming" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "trimmer", skill: "trimming" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"trimmer" : "trimmer" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatement1.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatement1.types index 6563370699d86..fc7ef2e5ad01c 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatement1.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatement1.types @@ -29,8 +29,8 @@ var hello = "hello"; var robotA: Robot = { name: "mower", skill: "mowing" }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -43,8 +43,8 @@ var robotA: Robot = { name: "mower", skill: "mowing" }; var robotB: Robot = { name: "trimmer", skill: "trimming" }; >robotB : Robot > : ^^^^^ ->{ name: "trimmer", skill: "trimming" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "trimmer", skill: "trimming" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"trimmer" : "trimmer" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern.types index dc216bdd79ed8..75520bad21817 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern.types @@ -18,8 +18,8 @@ type Robot = [number, string, string]; var robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -30,8 +30,8 @@ var robotA: Robot = [1, "mower", "mowing"]; var robotB: Robot = [2, "trimmer", "trimming"]; >robotB : Robot > : ^^^^^ ->[2, "trimmer", "trimming"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[2, "trimmer", "trimming"] : Robot +> : ^^^^^ >2 : 2 > : ^ >"trimmer" : "trimmer" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.types index acc986e9ddb5b..9bfc47cfffa03 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.types @@ -18,8 +18,8 @@ type MultiSkilledRobot = [string, [string, string]]; var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -32,8 +32,8 @@ var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.types index 362eee3615e45..918118e11e668 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern3.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, [string, string]]; var robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -33,8 +33,8 @@ var robotA: Robot = [1, "mower", "mowing"]; var robotB: Robot = [2, "trimmer", "trimming"]; >robotB : Robot > : ^^^^^ ->[2, "trimmer", "trimming"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[2, "trimmer", "trimming"] : Robot +> : ^^^^^ >2 : 2 > : ^ >"trimmer" : "trimmer" @@ -45,8 +45,8 @@ var robotB: Robot = [2, "trimmer", "trimming"]; var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : [string, string] @@ -59,8 +59,8 @@ var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, [string, string]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : [string, string] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues.types index eee8a49adbcfb..c34303c978efd 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues.types @@ -18,8 +18,8 @@ type Robot = [number, string, string]; var robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -30,8 +30,8 @@ var robotA: Robot = [1, "mower", "mowing"]; var robotB: Robot = [2, "trimmer", "trimming"]; >robotB : Robot > : ^^^^^ ->[2, "trimmer", "trimming"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[2, "trimmer", "trimming"] : Robot +> : ^^^^^ >2 : 2 > : ^ >"trimmer" : "trimmer" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues2.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues2.types index 741478f9b7e6b..09ebe054fc61f 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues2.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues2.types @@ -18,8 +18,8 @@ type MultiSkilledRobot = [string, string[]]; var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, string[]] -> : ^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : string[] @@ -32,8 +32,8 @@ var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, string[]] -> : ^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : string[] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.types index b319dffea433d..c6105f96e1480 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPatternDefaultValues3.types @@ -21,8 +21,8 @@ type MultiSkilledRobot = [string, string[]]; var robotA: Robot = [1, "mower", "mowing"]; >robotA : Robot > : ^^^^^ ->[1, "mower", "mowing"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[1, "mower", "mowing"] : Robot +> : ^^^^^ >1 : 1 > : ^ >"mower" : "mower" @@ -33,8 +33,8 @@ var robotA: Robot = [1, "mower", "mowing"]; var robotB: Robot = [2, "trimmer", "trimming"]; >robotB : Robot > : ^^^^^ ->[2, "trimmer", "trimming"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[2, "trimmer", "trimming"] : Robot +> : ^^^^^ >2 : 2 > : ^ >"trimmer" : "trimmer" @@ -45,8 +45,8 @@ var robotB: Robot = [2, "trimmer", "trimming"]; var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; >multiRobotA : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["mower", ["mowing", ""]] : [string, string[]] -> : ^^^^^^^^^^^^^^^^^^ +>["mower", ["mowing", ""]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"mower" : "mower" > : ^^^^^^^ >["mowing", ""] : string[] @@ -59,8 +59,8 @@ var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]]; var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]]; >multiRobotB : MultiSkilledRobot > : ^^^^^^^^^^^^^^^^^ ->["trimmer", ["trimming", "edging"]] : [string, string[]] -> : ^^^^^^^^^^^^^^^^^^ +>["trimmer", ["trimming", "edging"]] : MultiSkilledRobot +> : ^^^^^^^^^^^^^^^^^ >"trimmer" : "trimmer" > : ^^^^^^^^^ >["trimming", "edging"] : string[] diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementDefaultValues.types index 6b997eb1c8ceb..88b1e1981bc67 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementDefaultValues.types @@ -29,8 +29,8 @@ var hello = "hello"; var robotA: Robot = { name: "mower", skill: "mowing" }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skill: "mowing" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skill: "mowing" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -43,8 +43,8 @@ var robotA: Robot = { name: "mower", skill: "mowing" }; var robotB: Robot = { name: "trimmer", skill: "trimming" }; >robotB : Robot > : ^^^^^ ->{ name: "trimmer", skill: "trimming" } : { name: string; skill: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "trimmer", skill: "trimming" } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"trimmer" : "trimmer" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPattern.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPattern.types index c8071130329e4..6e8d99d1ed6c9 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPattern.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPattern.types @@ -33,8 +33,8 @@ interface Robot { var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -55,8 +55,8 @@ var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "no var robotB: Robot = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }; >robotB : Robot > : ^^^^^ ->{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"trimmer" : "trimmer" diff --git a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.types b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.types index f7f4218e1f454..df85110c80cdf 100644 --- a/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.types +++ b/tests/baselines/reference/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.types @@ -33,8 +33,8 @@ interface Robot { var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } }; >robotA : Robot > : ^^^^^ ->{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "mower", skills: { primary: "mowing", secondary: "none" } } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"mower" : "mower" @@ -55,8 +55,8 @@ var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "no var robotB: Robot = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }; >robotB : Robot > : ^^^^^ ->{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } } : { name: string; skills: { primary: string; secondary: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } } : Robot +> : ^^^^^ >name : string > : ^^^^^^ >"trimmer" : "trimmer" diff --git a/tests/baselines/reference/specializationsShouldNotAffectEachOther.types b/tests/baselines/reference/specializationsShouldNotAffectEachOther.types index 64e8b34475784..2c92c85c96237 100644 --- a/tests/baselines/reference/specializationsShouldNotAffectEachOther.types +++ b/tests/baselines/reference/specializationsShouldNotAffectEachOther.types @@ -46,8 +46,8 @@ function foo() { var keyExtent2: any[] = series.data.map(function (d: string) { return d; }); >keyExtent2 : any[] > : ^^^^^ ->series.data.map(function (d: string) { return d; }) : string[] -> : ^^^^^^^^ +>series.data.map(function (d: string) { return d; }) : any[] +> : ^^^^^ >series.data.map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] > : ^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ >series.data : string[] diff --git a/tests/baselines/reference/specializedInheritedConstructors1.types b/tests/baselines/reference/specializedInheritedConstructors1.types index c890106ad893f..b947eab9d0745 100644 --- a/tests/baselines/reference/specializedInheritedConstructors1.types +++ b/tests/baselines/reference/specializedInheritedConstructors1.types @@ -33,8 +33,8 @@ class MyView extends View { } var m: ViewOptions = { model: new Model() }; >m : ViewOptions > : ^^^^^^^^^^^^^^^^^^ ->{ model: new Model() } : { model: Model; } -> : ^^^^^^^^^^^^^^^^^ +>{ model: new Model() } : ViewOptions +> : ^^^^^^^^^^^^^^^^^^ >model : Model > : ^^^^^ >new Model() : Model diff --git a/tests/baselines/reference/spreadMethods.types b/tests/baselines/reference/spreadMethods.types index a246f69552e82..b80be02216f3a 100644 --- a/tests/baselines/reference/spreadMethods.types +++ b/tests/baselines/reference/spreadMethods.types @@ -116,8 +116,8 @@ ssk.g; // error let i: I = { p: 12, m() { }, get g() { return 0; } }; >i : I > : ^ ->{ p: 12, m() { }, get g() { return 0; } } : { p: number; m(): void; readonly g: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ p: 12, m() { }, get g() { return 0; } } : I +> : ^ >p : number > : ^^^^^^ >12 : 12 diff --git a/tests/baselines/reference/spreadUnion3.errors.txt b/tests/baselines/reference/spreadUnion3.errors.txt index e5abffe50b4cd..b480e35292b58 100644 --- a/tests/baselines/reference/spreadUnion3.errors.txt +++ b/tests/baselines/reference/spreadUnion3.errors.txt @@ -1,5 +1,5 @@ spreadUnion3.ts(2,14): error TS2322: Type 'number' is not assignable to type 'string'. -spreadUnion3.ts(9,9): error TS2322: Type 'number | undefined' is not assignable to type 'number'. +spreadUnion3.ts(9,21): error TS2322: Type 'number | undefined' is not assignable to type 'number'. Type 'undefined' is not assignable to type 'number'. spreadUnion3.ts(17,11): error TS2698: Spread types may only be created from object types. spreadUnion3.ts(17,37): error TS2698: Spread types may only be created from object types. @@ -19,7 +19,7 @@ spreadUnion3.ts(18,11): error TS2698: Spread types may only be created from obje function g(t?: { a: number } | null): void { let b = { ...t }; let c: number = b.a; // might not have 'a' - ~ + ~~~ !!! error TS2322: Type 'number | undefined' is not assignable to type 'number'. !!! error TS2322: Type 'undefined' is not assignable to type 'number'. } diff --git a/tests/baselines/reference/spreadUnion3.types b/tests/baselines/reference/spreadUnion3.types index 007e530937fed..c33d8cd402642 100644 --- a/tests/baselines/reference/spreadUnion3.types +++ b/tests/baselines/reference/spreadUnion3.types @@ -49,12 +49,12 @@ function g(t?: { a: number } | null): void { let c: number = b.a; // might not have 'a' >c : number > : ^^^^^^ ->b.a : number | undefined -> : ^^^^^^^^^^^^^^^^^^ +>b.a : number +> : ^^^^^^ >b : { a?: number | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->a : number | undefined -> : ^^^^^^^^^^^^^^^^^^ +>a : number +> : ^^^^^^ } g() >g() : void diff --git a/tests/baselines/reference/staticFieldWithInterfaceContext.types b/tests/baselines/reference/staticFieldWithInterfaceContext.types index 33e959ec5b630..b43f3215e9ad2 100644 --- a/tests/baselines/reference/staticFieldWithInterfaceContext.types +++ b/tests/baselines/reference/staticFieldWithInterfaceContext.types @@ -11,8 +11,8 @@ interface I { let c: I = class { >c : I > : ^ ->class { // should typecheck the same as the last line static x = { a: "a" };} : typeof c -> : ^^^^^^^^ +>class { // should typecheck the same as the last line static x = { a: "a" };} : I +> : ^ // should typecheck the same as the last line static x = { a: "a" }; @@ -51,8 +51,8 @@ const ex = "x"; let c2: I = class { static [ex] = { a: "a" }; }; >c2 : I > : ^ ->class { static [ex] = { a: "a" }; } : typeof c2 -> : ^^^^^^^^^ +>class { static [ex] = { a: "a" }; } : I +> : ^ >[ex] : { a: "a"; } > : ^^^^^^^^^^^ >ex : "x" @@ -103,8 +103,8 @@ let { c: c3 }: { c: I } = { c: class { static x = { a: "a" } } }; > : ^ >c : I > : ^ ->{ c: class { static x = { a: "a" } } } : { c: typeof c; } -> : ^^^^^^^^^^^^^^^^ +>{ c: class { static x = { a: "a" } } } : { c: I; } +> : ^^^^^ ^^^ >c : typeof c > : ^^^^^^^^ >class { static x = { a: "a" } } : typeof c @@ -135,8 +135,8 @@ let { c: c4 = class { static x = { a: "a" } }}: { c?: I } = { }; > : ^^^ >c : I > : ^ ->{ } : {} -> : ^^ +>{ } : { c?: I; } +> : ^^^^^^ ^^^ let { c: c5 = class { static x = { a: "a" } }}: { c?: I } = { c: class { static x = { a: "a" } } }; >c : any @@ -155,8 +155,8 @@ let { c: c5 = class { static x = { a: "a" } }}: { c?: I } = { c: class { static > : ^^^ >c : I > : ^ ->{ c: class { static x = { a: "a" } } } : { c: typeof c; } -> : ^^^^^^^^^^^^^^^^ +>{ c: class { static x = { a: "a" } } } : { c?: I; } +> : ^^^^^^ ^^^ >c : typeof c > : ^^^^^^^^ >class { static x = { a: "a" } } : typeof c @@ -173,8 +173,8 @@ let { c: c5 = class { static x = { a: "a" } }}: { c?: I } = { c: class { static let [ c6 ]: [I] = [class { static x = { a: "a" } }]; >c6 : I > : ^ ->[class { static x = { a: "a" } }] : [typeof (Anonymous class)] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[class { static x = { a: "a" } }] : [I] +> : ^^^ >class { static x = { a: "a" } } : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : { a: "a"; } @@ -189,8 +189,8 @@ let [ c6 ]: [I] = [class { static x = { a: "a" } }]; let [ c7 ]: I[] = [class { static x = { a: "a" } }]; >c7 : I > : ^ ->[class { static x = { a: "a" } }] : (typeof (Anonymous class))[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[class { static x = { a: "a" } }] : I[] +> : ^^^ >class { static x = { a: "a" } } : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : { a: "a"; } @@ -215,8 +215,8 @@ let [ c8 = class { static x = { a: "a" } } ]: [I?] = []; > : ^^^ >"a" : "a" > : ^^^ ->[] : [] -> : ^^ +>[] : [I?] +> : ^^^^ let [ c9 = class { static x = { a: "a" } } ]: I[] = []; >c9 : I @@ -231,8 +231,8 @@ let [ c9 = class { static x = { a: "a" } } ]: I[] = []; > : ^^^ >"a" : "a" > : ^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : I[] +> : ^^^ let [ c10 = class { static x = { a: "a" } } ]: [I?] = [class { static x = { a: "a" } }]; >c10 : I @@ -247,8 +247,8 @@ let [ c10 = class { static x = { a: "a" } } ]: [I?] = [class { static x = { a: " > : ^^^ >"a" : "a" > : ^^^ ->[class { static x = { a: "a" } }] : [typeof (Anonymous class)] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[class { static x = { a: "a" } }] : [I?] +> : ^^^^ >class { static x = { a: "a" } } : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : { a: "a"; } @@ -273,8 +273,8 @@ let [ c11 = class { static x = { a: "a" } } ]: I[] = [class { static x = { a: "a > : ^^^ >"a" : "a" > : ^^^ ->[class { static x = { a: "a" } }] : (typeof (Anonymous class))[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[class { static x = { a: "a" } }] : I[] +> : ^^^ >class { static x = { a: "a" } } : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : { a: "a"; } diff --git a/tests/baselines/reference/staticInterfaceAssignmentCompat.types b/tests/baselines/reference/staticInterfaceAssignmentCompat.types index 570decabfdad1..e46d6a3c2403a 100644 --- a/tests/baselines/reference/staticInterfaceAssignmentCompat.types +++ b/tests/baselines/reference/staticInterfaceAssignmentCompat.types @@ -26,6 +26,6 @@ interface ShapeFactory { var x: ShapeFactory = Shape; >x : ShapeFactory > : ^^^^^^^^^^^^ ->Shape : typeof Shape +>Shape : ShapeFactory > : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/staticMemberExportAccess.types b/tests/baselines/reference/staticMemberExportAccess.types index a6625662ca0ed..2d851bd7e60cb 100644 --- a/tests/baselines/reference/staticMemberExportAccess.types +++ b/tests/baselines/reference/staticMemberExportAccess.types @@ -44,8 +44,8 @@ var $: JQueryStatic; var instanceOfClassSammy: Sammy = new $.sammy(); // should be error >instanceOfClassSammy : Sammy > : ^^^^^ ->new $.sammy() : any -> : ^^^ +>new $.sammy() : Sammy +> : ^^^^^ >$.sammy : Sammy > : ^^^^^ >$ : JQueryStatic diff --git a/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.errors.txt b/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.errors.txt index 2e9eaae60e676..359b401213afa 100644 --- a/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.errors.txt +++ b/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.errors.txt @@ -1,6 +1,6 @@ staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.ts(12,1): error TS2741: Property 'prop' is missing in type 'C' but required in type 'A'. staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.ts(13,5): error TS2741: Property 'prop' is missing in type 'typeof B' but required in type 'A'. -staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.ts(16,5): error TS2741: Property 'prop' is missing in type 'C' but required in type 'B'. +staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.ts(16,12): error TS2741: Property 'prop' is missing in type 'C' but required in type 'B'. staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.ts(17,5): error TS2741: Property 'prop' is missing in type 'typeof B' but required in type 'B'. @@ -28,7 +28,7 @@ staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.ts(17,5): error TS274 a = C; var b: B = new C(); // error prop is missing - ~ + ~~~~~~~ !!! error TS2741: Property 'prop' is missing in type 'C' but required in type 'B'. !!! related TS2728 staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.ts:5:12: 'prop' is declared here. b = B; // error prop is missing diff --git a/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.types b/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.types index 149360856ad67..de20e0342ba65 100644 --- a/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.types +++ b/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.types @@ -26,7 +26,7 @@ class C { var a: A = new B(); >a : A > : ^ ->new B() : B +>new B() : A > : ^ >B : typeof B > : ^^^^^^^^ @@ -60,7 +60,7 @@ a = C; var b: B = new C(); // error prop is missing >b : B > : ^ ->new C() : C +>new C() : B > : ^ >C : typeof C > : ^^^^^^^^ @@ -92,7 +92,7 @@ b = a; var c: C = new B(); >c : C > : ^ ->new B() : B +>new B() : C > : ^ >B : typeof B > : ^^^^^^^^ diff --git a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.errors.txt b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.errors.txt index 7c541e625544e..a33e511e7c020 100644 --- a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.errors.txt +++ b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.errors.txt @@ -19,16 +19,12 @@ stringIndexerConstrainsPropertyDeclarations.ts(68,5): error TS2411: Property '2. stringIndexerConstrainsPropertyDeclarations.ts(71,5): error TS2411: Property 'foo' of type '() => string' is not assignable to 'string' index type 'string'. stringIndexerConstrainsPropertyDeclarations.ts(73,5): error TS2411: Property '"4.0"' of type 'number' is not assignable to 'string' index type 'string'. stringIndexerConstrainsPropertyDeclarations.ts(74,5): error TS2411: Property 'f' of type 'MyString' is not assignable to 'string' index type 'string'. -stringIndexerConstrainsPropertyDeclarations.ts(80,5): error TS2322: Type 'number' is not assignable to type 'string'. -stringIndexerConstrainsPropertyDeclarations.ts(81,5): error TS2322: Type '() => void' is not assignable to type 'string'. -stringIndexerConstrainsPropertyDeclarations.ts(83,5): error TS2322: Type 'number' is not assignable to type 'string'. -stringIndexerConstrainsPropertyDeclarations.ts(85,5): error TS2322: Type 'number' is not assignable to type 'string'. -stringIndexerConstrainsPropertyDeclarations.ts(87,5): error TS2322: Type 'number' is not assignable to type 'string'. -stringIndexerConstrainsPropertyDeclarations.ts(88,5): error TS2322: Type 'MyString' is not assignable to type 'string'. -stringIndexerConstrainsPropertyDeclarations.ts(94,5): error TS2322: Type '() => string' is not assignable to type 'string'. +stringIndexerConstrainsPropertyDeclarations.ts(78,35): error TS2322: Type '{ a: string; b: number; c: () => void; d: string; e: number; 1: string; 2: number; "3.0": string; "4.0": number; f: MyString; X: string; foo(): string; }' is not assignable to type '{ [x: string]: string; }'. + Property 'b' is incompatible with index signature. + Type 'number' is not assignable to type 'string'. -==== stringIndexerConstrainsPropertyDeclarations.ts (28 errors) ==== +==== stringIndexerConstrainsPropertyDeclarations.ts (22 errors) ==== // String indexer types constrain the types of named properties in their containing type interface MyString extends String { @@ -149,43 +145,45 @@ stringIndexerConstrainsPropertyDeclarations.ts(94,5): error TS2322: Type '() => // error var b: { [x: string]: string; } = { + ~ a: '', + ~~~~~~~~~~ b: 1, - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6501 stringIndexerConstrainsPropertyDeclarations.ts:78:10: The expected type comes from this index signature. + ~~~~~~~~~~ c: () => { }, - ~ -!!! error TS2322: Type '() => void' is not assignable to type 'string'. -!!! related TS6501 stringIndexerConstrainsPropertyDeclarations.ts:78:10: The expected type comes from this index signature. + ~~~~~~~~~~~~~~~~~~ "d": '', + ~~~~~~~~~~~~~ "e": 1, - ~~~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6501 stringIndexerConstrainsPropertyDeclarations.ts:78:10: The expected type comes from this index signature. + ~~~~~~~~~~~~ 1.0: '', + ~~~~~~~~~~~~ 2.0: 1, - ~~~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6501 stringIndexerConstrainsPropertyDeclarations.ts:78:10: The expected type comes from this index signature. + ~~~~~~~~~~~~ "3.0": '', + ~~~~~~~~~~~~~~~ "4.0": 1, - ~~~~~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6501 stringIndexerConstrainsPropertyDeclarations.ts:78:10: The expected type comes from this index signature. + ~~~~~~~~~~~~~~ f: null, - ~ -!!! error TS2322: Type 'MyString' is not assignable to type 'string'. -!!! related TS6501 stringIndexerConstrainsPropertyDeclarations.ts:78:10: The expected type comes from this index signature. + ~~~~~~~~~~~~~~~~~~~~~~~ + get X() { + ~~~~~~~~~~~~~~ return ''; + ~~~~~~~~~~~~~~~~~~ }, + ~~~~~~ set X(v) { }, + ~~~~~~~~~~~~~~~~~~ foo() { - ~~~ -!!! error TS2322: Type '() => string' is not assignable to type 'string'. -!!! related TS6501 stringIndexerConstrainsPropertyDeclarations.ts:78:10: The expected type comes from this index signature. + ~~~~~~~~~~~~ return ''; + ~~~~~~~~~~~~~~~~~~ } - } \ No newline at end of file + ~~~~~ + } + ~ +!!! error TS2322: Type '{ a: string; b: number; c: () => void; d: string; e: number; 1: string; 2: number; "3.0": string; "4.0": number; f: MyString; X: string; foo(): string; }' is not assignable to type '{ [x: string]: string; }'. +!!! error TS2322: Property 'b' is incompatible with index signature. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.types b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.types index 2067571b6f9d0..5859b4d824cdb 100644 --- a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.types +++ b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.types @@ -223,8 +223,8 @@ var b: { [x: string]: string; } = { > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{ a: '', b: 1, c: () => { }, "d": '', "e": 1, 1.0: '', 2.0: 1, "3.0": '', "4.0": 1, f: null, get X() { return ''; }, set X(v) { }, foo() { return ''; }} : { a: string; b: number; c: () => void; d: string; e: number; 1: string; 2: number; "3.0": string; "4.0": number; f: MyString; X: string; foo(): string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: '', b: 1, c: () => { }, "d": '', "e": 1, 1.0: '', 2.0: 1, "3.0": '', "4.0": 1, f: null, get X() { return ''; }, set X(v) { }, foo() { return ''; }} : { [x: string]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ a: '', >a : string diff --git a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations2.errors.txt b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations2.errors.txt index 1575c17ee9dce..7bd40781c0875 100644 --- a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations2.errors.txt +++ b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations2.errors.txt @@ -4,11 +4,12 @@ stringIndexerConstrainsPropertyDeclarations2.ts(23,5): error TS2411: Property 'c stringIndexerConstrainsPropertyDeclarations2.ts(24,5): error TS2411: Property 'd' of type 'string' is not assignable to 'string' index type 'A'. stringIndexerConstrainsPropertyDeclarations2.ts(31,5): error TS2411: Property 'c' of type 'number' is not assignable to 'string' index type 'A'. stringIndexerConstrainsPropertyDeclarations2.ts(32,5): error TS2411: Property 'd' of type 'string' is not assignable to 'string' index type 'A'. -stringIndexerConstrainsPropertyDeclarations2.ts(37,8): error TS2741: Property 'foo' is missing in type 'typeof A' but required in type 'A'. -stringIndexerConstrainsPropertyDeclarations2.ts(38,8): error TS2741: Property 'foo' is missing in type 'typeof B' but required in type 'A'. +stringIndexerConstrainsPropertyDeclarations2.ts(36,29): error TS2322: Type '{ a: typeof A; b: typeof B; }' is not assignable to type '{ [x: string]: A; }'. + Property 'a' is incompatible with index signature. + Property 'foo' is missing in type 'typeof A' but required in type 'A'. -==== stringIndexerConstrainsPropertyDeclarations2.ts (8 errors) ==== +==== stringIndexerConstrainsPropertyDeclarations2.ts (7 errors) ==== // String indexer providing a constraint of a user defined type class A { @@ -57,14 +58,14 @@ stringIndexerConstrainsPropertyDeclarations2.ts(38,8): error TS2741: Property 'f // error var b: { [x: string]: A } = { + ~ a: A, - ~ -!!! error TS2741: Property 'foo' is missing in type 'typeof A' but required in type 'A'. -!!! related TS2728 stringIndexerConstrainsPropertyDeclarations2.ts:4:5: 'foo' is declared here. -!!! related TS6213 stringIndexerConstrainsPropertyDeclarations2.ts:37:8: Did you mean to use 'new' with this expression? + ~~~~~~~~~ b: B - ~ -!!! error TS2741: Property 'foo' is missing in type 'typeof B' but required in type 'A'. -!!! related TS2728 stringIndexerConstrainsPropertyDeclarations2.ts:4:5: 'foo' is declared here. -!!! related TS6213 stringIndexerConstrainsPropertyDeclarations2.ts:38:8: Did you mean to use 'new' with this expression? - } \ No newline at end of file + ~~~~~~~~ + } + ~ +!!! error TS2322: Type '{ a: typeof A; b: typeof B; }' is not assignable to type '{ [x: string]: A; }'. +!!! error TS2322: Property 'a' is incompatible with index signature. +!!! error TS2322: Property 'foo' is missing in type 'typeof A' but required in type 'A'. +!!! related TS2728 stringIndexerConstrainsPropertyDeclarations2.ts:4:5: 'foo' is declared here. \ No newline at end of file diff --git a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations2.types b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations2.types index e4246e13ad86d..139842350a7c9 100644 --- a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations2.types +++ b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations2.types @@ -106,8 +106,8 @@ var b: { [x: string]: A } = { > : ^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{ a: A, b: B} : { a: typeof A; b: typeof B; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ a: A, b: B} : { [x: string]: A; } +> : ^^^^^^^^^^^^^^^^^^^ a: A, >a : typeof A diff --git a/tests/baselines/reference/stringIndexingResults.types b/tests/baselines/reference/stringIndexingResults.types index b9796b6959dbd..d03b032a90417 100644 --- a/tests/baselines/reference/stringIndexingResults.types +++ b/tests/baselines/reference/stringIndexingResults.types @@ -142,8 +142,8 @@ var b: { [x: string]: string } = { y: '' } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{ y: '' } : { y: string; } -> : ^^^^^^^^^^^^^^ +>{ y: '' } : { [x: string]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >y : string > : ^^^^^^ >'' : "" diff --git a/tests/baselines/reference/stringLiteralTypesAndLogicalOrExpressions01.errors.txt b/tests/baselines/reference/stringLiteralTypesAndLogicalOrExpressions01.errors.txt index fe0f3d552f943..427877b578014 100644 --- a/tests/baselines/reference/stringLiteralTypesAndLogicalOrExpressions01.errors.txt +++ b/tests/baselines/reference/stringLiteralTypesAndLogicalOrExpressions01.errors.txt @@ -1,4 +1,4 @@ -stringLiteralTypesAndLogicalOrExpressions01.ts(7,5): error TS2322: Type 'string' is not assignable to type '"foo" | "bar"'. +stringLiteralTypesAndLogicalOrExpressions01.ts(7,24): error TS2322: Type 'string' is not assignable to type '"foo" | "bar"'. ==== stringLiteralTypesAndLogicalOrExpressions01.ts (1 errors) ==== @@ -9,6 +9,6 @@ stringLiteralTypesAndLogicalOrExpressions01.ts(7,5): error TS2322: Type 'string' let c: "foo" = b; let d = b || "bar"; let e: "foo" | "bar" = d; - ~ + ~ !!! error TS2322: Type 'string' is not assignable to type '"foo" | "bar"'. \ No newline at end of file diff --git a/tests/baselines/reference/stringLiteralTypesAndLogicalOrExpressions01.types b/tests/baselines/reference/stringLiteralTypesAndLogicalOrExpressions01.types index 9155886dbb18f..c87027adba1ff 100644 --- a/tests/baselines/reference/stringLiteralTypesAndLogicalOrExpressions01.types +++ b/tests/baselines/reference/stringLiteralTypesAndLogicalOrExpressions01.types @@ -40,6 +40,6 @@ let d = b || "bar"; let e: "foo" | "bar" = d; >e : "foo" | "bar" > : ^^^^^^^^^^^^^ ->d : string -> : ^^^^^^ +>d : "foo" | "bar" +> : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/stringLiteralTypesAndParenthesizedExpressions01.types b/tests/baselines/reference/stringLiteralTypesAndParenthesizedExpressions01.types index c382ffad2b467..7f4f9a435ab69 100644 --- a/tests/baselines/reference/stringLiteralTypesAndParenthesizedExpressions01.types +++ b/tests/baselines/reference/stringLiteralTypesAndParenthesizedExpressions01.types @@ -16,8 +16,8 @@ let a: "foo" = ("foo"); let b: "foo" | "bar" = ("foo"); >b : "foo" | "bar" > : ^^^^^^^^^^^^^ ->("foo") : "foo" -> : ^^^^^ +>("foo") : "foo" | "bar" +> : ^^^^^^^^^^^^^ >"foo" : "foo" > : ^^^^^ diff --git a/tests/baselines/reference/stringLiteralTypesAndTuples01.types b/tests/baselines/reference/stringLiteralTypesAndTuples01.types index a3d7e42acd263..6b1b5fafc0175 100644 --- a/tests/baselines/reference/stringLiteralTypesAndTuples01.types +++ b/tests/baselines/reference/stringLiteralTypesAndTuples01.types @@ -33,8 +33,8 @@ let [im, a, dinosaur]: ["I'm", "a", RexOrRaptor] = ['I\'m', 'a', 't-rex']; > : ^^^ >dinosaur : RexOrRaptor > : ^^^^^^^^^^^ ->['I\'m', 'a', 't-rex'] : ["I'm", "a", "t-rex"] -> : ^^^^^^^^^^^^^^^^^^^^^ +>['I\'m', 'a', 't-rex'] : ["I'm", "a", RexOrRaptor] +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >'I\'m' : "I'm" > : ^^^^^ >'a' : "a" @@ -47,8 +47,8 @@ rawr(dinosaur); > : ^^^^^^^^^^^^^^^^^^^^^^^ >rawr : (dino: RexOrRaptor) => "ROAAAAR!" | "yip yip!" > : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->dinosaur : "t-rex" -> : ^^^^^^^ +>dinosaur : RexOrRaptor +> : ^^^^^^^^^^^ function rawr(dino: RexOrRaptor) { >rawr : (dino: RexOrRaptor) => "ROAAAAR!" | "yip yip!" diff --git a/tests/baselines/reference/stringLiteralTypesAsTags01.types b/tests/baselines/reference/stringLiteralTypesAsTags01.types index 823444d6677a7..711780dae1c13 100644 --- a/tests/baselines/reference/stringLiteralTypesAsTags01.types +++ b/tests/baselines/reference/stringLiteralTypesAsTags01.types @@ -79,8 +79,8 @@ function hasKind(entity: Entity, kind: Kind): boolean { let x: A = { >x : A > : ^ ->{ kind: "A", a: 100,} : { kind: "A"; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ kind: "A", a: 100,} : A +> : ^ kind: "A", >kind : "A" diff --git a/tests/baselines/reference/stringLiteralTypesAsTags02.types b/tests/baselines/reference/stringLiteralTypesAsTags02.types index 7be84adf903c9..09da32c13f77c 100644 --- a/tests/baselines/reference/stringLiteralTypesAsTags02.types +++ b/tests/baselines/reference/stringLiteralTypesAsTags02.types @@ -71,8 +71,8 @@ function hasKind(entity: Entity, kind: Kind): entity is (A | B) { let x: A = { >x : A > : ^ ->{ kind: "A", a: 100,} : { kind: "A"; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ kind: "A", a: 100,} : A +> : ^ kind: "A", >kind : "A" diff --git a/tests/baselines/reference/stringLiteralTypesAsTags03.types b/tests/baselines/reference/stringLiteralTypesAsTags03.types index 23f7ee69b068a..5af33c7868c81 100644 --- a/tests/baselines/reference/stringLiteralTypesAsTags03.types +++ b/tests/baselines/reference/stringLiteralTypesAsTags03.types @@ -75,8 +75,8 @@ function hasKind(entity: Entity, kind: Kind): entity is Entity { let x: A = { >x : A > : ^ ->{ kind: "A", a: 100,} : { kind: "A"; a: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ kind: "A", a: 100,} : A +> : ^ kind: "A", >kind : "A" diff --git a/tests/baselines/reference/stringLiteralTypesInUnionTypes01.types b/tests/baselines/reference/stringLiteralTypesInUnionTypes01.types index 839c7a47e5753..f492926339c0a 100644 --- a/tests/baselines/reference/stringLiteralTypesInUnionTypes01.types +++ b/tests/baselines/reference/stringLiteralTypesInUnionTypes01.types @@ -8,14 +8,14 @@ type T = "foo" | "bar" | "baz"; var x: "foo" | "bar" | "baz" = undefined; >x : "foo" | "bar" | "baz" > : ^^^^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : "foo" | "bar" | "baz" +> : ^^^^^^^^^^^^^^^^^^^^^ var y: T = undefined; >y : T > : ^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : T +> : ^ if (x === "foo") { >x === "foo" : boolean diff --git a/tests/baselines/reference/stringLiteralTypesInUnionTypes02.types b/tests/baselines/reference/stringLiteralTypesInUnionTypes02.types index 91de734116324..b37e8086b9b69 100644 --- a/tests/baselines/reference/stringLiteralTypesInUnionTypes02.types +++ b/tests/baselines/reference/stringLiteralTypesInUnionTypes02.types @@ -8,14 +8,14 @@ type T = string | "foo" | "bar" | "baz"; var x: "foo" | "bar" | "baz" | string = undefined; >x : string > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string +> : ^^^^^^ var y: T = undefined; >y : string > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string +> : ^^^^^^ if (x === "foo") { >x === "foo" : boolean diff --git a/tests/baselines/reference/stringLiteralTypesInUnionTypes03.types b/tests/baselines/reference/stringLiteralTypesInUnionTypes03.types index 87f4e07039289..20e165a595656 100644 --- a/tests/baselines/reference/stringLiteralTypesInUnionTypes03.types +++ b/tests/baselines/reference/stringLiteralTypesInUnionTypes03.types @@ -12,8 +12,8 @@ var x: "foo" | "bar" | number; var y: T = undefined; >y : T > : ^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : T +> : ^ if (x === "foo") { >x === "foo" : boolean diff --git a/tests/baselines/reference/stringLiteralTypesInUnionTypes04.types b/tests/baselines/reference/stringLiteralTypesInUnionTypes04.types index 672011b79af9e..a2a372069c7e9 100644 --- a/tests/baselines/reference/stringLiteralTypesInUnionTypes04.types +++ b/tests/baselines/reference/stringLiteralTypesInUnionTypes04.types @@ -8,14 +8,14 @@ type T = "" | "foo"; let x: T = undefined; >x : T > : ^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : T +> : ^ let y: T = undefined; >y : T > : ^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : T +> : ^ if (x === "") { >x === "" : boolean diff --git a/tests/baselines/reference/stringLiteralTypesTypePredicates01.types b/tests/baselines/reference/stringLiteralTypesTypePredicates01.types index 3fb3ae688b2ad..386c1c88bd1cf 100644 --- a/tests/baselines/reference/stringLiteralTypesTypePredicates01.types +++ b/tests/baselines/reference/stringLiteralTypesTypePredicates01.types @@ -41,8 +41,8 @@ function kindIs(kind: Kind, is: Kind): boolean { var x: Kind = undefined; >x : Kind > : ^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : Kind +> : ^^^^ if (kindIs(x, "A")) { >kindIs(x, "A") : boolean diff --git a/tests/baselines/reference/stringLiteralTypesWithTemplateStrings02.errors.txt b/tests/baselines/reference/stringLiteralTypesWithTemplateStrings02.errors.txt index f2ff780acef5f..435d6f7e7a8d9 100644 --- a/tests/baselines/reference/stringLiteralTypesWithTemplateStrings02.errors.txt +++ b/tests/baselines/reference/stringLiteralTypesWithTemplateStrings02.errors.txt @@ -1,9 +1,10 @@ -stringLiteralTypesWithTemplateStrings02.ts(1,5): error TS2322: Type '"AB\nC"' is not assignable to type '"AB\r\nC"'. +stringLiteralTypesWithTemplateStrings02.ts(1,22): error TS2322: Type '"AB\nC"' is not assignable to type '"AB\r\nC"'. ==== stringLiteralTypesWithTemplateStrings02.ts (1 errors) ==== let abc: "AB\r\nC" = `AB - ~~~ -!!! error TS2322: Type '"AB\nC"' is not assignable to type '"AB\r\nC"'. + ~~~ C`; + ~~ +!!! error TS2322: Type '"AB\nC"' is not assignable to type '"AB\r\nC"'. let de_NEWLINE_f: "DE\nF" = `DE${"\n"}F`; \ No newline at end of file diff --git a/tests/baselines/reference/stringLiteralTypesWithTemplateStrings02.types b/tests/baselines/reference/stringLiteralTypesWithTemplateStrings02.types index 670369504975f..95e8922cc7311 100644 --- a/tests/baselines/reference/stringLiteralTypesWithTemplateStrings02.types +++ b/tests/baselines/reference/stringLiteralTypesWithTemplateStrings02.types @@ -4,8 +4,8 @@ let abc: "AB\r\nC" = `AB >abc : "AB\r\nC" > : ^^^^^^^^^ ->`ABC` : "AB\nC" -> : ^^^^^^^ +>`ABC` : "AB\r\nC" +> : ^^^^^^^^^ C`; let de_NEWLINE_f: "DE\nF" = `DE${"\n"}F`; diff --git a/tests/baselines/reference/stringLiteralTypesWithVariousOperators01.types b/tests/baselines/reference/stringLiteralTypesWithVariousOperators01.types index 8fce260189917..f991af9fe5a76 100644 --- a/tests/baselines/reference/stringLiteralTypesWithVariousOperators01.types +++ b/tests/baselines/reference/stringLiteralTypesWithVariousOperators01.types @@ -26,8 +26,8 @@ let abcOrXyz: "ABC" | "XYZ" = abc || xyz; let abcOrXyzOrNumber: "ABC" | "XYZ" | number = abcOrXyz || 100; >abcOrXyzOrNumber : number | "ABC" | "XYZ" > : ^^^^^^^^^^^^^^^^^^^^^^ ->abcOrXyz || 100 : "ABC" | "XYZ" | 100 -> : ^^^^^^^^^^^^^^^^^^^ +>abcOrXyz || 100 : number | "ABC" | "XYZ" +> : ^^^^^^^^^^^^^^^^^^^^^^ >abcOrXyz : "ABC" | "XYZ" > : ^^^^^^^^^^^^^ >100 : 100 diff --git a/tests/baselines/reference/stringLiteralTypesWithVariousOperators02.types b/tests/baselines/reference/stringLiteralTypesWithVariousOperators02.types index 4e2a7456fa6c5..0b97f64f7ad22 100644 --- a/tests/baselines/reference/stringLiteralTypesWithVariousOperators02.types +++ b/tests/baselines/reference/stringLiteralTypesWithVariousOperators02.types @@ -26,8 +26,8 @@ let abcOrXyz: "ABC" | "XYZ" = abc || xyz; let abcOrXyzOrNumber: "ABC" | "XYZ" | number = abcOrXyz || 100; >abcOrXyzOrNumber : number | "ABC" | "XYZ" > : ^^^^^^^^^^^^^^^^^^^^^^ ->abcOrXyz || 100 : "ABC" | "XYZ" | 100 -> : ^^^^^^^^^^^^^^^^^^^ +>abcOrXyz || 100 : number | "ABC" | "XYZ" +> : ^^^^^^^^^^^^^^^^^^^^^^ >abcOrXyz : "ABC" | "XYZ" > : ^^^^^^^^^^^^^ >100 : 100 diff --git a/tests/baselines/reference/subtypingWithOptionalProperties.types b/tests/baselines/reference/subtypingWithOptionalProperties.types index 4ae83a6d2ec3a..d5ff11f0a7220 100644 --- a/tests/baselines/reference/subtypingWithOptionalProperties.types +++ b/tests/baselines/reference/subtypingWithOptionalProperties.types @@ -15,8 +15,8 @@ function f(a: T) { > : ^^^^^^ ^^^ >s : number > : ^^^^^^ ->a : T -> : ^ +>a : { s?: number; } +> : ^^^^^^ ^^^ return b; >b : { s?: number; } diff --git a/tests/baselines/reference/superElementAccess.types b/tests/baselines/reference/superElementAccess.types index 80aa6983493c2..ca78cddff75ff 100644 --- a/tests/baselines/reference/superElementAccess.types +++ b/tests/baselines/reference/superElementAccess.types @@ -93,7 +93,7 @@ class MyDerived extends MyBase { >a : string > : ^^^^^^ >super["m1"] : (a: string) => string -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >super : MyBase > : ^^^^^^ >"m1" : "m1" diff --git a/tests/baselines/reference/superPropertyAccess.types b/tests/baselines/reference/superPropertyAccess.types index 3ce3267ade197..f6ab305bec658 100644 --- a/tests/baselines/reference/superPropertyAccess.types +++ b/tests/baselines/reference/superPropertyAccess.types @@ -95,11 +95,11 @@ class MyDerived extends MyBase { >a : string > : ^^^^^^ >super.m1 : (a: string) => string -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >super : MyBase > : ^^^^^^ >m1 : (a: string) => string -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ super.m2.bind(this); // Should error, instance property, not a public instance member function >super.m2.bind(this) : any diff --git a/tests/baselines/reference/switchCasesExpressionTypeMismatch.types b/tests/baselines/reference/switchCasesExpressionTypeMismatch.types index aa4d6e719b44f..70e383dbb9027 100644 --- a/tests/baselines/reference/switchCasesExpressionTypeMismatch.types +++ b/tests/baselines/reference/switchCasesExpressionTypeMismatch.types @@ -62,8 +62,8 @@ switch (r) { var s: any = 0; >s : any > : ^^^ ->0 : 0 -> : ^ +>0 : any +> : ^^^ // No error for all switch (s) { diff --git a/tests/baselines/reference/symbolProperty10.errors.txt b/tests/baselines/reference/symbolProperty10.errors.txt index dbea19a726764..4999341c9348a 100644 --- a/tests/baselines/reference/symbolProperty10.errors.txt +++ b/tests/baselines/reference/symbolProperty10.errors.txt @@ -1,4 +1,4 @@ -symbolProperty10.ts(10,5): error TS2322: Type 'I' is not assignable to type 'C'. +symbolProperty10.ts(10,12): error TS2322: Type 'I' is not assignable to type 'C'. Types of property '[Symbol.iterator]' are incompatible. Property 'y' is missing in type '{ x: any; }' but required in type '{ x: any; y: any; }'. @@ -14,7 +14,7 @@ symbolProperty10.ts(10,5): error TS2322: Type 'I' is not assignable to type 'C'. var i: I; i = new C; var c: C = i; - ~ + ~ !!! error TS2322: Type 'I' is not assignable to type 'C'. !!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. !!! error TS2322: Property 'y' is missing in type '{ x: any; }' but required in type '{ x: any; y: any; }'. diff --git a/tests/baselines/reference/symbolProperty10.types b/tests/baselines/reference/symbolProperty10.types index 4e8b84a610017..4764fb3d04279 100644 --- a/tests/baselines/reference/symbolProperty10.types +++ b/tests/baselines/reference/symbolProperty10.types @@ -50,6 +50,6 @@ i = new C; var c: C = i; >c : C > : ^ ->i : I +>i : C > : ^ diff --git a/tests/baselines/reference/symbolProperty11.types b/tests/baselines/reference/symbolProperty11.types index 74c7987fb9031..aff6228f32c57 100644 --- a/tests/baselines/reference/symbolProperty11.types +++ b/tests/baselines/reference/symbolProperty11.types @@ -35,6 +35,6 @@ i = new C; var c: C = i; >c : C > : ^ ->i : I +>i : C > : ^ diff --git a/tests/baselines/reference/symbolProperty12.errors.txt b/tests/baselines/reference/symbolProperty12.errors.txt index 324e64c61ef58..723756ba64ab5 100644 --- a/tests/baselines/reference/symbolProperty12.errors.txt +++ b/tests/baselines/reference/symbolProperty12.errors.txt @@ -1,6 +1,6 @@ symbolProperty12.ts(9,1): error TS2322: Type 'C' is not assignable to type 'I'. Property '[Symbol.iterator]' is private in type 'C' but not in type 'I'. -symbolProperty12.ts(10,5): error TS2322: Type 'I' is not assignable to type 'C'. +symbolProperty12.ts(10,12): error TS2322: Type 'I' is not assignable to type 'C'. Property '[Symbol.iterator]' is private in type 'C' but not in type 'I'. @@ -18,6 +18,6 @@ symbolProperty12.ts(10,5): error TS2322: Type 'I' is not assignable to type 'C'. !!! error TS2322: Type 'C' is not assignable to type 'I'. !!! error TS2322: Property '[Symbol.iterator]' is private in type 'C' but not in type 'I'. var c: C = i; - ~ + ~ !!! error TS2322: Type 'I' is not assignable to type 'C'. !!! error TS2322: Property '[Symbol.iterator]' is private in type 'C' but not in type 'I'. \ No newline at end of file diff --git a/tests/baselines/reference/symbolProperty12.types b/tests/baselines/reference/symbolProperty12.types index 731770499bb32..9c6778f568efe 100644 --- a/tests/baselines/reference/symbolProperty12.types +++ b/tests/baselines/reference/symbolProperty12.types @@ -48,6 +48,6 @@ i = new C; var c: C = i; >c : C > : ^ ->i : I +>i : C > : ^ diff --git a/tests/baselines/reference/symbolProperty20.types b/tests/baselines/reference/symbolProperty20.types index c101031ce90b3..c262e0d7df381 100644 --- a/tests/baselines/reference/symbolProperty20.types +++ b/tests/baselines/reference/symbolProperty20.types @@ -30,8 +30,8 @@ interface I { var i: I = { >i : I > : ^ ->{ [Symbol.iterator]: s => s, [Symbol.toStringTag](n) { return n; }} : { [Symbol.iterator]: (s: string) => string; [Symbol.toStringTag](n: number): number; } -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +>{ [Symbol.iterator]: s => s, [Symbol.toStringTag](n) { return n; }} : I +> : ^ [Symbol.iterator]: s => s, >[Symbol.iterator] : (s: string) => string diff --git a/tests/baselines/reference/symbolProperty9.errors.txt b/tests/baselines/reference/symbolProperty9.errors.txt index fb0572e50d171..f455acac3e833 100644 --- a/tests/baselines/reference/symbolProperty9.errors.txt +++ b/tests/baselines/reference/symbolProperty9.errors.txt @@ -1,4 +1,4 @@ -symbolProperty9.ts(10,5): error TS2322: Type 'I' is not assignable to type 'C'. +symbolProperty9.ts(10,12): error TS2322: Type 'I' is not assignable to type 'C'. Types of property '[Symbol.iterator]' are incompatible. Property 'y' is missing in type '{ x: any; }' but required in type '{ x: any; y: any; }'. @@ -14,7 +14,7 @@ symbolProperty9.ts(10,5): error TS2322: Type 'I' is not assignable to type 'C'. var i: I; i = new C; var c: C = i; - ~ + ~ !!! error TS2322: Type 'I' is not assignable to type 'C'. !!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. !!! error TS2322: Property 'y' is missing in type '{ x: any; }' but required in type '{ x: any; y: any; }'. diff --git a/tests/baselines/reference/symbolProperty9.types b/tests/baselines/reference/symbolProperty9.types index e98e4d800a293..6b58dafc78995 100644 --- a/tests/baselines/reference/symbolProperty9.types +++ b/tests/baselines/reference/symbolProperty9.types @@ -50,6 +50,6 @@ i = new C; var c: C = i; >c : C > : ^ ->i : I +>i : C > : ^ diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types index 630a467632cff..a4f1f0cb57e11 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types @@ -74,8 +74,8 @@ function fn2() { return undefined; } var d1: Date = fn2 `${ 0 }${ undefined }`; // contextually typed >d1 : Date > : ^^^^ ->fn2 `${ 0 }${ undefined }` : any -> : ^^^ +>fn2 `${ 0 }${ undefined }` : Date +> : ^^^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } > : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 0 }${ undefined }` : string diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types index 0fe7c7d29a23d..e5daae48c361f 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types @@ -74,8 +74,8 @@ function fn2() { return undefined; } var d1: Date = fn2 `${ 0 }${ undefined }`; // contextually typed >d1 : Date > : ^^^^ ->fn2 `${ 0 }${ undefined }` : any -> : ^^^ +>fn2 `${ 0 }${ undefined }` : Date +> : ^^^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } > : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 0 }${ undefined }` : string diff --git a/tests/baselines/reference/targetTypeCastTest.types b/tests/baselines/reference/targetTypeCastTest.types index ba0037ed8af92..47de24a23f5b6 100644 --- a/tests/baselines/reference/targetTypeCastTest.types +++ b/tests/baselines/reference/targetTypeCastTest.types @@ -84,8 +84,8 @@ interface Adder2 { var add2: Adder2 = function(x,y) { >add2 : Adder2 > : ^^^^^^ ->function(x,y) { return 0;} : (x: number, y: number) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +>function(x,y) { return 0;} : Adder2 +> : ^^^^^^ >x : number > : ^^^^^^ >y : number diff --git a/tests/baselines/reference/targetTypeObjectLiteral.types b/tests/baselines/reference/targetTypeObjectLiteral.types index 4a792bd8d3bde..0db87b07afb75 100644 --- a/tests/baselines/reference/targetTypeObjectLiteral.types +++ b/tests/baselines/reference/targetTypeObjectLiteral.types @@ -11,7 +11,7 @@ var z: { x: number; y: (w:string)=>number;} = { >w : string > : ^^^^^^ >{ x: 12, y: function(w) { return 0; }} : { x: number; y: (w: string) => number; } -> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ x: 12, >x : number diff --git a/tests/baselines/reference/targetTypeTest1.types b/tests/baselines/reference/targetTypeTest1.types index 53c1851361860..91b6f3922333a 100644 --- a/tests/baselines/reference/targetTypeTest1.types +++ b/tests/baselines/reference/targetTypeTest1.types @@ -176,8 +176,8 @@ Point.prototype.add = function(dx, dy) { var f : number = 5; >f : number > : ^^^^^^ ->5 : 5 -> : ^ +>5 : number +> : ^^^^^^ // Object literal type inferred using target typing // this in function add inferred to be type of object literal (i.e. Point) diff --git a/tests/baselines/reference/targetTypeTest2.types b/tests/baselines/reference/targetTypeTest2.types index 0419d7f196279..7fe296584cdf5 100644 --- a/tests/baselines/reference/targetTypeTest2.types +++ b/tests/baselines/reference/targetTypeTest2.types @@ -7,8 +7,8 @@ var a : any[] = [1,2,"3"]; >a : any[] > : ^^^^^ ->[1,2,"3"] : (string | number)[] -> : ^^^^^^^^^^^^^^^^^^^ +>[1,2,"3"] : any[] +> : ^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/targetTypeTest3.errors.txt b/tests/baselines/reference/targetTypeTest3.errors.txt index e03c33625a20c..b904d58d5fc6b 100644 --- a/tests/baselines/reference/targetTypeTest3.errors.txt +++ b/tests/baselines/reference/targetTypeTest3.errors.txt @@ -1,16 +1,17 @@ -targetTypeTest3.ts(4,21): error TS2322: Type 'number' is not assignable to type 'string'. -targetTypeTest3.ts(4,23): error TS2322: Type 'number' is not assignable to type 'string'. +targetTypeTest3.ts(4,20): error TS2322: Type '(string | number)[]' is not assignable to type 'string[]'. + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. -==== targetTypeTest3.ts (2 errors) ==== +==== targetTypeTest3.ts (1 errors) ==== // Test target typing for array literals and call expressions var a : string[] = [1,2,"3"]; // should produce an error - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. + ~~~~~~~~~ +!!! error TS2322: Type '(string | number)[]' is not assignable to type 'string[]'. +!!! error TS2322: Type 'string | number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. function func1(stuff:any[]) { return stuff; } diff --git a/tests/baselines/reference/targetTypeTest3.types b/tests/baselines/reference/targetTypeTest3.types index 6c6603117a61b..287e1db9cbf78 100644 --- a/tests/baselines/reference/targetTypeTest3.types +++ b/tests/baselines/reference/targetTypeTest3.types @@ -7,8 +7,8 @@ var a : string[] = [1,2,"3"]; // should produce an error >a : string[] > : ^^^^^^^^ ->[1,2,"3"] : (string | number)[] -> : ^^^^^^^^^^^^^^^^^^^ +>[1,2,"3"] : string[] +> : ^^^^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/targetTypingOnFunctions.types b/tests/baselines/reference/targetTypingOnFunctions.types index d72ea7e8977d5..1c9bdc35a0824 100644 --- a/tests/baselines/reference/targetTypingOnFunctions.types +++ b/tests/baselines/reference/targetTypingOnFunctions.types @@ -7,7 +7,7 @@ var fu: (s: string) => string = function (s) { return s.toLowerCase() }; >s : string > : ^^^^^^ >function (s) { return s.toLowerCase() } : (s: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >s : string > : ^^^^^^ >s.toLowerCase() : string diff --git a/tests/baselines/reference/templateLiteralTypes1.types b/tests/baselines/reference/templateLiteralTypes1.types index d29f030fcae67..8d49cbd0e6aab 100644 --- a/tests/baselines/reference/templateLiteralTypes1.types +++ b/tests/baselines/reference/templateLiteralTypes1.types @@ -116,8 +116,8 @@ function test(name: `get${Capitalize}`) { let s1: string = name; >s1 : string > : ^^^^^^ ->name : "getFoo" | "getBar" -> : ^^^^^^^^^^^^^^^^^^^ +>name : string +> : ^^^^^^ let s2: 'getFoo' | 'getBar' = name; >s2 : "getFoo" | "getBar" diff --git a/tests/baselines/reference/templateLiteralTypes2.types b/tests/baselines/reference/templateLiteralTypes2.types index aa664dda40406..2c00048d98181 100644 --- a/tests/baselines/reference/templateLiteralTypes2.types +++ b/tests/baselines/reference/templateLiteralTypes2.types @@ -420,34 +420,34 @@ function ft14(t: `foo${number}`) { let x1: string = t; >x1 : string > : ^^^^^^ ->t : `foo${number}` -> : ^^^^^^^^^^^^^^ +>t : string +> : ^^^^^^ let x2: String = t; >x2 : String > : ^^^^^^ ->t : `foo${number}` -> : ^^^^^^^^^^^^^^ +>t : String +> : ^^^^^^ let x3: Object = t; >x3 : Object > : ^^^^^^ ->t : `foo${number}` -> : ^^^^^^^^^^^^^^ +>t : Object +> : ^^^^^^ let x4: {} = t; >x4 : {} > : ^^ ->t : `foo${number}` -> : ^^^^^^^^^^^^^^ +>t : {} +> : ^^ let x6: { length: number } = t; >x6 : { length: number; } > : ^^^^^^^^^^ ^^^ >length : number > : ^^^^^^ ->t : `foo${number}` -> : ^^^^^^^^^^^^^^ +>t : { length: number; } +> : ^^^^^^^^^^ ^^^ } declare function g1(x: T): T; diff --git a/tests/baselines/reference/templateLiteralTypes8.types b/tests/baselines/reference/templateLiteralTypes8.types index 755452309ad4e..fa7a4c719dba8 100644 --- a/tests/baselines/reference/templateLiteralTypes8.types +++ b/tests/baselines/reference/templateLiteralTypes8.types @@ -25,12 +25,12 @@ type Stringify = `${T}`; let z1: `${E}` = "a"; >z1 : "a" | "b" > : ^^^^^^^^^ ->"a" : "a" -> : ^^^ +>"a" : "a" | "b" +> : ^^^^^^^^^ let z2: Stringify = "a"; >z2 : "a" | "b" > : ^^^^^^^^^ ->"a" : "a" -> : ^^^ +>"a" : "a" | "b" +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/thisTypeInFunctions.types b/tests/baselines/reference/thisTypeInFunctions.types index 1f704de6562eb..d1bddd9e3e491 100644 --- a/tests/baselines/reference/thisTypeInFunctions.types +++ b/tests/baselines/reference/thisTypeInFunctions.types @@ -203,8 +203,8 @@ function implicitThis(n: number): number { let impl: I = { >impl : I > : ^ ->{ a: 12, explicitVoid2: () => this.a, // ok, this: any because it refers to some outer object (window?) explicitVoid1() { return 12; }, explicitStructural() { return this.a; }, explicitInterface() { return this.a; }, explicitThis() { return this.a; },} : { a: number; explicitVoid2: () => any; explicitVoid1(this: void): number; explicitStructural(this: { a: number; }): number; explicitInterface(this: I): number; explicitThis(this: I): number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +>{ a: 12, explicitVoid2: () => this.a, // ok, this: any because it refers to some outer object (window?) explicitVoid1() { return 12; }, explicitStructural() { return this.a; }, explicitInterface() { return this.a; }, explicitThis() { return this.a; },} : I +> : ^ a: 12, >a : number @@ -395,7 +395,7 @@ let ok: {y: number, f: (this: { y: number }, x: number) => number} = { y: 12, f: >x : number > : ^^^^^^ >{ y: 12, f: explicitStructural } : { y: number; f: (this: { y: number; }, x: number) => number; } -> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^^^^ ^^^ >y : number > : ^^^^^^ >12 : 12 @@ -414,8 +414,8 @@ let implicitAnyOk: {notSpecified: number, f: (x: number) => number} = { notSpeci > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->{ notSpecified: 12, f: implicitThis } : { notSpecified: number; f: (n: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +>{ notSpecified: 12, f: implicitThis } : { notSpecified: number; f: (x: number) => number; } +> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ >notSpecified : number > : ^^^^^^ >12 : 12 @@ -598,8 +598,8 @@ let reconstructed: { > : ^^^^^^ } = { ->{ n: 12, explicitThis: c.explicitThis, explicitC: c.explicitC, explicitProperty: c.explicitProperty, explicitVoid: c.explicitVoid} : { 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: 12, explicitThis: c.explicitThis, explicitC: c.explicitC, explicitProperty: c.explicitProperty, explicitVoid: c.explicitVoid} : { 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: 12, >n : number @@ -700,8 +700,8 @@ let unboundToSpecified: (this: { y: number }, x: number) => number = x => x + th > : ^^^^^^ >x : number > : ^^^^^^ ->x => x + this.y : (this: { y: number; }, x: number) => any -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +>x => x + this.y : (this: { y: number; }, x: number) => number +> : ^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >x + this.y : any @@ -753,7 +753,7 @@ let unspecifiedLambda: (x: number) => number = x => x + 12; >x : number > : ^^^^^^ >x => x + 12 : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : number > : ^^^^^^ >x + 12 : number @@ -771,7 +771,7 @@ let specifiedLambda: (this: void, x: number) => number = x => x + 12; >x : number > : ^^^^^^ >x => x + 12 : (this: void, x: number) => number -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >x + 12 : number @@ -790,8 +790,8 @@ let unspecifiedLambdaToSpecified: (this: {y: number}, x: number) => number = uns > : ^^^^^^ >x : number > : ^^^^^^ ->unspecifiedLambda : (x: number) => number -> : ^ ^^ ^^^^^ +>unspecifiedLambda : (this: { y: number; }, x: number) => number +> : ^ ^^ ^^ ^^ ^^^^^ let specifiedLambdaToSpecified: (this: {y: number}, x: number) => number = specifiedLambda; >specifiedLambdaToSpecified : (this: { y: number; }, x: number) => number @@ -802,8 +802,8 @@ let specifiedLambdaToSpecified: (this: {y: number}, x: number) => number = speci > : ^^^^^^ >x : number > : ^^^^^^ ->specifiedLambda : (this: void, x: number) => number -> : ^ ^^ ^^ ^^ ^^^^^ +>specifiedLambda : (this: { y: number; }, x: number) => number +> : ^ ^^ ^^ ^^ ^^^^^ let explicitCFunction: (this: C, m: number) => number; diff --git a/tests/baselines/reference/thisTypeInFunctionsNegative.errors.txt b/tests/baselines/reference/thisTypeInFunctionsNegative.errors.txt index 5ce0e368dcd30..cf40801695b66 100644 --- a/tests/baselines/reference/thisTypeInFunctionsNegative.errors.txt +++ b/tests/baselines/reference/thisTypeInFunctionsNegative.errors.txt @@ -27,7 +27,7 @@ thisTypeInFunctionsNegative.ts(80,20): error TS2554: Expected 1 arguments, but g thisTypeInFunctionsNegative.ts(81,3): error TS2554: Expected 1 arguments, but got 0. thisTypeInFunctionsNegative.ts(82,20): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. thisTypeInFunctionsNegative.ts(83,24): error TS2554: Expected 1 arguments, but got 2. -thisTypeInFunctionsNegative.ts(86,5): error TS2322: Type '(this: { y: number; }, x: number) => number' is not assignable to type '(this: void, x: number) => number'. +thisTypeInFunctionsNegative.ts(86,58): error TS2322: Type '(this: { y: number; }, x: number) => number' is not assignable to type '(this: void, x: number) => number'. The 'this' types of each signature are incompatible. Type 'void' is not assignable to type '{ y: number; }'. thisTypeInFunctionsNegative.ts(107,1): error TS2322: Type '(this: D, m: number) => number' is not assignable to type '(this: C, m: number) => number'. @@ -242,7 +242,7 @@ thisTypeInFunctionsNegative.ts(178,22): error TS2730: An arrow function cannot h // oops, this triggers contextual typing, which needs to be updated to understand that =>'s `this` is void. let specifiedToVoid: (this: void, x: number) => number = explicitStructural; - ~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '(this: { y: number; }, x: number) => number' is not assignable to type '(this: void, x: number) => number'. !!! error TS2322: The 'this' types of each signature are incompatible. !!! error TS2322: Type 'void' is not assignable to type '{ y: number; }'. diff --git a/tests/baselines/reference/thisTypeInFunctionsNegative.types b/tests/baselines/reference/thisTypeInFunctionsNegative.types index 83e099ead1640..2c85de3b526d4 100644 --- a/tests/baselines/reference/thisTypeInFunctionsNegative.types +++ b/tests/baselines/reference/thisTypeInFunctionsNegative.types @@ -199,8 +199,8 @@ interface I { let impl: I = { >impl : I > : ^ ->{ a: 12, explicitVoid1() { return this.a; // error, no 'a' in 'void' }, explicitVoid2: () => this.a, // ok, `this:any` because it refers to an outer object explicitStructural: () => 12, explicitInterface: () => 12, explicitThis() { return this.a; },} : { a: number; explicitVoid1(this: void): any; explicitVoid2: () => any; explicitStructural: () => number; explicitInterface: () => number; explicitThis(this: I): number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +>{ a: 12, explicitVoid1() { return this.a; // error, no 'a' in 'void' }, explicitVoid2: () => this.a, // ok, `this:any` because it refers to an outer object explicitStructural: () => 12, explicitInterface: () => 12, explicitThis() { return this.a; },} : I +> : ^ a: 12, >a : number @@ -372,8 +372,8 @@ let ok: {y: number, f: (this: { y: number }, x: number) => number} = { y: 12, ex > : ^^^^^^ >x : number > : ^^^^^^ ->{ y: 12, explicitStructural } : { y: number; explicitStructural: (this: { y: number; }, x: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +>{ y: 12, explicitStructural } : { y: number; f: (this: { y: number; }, x: number) => number; } +> : ^^^^^ ^^^^^ ^^^ >y : number > : ^^^^^^ >12 : 12 @@ -394,8 +394,8 @@ let wrongPropertyType: {y: string, f: (this: { y: number }, x: number) => number > : ^^^^^^ >x : number > : ^^^^^^ ->{ y: 'foo', explicitStructural } : { y: string; explicitStructural: (this: { y: number; }, x: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +>{ y: 'foo', explicitStructural } : { y: string; f: (this: { y: number; }, x: number) => number; } +> : ^^^^^ ^^^^^ ^^^ >y : string > : ^^^^^^ >'foo' : "foo" @@ -416,8 +416,8 @@ let wrongPropertyName: {wrongName: number, f: (this: { y: number }, x: number) = > : ^^^^^^ >x : number > : ^^^^^^ ->{ wrongName: 12, explicitStructural } : { wrongName: number; explicitStructural: (this: { y: number; }, x: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +>{ wrongName: 12, explicitStructural } : { wrongName: number; f: (this: { y: number; }, x: number) => number; } +> : ^^^^^^^^^^^^^ ^^^^^ ^^^ >wrongName : number > : ^^^^^^ >12 : 12 @@ -645,8 +645,8 @@ let specifiedToVoid: (this: void, x: number) => number = explicitStructural; > : ^^^^ >x : number > : ^^^^^^ ->explicitStructural : (this: { y: number; }, x: number) => number -> : ^ ^^ ^^ ^^ ^^^^^ +>explicitStructural : (this: void, 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; } @@ -691,8 +691,8 @@ let reconstructed: { > : ^^^^^^ } = { ->{ n: 12, explicitThis: c.explicitThis, explicitC: c.explicitC, explicitProperty: c.explicitProperty, explicitVoid: c.explicitVoid} : { 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: 12, explicitThis: c.explicitThis, explicitC: c.explicitC, explicitProperty: c.explicitProperty, explicitVoid: c.explicitVoid} : { 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: 12, >n : number diff --git a/tests/baselines/reference/thisTypeInObjectLiterals.types b/tests/baselines/reference/thisTypeInObjectLiterals.types index 3360254d41d1a..88082be3f03a4 100644 --- a/tests/baselines/reference/thisTypeInObjectLiterals.types +++ b/tests/baselines/reference/thisTypeInObjectLiterals.types @@ -173,6 +173,6 @@ interface I { var impl: I = mutuallyRecursive; >impl : I > : ^ ->mutuallyRecursive : { a: number; start(): number; passthrough(n: number): number; sub1(n: number): number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +>mutuallyRecursive : I +> : ^ diff --git a/tests/baselines/reference/thisTypeInObjectLiterals2.types b/tests/baselines/reference/thisTypeInObjectLiterals2.types index 05cb646d4eea8..f0a145cd20926 100644 --- a/tests/baselines/reference/thisTypeInObjectLiterals2.types +++ b/tests/baselines/reference/thisTypeInObjectLiterals2.types @@ -135,8 +135,8 @@ type Point = { let p1: Point = { >p1 : Point > : ^^^^^ ->{ x: 10, y: 20, moveBy(dx, dy, dz) { this.x += dx; this.y += dy; if (this.z && dz) { this.z += dz; } }} : { x: number; y: number; moveBy(dx: number, dy: number, dz: number | undefined): void; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 10, y: 20, moveBy(dx, dy, dz) { this.x += dx; this.y += dy; if (this.z && dz) { this.z += dz; } }} : Point +> : ^^^^^ x: 10, >x : number @@ -214,8 +214,8 @@ let p1: Point = { let p2: Point | null = { >p2 : Point | null > : ^^^^^^^^^^^^ ->{ x: 10, y: 20, moveBy(dx, dy, dz) { this.x += dx; this.y += dy; if (this.z && dz) { this.z += dz; } }} : { x: number; y: number; moveBy(dx: number, dy: number, dz: number | undefined): void; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 10, y: 20, moveBy(dx, dy, dz) { this.x += dx; this.y += dy; if (this.z && dz) { this.z += dz; } }} : Point | null +> : ^^^^^^^^^^^^ x: 10, >x : number @@ -293,8 +293,8 @@ let p2: Point | null = { let p3: Point | undefined = { >p3 : Point | undefined > : ^^^^^^^^^^^^^^^^^ ->{ x: 10, y: 20, moveBy(dx, dy, dz) { this.x += dx; this.y += dy; if (this.z && dz) { this.z += dz; } }} : { x: number; y: number; moveBy(dx: number, dy: number, dz: number | undefined): void; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 10, y: 20, moveBy(dx, dy, dz) { this.x += dx; this.y += dy; if (this.z && dz) { this.z += dz; } }} : Point | undefined +> : ^^^^^^^^^^^^^^^^^ x: 10, >x : number @@ -372,8 +372,8 @@ let p3: Point | undefined = { let p4: Point | null | undefined = { >p4 : Point | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^ ->{ x: 10, y: 20, moveBy(dx, dy, dz) { this.x += dx; this.y += dy; if (this.z && dz) { this.z += dz; } }} : { x: number; y: number; moveBy(dx: number, dy: number, dz: number | undefined): void; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 10, y: 20, moveBy(dx, dy, dz) { this.x += dx; this.y += dy; if (this.z && dz) { this.z += dz; } }} : Point | null | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^ x: 10, >x : number diff --git a/tests/baselines/reference/thisWhenTypeCheckFails.errors.txt b/tests/baselines/reference/thisWhenTypeCheckFails.errors.txt index db465a5e215e9..82bb83468b1c0 100644 --- a/tests/baselines/reference/thisWhenTypeCheckFails.errors.txt +++ b/tests/baselines/reference/thisWhenTypeCheckFails.errors.txt @@ -1,4 +1,4 @@ -thisWhenTypeCheckFails.ts(4,17): error TS2322: Type 'void' is not assignable to type 'string'. +thisWhenTypeCheckFails.ts(4,29): error TS2322: Type 'void' is not assignable to type 'string'. ==== thisWhenTypeCheckFails.ts (1 errors) ==== @@ -6,7 +6,7 @@ thisWhenTypeCheckFails.ts(4,17): error TS2322: Type 'void' is not assignable to public n() { var k = () => { var s: string = this.n(); - ~ + ~~~~~~~~ !!! error TS2322: Type 'void' is not assignable to type 'string'. } } diff --git a/tests/baselines/reference/tryCatchFinallyControlFlow.types b/tests/baselines/reference/tryCatchFinallyControlFlow.types index a6d1212418f1a..613565159d9de 100644 --- a/tests/baselines/reference/tryCatchFinallyControlFlow.types +++ b/tests/baselines/reference/tryCatchFinallyControlFlow.types @@ -65,8 +65,8 @@ function f2() { let x: 0 | 1 | 2 | 3 = 0; >x : 0 | 1 | 2 | 3 > : ^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ try { x = 1; @@ -95,8 +95,8 @@ function f2() { } finally { x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ } x; // 1 >x : 1 @@ -110,8 +110,8 @@ function f3() { let x: 0 | 1 | 2 | 3 = 0; >x : 0 | 1 | 2 | 3 > : ^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ try { x = 1; @@ -138,8 +138,8 @@ function f3() { } finally { x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ } x; // 1 >x : 1 @@ -153,8 +153,8 @@ function f4() { let x: 0 | 1 | 2 | 3 = 0; >x : 0 | 1 | 2 | 3 > : ^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ try { x = 1; @@ -179,8 +179,8 @@ function f4() { } finally { x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ } x; // 1 | 2 >x : 1 | 2 @@ -194,8 +194,8 @@ function f5() { let x: 0 | 1 | 2 | 3 = 0; >x : 0 | 1 | 2 | 3 > : ^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ try { x = 1; @@ -222,8 +222,8 @@ function f5() { } finally { x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ } x; // 2 >x : 2 @@ -237,8 +237,8 @@ function f6() { let x: 0 | 1 | 2 | 3 = 0; >x : 0 | 1 | 2 | 3 > : ^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ try { x = 1; @@ -265,8 +265,8 @@ function f6() { } finally { x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ } x; // 1 >x : 1 @@ -280,8 +280,8 @@ function f7() { let x: 0 | 1 | 2 | 3 = 0; >x : 0 | 1 | 2 | 3 > : ^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ try { x = 1; @@ -310,8 +310,8 @@ function f7() { } finally { x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ } x; // Unreachable >x : 0 | 1 | 2 | 3 @@ -325,8 +325,8 @@ function f8() { let x: 0 | 1 = 0; >x : 0 | 1 > : ^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 +> : ^^^^^ (() => { >(() => { try { x = 1; return; } finally { x; // 0 | 1 } x; // Unreachable })() : void @@ -369,8 +369,8 @@ function f9() { let x: 0 | 1 | 2 = 0; >x : 0 | 1 | 2 > : ^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 +> : ^^^^^^^^^ (() => { >(() => { try { if (!!true) { x = 1; return; } } finally { x; // 0 | 1 } x; // 0 x = 2; })() : void @@ -402,12 +402,12 @@ function f9() { } finally { x; // 0 | 1 ->x : 0 | 1 -> : ^^^^^ +>x : 0 | 1 | 2 +> : ^^^^^^^^^ } x; // 0 ->x : 0 -> : ^ +>x : 0 | 1 | 2 +> : ^^^^^^^^^ x = 2; >x = 2 : 2 @@ -430,8 +430,8 @@ function f10() { let x: 0 | 1 | 2 | 3 = 0; >x : 0 | 1 | 2 | 3 > : ^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ (() => { >(() => { try { x = 1; return; } catch (e) { x = 2; } finally { x; // 0 | 1 | 2 } x; // 2 x = 3; })() : void @@ -466,8 +466,8 @@ function f10() { } finally { x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 +> : ^^^^^^^^^^^^^ } x; // 2 >x : 2 @@ -494,8 +494,8 @@ function f11() { let x: 0 | 1 | 2 | 3 | 4 | 5 = 0; >x : 0 | 1 | 2 | 3 | 4 | 5 > : ^^^^^^^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 | 4 | 5 +> : ^^^^^^^^^^^^^^^^^^^^^ (() => { >(() => { try { if (!!true) { x = 1; return; } if (!!true) { x = 2; throw 0; } } catch (e) { x; // 0 | 1 | 2 x = 3; } finally { x; // 0 | 1 | 2 | 3 if (!!true) { x = 4; } } x; // 0 | 3 | 4 x = 5; })() : void @@ -550,8 +550,8 @@ function f11() { > : ^^^^^^^ x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 | 4 | 5 +> : ^^^^^^^^^^^^^^^^^^^^^ x = 3; >x = 3 : 3 @@ -563,8 +563,8 @@ function f11() { } finally { x; // 0 | 1 | 2 | 3 ->x : 0 | 1 | 2 | 3 -> : ^^^^^^^^^^^^^ +>x : 0 | 1 | 2 | 3 | 4 | 5 +> : ^^^^^^^^^^^^^^^^^^^^^ if (!!true) { >!!true : true @@ -584,8 +584,8 @@ function f11() { } } x; // 0 | 3 | 4 ->x : 0 | 3 | 4 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 | 4 | 5 +> : ^^^^^^^^^^^^^^^^^^^^^ x = 5; >x = 5 : 5 @@ -608,8 +608,8 @@ function f12() { let x: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 = 0; >x : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (() => { >(() => { try { if (!!true) { x = 1; return; } if (!!true) { x = 2; throw 0; } } catch (e) { x; // 0 | 1 | 2 x = 3; } finally { x; // 0 | 1 | 2 | 3 if (!!true) { x = 4; return; } if (!!true) { x = 5; return; } x = 6; return; x; // unreachable } x; // unreachable x = 7; // no effect })() : void @@ -664,8 +664,8 @@ function f12() { > : ^^^^^^^ x; // 0 | 1 | 2 ->x : 0 | 1 | 2 -> : ^^^^^^^^^ +>x : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ x = 3; >x = 3 : 3 @@ -677,8 +677,8 @@ function f12() { } finally { x; // 0 | 1 | 2 | 3 ->x : 0 | 1 | 2 | 3 -> : ^^^^^^^^^^^^^ +>x : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (!!true) { >!!true : true @@ -758,8 +758,8 @@ const main = () => { let hoge: string | undefined = undefined; >hoge : string | undefined > : ^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string | undefined +> : ^^^^^^^^^^^^^^^^^^ try { hoge = 'hoge!'; @@ -850,8 +850,8 @@ function notallowed(arg: number) { let state: State = { tag: "one" }; >state : State > : ^^^^^ ->{ tag: "one" } : { tag: "one"; } -> : ^^^^^^^^^^^^^^^ +>{ tag: "one" } : State +> : ^^^^^ >tag : "one" > : ^^^^^ >"one" : "one" @@ -947,8 +947,8 @@ function f20() { let x: 0 | 1 | 2 | 3 | 4 | 5 | 6 = 0; >x : 0 | 1 | 2 | 3 | 4 | 5 | 6 > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 | 4 | 5 | 6 +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ try { x = 1; @@ -1042,8 +1042,8 @@ function f21() { let x: 0 | 1 | 2 | 3 | 4 | 5 = 0; >x : 0 | 1 | 2 | 3 | 4 | 5 > : ^^^^^^^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : 0 | 1 | 2 | 3 | 4 | 5 +> : ^^^^^^^^^^^^^^^^^^^^^ try { x = 1; diff --git a/tests/baselines/reference/ts-expect-error.errors.txt b/tests/baselines/reference/ts-expect-error.errors.txt index 66ea5b9135cb4..f4b7bc99139ee 100644 --- a/tests/baselines/reference/ts-expect-error.errors.txt +++ b/tests/baselines/reference/ts-expect-error.errors.txt @@ -3,7 +3,7 @@ ts-expect-error.ts(11,1): error TS2578: Unused '@ts-expect-error' directive. ts-expect-error.ts(21,1): error TS2578: Unused '@ts-expect-error' directive. ts-expect-error.ts(24,1): error TS2578: Unused '@ts-expect-error' directive. ts-expect-error.ts(28,1): error TS2578: Unused '@ts-expect-error' directive. -ts-expect-error.ts(31,5): error TS2322: Type 'string' is not assignable to type 'number'. +ts-expect-error.ts(31,28): error TS2322: Type 'string' is not assignable to type 'number'. ts-expect-error.ts(37,2): error TS2367: This comparison appears to be unintentional because the types 'true' and 'false' have no overlap. ts-expect-error.ts(39,2): error TS2367: This comparison appears to be unintentional because the types 'true' and 'false' have no overlap. ts-expect-error.ts(40,2): error TS2367: This comparison appears to be unintentional because the types 'true' and 'false' have no overlap. @@ -51,7 +51,7 @@ ts-expect-error.ts(40,2): error TS2367: This comparison appears to be unintentio var validCommentedPlainMulti2: string = 'nope'; var invalidPlain: number = 'nope'; - ~~~~~~~~~~~~ + ~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. var validPlain: string = 'nope'; diff --git a/tests/baselines/reference/ts-expect-error.types b/tests/baselines/reference/ts-expect-error.types index de4290841db55..ff7ccc55225ef 100644 --- a/tests/baselines/reference/ts-expect-error.types +++ b/tests/baselines/reference/ts-expect-error.types @@ -5,7 +5,7 @@ var invalidCommentedFancySingle: number = 'nope'; >invalidCommentedFancySingle : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ /* @@ -13,28 +13,28 @@ var invalidCommentedFancySingle: number = 'nope'; var invalidCommentedFancyMulti: number = 'nope'; >invalidCommentedFancyMulti : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ // @ts-expect-error additional commenting var validCommentedFancySingle: string = 'nope'; >validCommentedFancySingle : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ /* @ts-expect-error additional commenting */ var validCommentedFancyMulti: string = 'nope'; >validCommentedFancyMulti : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ // @ts-expect-error var invalidCommentedPlainSingle: number = 'nope'; >invalidCommentedPlainSingle : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ /* @@ -42,21 +42,21 @@ var invalidCommentedPlainSingle: number = 'nope'; var invalidCommentedPlainMulti: number = 'nope'; >invalidCommentedPlainMulti : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ // @ts-expect-error var validCommentedPlainSingle: string = 'nope'; >validCommentedPlainSingle : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ /* @ts-expect-error */ var validCommentedPlainMulti1: string = 'nope'; >validCommentedPlainMulti1 : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ /* @@ -64,19 +64,19 @@ var validCommentedPlainMulti1: string = 'nope'; var validCommentedPlainMulti2: string = 'nope'; >validCommentedPlainMulti2 : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ var invalidPlain: number = 'nope'; >invalidPlain : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ var validPlain: string = 'nope'; >validPlain : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ // @ts-expect-error @@ -172,7 +172,7 @@ var validPlain: string = 'nope'; var invalidCommentedFancySingle: number = 'nope'; >invalidCommentedFancySingle : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ /* @@ -180,6 +180,6 @@ var invalidCommentedFancySingle: number = 'nope'; var invalidCommentedFancyMulti: number = 'nope'; >invalidCommentedFancyMulti : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ diff --git a/tests/baselines/reference/ts-ignore.errors.txt b/tests/baselines/reference/ts-ignore.errors.txt index 9a243eff4d8a4..9b6e6cb3f8c3b 100644 --- a/tests/baselines/reference/ts-ignore.errors.txt +++ b/tests/baselines/reference/ts-ignore.errors.txt @@ -1,4 +1,4 @@ -ts-ignore.ts(13,5): error TS2322: Type 'string' is not assignable to type 'number'. +ts-ignore.ts(13,28): error TS2322: Type 'string' is not assignable to type 'number'. ==== ts-ignore.ts (1 errors) ==== @@ -15,7 +15,7 @@ ts-ignore.ts(13,5): error TS2322: Type 'string' is not assignable to type 'numbe var validCommentedPlain: string = 'nope'; var invalidPlain: number = 'nope'; - ~~~~~~~~~~~~ + ~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. var validPlain: string = 'nope'; diff --git a/tests/baselines/reference/ts-ignore.types b/tests/baselines/reference/ts-ignore.types index 186f5eb9f6bbd..8032e8dbd991d 100644 --- a/tests/baselines/reference/ts-ignore.types +++ b/tests/baselines/reference/ts-ignore.types @@ -5,53 +5,53 @@ var invalidCommentedFancy: number = 'nope'; >invalidCommentedFancy : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ // @ts-ignore with additional commenting var validCommentedFancy: string = 'nope'; >validCommentedFancy : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ // @ts-ignore var invalidCommentedPlain: number = 'nope'; >invalidCommentedPlain : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ // @ts-ignore var validCommentedPlain: string = 'nope'; >validCommentedPlain : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ var invalidPlain: number = 'nope'; >invalidPlain : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ var validPlain: string = 'nope'; >validPlain : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ // @ts-ignore: with additional commenting var invalidCommentedFancy: number = 'nope'; >invalidCommentedFancy : number > : ^^^^^^ ->'nope' : "nope" +>'nope' : number > : ^^^^^^ // @ts-ignore: with additional commenting var validCommentedFancy: string = 'nope'; >validCommentedFancy : string > : ^^^^^^ ->'nope' : "nope" +>'nope' : string > : ^^^^^^ diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-preserveWatchOutput-is-not-used.js b/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-preserveWatchOutput-is-not-used.js index b3d80bcde8423..85e76ee49313c 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-preserveWatchOutput-is-not-used.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-preserveWatchOutput-is-not-used.js @@ -546,10 +546,10 @@ Output:: >> Screen clear [HH:MM:SS AM] File change detected. Starting incremental compilation... -logic/index.ts:8:5 - error TS2322: Type 'number' is not assignable to type 'string'. +logic/index.ts:8:17 - error TS2322: Type 'number' is not assignable to type 'string'. 8 let y: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 1 error. Watching for file changes. @@ -573,7 +573,7 @@ var y = 10; //# sourceMappingURL=index.js.map //// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] -{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileIdsList":[[2,3]],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n","-9234818176-export declare const World = \"hello\";\n",{"version":"-5319769398-import * as c from '../core/index';\nexport function getSecondsInDay() {\n return c.multiply(10, 15);\n}\nimport * as mod from '../core/anotherModule';\nexport const m = mod;\n\nlet y: string = 10;","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"root":[4],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"referencedMap":[[4,1]],"semanticDiagnosticsPerFile":[[4,[{"start":178,"length":1,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} +{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileIdsList":[[2,3]],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n","-9234818176-export declare const World = \"hello\";\n",{"version":"-5319769398-import * as c from '../core/index';\nexport function getSecondsInDay() {\n return c.multiply(10, 15);\n}\nimport * as mod from '../core/anotherModule';\nexport const m = mod;\n\nlet y: string = 10;","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"root":[4],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"referencedMap":[[4,1]],"semanticDiagnosticsPerFile":[[4,[{"start":190,"length":2,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} //// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo.readable.baseline.txt] { @@ -639,8 +639,8 @@ var y = 10; "./index.ts", [ { - "start": 178, - "length": 1, + "start": 190, + "length": 2, "code": 2322, "category": 1, "messageText": "Type 'number' is not assignable to type 'string'." @@ -707,10 +707,10 @@ Output:: >> Screen clear [HH:MM:SS AM] File change detected. Starting incremental compilation... -core/index.ts:5:5 - error TS2322: Type 'number' is not assignable to type 'string'. +core/index.ts:5:17 - error TS2322: Type 'number' is not assignable to type 'string'. 5 let x: string = 10; -   ~ +   ~~ @@ -728,7 +728,7 @@ var x = 10; //// [/user/username/projects/sample1/core/index.d.ts.map] file written with same contents //// [/user/username/projects/sample1/core/tsconfig.tsbuildinfo] -{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"-3090574810-export const World = \"hello\";","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-15390729096-export const someString: string = \"HELLO WORLD\";\nexport function leftPad(s: string, n: number) { return s + n; }\nexport function multiply(a: number, b: number) { return a * b; }\n\nlet x: string = 10;","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-7959511260-declare const dts: any;","affectsGlobalScope":true}],"root":[[2,4]],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"semanticDiagnosticsPerFile":[[3,[{"start":183,"length":1,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} +{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"-3090574810-export const World = \"hello\";","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-15390729096-export const someString: string = \"HELLO WORLD\";\nexport function leftPad(s: string, n: number) { return s + n; }\nexport function multiply(a: number, b: number) { return a * b; }\n\nlet x: string = 10;","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-7959511260-declare const dts: any;","affectsGlobalScope":true}],"root":[[2,4]],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"semanticDiagnosticsPerFile":[[3,[{"start":195,"length":2,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} //// [/user/username/projects/sample1/core/tsconfig.tsbuildinfo.readable.baseline.txt] { @@ -798,8 +798,8 @@ var x = 10; "./index.ts", [ { - "start": 183, - "length": 1, + "start": 195, + "length": 2, "code": 2322, "category": 1, "messageText": "Type 'number' is not assignable to type 'string'." @@ -822,10 +822,10 @@ Before running Timeout callback:: count: 1 Host is moving to new time After running Timeout callback:: count: 0 Output:: -logic/index.ts:8:5 - error TS2322: Type 'number' is not assignable to type 'string'. +logic/index.ts:8:17 - error TS2322: Type 'number' is not assignable to type 'string'. 8 let y: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 2 errors. Watching for file changes. @@ -913,10 +913,10 @@ Output:: >> Screen clear [HH:MM:SS AM] File change detected. Starting incremental compilation... -core/index.ts:5:5 - error TS2322: Type 'number' is not assignable to type 'string'. +core/index.ts:5:17 - error TS2322: Type 'number' is not assignable to type 'string'. 5 let x: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-preserveWatchOutput-is-passed-on-command-line.js b/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-preserveWatchOutput-is-passed-on-command-line.js index 99768174db114..f21cb782a5f71 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-preserveWatchOutput-is-passed-on-command-line.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-preserveWatchOutput-is-passed-on-command-line.js @@ -547,10 +547,10 @@ After running Timeout callback:: count: 0 Output:: [HH:MM:SS AM] File change detected. Starting incremental compilation... -logic/index.ts:8:5 - error TS2322: Type 'number' is not assignable to type 'string'. +logic/index.ts:8:17 - error TS2322: Type 'number' is not assignable to type 'string'. 8 let y: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 1 error. Watching for file changes. @@ -574,7 +574,7 @@ var y = 10; //# sourceMappingURL=index.js.map //// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] -{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileIdsList":[[2,3]],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n","-9234818176-export declare const World = \"hello\";\n",{"version":"-5319769398-import * as c from '../core/index';\nexport function getSecondsInDay() {\n return c.multiply(10, 15);\n}\nimport * as mod from '../core/anotherModule';\nexport const m = mod;\n\nlet y: string = 10;","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"root":[4],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"referencedMap":[[4,1]],"semanticDiagnosticsPerFile":[[4,[{"start":178,"length":1,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} +{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileIdsList":[[2,3]],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n","-9234818176-export declare const World = \"hello\";\n",{"version":"-5319769398-import * as c from '../core/index';\nexport function getSecondsInDay() {\n return c.multiply(10, 15);\n}\nimport * as mod from '../core/anotherModule';\nexport const m = mod;\n\nlet y: string = 10;","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"root":[4],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"referencedMap":[[4,1]],"semanticDiagnosticsPerFile":[[4,[{"start":190,"length":2,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} //// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo.readable.baseline.txt] { @@ -640,8 +640,8 @@ var y = 10; "./index.ts", [ { - "start": 178, - "length": 1, + "start": 190, + "length": 2, "code": 2322, "category": 1, "messageText": "Type 'number' is not assignable to type 'string'." @@ -708,10 +708,10 @@ After running Timeout callback:: count: 1 Output:: [HH:MM:SS AM] File change detected. Starting incremental compilation... -core/index.ts:5:5 - error TS2322: Type 'number' is not assignable to type 'string'. +core/index.ts:5:17 - error TS2322: Type 'number' is not assignable to type 'string'. 5 let x: string = 10; -   ~ +   ~~ @@ -729,7 +729,7 @@ var x = 10; //// [/user/username/projects/sample1/core/index.d.ts.map] file written with same contents //// [/user/username/projects/sample1/core/tsconfig.tsbuildinfo] -{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"-3090574810-export const World = \"hello\";","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-15390729096-export const someString: string = \"HELLO WORLD\";\nexport function leftPad(s: string, n: number) { return s + n; }\nexport function multiply(a: number, b: number) { return a * b; }\n\nlet x: string = 10;","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-7959511260-declare const dts: any;","affectsGlobalScope":true}],"root":[[2,4]],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"semanticDiagnosticsPerFile":[[3,[{"start":183,"length":1,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} +{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"-3090574810-export const World = \"hello\";","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-15390729096-export const someString: string = \"HELLO WORLD\";\nexport function leftPad(s: string, n: number) { return s + n; }\nexport function multiply(a: number, b: number) { return a * b; }\n\nlet x: string = 10;","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-7959511260-declare const dts: any;","affectsGlobalScope":true}],"root":[[2,4]],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"semanticDiagnosticsPerFile":[[3,[{"start":195,"length":2,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} //// [/user/username/projects/sample1/core/tsconfig.tsbuildinfo.readable.baseline.txt] { @@ -799,8 +799,8 @@ var x = 10; "./index.ts", [ { - "start": 183, - "length": 1, + "start": 195, + "length": 2, "code": 2322, "category": 1, "messageText": "Type 'number' is not assignable to type 'string'." @@ -823,10 +823,10 @@ Before running Timeout callback:: count: 1 Host is moving to new time After running Timeout callback:: count: 0 Output:: -logic/index.ts:8:5 - error TS2322: Type 'number' is not assignable to type 'string'. +logic/index.ts:8:17 - error TS2322: Type 'number' is not assignable to type 'string'. 8 let y: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 2 errors. Watching for file changes. @@ -915,10 +915,10 @@ After running Timeout callback:: count: 0 Output:: [HH:MM:SS AM] File change detected. Starting incremental compilation... -core/index.ts:5:5 - error TS2322: Type 'number' is not assignable to type 'string'. +core/index.ts:5:17 - error TS2322: Type 'number' is not assignable to type 'string'. 5 let x: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-stopBuildOnErrors-is-passed-on-command-line.js b/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-stopBuildOnErrors-is-passed-on-command-line.js index 59c8d689d53fa..38952c66db3ca 100644 --- a/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-stopBuildOnErrors-is-passed-on-command-line.js +++ b/tests/baselines/reference/tsbuildWatch/programUpdates/reportErrors/when-stopBuildOnErrors-is-passed-on-command-line.js @@ -546,10 +546,10 @@ Output:: >> Screen clear [HH:MM:SS AM] File change detected. Starting incremental compilation... -logic/index.ts:8:5 - error TS2322: Type 'number' is not assignable to type 'string'. +logic/index.ts:8:17 - error TS2322: Type 'number' is not assignable to type 'string'. 8 let y: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 1 error. Watching for file changes. @@ -573,7 +573,7 @@ var y = 10; //# sourceMappingURL=index.js.map //// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo] -{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileIdsList":[[2,3]],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n","-9234818176-export declare const World = \"hello\";\n",{"version":"-5319769398-import * as c from '../core/index';\nexport function getSecondsInDay() {\n return c.multiply(10, 15);\n}\nimport * as mod from '../core/anotherModule';\nexport const m = mod;\n\nlet y: string = 10;","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"root":[4],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"referencedMap":[[4,1]],"semanticDiagnosticsPerFile":[[4,[{"start":178,"length":1,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} +{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileIdsList":[[2,3]],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n","-9234818176-export declare const World = \"hello\";\n",{"version":"-5319769398-import * as c from '../core/index';\nexport function getSecondsInDay() {\n return c.multiply(10, 15);\n}\nimport * as mod from '../core/anotherModule';\nexport const m = mod;\n\nlet y: string = 10;","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"root":[4],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"referencedMap":[[4,1]],"semanticDiagnosticsPerFile":[[4,[{"start":190,"length":2,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} //// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo.readable.baseline.txt] { @@ -639,8 +639,8 @@ var y = 10; "./index.ts", [ { - "start": 178, - "length": 1, + "start": 190, + "length": 2, "code": 2322, "category": 1, "messageText": "Type 'number' is not assignable to type 'string'." @@ -706,15 +706,15 @@ Output:: >> Screen clear [HH:MM:SS AM] File change detected. Starting incremental compilation... -core/index.ts:5:5 - error TS2322: Type 'number' is not assignable to type 'string'. +core/index.ts:5:17 - error TS2322: Type 'number' is not assignable to type 'string'. 5 let x: string = 10; -   ~ +   ~~ -logic/index.ts:8:5 - error TS2322: Type 'number' is not assignable to type 'string'. +logic/index.ts:8:17 - error TS2322: Type 'number' is not assignable to type 'string'. 8 let y: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 2 errors. Watching for file changes. @@ -734,7 +734,7 @@ var x = 10; //// [/user/username/projects/sample1/core/index.d.ts.map] file written with same contents //// [/user/username/projects/sample1/core/tsconfig.tsbuildinfo] -{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"-3090574810-export const World = \"hello\";","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-15390729096-export const someString: string = \"HELLO WORLD\";\nexport function leftPad(s: string, n: number) { return s + n; }\nexport function multiply(a: number, b: number) { return a * b; }\n\nlet x: string = 10;","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-7959511260-declare const dts: any;","affectsGlobalScope":true}],"root":[[2,4]],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"semanticDiagnosticsPerFile":[[3,[{"start":183,"length":1,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} +{"fileNames":["../../../../../home/src/tslibs/ts/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"-3090574810-export const World = \"hello\";","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-15390729096-export const someString: string = \"HELLO WORLD\";\nexport function leftPad(s: string, n: number) { return s + n; }\nexport function multiply(a: number, b: number) { return a * b; }\n\nlet x: string = 10;","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-7959511260-declare const dts: any;","affectsGlobalScope":true}],"root":[[2,4]],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"semanticDiagnosticsPerFile":[[3,[{"start":195,"length":2,"code":2322,"category":1,"messageText":"Type 'number' is not assignable to type 'string'."}]]],"latestChangedDtsFile":"./index.d.ts","version":"FakeTSVersion"} //// [/user/username/projects/sample1/core/tsconfig.tsbuildinfo.readable.baseline.txt] { @@ -804,8 +804,8 @@ var x = 10; "./index.ts", [ { - "start": 183, - "length": 1, + "start": 195, + "length": 2, "code": 2322, "category": 1, "messageText": "Type 'number' is not assignable to type 'string'." @@ -878,10 +878,10 @@ Output:: >> Screen clear [HH:MM:SS AM] File change detected. Starting incremental compilation... -core/index.ts:5:5 - error TS2322: Type 'number' is not assignable to type 'string'. +core/index.ts:5:17 - error TS2322: Type 'number' is not assignable to type 'string'. 5 let x: string = 10; -   ~ +   ~~ [HH:MM:SS AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/resolutionCache/caching-works.js b/tests/baselines/reference/tscWatch/resolutionCache/caching-works.js index 804ec986c20ef..adf3a01b77caa 100644 --- a/tests/baselines/reference/tscWatch/resolutionCache/caching-works.js +++ b/tests/baselines/reference/tscWatch/resolutionCache/caching-works.js @@ -120,10 +120,10 @@ Output:: 1 import {x} from "f1"    ~~~~ -d/f0.ts:2:33 - error TS2322: Type 'number' is not assignable to type 'string'. +d/f0.ts:2:45 - error TS2322: Type 'number' is not assignable to type 'string'. 2 var x: string = 1; -   ~ +   ~ f1.ts:1:1 - error TS2304: Cannot find name 'foo'. diff --git a/tests/baselines/reference/tsserver/openfile/when-file-makes-edits-to-add/remove-comment-directives,-they-are-handled-correcrly.js b/tests/baselines/reference/tsserver/openfile/when-file-makes-edits-to-add/remove-comment-directives,-they-are-handled-correcrly.js index d1c09bb4a79d7..0a87416dd0356 100644 --- a/tests/baselines/reference/tsserver/openfile/when-file-makes-edits-to-add/remove-comment-directives,-they-are-handled-correcrly.js +++ b/tests/baselines/reference/tsserver/openfile/when-file-makes-edits-to-add/remove-comment-directives,-they-are-handled-correcrly.js @@ -323,11 +323,11 @@ Info seq [hh:mm:ss:mss] event: { "start": { "line": 4, - "offset": 9 + "offset": 21 }, "end": { "line": 4, - "offset": 10 + "offset": 22 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-gerErr-with-sync-commands.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-gerErr-with-sync-commands.js index 096b875d923ad..7ab0c1e5815ee 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-gerErr-with-sync-commands.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-gerErr-with-sync-commands.js @@ -562,11 +562,11 @@ Info seq [hh:mm:ss:mss] response: { "start": { "line": 6, - "offset": 12 + "offset": 24 }, "end": { "line": 6, - "offset": 13 + "offset": 26 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, @@ -760,11 +760,11 @@ Info seq [hh:mm:ss:mss] response: { "start": { "line": 6, - "offset": 12 + "offset": 24 }, "end": { "line": 6, - "offset": 13 + "offset": 26 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-getErr.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-getErr.js index 07b44179fe891..3d20daf888750 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-getErr.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-getErr.js @@ -579,11 +579,11 @@ Info seq [hh:mm:ss:mss] event: { "start": { "line": 6, - "offset": 12 + "offset": 24 }, "end": { "line": 6, - "offset": 13 + "offset": 26 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-geterrForProject.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-geterrForProject.js index bf80b588c303c..a068d9f94d663 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-geterrForProject.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-module-scenario-when-the-depedency-file-is-open-geterrForProject.js @@ -669,11 +669,11 @@ Info seq [hh:mm:ss:mss] event: { "start": { "line": 6, - "offset": 12 + "offset": 24 }, "end": { "line": 6, - "offset": 13 + "offset": 26 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-gerErr-with-sync-commands.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-gerErr-with-sync-commands.js index 6485607a3a599..97ba813e90635 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-gerErr-with-sync-commands.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-gerErr-with-sync-commands.js @@ -554,11 +554,11 @@ Info seq [hh:mm:ss:mss] response: { "start": { "line": 6, - "offset": 5 + "offset": 17 }, "end": { "line": 6, - "offset": 6 + "offset": 19 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, @@ -752,11 +752,11 @@ Info seq [hh:mm:ss:mss] response: { "start": { "line": 6, - "offset": 5 + "offset": 17 }, "end": { "line": 6, - "offset": 6 + "offset": 19 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-getErr.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-getErr.js index 1a9c87839734a..3e4d56f511a0d 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-getErr.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-getErr.js @@ -571,11 +571,11 @@ Info seq [hh:mm:ss:mss] event: { "start": { "line": 6, - "offset": 5 + "offset": 17 }, "end": { "line": 6, - "offset": 6 + "offset": 19 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, diff --git a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-geterrForProject.js b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-geterrForProject.js index 119559678dadb..c9c9e71cedf27 100644 --- a/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-geterrForProject.js +++ b/tests/baselines/reference/tsserver/projectReferenceErrors/with-non-module-when-the-depedency-file-is-open-geterrForProject.js @@ -661,11 +661,11 @@ Info seq [hh:mm:ss:mss] event: { "start": { "line": 6, - "offset": 5 + "offset": 17 }, "end": { "line": 6, - "offset": 6 + "offset": 19 }, "text": "Type 'number' is not assignable to type 'string'.", "code": 2322, diff --git a/tests/baselines/reference/tsxStatelessFunctionComponents3.types b/tests/baselines/reference/tsxStatelessFunctionComponents3.types index 8cf998091eec3..2584c81d8b42a 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponents3.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponents3.types @@ -32,8 +32,8 @@ var MainMenu: React.StatelessComponent<{}> = (props) => (
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >React : any > : ^^^ ->(props) => (

Main Menu

) : (props: { children?: React.ReactNode; }) => JSX.Element -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>(props) => (

Main Menu

) : React.StatelessComponent<{}> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >props : { children?: React.ReactNode; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(

Main Menu

) : JSX.Element @@ -61,8 +61,8 @@ var App: React.StatelessComponent<{ children }> = ({children}) => ( >React : any > : ^^^ >children : any ->({children}) => (
) : ({ children }: { children: any; } & { children?: React.ReactNode; }) => JSX.Element -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>({children}) => (
) : React.StatelessComponent<{ children: any; }> +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >children : any > : ^^^ >(
) : JSX.Element diff --git a/tests/baselines/reference/tsxUnionSpread.types b/tests/baselines/reference/tsxUnionSpread.types index 1b43b947f59c2..bbf750f6652ba 100644 --- a/tests/baselines/reference/tsxUnionSpread.types +++ b/tests/baselines/reference/tsxUnionSpread.types @@ -74,8 +74,8 @@ var component = var props2:AnimalInfo = { type: 'Cat', subType: 'Large' }; >props2 : AnimalInfo > : ^^^^^^^^^^ ->{ type: 'Cat', subType: 'Large' } : { type: "Cat"; subType: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ type: 'Cat', subType: 'Large' } : AnimalInfo +> : ^^^^^^^^^^ >type : "Cat" > : ^^^^^ >'Cat' : "Cat" @@ -90,6 +90,6 @@ var component2 = > : error >AnimalComponent : (info: AnimalInfo) => JSX.Element > : ^ ^^ ^^^^^ ->props2 : CatInfo -> : ^^^^^^^ +>props2 : AnimalInfo +> : ^^^^^^^^^^ diff --git a/tests/baselines/reference/tupleElementTypes1.types b/tests/baselines/reference/tupleElementTypes1.types index 2526946cdf8cb..92987c50f0670 100644 --- a/tests/baselines/reference/tupleElementTypes1.types +++ b/tests/baselines/reference/tupleElementTypes1.types @@ -6,8 +6,8 @@ var [a, b]: [number, any] = [undefined, undefined]; > : ^^^^^^ >b : any > : ^^^ ->[undefined, undefined] : [undefined, undefined] -> : ^^^^^^^^^^^^^^^^^^^^^^ +>[undefined, undefined] : [number, any] +> : ^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ >undefined : undefined diff --git a/tests/baselines/reference/tupleTypes.types b/tests/baselines/reference/tupleTypes.types index 51f39e12cc9d1..35a68e801ca7f 100644 --- a/tests/baselines/reference/tupleTypes.types +++ b/tests/baselines/reference/tupleTypes.types @@ -125,7 +125,7 @@ var tf: [string, (x: string) => number] = ["hello", x => x.length]; >x : string > : ^^^^^^ >["hello", x => x.length] : [string, (x: string) => number] -> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^ >"hello" : "hello" > : ^^^^^^^ >x => x.length : (x: string) => number diff --git a/tests/baselines/reference/typeAliases.types b/tests/baselines/reference/typeAliases.types index aaf603b51f76c..03f89f990d6cb 100644 --- a/tests/baselines/reference/typeAliases.types +++ b/tests/baselines/reference/typeAliases.types @@ -283,8 +283,8 @@ f16(x); var y: StringAndBoolean = ["1", false]; >y : StringAndBoolean > : ^^^^^^^^^^^^^^^^ ->["1", false] : [string, false] -> : ^^^^^^^^^^^^^^^ +>["1", false] : StringAndBoolean +> : ^^^^^^^^^^^^^^^^ >"1" : "1" > : ^^^ >false : false diff --git a/tests/baselines/reference/typeAnnotationBestCommonTypeInArrayLiteral.types b/tests/baselines/reference/typeAnnotationBestCommonTypeInArrayLiteral.types index eeff8d4312fc1..b5c707529db05 100644 --- a/tests/baselines/reference/typeAnnotationBestCommonTypeInArrayLiteral.types +++ b/tests/baselines/reference/typeAnnotationBestCommonTypeInArrayLiteral.types @@ -29,8 +29,8 @@ interface IMenuItem { var menuData: IMenuItem[] = [ >menuData : IMenuItem[] > : ^^^^^^^^^^^ ->[ { "id": "ourLogo", "type": "image", "link": "", "icon": "modules/menu/logo.svg" }, { "id": "productName", "type": "default", "link": "", "text": "Product Name" }] : ({ id: string; type: string; link: string; icon: string; } | { id: string; type: string; link: string; text: string; })[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>[ { "id": "ourLogo", "type": "image", "link": "", "icon": "modules/menu/logo.svg" }, { "id": "productName", "type": "default", "link": "", "text": "Product Name" }] : IMenuItem[] +> : ^^^^^^^^^^^ { >{ "id": "ourLogo", "type": "image", "link": "", "icon": "modules/menu/logo.svg" } : { id: string; type: string; link: string; icon: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.types b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.types index 9057063a192e4..07a0b8f2f9f1e 100644 --- a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.types +++ b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.types @@ -10,8 +10,8 @@ type Test = { value: T }; // Error let zz: Test = { foo: "abc" }; // should error on comparison with Test >zz : Test > : ^^^^^^^^^ ->{ foo: "abc" } : { foo: string; } -> : ^^^^^^^^^^^^^^^^ +>{ foo: "abc" } : Test +> : ^^^^^^^^^ >foo : string > : ^^^^^^ >"abc" : "abc" @@ -20,8 +20,8 @@ let zz: Test = { foo: "abc" }; // should error on comparison with Test let zzy: Test = { value: {} }; >zzy : Test > : ^^^^^^^^^ ->{ value: {} } : { value: {}; } -> : ^^^^^^^^^^^^^^ +>{ value: {} } : Test +> : ^^^^^^^^^ >value : {} > : ^^ >{} : {} diff --git a/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.errors.txt b/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.errors.txt index 722cefcfbe3da..c9fd043508e09 100644 --- a/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.errors.txt +++ b/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.errors.txt @@ -1,5 +1,5 @@ -typeArgumentsShouldDisallowNonGenericOverloads.ts(10,5): error TS2322: Type 'number' is not assignable to type 'string'. -typeArgumentsShouldDisallowNonGenericOverloads.ts(11,5): error TS2322: Type 'string' is not assignable to type 'number'. +typeArgumentsShouldDisallowNonGenericOverloads.ts(10,17): error TS2322: Type 'number' is not assignable to type 'string'. +typeArgumentsShouldDisallowNonGenericOverloads.ts(11,17): error TS2322: Type 'string' is not assignable to type 'number'. ==== typeArgumentsShouldDisallowNonGenericOverloads.ts (2 errors) ==== @@ -13,8 +13,8 @@ typeArgumentsShouldDisallowNonGenericOverloads.ts(11,5): error TS2322: Type 'str var y: string = foo("hi"); // return type should be 'string' var w: string = foo("hi"); // should error - ~ + ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. var z: number = foo("hi"); // should error - ~ + ~~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.types b/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.types index cd64f6c52d76c..77d210fe2ccab 100644 --- a/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.types +++ b/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.types @@ -47,7 +47,7 @@ var y: string = foo("hi"); // return type should be 'string' var w: string = foo("hi"); // should error >w : string > : ^^^^^^ ->foo("hi") : number +>foo("hi") : string > : ^^^^^^ >foo : { (a: string): string; (a: T): number; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ @@ -57,7 +57,7 @@ var w: string = foo("hi"); // should error var z: number = foo("hi"); // should error >z : number > : ^^^^^^ ->foo("hi") : string +>foo("hi") : number > : ^^^^^^ >foo : { (a: string): string; (a: T): number; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/typeAssertionsWithIntersectionTypes01.types b/tests/baselines/reference/typeAssertionsWithIntersectionTypes01.types index 694a8752e8801..33f092edf2a1c 100644 --- a/tests/baselines/reference/typeAssertionsWithIntersectionTypes01.types +++ b/tests/baselines/reference/typeAssertionsWithIntersectionTypes01.types @@ -40,14 +40,14 @@ var x = { p1: 10, p2: 20, p3: 30 }; var y: I1 & I3 = x; >y : I1 & I3 > : ^^^^^^^ ->x : { p1: number; p2: number; p3: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : I1 & I3 +> : ^^^^^^^ var z: I2 = x; >z : I2 > : ^^ ->x : { p1: number; p2: number; p3: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : I2 +> : ^^ var a = z; >a : I1 & I3 diff --git a/tests/baselines/reference/typeAssertionsWithUnionTypes01.types b/tests/baselines/reference/typeAssertionsWithUnionTypes01.types index 2fe51cb085bbd..3871bf66e6dee 100644 --- a/tests/baselines/reference/typeAssertionsWithUnionTypes01.types +++ b/tests/baselines/reference/typeAssertionsWithUnionTypes01.types @@ -30,14 +30,14 @@ var x = { p1: 10, p2: 20 }; var y: number | I2 = x; >y : number | I2 > : ^^^^^^^^^^^ ->x : { p1: number; p2: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : number | I2 +> : ^^^^^^^^^^^ var z: I1 = x; >z : I1 > : ^^ ->x : { p1: number; p2: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x : I1 +> : ^^ var a = z; >a : number | I2 @@ -68,6 +68,6 @@ var d = y; > : ^^ >y : I1 > : ^^ ->y : I2 -> : ^^ +>y : number | I2 +> : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeAssignabilityErrorMessage.errors.txt b/tests/baselines/reference/typeAssignabilityErrorMessage.errors.txt index 42802d6a82cb8..621dbb87b4b46 100644 --- a/tests/baselines/reference/typeAssignabilityErrorMessage.errors.txt +++ b/tests/baselines/reference/typeAssignabilityErrorMessage.errors.txt @@ -1,6 +1,6 @@ typeAssignabilityErrorMessage.ts(14,5): error TS2739: Type 'ThroughStream' is missing the following properties from type 'ReadStream': f, g, h, i, j typeAssignabilityErrorMessage.ts(17,5): error TS2739: Type 'ThroughStream' is missing the following properties from type 'ReadStream': f, g, h, i, j -typeAssignabilityErrorMessage.ts(40,5): error TS2322: Type 'Foo' is not assignable to type 'Bar'. +typeAssignabilityErrorMessage.ts(40,22): error TS2322: Type 'Foo' is not assignable to type 'Bar'. Type 'Foo' is not assignable to type '{ foo: { what: number; }; }'. The types of 'foo.what' are incompatible between these types. Type 'string' is not assignable to type 'number'. @@ -57,7 +57,7 @@ typeAssignabilityErrorMessage.ts(42,5): error TS2345: Argument of type 'OtherWra declare let otherWrap: OtherWrap; let a: Bar = fooStr; - ~ + ~~~~~~ !!! error TS2322: Type 'Foo' is not assignable to type 'Bar'. !!! error TS2322: Type 'Foo' is not assignable to type '{ foo: { what: number; }; }'. !!! error TS2322: The types of 'foo.what' are incompatible between these types. diff --git a/tests/baselines/reference/typeAssignabilityErrorMessage.types b/tests/baselines/reference/typeAssignabilityErrorMessage.types index 426c33a2863e0..114fe1079916d 100644 --- a/tests/baselines/reference/typeAssignabilityErrorMessage.types +++ b/tests/baselines/reference/typeAssignabilityErrorMessage.types @@ -111,7 +111,7 @@ declare let otherWrap: OtherWrap; let a: Bar = fooStr; >a : Bar > : ^^^^^^^^^^^ ->fooStr : Foo +>fooStr : Bar > : ^^^^^^^^^^^ fun(otherWrap); diff --git a/tests/baselines/reference/typeCheckingInsideFunctionExpressionInArray.errors.txt b/tests/baselines/reference/typeCheckingInsideFunctionExpressionInArray.errors.txt index 354dd0b9510f7..457541ac3644d 100644 --- a/tests/baselines/reference/typeCheckingInsideFunctionExpressionInArray.errors.txt +++ b/tests/baselines/reference/typeCheckingInsideFunctionExpressionInArray.errors.txt @@ -1,4 +1,4 @@ -typeCheckingInsideFunctionExpressionInArray.ts(2,7): error TS2322: Type 'number' is not assignable to type 'string'. +typeCheckingInsideFunctionExpressionInArray.ts(2,19): error TS2322: Type 'number' is not assignable to type 'string'. typeCheckingInsideFunctionExpressionInArray.ts(3,5): error TS2322: Type 'Object' is not assignable to type 'string'. typeCheckingInsideFunctionExpressionInArray.ts(4,15): error TS2339: Property 'NonexistantMethod' does not exist on type 'number[]'. typeCheckingInsideFunctionExpressionInArray.ts(5,5): error TS2304: Cannot find name 'derp'. @@ -7,7 +7,7 @@ typeCheckingInsideFunctionExpressionInArray.ts(5,5): error TS2304: Cannot find n ==== typeCheckingInsideFunctionExpressionInArray.ts (4 errors) ==== var functions = [function () { var k: string = 10; - ~ + ~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. k = new Object(); ~ diff --git a/tests/baselines/reference/typeCheckingInsideFunctionExpressionInArray.types b/tests/baselines/reference/typeCheckingInsideFunctionExpressionInArray.types index 930f856e8fb18..d693215b323a9 100644 --- a/tests/baselines/reference/typeCheckingInsideFunctionExpressionInArray.types +++ b/tests/baselines/reference/typeCheckingInsideFunctionExpressionInArray.types @@ -12,8 +12,8 @@ var functions = [function () { var k: string = 10; >k : string > : ^^^^^^ ->10 : 10 -> : ^^ +>10 : string +> : ^^^^^^ k = new Object(); >k = new Object() : Object diff --git a/tests/baselines/reference/typeGuardFunction.types b/tests/baselines/reference/typeGuardFunction.types index fdd5fdfeab3ee..a81ac130aceae 100644 --- a/tests/baselines/reference/typeGuardFunction.types +++ b/tests/baselines/reference/typeGuardFunction.types @@ -257,8 +257,8 @@ let union2: C | B; let union3: boolean | B = isA(union2) || union2; >union3 : boolean | B > : ^^^^^^^^^^^ ->isA(union2) || union2 : true | B -> : ^^^^^^^^ +>isA(union2) || union2 : boolean | B +> : ^^^^^^^^^^^ >isA(union2) : boolean > : ^^^^^^^ >isA : (p1: any) => p1 is A diff --git a/tests/baselines/reference/typeGuardFunctionOfFormThis.types b/tests/baselines/reference/typeGuardFunctionOfFormThis.types index cb5b1ee2e18ea..104299c51e320 100644 --- a/tests/baselines/reference/typeGuardFunctionOfFormThis.types +++ b/tests/baselines/reference/typeGuardFunctionOfFormThis.types @@ -56,8 +56,8 @@ class FollowerGuard extends RoyalGuard { let a: RoyalGuard = new FollowerGuard(); >a : RoyalGuard > : ^^^^^^^^^^ ->new FollowerGuard() : FollowerGuard -> : ^^^^^^^^^^^^^ +>new FollowerGuard() : RoyalGuard +> : ^^^^^^^^^^ >FollowerGuard : typeof FollowerGuard > : ^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeGuardFunctionOfFormThisErrors.types b/tests/baselines/reference/typeGuardFunctionOfFormThisErrors.types index 28598a91262a4..80d0f14f19610 100644 --- a/tests/baselines/reference/typeGuardFunctionOfFormThisErrors.types +++ b/tests/baselines/reference/typeGuardFunctionOfFormThisErrors.types @@ -57,16 +57,16 @@ interface GuardInterface extends RoyalGuard {} let a: RoyalGuard = new FollowerGuard(); >a : RoyalGuard > : ^^^^^^^^^^ ->new FollowerGuard() : FollowerGuard -> : ^^^^^^^^^^^^^ +>new FollowerGuard() : RoyalGuard +> : ^^^^^^^^^^ >FollowerGuard : typeof FollowerGuard > : ^^^^^^^^^^^^^^^^^^^^ let b: GuardInterface = new LeadGuard(); >b : GuardInterface > : ^^^^^^^^^^^^^^ ->new LeadGuard() : LeadGuard -> : ^^^^^^^^^ +>new LeadGuard() : GuardInterface +> : ^^^^^^^^^^^^^^ >LeadGuard : typeof LeadGuard > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeGuardInClass.errors.txt b/tests/baselines/reference/typeGuardInClass.errors.txt index 9c668a335a84c..b2072ede696de 100644 --- a/tests/baselines/reference/typeGuardInClass.errors.txt +++ b/tests/baselines/reference/typeGuardInClass.errors.txt @@ -1,6 +1,6 @@ -typeGuardInClass.ts(6,17): error TS2322: Type 'string | number' is not assignable to type 'string'. +typeGuardInClass.ts(6,29): error TS2322: Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. -typeGuardInClass.ts(13,17): error TS2322: Type 'string | number' is not assignable to type 'number'. +typeGuardInClass.ts(13,29): error TS2322: Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. @@ -11,7 +11,7 @@ typeGuardInClass.ts(13,17): error TS2322: Type 'string | number' is not assignab let n = class { constructor() { let y: string = x; - ~ + ~ !!! error TS2322: Type 'string | number' is not assignable to type 'string'. !!! error TS2322: Type 'number' is not assignable to type 'string'. } @@ -21,7 +21,7 @@ typeGuardInClass.ts(13,17): error TS2322: Type 'string | number' is not assignab let m = class { constructor() { let y: number = x; - ~ + ~ !!! error TS2322: Type 'string | number' is not assignable to type 'number'. !!! error TS2322: Type 'string' is not assignable to type 'number'. } diff --git a/tests/baselines/reference/typeGuardInClass.types b/tests/baselines/reference/typeGuardInClass.types index 3cb864873d1a4..5c24c99ab8115 100644 --- a/tests/baselines/reference/typeGuardInClass.types +++ b/tests/baselines/reference/typeGuardInClass.types @@ -25,8 +25,8 @@ if (typeof x === "string") { let y: string = x; >y : string > : ^^^^^^ ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string +> : ^^^^^^ } } } @@ -41,8 +41,8 @@ else { let y: number = x; >y : number > : ^^^^^^ ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : number +> : ^^^^^^ } } } diff --git a/tests/baselines/reference/typeGuardOfFormInstanceOf.types b/tests/baselines/reference/typeGuardOfFormInstanceOf.types index d79e4ed446bd5..97867f3405707 100644 --- a/tests/baselines/reference/typeGuardOfFormInstanceOf.types +++ b/tests/baselines/reference/typeGuardOfFormInstanceOf.types @@ -204,8 +204,8 @@ str = ctor2 instanceof D1 && ctor2.p1; // D1 var r2: D1 | C2 = ctor2 instanceof C1 && ctor2; // C2 | D1 >r2 : C2 | D1 > : ^^^^^^^ ->ctor2 instanceof C1 && ctor2 : D1 -> : ^^ +>ctor2 instanceof C1 && ctor2 : C2 | D1 +> : ^^^^^^^ >ctor2 instanceof C1 : boolean > : ^^^^^^^ >ctor2 : C2 | D1 diff --git a/tests/baselines/reference/typeGuardOfFormInstanceOfOnInterface.types b/tests/baselines/reference/typeGuardOfFormInstanceOfOnInterface.types index 8e62dc720891d..9b3f47dde8926 100644 --- a/tests/baselines/reference/typeGuardOfFormInstanceOfOnInterface.types +++ b/tests/baselines/reference/typeGuardOfFormInstanceOfOnInterface.types @@ -211,8 +211,8 @@ str = c2Ord1 instanceof d1 && c2Ord1.p1; // D1 var r2: D1 | C2 = c2Ord1 instanceof c1 && c2Ord1; // C2 | D1 >r2 : C2 | D1 > : ^^^^^^^ ->c2Ord1 instanceof c1 && c2Ord1 : D1 -> : ^^ +>c2Ord1 instanceof c1 && c2Ord1 : C2 | D1 +> : ^^^^^^^ >c2Ord1 instanceof c1 : boolean > : ^^^^^^^ >c2Ord1 : C2 | D1 diff --git a/tests/baselines/reference/typeGuardOfFormIsType.types b/tests/baselines/reference/typeGuardOfFormIsType.types index f91abc018dbc4..a159b1acbcf7a 100644 --- a/tests/baselines/reference/typeGuardOfFormIsType.types +++ b/tests/baselines/reference/typeGuardOfFormIsType.types @@ -220,8 +220,8 @@ str = isD1(c2Ord1) && c2Ord1.p1; // D1 var r2: C2 | D1 = isC1(c2Ord1) && c2Ord1; // C2 | D1 >r2 : C2 | D1 > : ^^^^^^^ ->isC1(c2Ord1) && c2Ord1 : D1 -> : ^^ +>isC1(c2Ord1) && c2Ord1 : C2 | D1 +> : ^^^^^^^ >isC1(c2Ord1) : boolean > : ^^^^^^^ >isC1 : (x: any) => x is C1 diff --git a/tests/baselines/reference/typeGuardOfFormIsTypeOnInterfaces.types b/tests/baselines/reference/typeGuardOfFormIsTypeOnInterfaces.types index 448fbd6385633..abc1d88845c20 100644 --- a/tests/baselines/reference/typeGuardOfFormIsTypeOnInterfaces.types +++ b/tests/baselines/reference/typeGuardOfFormIsTypeOnInterfaces.types @@ -236,8 +236,8 @@ str = isD1(c2Ord1) && c2Ord1.p1; // D1 var r2: C2 | D1 = isC1(c2Ord1) && c2Ord1; // C2 | D1 >r2 : C2 | D1 > : ^^^^^^^ ->isC1(c2Ord1) && c2Ord1 : D1 -> : ^^ +>isC1(c2Ord1) && c2Ord1 : C2 | D1 +> : ^^^^^^^ >isC1(c2Ord1) : boolean > : ^^^^^^^ >isC1 : (x: any) => x is C1 diff --git a/tests/baselines/reference/typeGuardOfFormThisMember.types b/tests/baselines/reference/typeGuardOfFormThisMember.types index c81aba9070e46..dc6c2e511c015 100644 --- a/tests/baselines/reference/typeGuardOfFormThisMember.types +++ b/tests/baselines/reference/typeGuardOfFormThisMember.types @@ -92,8 +92,8 @@ namespace Test { let file: FileSystemObject = new File("foo/bar.txt", "foo"); >file : FileSystemObject > : ^^^^^^^^^^^^^^^^ ->new File("foo/bar.txt", "foo") : File -> : ^^^^ +>new File("foo/bar.txt", "foo") : FileSystemObject +> : ^^^^^^^^^^^^^^^^ >File : typeof File > : ^^^^^^^^^^^ >"foo/bar.txt" : "foo/bar.txt" diff --git a/tests/baselines/reference/typeGuardOfFormThisMemberErrors.types b/tests/baselines/reference/typeGuardOfFormThisMemberErrors.types index 31d51f9665696..dbc40e545c04c 100644 --- a/tests/baselines/reference/typeGuardOfFormThisMemberErrors.types +++ b/tests/baselines/reference/typeGuardOfFormThisMemberErrors.types @@ -92,8 +92,8 @@ namespace Test { let file: FileSystemObject = new File("foo/bar.txt", "foo"); >file : FileSystemObject > : ^^^^^^^^^^^^^^^^ ->new File("foo/bar.txt", "foo") : File -> : ^^^^ +>new File("foo/bar.txt", "foo") : FileSystemObject +> : ^^^^^^^^^^^^^^^^ >File : typeof File > : ^^^^^^^^^^^ >"foo/bar.txt" : "foo/bar.txt" diff --git a/tests/baselines/reference/typeGuardOfFormTypeOfBoolean.types b/tests/baselines/reference/typeGuardOfFormTypeOfBoolean.types index 88ad47eb3971d..df29138f766c7 100644 --- a/tests/baselines/reference/typeGuardOfFormTypeOfBoolean.types +++ b/tests/baselines/reference/typeGuardOfFormTypeOfBoolean.types @@ -177,8 +177,8 @@ if (typeof strOrNum === "boolean") { let z1: {} = strOrNum; // {} >z1 : {} > : ^^ ->strOrNum : never -> : ^^^^^ +>strOrNum : {} +> : ^^ } else { let z2: string | number = strOrNum; // string | number @@ -321,7 +321,7 @@ else { let z2: {} = strOrNum; // {} >z2 : {} > : ^^ ->strOrNum : never -> : ^^^^^ +>strOrNum : {} +> : ^^ } diff --git a/tests/baselines/reference/typeGuardOfFormTypeOfNumber.types b/tests/baselines/reference/typeGuardOfFormTypeOfNumber.types index c37639e359a17..c8a9b2d39eed7 100644 --- a/tests/baselines/reference/typeGuardOfFormTypeOfNumber.types +++ b/tests/baselines/reference/typeGuardOfFormTypeOfNumber.types @@ -104,8 +104,8 @@ else { var x: number | boolean = numOrBool; // number | boolean >x : number | boolean > : ^^^^^^^^^^^^^^^^ ->numOrBool : boolean -> : ^^^^^^^ +>numOrBool : number | boolean +> : ^^^^^^^^^^^^^^^^ } if (typeof strOrNumOrBool === "number") { >typeof strOrNumOrBool === "number" : boolean @@ -175,8 +175,8 @@ if (typeof strOrBool === "number") { let y1: {} = strOrBool; // {} >y1 : {} > : ^^ ->strOrBool : never -> : ^^^^^ +>strOrBool : {} +> : ^^ } else { let y2: string | boolean = strOrBool; // string | boolean @@ -229,8 +229,8 @@ if (typeof numOrBool !== "number") { var x: number | boolean = numOrBool; // number | boolean >x : number | boolean > : ^^^^^^^^^^^^^^^^ ->numOrBool : boolean -> : ^^^^^^^ +>numOrBool : number | boolean +> : ^^^^^^^^^^^^^^^^ } else { num = numOrBool; // number @@ -316,7 +316,7 @@ else { let y2: {} = strOrBool; // {} >y2 : {} > : ^^ ->strOrBool : never -> : ^^^^^ +>strOrBool : {} +> : ^^ } diff --git a/tests/baselines/reference/typeGuardOfFormTypeOfOther.errors.txt b/tests/baselines/reference/typeGuardOfFormTypeOfOther.errors.txt index d7be75b79a458..79ee8d1416d75 100644 --- a/tests/baselines/reference/typeGuardOfFormTypeOfOther.errors.txt +++ b/tests/baselines/reference/typeGuardOfFormTypeOfOther.errors.txt @@ -3,7 +3,7 @@ typeGuardOfFormTypeOfOther.ts(27,5): error TS2367: This comparison appears to be typeGuardOfFormTypeOfOther.ts(33,5): error TS2367: This comparison appears to be unintentional because the types '"string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap. typeGuardOfFormTypeOfOther.ts(40,5): error TS2322: Type 'string | C' is not assignable to type 'C'. Type 'string' is not assignable to type 'C'. -typeGuardOfFormTypeOfOther.ts(43,9): error TS2322: Type 'string | C' is not assignable to type 'string'. +typeGuardOfFormTypeOfOther.ts(43,22): error TS2322: Type 'string | C' is not assignable to type 'string'. Type 'C' is not assignable to type 'string'. typeGuardOfFormTypeOfOther.ts(46,5): error TS2367: This comparison appears to be unintentional because the types '"string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap. typeGuardOfFormTypeOfOther.ts(56,5): error TS2367: This comparison appears to be unintentional because the types '"string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap. @@ -65,7 +65,7 @@ typeGuardOfFormTypeOfOther.ts(75,5): error TS2367: This comparison appears to be } else { var r5: string = strOrC; // error: no narrowing to string - ~~ + ~~~~~~ !!! error TS2322: Type 'string | C' is not assignable to type 'string'. !!! error TS2322: Type 'C' is not assignable to type 'string'. } diff --git a/tests/baselines/reference/typeGuardOfFormTypeOfOther.types b/tests/baselines/reference/typeGuardOfFormTypeOfOther.types index 5acd032dc4a48..f73a4fd2f88e8 100644 --- a/tests/baselines/reference/typeGuardOfFormTypeOfOther.types +++ b/tests/baselines/reference/typeGuardOfFormTypeOfOther.types @@ -159,8 +159,8 @@ else { var r5: string = strOrC; // error: no narrowing to string >r5 : string > : ^^^^^^ ->strOrC : string | C -> : ^^^^^^^^^^ +>strOrC : string +> : ^^^^^^ } if (typeof strOrNumOrBool === "Object") { @@ -176,8 +176,8 @@ if (typeof strOrNumOrBool === "Object") { let q1: {} = strOrNumOrBool; // {} >q1 : {} > : ^^ ->strOrNumOrBool : never -> : ^^^^^ +>strOrNumOrBool : {} +> : ^^ } else { let q2: string | number | boolean = strOrNumOrBool; // string | number | boolean @@ -286,7 +286,7 @@ else { let q2: {} = strOrNumOrBool; // {} >q2 : {} > : ^^ ->strOrNumOrBool : never -> : ^^^^^ +>strOrNumOrBool : {} +> : ^^ } diff --git a/tests/baselines/reference/typeGuardOfFormTypeOfString.types b/tests/baselines/reference/typeGuardOfFormTypeOfString.types index 1d715ed4a9cb8..0de374fe5e0ae 100644 --- a/tests/baselines/reference/typeGuardOfFormTypeOfString.types +++ b/tests/baselines/reference/typeGuardOfFormTypeOfString.types @@ -177,8 +177,8 @@ if (typeof numOrBool === "string") { let x1: {} = numOrBool; // {} >x1 : {} > : ^^ ->numOrBool : never -> : ^^^^^ +>numOrBool : {} +> : ^^ } else { let x2: number | boolean = numOrBool; // number | boolean @@ -320,7 +320,7 @@ else { let x2: {} = numOrBool; // {} >x2 : {} > : ^^ ->numOrBool : never -> : ^^^^^ +>numOrBool : {} +> : ^^ } diff --git a/tests/baselines/reference/typeGuardsAsAssertions.types b/tests/baselines/reference/typeGuardsAsAssertions.types index a012e895329a2..53f66a053845a 100644 --- a/tests/baselines/reference/typeGuardsAsAssertions.types +++ b/tests/baselines/reference/typeGuardsAsAssertions.types @@ -66,12 +66,12 @@ export function fn(makeSome: () => r): void { let result: Optional = none; >result : Optional > : ^^^^^^^^^^^ ->none : None -> : ^^^^ +>none : Optional +> : ^^^^^^^^^^^ result; // None ->result : None -> : ^^^^ +>result : Optional +> : ^^^^^^^^^^^ while (cond) { >cond : boolean @@ -122,20 +122,20 @@ function foo1() { let x: string | number | boolean = 0; >x : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ x; // number ->x : number -> : ^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ while (cond) { >cond : boolean > : ^^^^^^^ x; // number, then string | number ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ x = typeof x === "string" ? x.slice() : "abc"; >x = typeof x === "string" ? x.slice() : "abc" : string @@ -148,8 +148,8 @@ function foo1() { > : ^^^^^^^ >typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >"string" : "string" > : ^^^^^^^^ >x.slice() : string @@ -168,8 +168,8 @@ function foo1() { > : ^^^^^^ } x; ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ } function foo2() { @@ -179,28 +179,28 @@ function foo2() { let x: string | number | boolean = 0; >x : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->0 : 0 -> : ^ +>0 : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ x; // number ->x : number -> : ^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ while (cond) { >cond : boolean > : ^^^^^^^ x; // number, then string | number ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ if (typeof x === "string") { >typeof x === "string" : boolean > : ^^^^^^^ >typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >"string" : "string" > : ^^^^^^^^ @@ -232,8 +232,8 @@ function foo2() { > : ^^^^^^ } x; ->x : string | number -> : ^^^^^^^^^^^^^^^ +>x : string | number | boolean +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ } // Type guards as assertions @@ -245,24 +245,24 @@ function f1() { let x: string | number | undefined = undefined; >x : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ x; // undefined ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (x) { ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ x; // string | number (guard as assertion) ->x : never -> : ^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ } x; // string | number | undefined ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ } function f2() { @@ -272,30 +272,30 @@ function f2() { let x: string | number | undefined = undefined; >x : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ x; // undefined ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (typeof x === "string") { >typeof x === "string" : boolean > : ^^^^^^^ >typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"string" : "string" > : ^^^^^^^^ x; // string (guard as assertion) ->x : never -> : ^^^^^ +>x : string +> : ^^^^^^ } x; // string | undefined ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ } function f3() { @@ -305,24 +305,24 @@ function f3() { let x: string | number | undefined = undefined; >x : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ x; // undefined ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (!x) { ->!x : true -> : ^^^^ ->x : undefined -> : ^^^^^^^^^ +>!x : boolean +> : ^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ return; } x; // string | number (guard as assertion) ->x : never -> : ^^^^^ +>x : string | number +> : ^^^^^^^^^^^^^^^ } function f4() { @@ -332,20 +332,20 @@ function f4() { let x: string | number | undefined = undefined; >x : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ x; // undefined ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (typeof x === "boolean") { >typeof x === "boolean" : boolean > : ^^^^^^^ >typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"boolean" : "boolean" > : ^^^^^^^^^ @@ -354,8 +354,8 @@ function f4() { > : ^^^^^ } x; // undefined ->x : undefined -> : ^^^^^^^^^ +>x : string | number | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ } function f5(x: string | number) { diff --git a/tests/baselines/reference/typeGuardsOnClassProperty.types b/tests/baselines/reference/typeGuardsOnClassProperty.types index dbdf7dcca523d..64259ce0747db 100644 --- a/tests/baselines/reference/typeGuardsOnClassProperty.types +++ b/tests/baselines/reference/typeGuardsOnClassProperty.types @@ -108,8 +108,8 @@ var o: { > : ^^^^^^^^^^^^^^^^ } = { ->{ prop1: "string" , prop2: true } : { prop1: string; prop2: true; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ prop1: "string" , prop2: true } : { prop1: number | string; prop2: boolean | string; } +> : ^^^^^^^^^ ^^^^^^^^^ ^^^ prop1: "string" , >prop1 : string diff --git a/tests/baselines/reference/typeGuardsTypeParameters.types b/tests/baselines/reference/typeGuardsTypeParameters.types index 40614718b6193..ece44549f71df 100644 --- a/tests/baselines/reference/typeGuardsTypeParameters.types +++ b/tests/baselines/reference/typeGuardsTypeParameters.types @@ -29,14 +29,14 @@ function f1(x: T) { let v1: T = x; >v1 : T > : ^ ->x : T & C -> : ^^^^^ +>x : T +> : ^ let v2: C = x; >v2 : C > : ^ ->x : T & C -> : ^^^^^ +>x : C +> : ^ x.prop; >x.prop : string @@ -67,14 +67,14 @@ function f2(x: T) { let v1: T = x; >v1 : T > : ^ ->x : T & string -> : ^^^^^^^^^^ +>x : T +> : ^ let v2: string = x; >v2 : string > : ^^^^^^ ->x : T & string -> : ^^^^^^^^^^ +>x : string +> : ^^^^^^ x.length; >x.length : number diff --git a/tests/baselines/reference/typeGuardsWithAny.types b/tests/baselines/reference/typeGuardsWithAny.types index 3e90540529cbd..ae9bb97e16b02 100644 --- a/tests/baselines/reference/typeGuardsWithAny.types +++ b/tests/baselines/reference/typeGuardsWithAny.types @@ -4,8 +4,8 @@ var x: any = { p: 0 }; >x : any > : ^^^ ->{ p: 0 } : { p: number; } -> : ^^^^^^^^^^^^^^ +>{ p: 0 } : any +> : ^^^ >p : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/typeInfer1.types b/tests/baselines/reference/typeInfer1.types index e2cfc59e7a3e9..dd0a22a219cc0 100644 --- a/tests/baselines/reference/typeInfer1.types +++ b/tests/baselines/reference/typeInfer1.types @@ -18,8 +18,8 @@ interface ITextWriter2 { var x: ITextWriter2 = { >x : ITextWriter2 > : ^^^^^^^^^^^^ ->{ Write: function (s:string):void {}, WriteLine: function(s:string):void {}} : { Write: (s: string) => void; WriteLine: (s: string) => void; } -> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +>{ Write: function (s:string):void {}, WriteLine: function(s:string):void {}} : ITextWriter2 +> : ^^^^^^^^^^^^ Write: function (s:string):void {}, >Write : (s: string) => void @@ -41,8 +41,8 @@ var x: ITextWriter2 = { var yyyyyyyy: ITextWriter2 = { >yyyyyyyy : ITextWriter2 > : ^^^^^^^^^^^^ ->{ Moo: function() { return "cow"; }} : { Moo: () => string; } -> : ^^^^^^^^^^^^^^^^^^^^^^ +>{ Moo: function() { return "cow"; }} : ITextWriter2 +> : ^^^^^^^^^^^^ Moo: function() { return "cow"; } >Moo : () => string diff --git a/tests/baselines/reference/typeMatch1.types b/tests/baselines/reference/typeMatch1.types index 4b11351c1160a..4ffc20fa5924a 100644 --- a/tests/baselines/reference/typeMatch1.types +++ b/tests/baselines/reference/typeMatch1.types @@ -34,8 +34,8 @@ var x2: { z:number;f:{(n:number):string;(s:string):number;}; } = x1; > : ^^^^^^ >s : string > : ^^^^^^ ->x1 : { z: number; f(n: number): string; f(s: string): number; } -> : ^^^^^ ^^^^ ^^ ^^^ ^^^^ ^^ ^^^ ^^^ +>x1 : { z: number; f: { (n: number): string; (s: string): number; }; } +> : ^^^^^ ^^^^^ ^^^ var i:I; >i : I @@ -50,22 +50,22 @@ var x3:{ z; }= i; > : ^^^^^^^^^^^ >z : any > : ^^^ ->i : I -> : ^ +>i : { z: any; } +> : ^^^^^^^^^^^ var x4:{ z; }= i2; >x4 : { z: any; } > : ^^^^^^^^^^^ >z : any > : ^^^ ->i2 : I2 -> : ^^ +>i2 : { z: any; } +> : ^^^^^^^^^^^ var x5:I=i2; >x5 : I > : ^ ->i2 : I2 -> : ^^ +>i2 : I +> : ^ class C { private x; } >C : C diff --git a/tests/baselines/reference/typeMatch2.types b/tests/baselines/reference/typeMatch2.types index 1f435a81d0c5a..0d6d08df00253 100644 --- a/tests/baselines/reference/typeMatch2.types +++ b/tests/baselines/reference/typeMatch2.types @@ -202,8 +202,8 @@ function f4() { var _any: any = 0; >_any : any > : ^^^ ->0 : 0 -> : ^ +>0 : any +> : ^^^ var i = 5; >i : number diff --git a/tests/baselines/reference/typeName1.errors.txt b/tests/baselines/reference/typeName1.errors.txt index cb692268ee8ee..937eed5ef0d52 100644 --- a/tests/baselines/reference/typeName1.errors.txt +++ b/tests/baselines/reference/typeName1.errors.txt @@ -1,20 +1,20 @@ -typeName1.ts(9,5): error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; f(n: number): string; }'. -typeName1.ts(10,5): error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; }'. -typeName1.ts(11,5): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. -typeName1.ts(12,5): error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. -typeName1.ts(13,5): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. -typeName1.ts(14,5): error TS2322: Type 'number' is not assignable to type '{ z: number; f: { (n: number): string; (s: string): number; }; }'. -typeName1.ts(15,5): error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. -typeName1.ts(16,5): error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. +typeName1.ts(9,51): error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; f(n: number): string; }'. +typeName1.ts(10,33): error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; }'. +typeName1.ts(11,49): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. +typeName1.ts(12,64): error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. +typeName1.ts(13,100): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. +typeName1.ts(14,63): error TS2322: Type 'number' is not assignable to type '{ z: number; f: { (n: number): string; (s: string): number; }; }'. +typeName1.ts(15,28): error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. typeName1.ts(16,10): error TS2411: Property 'z' of type 'I' is not assignable to 'string' index type '{ x: any; y: any; }'. -typeName1.ts(17,5): error TS2322: Type 'number' is not assignable to type 'I'. -typeName1.ts(18,5): error TS2322: Type 'number' is not assignable to type 'I[][][][]'. -typeName1.ts(19,5): error TS2322: Type 'number' is not assignable to type '{ z: I; x: boolean; }[][]'. -typeName1.ts(20,5): error TS2322: Type 'number' is not assignable to type '{ z: I; x: boolean; y: (s: string) => boolean; w: { (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }; }[][]'. +typeName1.ts(16,68): error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. +typeName1.ts(17,10): error TS2322: Type 'number' is not assignable to type 'I'. +typeName1.ts(18,19): error TS2322: Type 'number' is not assignable to type 'I[][][][]'. +typeName1.ts(19,30): error TS2322: Type 'number' is not assignable to type '{ z: I; x: boolean; }[][]'. typeName1.ts(20,50): error TS2411: Property 'z' of type 'I' is not assignable to 'string' index type '{ x: any; y: any; }'. -typeName1.ts(21,5): error TS2322: Type 'number' is not assignable to type '{ (): {}; new (): number; new (n: number): number; x: string; w: { y: number; }; }'. -typeName1.ts(22,5): error TS2322: Type 'number' is not assignable to type '{ (): string; f(x: number): boolean; p: any; q: any; }'. -typeName1.ts(23,5): error TS2322: Type 'typeof C' is not assignable to type 'number'. +typeName1.ts(20,114): error TS2322: Type 'number' is not assignable to type '{ z: I; x: boolean; y: (s: string) => boolean; w: { (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }; }[][]'. +typeName1.ts(21,88): error TS2322: Type 'number' is not assignable to type '{ (): {}; new (): number; new (n: number): number; x: string; w: { y: number; }; }'. +typeName1.ts(22,51): error TS2322: Type 'number' is not assignable to type '{ (): string; f(x: number): boolean; p: any; q: any; }'. +typeName1.ts(23,16): error TS2322: Type 'typeof C' is not assignable to type 'number'. ==== typeName1.ts (17 errors) ==== @@ -27,53 +27,53 @@ typeName1.ts(23,5): error TS2322: Type 'typeof C' is not assignable to type 'num } var x1:{ f(s:string):number;f(n:number):string; }=3; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; f(n: number): string; }'. var x2:{ f(s:string):number; } =3; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; }'. var x3:{ (s:string):number;(n:number):string; }=3; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. var x4:{ x;y;z:number;f(n:number):string;f(s:string):number; }=3; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. var x5:{ (s:string):number;(n:number):string;x;y;z:number;f(n:number):string;f(s:string):number; }=3; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. var x6:{ z:number;f:{(n:number):string;(s:string):number;}; }=3; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ z: number; f: { (n: number): string; (s: string): number; }; }'. var x7:(s:string)=>boolean=3; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. var x8:{ z:I;[s:string]:{ x; y; };[n:number]:{x; y;};():boolean; }=3; - ~~ -!!! error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. ~ !!! error TS2411: Property 'z' of type 'I' is not assignable to 'string' index type '{ x: any; y: any; }'. + ~ +!!! error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. var x9:I=3; - ~~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'I'. var x10:I[][][][]=3; - ~~~ + ~ !!! error TS2322: Type 'number' is not assignable to type 'I[][][][]'. var x11:{z:I;x:boolean;}[][]=3; - ~~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ z: I; x: boolean; }[][]'. var x12:{z:I;x:boolean;y:(s:string)=>boolean;w:{ z:I;[s:string]:{ x; y; };[n:number]:{x; y;};():boolean; };}[][]=3; - ~~~ -!!! error TS2322: Type 'number' is not assignable to type '{ z: I; x: boolean; y: (s: string) => boolean; w: { (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }; }[][]'. ~ !!! error TS2411: Property 'z' of type 'I' is not assignable to 'string' index type '{ x: any; y: any; }'. + ~ +!!! error TS2322: Type 'number' is not assignable to type '{ z: I; x: boolean; y: (s: string) => boolean; w: { (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }; }[][]'. var x13:{ new(): number; new(n:number):number; x: string; w: {y: number;}; (): {}; } = 3; - ~~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ (): {}; new (): number; new (n: number): number; x: string; w: { y: number; }; }'. var x14:{ f(x:number):boolean; p; q; ():string; }=3; - ~~~ + ~ !!! error TS2322: Type 'number' is not assignable to type '{ (): string; f(x: number): boolean; p: any; q: any; }'. var x15:number=C; - ~~~ + ~ !!! error TS2322: Type 'typeof C' is not assignable to type 'number'. diff --git a/tests/baselines/reference/typeName1.types b/tests/baselines/reference/typeName1.types index e74d94c737fef..f109cf2c30eab 100644 --- a/tests/baselines/reference/typeName1.types +++ b/tests/baselines/reference/typeName1.types @@ -30,8 +30,8 @@ var x1:{ f(s:string):number;f(n:number):string; }=3; > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >n : number > : ^^^^^^ ->3 : 3 -> : ^ +>3 : { f(s: string): number; f(n: number): string; } +> : ^^^^ ^^ ^^^ ^^^^ ^^ ^^^ ^^^ var x2:{ f(s:string):number; } =3; >x2 : { f(s: string): number; } @@ -40,8 +40,8 @@ var x2:{ f(s:string):number; } =3; > : ^ ^^ ^^^^^ >s : string > : ^^^^^^ ->3 : 3 -> : ^ +>3 : { f(s: string): number; } +> : ^^^^ ^^ ^^^ ^^^ var x3:{ (s:string):number;(n:number):string; }=3; >x3 : { (s: string): number; (n: number): string; } @@ -50,8 +50,8 @@ var x3:{ (s:string):number;(n:number):string; }=3; > : ^^^^^^ >n : number > : ^^^^^^ ->3 : 3 -> : ^ +>3 : { (s: string): number; (n: number): string; } +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ var x4:{ x;y;z:number;f(n:number):string;f(s:string):number; }=3; >x4 : { x: any; y: any; z: number; f(n: number): string; f(s: string): number; } @@ -70,8 +70,8 @@ var x4:{ x;y;z:number;f(n:number):string;f(s:string):number; }=3; > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >s : string > : ^^^^^^ ->3 : 3 -> : ^ +>3 : { x: any; y: any; z: number; f(n: number): string; f(s: string): number; } +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^ ^^^^ ^^ ^^^ ^^^ var x5:{ (s:string):number;(n:number):string;x;y;z:number;f(n:number):string;f(s:string):number; }=3; >x5 : { (s: string): number; (n: number): string; x: any; y: any; z: number; f(n: number): string; f(s: string): number; } @@ -94,8 +94,8 @@ var x5:{ (s:string):number;(n:number):string;x;y;z:number;f(n:number):string;f(s > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >s : string > : ^^^^^^ ->3 : 3 -> : ^ +>3 : { (s: string): number; (n: number): string; x: any; y: any; z: number; f(n: number): string; f(s: string): number; } +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^ ^^^^ ^^ ^^^ ^^^ var x6:{ z:number;f:{(n:number):string;(s:string):number;}; }=3; >x6 : { z: number; f: { (n: number): string; (s: string): number; }; } @@ -108,16 +108,16 @@ var x6:{ z:number;f:{(n:number):string;(s:string):number;}; }=3; > : ^^^^^^ >s : string > : ^^^^^^ ->3 : 3 -> : ^ +>3 : { z: number; f: { (n: number): string; (s: string): number; }; } +> : ^^^^^ ^^^^^ ^^^ var x7:(s:string)=>boolean=3; >x7 : (s: string) => boolean > : ^ ^^ ^^^^^ >s : string > : ^^^^^^ ->3 : 3 -> : ^ +>3 : (s: string) => boolean +> : ^ ^^ ^^^^^ var x8:{ z:I;[s:string]:{ x; y; };[n:number]:{x; y;};():boolean; }=3; >x8 : { (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; } @@ -136,20 +136,20 @@ var x8:{ z:I;[s:string]:{ x; y; };[n:number]:{x; y;};():boolean; }=3; > : ^^^ >y : any > : ^^^ ->3 : 3 -> : ^ +>3 : { (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; } +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var x9:I=3; >x9 : I > : ^ ->3 : 3 +>3 : I > : ^ var x10:I[][][][]=3; >x10 : I[][][][] > : ^^^^^^^^^ ->3 : 3 -> : ^ +>3 : I[][][][] +> : ^^^^^^^^^ var x11:{z:I;x:boolean;}[][]=3; >x11 : { z: I; x: boolean; }[][] @@ -158,8 +158,8 @@ var x11:{z:I;x:boolean;}[][]=3; > : ^ >x : boolean > : ^^^^^^^ ->3 : 3 -> : ^ +>3 : { z: I; x: boolean; }[][] +> : ^^^^^ ^^^^^ ^^^^^^^ var x12:{z:I;x:boolean;y:(s:string)=>boolean;w:{ z:I;[s:string]:{ x; y; };[n:number]:{x; y;};():boolean; };}[][]=3; >x12 : { z: I; x: boolean; y: (s: string) => boolean; w: { z: I; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; (): boolean; }; }[][] @@ -188,8 +188,8 @@ var x12:{z:I;x:boolean;y:(s:string)=>boolean;w:{ z:I;[s:string]:{ x; y; };[n:num > : ^^^ >y : any > : ^^^ ->3 : 3 -> : ^ +>3 : { z: I; x: boolean; y: (s: string) => boolean; w: { z: I; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; (): boolean; }; }[][] +> : ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^^ 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; }; } @@ -202,8 +202,8 @@ var x13:{ new(): number; new(n:number):number; x: string; w: {y: number;}; (): { > : ^^^^^ ^^^ >y : number > : ^^^^^^ ->3 : 3 -> : ^ +>3 : { (): {}; new (): number; new (n: number): number; x: string; w: { y: number; }; } +> : ^^^^^^ ^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^ ^^^ var x14:{ f(x:number):boolean; p; q; ():string; }=3; >x14 : { (): string; f(x: number): boolean; p: any; q: any; } @@ -216,14 +216,14 @@ var x14:{ f(x:number):boolean; p; q; ():string; }=3; > : ^^^ >q : any > : ^^^ ->3 : 3 -> : ^ +>3 : { (): string; f(x: number): boolean; p: any; q: any; } +> : ^^^^^^ ^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ var x15:number=C; >x15 : number > : ^^^^^^ ->C : typeof C -> : ^^^^^^^^ +>C : number +> : ^^^^^^ diff --git a/tests/baselines/reference/typeOfOperator1.errors.txt b/tests/baselines/reference/typeOfOperator1.errors.txt index c9201fb0137ac..7b19b1157a7f9 100644 --- a/tests/baselines/reference/typeOfOperator1.errors.txt +++ b/tests/baselines/reference/typeOfOperator1.errors.txt @@ -1,4 +1,4 @@ -typeOfOperator1.ts(3,5): error TS2322: Type 'string' is not assignable to type 'number'. +typeOfOperator1.ts(3,17): error TS2322: Type 'string' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. @@ -6,6 +6,6 @@ typeOfOperator1.ts(3,5): error TS2322: Type 'string' is not assignable to type ' var x = 1; var y: string = typeof x; var z: number = typeof x; - ~ + ~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/typeOfOperator1.types b/tests/baselines/reference/typeOfOperator1.types index 696228dcea280..57aca6b2f0832 100644 --- a/tests/baselines/reference/typeOfOperator1.types +++ b/tests/baselines/reference/typeOfOperator1.types @@ -10,16 +10,16 @@ var x = 1; var y: string = typeof x; >y : string > : ^^^^^^ ->typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>typeof x : string +> : ^^^^^^ >x : number > : ^^^^^^ var z: number = typeof x; >z : number > : ^^^^^^ ->typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>typeof x : number +> : ^^^^^^ >x : number > : ^^^^^^ diff --git a/tests/baselines/reference/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.errors.txt b/tests/baselines/reference/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.errors.txt index cdb401ad6d8fe..10859be95568b 100644 --- a/tests/baselines/reference/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.errors.txt +++ b/tests/baselines/reference/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.errors.txt @@ -1,4 +1,4 @@ -typeOfThisInstanceMemberNarrowedWithLoopAntecedent.ts(29,13): error TS2322: Type 'string | number' is not assignable to type 'number'. +typeOfThisInstanceMemberNarrowedWithLoopAntecedent.ts(29,25): error TS2322: Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'. @@ -32,7 +32,7 @@ typeOfThisInstanceMemberNarrowedWithLoopAntecedent.ts(29,13): error TS2322: Type this.state.data; } let n: number = this.state?.data; // This should be an error - ~ + ~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'string | number' is not assignable to type 'number'. !!! error TS2322: Type 'string' is not assignable to type 'number'. } diff --git a/tests/baselines/reference/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.types b/tests/baselines/reference/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.types index 13cadd488ef1c..60670a2e3b67f 100644 --- a/tests/baselines/reference/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.types +++ b/tests/baselines/reference/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.types @@ -139,15 +139,15 @@ class SomeClass2 { let n: number = this.state?.data; // This should be an error >n : number > : ^^^^^^ ->this.state?.data : string | number -> : ^^^^^^^^^^^^^^^ +>this.state?.data : number +> : ^^^^^^ >this.state : State > : ^^^^^ >this : this > : ^^^^ >state : State > : ^^^^^ ->data : string | number -> : ^^^^^^^^^^^^^^^ +>data : number +> : ^^^^^^ } } diff --git a/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter.errors.txt b/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter.errors.txt index 11e95c8421bb7..d24301772459e 100644 --- a/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter.errors.txt +++ b/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter.errors.txt @@ -1,4 +1,4 @@ -typeParameterConstrainedToOuterTypeParameter.ts(10,5): error TS2322: Type 'A' is not assignable to type 'B'. +typeParameterConstrainedToOuterTypeParameter.ts(10,20): error TS2322: Type 'A' is not assignable to type 'B'. Types of parameters 'x' and 'x' are incompatible. Type 'U' is not assignable to type 'string[]'. Type 'string' is not assignable to type 'string[]'. @@ -15,7 +15,7 @@ typeParameterConstrainedToOuterTypeParameter.ts(10,5): error TS2322: Type 'A var b: B = a; // assignment should be legal (both U's get instantiated to any for comparison) - ~ + ~ !!! error TS2322: Type 'A' is not assignable to type 'B'. !!! error TS2322: Types of parameters 'x' and 'x' are incompatible. !!! error TS2322: Type 'U' is not assignable to type 'string[]'. diff --git a/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter.types b/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter.types index 9ff9b55891336..611bf181efc5d 100644 --- a/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter.types +++ b/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter.types @@ -20,6 +20,6 @@ var a: A var b: B = a; // assignment should be legal (both U's get instantiated to any for comparison) >b : B > : ^^^^^^^^^ ->a : A +>a : B > : ^^^^^^^^^ diff --git a/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter2.types b/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter2.types index 586b1e2a1cbb8..ad5c5fb7966b8 100644 --- a/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter2.types +++ b/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter2.types @@ -24,6 +24,6 @@ var a: A var b: B = a; >b : B > : ^^^^^^^^^ ->a : A +>a : B > : ^^^^^^^^^ diff --git a/tests/baselines/reference/typeSatisfaction_contextualTyping2.types b/tests/baselines/reference/typeSatisfaction_contextualTyping2.types index 1dd76875863c7..e6f3323dae538 100644 --- a/tests/baselines/reference/typeSatisfaction_contextualTyping2.types +++ b/tests/baselines/reference/typeSatisfaction_contextualTyping2.types @@ -8,8 +8,8 @@ let obj: { f(s: string): void } & Record = { > : ^ ^^ ^^^^^ >s : string > : ^^^^^^ ->{ f(s) { }, // "incorrect" implicit any on 's' g(s) { }} satisfies { g(s: string): void } & Record : { f(s: any): void; g(s: string): void; } -> : ^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ +>{ f(s) { }, // "incorrect" implicit any on 's' g(s) { }} satisfies { g(s: string): void } & Record : { f(s: string): void; } & Record +> : ^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ f(s) { }, // "incorrect" implicit any on 's' g(s) { }} : { f(s: any): void; g(s: string): void; } > : ^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeVal.types b/tests/baselines/reference/typeVal.types index 6623fcada9f9f..afab68ab6f196 100644 --- a/tests/baselines/reference/typeVal.types +++ b/tests/baselines/reference/typeVal.types @@ -10,8 +10,8 @@ interface I { var I:I = { I: 3}; >I : I > : ^ ->{ I: 3} : { I: number; } -> : ^^^^^^^^^^^^^^ +>{ I: 3} : I +> : ^ >I : number > : ^^^^^^ >3 : 3 diff --git a/tests/baselines/reference/typeofInterface.types b/tests/baselines/reference/typeofInterface.types index 0e9b2467cb05c..ad0da4731ca9b 100644 --- a/tests/baselines/reference/typeofInterface.types +++ b/tests/baselines/reference/typeofInterface.types @@ -33,7 +33,7 @@ var j: typeof k.foo = { a: "hello" }; >foo : { a: string; } > : ^^^^^ ^^^ >{ a: "hello" } : { a: string; } -> : ^^^^^^^^^^^^^^ +> : ^^^^^ ^^^ >a : string > : ^^^^^^ >"hello" : "hello" diff --git a/tests/baselines/reference/typeofInternalModules.types b/tests/baselines/reference/typeofInternalModules.types index 4e54bf4628c36..c001533b1dfc1 100644 --- a/tests/baselines/reference/typeofInternalModules.types +++ b/tests/baselines/reference/typeofInternalModules.types @@ -73,8 +73,8 @@ var x3: typeof importUninst.P; // Error again var x4: Outer = Outer; >x4 : Outer > : ^^^^^ ->Outer : typeof Outer -> : ^^^^^^^^^^^^ +>Outer : Outer +> : ^^^^^ var x5: typeof importInst; >x5 : typeof importInst diff --git a/tests/baselines/reference/typeofOperatorWithAnyOtherType.types b/tests/baselines/reference/typeofOperatorWithAnyOtherType.types index 1a1186d4972d6..80481e7100458 100644 --- a/tests/baselines/reference/typeofOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/typeofOperatorWithAnyOtherType.types @@ -14,8 +14,8 @@ var ANY1; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/typeofSimple.errors.txt b/tests/baselines/reference/typeofSimple.errors.txt index 7d904de8639b9..8fe524cc02c31 100644 --- a/tests/baselines/reference/typeofSimple.errors.txt +++ b/tests/baselines/reference/typeofSimple.errors.txt @@ -1,4 +1,4 @@ -typeofSimple.ts(3,5): error TS2322: Type 'number' is not assignable to type 'string'. +typeofSimple.ts(3,18): error TS2322: Type 'number' is not assignable to type 'string'. typeofSimple.ts(8,21): error TS2693: 'J' only refers to a type, but is being used as a value here. @@ -6,7 +6,7 @@ typeofSimple.ts(8,21): error TS2693: 'J' only refers to a type, but is being use var v = 3; var v2: typeof v; var v3: string = v2; // Not assignment compatible - ~~ + ~~ !!! error TS2322: Type 'number' is not assignable to type 'string'. interface I { x: T; } diff --git a/tests/baselines/reference/typeofSimple.types b/tests/baselines/reference/typeofSimple.types index d5091946e6ffc..e458426b564db 100644 --- a/tests/baselines/reference/typeofSimple.types +++ b/tests/baselines/reference/typeofSimple.types @@ -16,7 +16,7 @@ var v2: typeof v; var v3: string = v2; // Not assignment compatible >v3 : string > : ^^^^^^ ->v2 : number +>v2 : string > : ^^^^^^ interface I { x: T; } diff --git a/tests/baselines/reference/typeofThis.types b/tests/baselines/reference/typeofThis.types index 5087396249b2a..bfdb1b3507792 100644 --- a/tests/baselines/reference/typeofThis.types +++ b/tests/baselines/reference/typeofThis.types @@ -78,8 +78,8 @@ class Test1 { > : ^^^^^^^^^^^^^^^^ >foo : string > : ^^^^^^ ->'' : "" -> : ^^ +>'' : string +> : ^^^^^^ var self: typeof this = this; >self : this @@ -106,8 +106,8 @@ class Test1 { > : ^^^^ >this : string > : ^^^^^^ ->'' : "" -> : ^^ +>'' : string +> : ^^^^^^ } } @@ -125,8 +125,8 @@ function Test2() { > : ^^^ >no : any > : ^^^ ->1 : 1 -> : ^ +>1 : any +> : ^^^ } function Test3(this: { no: number }) { @@ -146,8 +146,8 @@ function Test3(this: { no: number }) { > : ^^^^^^ ^^^ >no : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ } function Test4(this: { no: number } | undefined) { @@ -167,8 +167,8 @@ function Test4(this: { no: number } | undefined) { > : ^^^^^^ ^^^^^^^^^^^^^^^ >no : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ } class Test5 { @@ -197,8 +197,8 @@ class Test5 { > : ^^^^ >no : number > : ^^^^^^ ->1 : 1 -> : ^ +>1 : number +> : ^^^^^^ } } @@ -221,8 +221,8 @@ namespace Test6 { > : ^^^ >no : any > : ^^^ ->1 : 1 -> : ^ +>1 : any +> : ^^^ } } @@ -245,8 +245,8 @@ module Test7 { > : ^^^ >no : any > : ^^^ ->1 : 1 -> : ^ +>1 : any +> : ^^^ } } @@ -265,8 +265,8 @@ const Test8 = () => { > : ^^^^^^^^^^^^^^^^^ >no : any > : ^^^ ->1 : 1 -> : ^ +>1 : any +> : ^^^ } class Test9 { @@ -557,8 +557,8 @@ class Test11 { > : ^^^^ >this : { x?: string; } | undefined > : ^^^^^^ ^^^^^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : { x?: string; } | undefined +> : ^^^^^^ ^^^^^^^^^^^^^^^ if (o.this && o.this.x) { >o.this && o.this.x : string | undefined diff --git a/tests/baselines/reference/typeofThisWithImplicitThis.types b/tests/baselines/reference/typeofThisWithImplicitThis.types index e5769d5ec37d0..e1b808b236dd8 100644 --- a/tests/baselines/reference/typeofThisWithImplicitThis.types +++ b/tests/baselines/reference/typeofThisWithImplicitThis.types @@ -12,7 +12,6 @@ function Test1() { > : ^^^ >no : any > : ^^^ ->1 : 1 -> : ^ +>1 : any } diff --git a/tests/baselines/reference/typesOnlyExternalModuleStillHasInstance.errors.txt b/tests/baselines/reference/typesOnlyExternalModuleStillHasInstance.errors.txt index 557bdfb4dad0e..41aaedc390f18 100644 --- a/tests/baselines/reference/typesOnlyExternalModuleStillHasInstance.errors.txt +++ b/tests/baselines/reference/typesOnlyExternalModuleStillHasInstance.errors.txt @@ -1,4 +1,4 @@ -foo_1.ts(5,5): error TS2741: Property 'M2' is missing in type 'typeof import("foo_0")' but required in type '{ M2: Object; }'. +foo_1.ts(5,23): error TS2741: Property 'M2' is missing in type 'typeof import("foo_0")' but required in type '{ M2: Object; }'. ==== foo_1.ts (1 errors) ==== @@ -7,7 +7,7 @@ foo_1.ts(5,5): error TS2741: Property 'M2' is missing in type 'typeof import("fo var x: typeof foo0 = {}; var y: {M2: Object} = foo0; - ~ + ~~~~ !!! error TS2741: Property 'M2' is missing in type 'typeof import("foo_0")' but required in type '{ M2: Object; }'. !!! related TS2728 foo_1.ts:5:9: 'M2' is declared here. diff --git a/tests/baselines/reference/typesOnlyExternalModuleStillHasInstance.types b/tests/baselines/reference/typesOnlyExternalModuleStillHasInstance.types index ec8db7ba7cf87..2ba6cb5a0c266 100644 --- a/tests/baselines/reference/typesOnlyExternalModuleStillHasInstance.types +++ b/tests/baselines/reference/typesOnlyExternalModuleStillHasInstance.types @@ -12,16 +12,16 @@ var x: typeof foo0 = {}; > : ^^^^^^^^^^^ >foo0 : typeof foo0 > : ^^^^^^^^^^^ ->{} : {} -> : ^^ +>{} : typeof foo0 +> : ^^^^^^^^^^^ var y: {M2: Object} = foo0; >y : { M2: Object; } > : ^^^^^^ ^^^ >M2 : Object > : ^^^^^^ ->foo0 : typeof foo0 -> : ^^^^^^^^^^^ +>foo0 : { M2: Object; } +> : ^^^^^^ ^^^ === foo_0.ts === export interface Person { diff --git a/tests/baselines/reference/typesWithPrivateConstructor.types b/tests/baselines/reference/typesWithPrivateConstructor.types index b0ff09bfd94f4..af4f12dbf4113 100644 --- a/tests/baselines/reference/typesWithPrivateConstructor.types +++ b/tests/baselines/reference/typesWithPrivateConstructor.types @@ -19,12 +19,12 @@ var c = new C(); // error C is private var r: () => void = c.constructor; >r : () => void > : ^^^^^^ ->c.constructor : any -> : ^^^ +>c.constructor : () => void +> : ^^^^^^ >c : any > : ^^^ ->constructor : any -> : ^^^ +>constructor : () => void +> : ^^^^^^ class C2 { >C2 : C2 @@ -52,10 +52,10 @@ var r2: (x: number) => void = c2.constructor; > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->c2.constructor : any -> : ^^^ +>c2.constructor : (x: number) => void +> : ^ ^^ ^^^^^ >c2 : any > : ^^^ ->constructor : any -> : ^^^ +>constructor : (x: number) => void +> : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/typesWithProtectedConstructor.types b/tests/baselines/reference/typesWithProtectedConstructor.types index 284b52486af7e..692c7ddaa36bb 100644 --- a/tests/baselines/reference/typesWithProtectedConstructor.types +++ b/tests/baselines/reference/typesWithProtectedConstructor.types @@ -19,12 +19,12 @@ var c = new C(); // error C is protected var r: () => void = c.constructor; >r : () => void > : ^^^^^^ ->c.constructor : any -> : ^^^ +>c.constructor : () => void +> : ^^^^^^ >c : any > : ^^^ ->constructor : any -> : ^^^ +>constructor : () => void +> : ^^^^^^ class C2 { >C2 : C2 @@ -52,10 +52,10 @@ var r2: (x: number) => void = c2.constructor; > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->c2.constructor : any -> : ^^^ +>c2.constructor : (x: number) => void +> : ^ ^^ ^^^^^ >c2 : any > : ^^^ ->constructor : any -> : ^^^ +>constructor : (x: number) => void +> : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/typesWithPublicConstructor.errors.txt b/tests/baselines/reference/typesWithPublicConstructor.errors.txt index 6f18b51122b22..19227c29d6806 100644 --- a/tests/baselines/reference/typesWithPublicConstructor.errors.txt +++ b/tests/baselines/reference/typesWithPublicConstructor.errors.txt @@ -1,7 +1,7 @@ -typesWithPublicConstructor.ts(8,5): error TS2322: Type 'Function' is not assignable to type '() => void'. +typesWithPublicConstructor.ts(8,21): error TS2322: Type 'Function' is not assignable to type '() => void'. Type 'Function' provides no match for the signature '(): void'. typesWithPublicConstructor.ts(15,10): error TS2554: Expected 1 arguments, but got 0. -typesWithPublicConstructor.ts(16,5): error TS2322: Type 'Function' is not assignable to type '(x: number) => void'. +typesWithPublicConstructor.ts(16,31): error TS2322: Type 'Function' is not assignable to type '(x: number) => void'. Type 'Function' provides no match for the signature '(x: number): void'. @@ -14,7 +14,7 @@ typesWithPublicConstructor.ts(16,5): error TS2322: Type 'Function' is not assign var c = new C(); var r: () => void = c.constructor; - ~ + ~~~~~~~~~~~~~ !!! error TS2322: Type 'Function' is not assignable to type '() => void'. !!! error TS2322: Type 'Function' provides no match for the signature '(): void'. @@ -28,6 +28,6 @@ typesWithPublicConstructor.ts(16,5): error TS2322: Type 'Function' is not assign !!! error TS2554: Expected 1 arguments, but got 0. !!! related TS6210 typesWithPublicConstructor.ts:11:24: An argument for 'x' was not provided. var r2: (x: number) => void = c2.constructor; - ~~ + ~~~~~~~~~~~~~~ !!! error TS2322: Type 'Function' is not assignable to type '(x: number) => void'. !!! error TS2322: Type 'Function' provides no match for the signature '(x: number): void'. \ No newline at end of file diff --git a/tests/baselines/reference/typesWithPublicConstructor.types b/tests/baselines/reference/typesWithPublicConstructor.types index 7a2a29a44ecc5..b530009135844 100644 --- a/tests/baselines/reference/typesWithPublicConstructor.types +++ b/tests/baselines/reference/typesWithPublicConstructor.types @@ -21,12 +21,12 @@ var c = new C(); var r: () => void = c.constructor; >r : () => void > : ^^^^^^ ->c.constructor : Function -> : ^^^^^^^^ +>c.constructor : () => void +> : ^^^^^^ >c : C > : ^ ->constructor : Function -> : ^^^^^^^^ +>constructor : () => void +> : ^^^^^^ class C2 { >C2 : C2 @@ -54,10 +54,10 @@ var r2: (x: number) => void = c2.constructor; > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->c2.constructor : Function -> : ^^^^^^^^ +>c2.constructor : (x: number) => void +> : ^ ^^ ^^^^^ >c2 : C2 > : ^^ ->constructor : Function -> : ^^^^^^^^ +>constructor : (x: number) => void +> : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/umd2.types b/tests/baselines/reference/umd2.types index e129efbca027a..f0de91a20c3bc 100644 --- a/tests/baselines/reference/umd2.types +++ b/tests/baselines/reference/umd2.types @@ -20,10 +20,10 @@ let x: Foo.Thing; let y: number = x.n; >y : number > : ^^^^^^ ->x.n : any -> : ^^^ +>x.n : number +> : ^^^^^^ >x : Foo.Thing > : ^^^^^^^^^ ->n : any -> : ^^^ +>n : number +> : ^^^^^^ diff --git a/tests/baselines/reference/umd8.types b/tests/baselines/reference/umd8.types index 180d98358b78d..1633d443861b9 100644 --- a/tests/baselines/reference/umd8.types +++ b/tests/baselines/reference/umd8.types @@ -29,8 +29,8 @@ let z: Foo.SubThing; // OK in ns position let x: any = Foo; // Not OK in value position >x : any > : ^^^ ->Foo : typeof ff -> : ^^^^^^^^^ +>Foo : any +> : ^^^ === foo.d.ts === declare class Thing { diff --git a/tests/baselines/reference/undefinedAssignableToEveryType.types b/tests/baselines/reference/undefinedAssignableToEveryType.types index eb12eaf6ab553..4adae8822c8c4 100644 --- a/tests/baselines/reference/undefinedAssignableToEveryType.types +++ b/tests/baselines/reference/undefinedAssignableToEveryType.types @@ -35,69 +35,68 @@ var ae: E; var b: number = undefined; >b : number > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : number +> : ^^^^^^ var c: string = undefined; >c : string > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : string +> : ^^^^^^ var d: boolean = undefined; >d : boolean > : ^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : boolean +> : ^^^^^^^ var e: Date = undefined; >e : Date > : ^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : Date +> : ^^^^ var f: any = undefined; >f : any ->undefined : undefined -> : ^^^^^^^^^ +>undefined : any var g: void = undefined; >g : void > : ^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : void +> : ^^^^ var h: Object = undefined; >h : Object > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : Object +> : ^^^^^^ var i: {} = undefined; >i : {} > : ^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : {} +> : ^^ var j: () => {} = undefined; >j : () => {} > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : () => {} +> : ^^^^^^ var k: Function = undefined; >k : Function > : ^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : Function +> : ^^^^^^^^ var l: (x: number) => string = undefined; >l : (x: number) => string > : ^ ^^ ^^^^^ >x : number > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : (x: number) => string +> : ^ ^^ ^^^^^ ac = undefined; >ac = undefined : undefined @@ -126,36 +125,36 @@ ae = undefined; var m: number[] = undefined; >m : number[] > : ^^^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : number[] +> : ^^^^^^^^ var n: { foo: string } = undefined; >n : { foo: string; } > : ^^^^^^^ ^^^ >foo : string > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : { foo: string; } +> : ^^^^^^^ ^^^ var o: (x: T) => T = undefined; >o : (x: T) => T > : ^ ^^ ^^ ^^^^^ >x : T > : ^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : (x: T) => T +> : ^ ^^ ^^ ^^^^^ var p: Number = undefined; >p : Number > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : Number +> : ^^^^^^ var q: String = undefined; >q : String > : ^^^^^^ ->undefined : undefined -> : ^^^^^^^^^ +>undefined : String +> : ^^^^^^ function foo(x: T, y: U, z: V) { >foo : (x: T, y: U, z: V) => void diff --git a/tests/baselines/reference/underscoreMapFirst.types b/tests/baselines/reference/underscoreMapFirst.types index ed76e069050a6..c96e179b584d1 100644 --- a/tests/baselines/reference/underscoreMapFirst.types +++ b/tests/baselines/reference/underscoreMapFirst.types @@ -102,7 +102,8 @@ class MyView extends View { var data: IData[] = this.model.get("data"); >data : IData[] > : ^^^^^^^ ->this.model.get("data") : any +>this.model.get("data") : IData[] +> : ^^^^^^^ >this.model.get : any >this.model : any > : ^^^ @@ -118,8 +119,8 @@ class MyView extends View { var allSeries: ISeries[][] = _.pluck(data, "series"); >allSeries : ISeries[][] > : ^^^^^^^^^^^ ->_.pluck(data, "series") : any[] -> : ^^^^^ +>_.pluck(data, "series") : ISeries[][] +> : ^^^^^^^^^^^ >_.pluck : (list: _.Collection, propertyName: string) => any[] > : ^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >_ : typeof _ diff --git a/tests/baselines/reference/unionAndIntersectionInference1.types b/tests/baselines/reference/unionAndIntersectionInference1.types index 1c0e04a88fb97..94e169277d78f 100644 --- a/tests/baselines/reference/unionAndIntersectionInference1.types +++ b/tests/baselines/reference/unionAndIntersectionInference1.types @@ -338,8 +338,8 @@ declare function f2(x: T, y: U): T | U; let x1: string = f1('a'); >x1 : string > : ^^^^^^ ->f1('a') : "a" -> : ^^^ +>f1('a') : string +> : ^^^^^^ >f1 : (x: T | U) => T | U > : ^ ^^ ^^ ^^ ^^^^^ >'a' : "a" @@ -348,8 +348,8 @@ let x1: string = f1('a'); let x2: string = f2('a', 'b'); >x2 : string > : ^^^^^^ ->f2('a', 'b') : "a" | "b" -> : ^^^^^^^^^ +>f2('a', 'b') : string +> : ^^^^^^ >f2 : (x: T, y: U) => T | U > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >'a' : "a" diff --git a/tests/baselines/reference/unionTypeFromArrayLiteral.errors.txt b/tests/baselines/reference/unionTypeFromArrayLiteral.errors.txt index 8c0fd372531b5..a857da428346b 100644 --- a/tests/baselines/reference/unionTypeFromArrayLiteral.errors.txt +++ b/tests/baselines/reference/unionTypeFromArrayLiteral.errors.txt @@ -1,4 +1,4 @@ -unionTypeFromArrayLiteral.ts(9,5): error TS2322: Type '[number, string, string]' is not assignable to type '[number, string]'. +unionTypeFromArrayLiteral.ts(9,35): error TS2322: Type '[number, string, string]' is not assignable to type '[number, string]'. Source has 3 element(s) but target allows only 2. @@ -12,7 +12,7 @@ unionTypeFromArrayLiteral.ts(9,5): error TS2322: Type '[number, string, string]' var arr2 = ["hello", true]; // (string | number)[] var arr3Tuple: [number, string] = [3, "three"]; // [number, string] var arr4Tuple: [number, string] = [3, "three", "hello"]; // [number, string, string] - ~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '[number, string, string]' is not assignable to type '[number, string]'. !!! error TS2322: Source has 3 element(s) but target allows only 2. var arrEmpty = []; diff --git a/tests/baselines/reference/unionTypeFromArrayLiteral.types b/tests/baselines/reference/unionTypeFromArrayLiteral.types index 3678810494fce..1596ea827e19b 100644 --- a/tests/baselines/reference/unionTypeFromArrayLiteral.types +++ b/tests/baselines/reference/unionTypeFromArrayLiteral.types @@ -39,8 +39,8 @@ var arr3Tuple: [number, string] = [3, "three"]; // [number, string] var arr4Tuple: [number, string] = [3, "three", "hello"]; // [number, string, string] >arr4Tuple : [number, string] > : ^^^^^^^^^^^^^^^^ ->[3, "three", "hello"] : [number, string, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>[3, "three", "hello"] : [number, string] +> : ^^^^^^^^^^^^^^^^ >3 : 3 > : ^ >"three" : "three" @@ -67,8 +67,8 @@ var arr5Tuple: { > : ^^^^^^ } = ["hello", true, false, " hello", true, 10, "any"]; // Tuple ->["hello", true, false, " hello", true, 10, "any"] : [string, boolean, boolean, string, boolean, number, string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>["hello", true, false, " hello", true, 10, "any"] : { 0: string; 5: number; } +> : ^^^^^ ^^^^^ ^^^ >"hello" : "hello" > : ^^^^^^^ >true : true diff --git a/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.errors.txt b/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.errors.txt index 5939db39b1ab7..878ac076a1a2c 100644 --- a/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.errors.txt +++ b/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.errors.txt @@ -1,4 +1,4 @@ -unionTypeWithRecursiveSubtypeReduction3.ts(5,5): error TS2322: Type '{ prop: number; } | { prop: { prop: number; } | any; }' is not assignable to type 'string'. +unionTypeWithRecursiveSubtypeReduction3.ts(5,17): error TS2322: Type '{ prop: number; } | { prop: { prop: number; } | any; }' is not assignable to type 'string'. Type '{ prop: number; }' is not assignable to type 'string'. @@ -8,7 +8,7 @@ unionTypeWithRecursiveSubtypeReduction3.ts(5,5): error TS2322: Type '{ prop: num var b: T27; var s: string = b; - ~ + ~ !!! error TS2322: Type '{ prop: number; } | { prop: { prop: number; } | any; }' is not assignable to type 'string'. !!! error TS2322: Type '{ prop: number; }' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.types b/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.types index 50db124d50cb7..e0cf4e6163d83 100644 --- a/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.types +++ b/tests/baselines/reference/unionTypeWithRecursiveSubtypeReduction3.types @@ -22,6 +22,6 @@ var b: T27; var s: string = b; >s : string > : ^^^^^^ ->b : { prop: number; } | { prop: T27; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ +>b : string +> : ^^^^^^ diff --git a/tests/baselines/reference/uniqueSymbolAllowsIndexInObjectWithIndexSignature.errors.txt b/tests/baselines/reference/uniqueSymbolAllowsIndexInObjectWithIndexSignature.errors.txt index 38d38139df6ca..ce4f84df4c638 100644 --- a/tests/baselines/reference/uniqueSymbolAllowsIndexInObjectWithIndexSignature.errors.txt +++ b/tests/baselines/reference/uniqueSymbolAllowsIndexInObjectWithIndexSignature.errors.txt @@ -1,4 +1,6 @@ -uniqueSymbolAllowsIndexInObjectWithIndexSignature.ts(10,13): error TS2418: Type of computed property's value is '"str"', which is not assignable to type '"sym"'. +uniqueSymbolAllowsIndexInObjectWithIndexSignature.ts(10,12): error TS2322: Type '{ [SYM]: "str"; }' is not assignable to type 'I'. + Types of property '[SYM]' are incompatible. + Type '"str"' is not assignable to type '"sym"'. ==== uniqueSymbolAllowsIndexInObjectWithIndexSignature.ts (1 errors) ==== @@ -12,7 +14,8 @@ uniqueSymbolAllowsIndexInObjectWithIndexSignature.ts(10,13): error TS2418: Type let a: I = {[SYM]: 'sym'}; // Expect ok let b: I = {[SYM]: 'str'}; // Expect error - ~~~~~ -!!! error TS2418: Type of computed property's value is '"str"', which is not assignable to type '"sym"'. -!!! related TS6500 uniqueSymbolAllowsIndexInObjectWithIndexSignature.ts:5:3: The expected type comes from property 'unique symbol' which is declared here on type 'I' + ~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ [SYM]: "str"; }' is not assignable to type 'I'. +!!! error TS2322: Types of property '[SYM]' are incompatible. +!!! error TS2322: Type '"str"' is not assignable to type '"sym"'. \ No newline at end of file diff --git a/tests/baselines/reference/uniqueSymbolAllowsIndexInObjectWithIndexSignature.types b/tests/baselines/reference/uniqueSymbolAllowsIndexInObjectWithIndexSignature.types index c753a96617094..a8cb63e321b45 100644 --- a/tests/baselines/reference/uniqueSymbolAllowsIndexInObjectWithIndexSignature.types +++ b/tests/baselines/reference/uniqueSymbolAllowsIndexInObjectWithIndexSignature.types @@ -27,8 +27,8 @@ export interface I { let a: I = {[SYM]: 'sym'}; // Expect ok >a : I > : ^ ->{[SYM]: 'sym'} : { [SYM]: "sym"; } -> : ^^^^^^^^^^^^^^^^^ +>{[SYM]: 'sym'} : I +> : ^ >[SYM] : "sym" > : ^^^^^ >SYM : unique symbol @@ -39,8 +39,8 @@ let a: I = {[SYM]: 'sym'}; // Expect ok let b: I = {[SYM]: 'str'}; // Expect error >b : I > : ^ ->{[SYM]: 'str'} : { [SYM]: "str"; } -> : ^^^^^^^^^^^^^^^^^ +>{[SYM]: 'str'} : I +> : ^ >[SYM] : "str" > : ^^^^^ >SYM : unique symbol diff --git a/tests/baselines/reference/unknownControlFlow.errors.txt b/tests/baselines/reference/unknownControlFlow.errors.txt index 9c2b6117a0573..4d6813f404873 100644 --- a/tests/baselines/reference/unknownControlFlow.errors.txt +++ b/tests/baselines/reference/unknownControlFlow.errors.txt @@ -1,4 +1,4 @@ -unknownControlFlow.ts(18,9): error TS2322: Type 'unknown' is not assignable to type '{}'. +unknownControlFlow.ts(18,18): error TS2322: Type 'unknown' is not assignable to type '{}'. unknownControlFlow.ts(283,5): error TS2536: Type 'keyof (T & {})' cannot be used to index type 'T'. unknownControlFlow.ts(290,11): error TS2345: Argument of type '"foo"' is not assignable to parameter of type 'never'. unknownControlFlow.ts(291,5): error TS2345: Argument of type 'null' is not assignable to parameter of type 'never'. @@ -26,7 +26,7 @@ unknownControlFlow.ts(341,9): error TS2367: This comparison appears to be uninte function f01(u: unknown) { let x1: {} = u; // Error - ~~ + ~ !!! error TS2322: Type 'unknown' is not assignable to type '{}'. let x2: {} | null | undefined = u; let x3: {} | { x: string } | null | undefined = u; diff --git a/tests/baselines/reference/unknownControlFlow.types b/tests/baselines/reference/unknownControlFlow.types index 2c84aa0d19d3e..9b3af8b06a6d7 100644 --- a/tests/baselines/reference/unknownControlFlow.types +++ b/tests/baselines/reference/unknownControlFlow.types @@ -64,28 +64,28 @@ function f01(u: unknown) { let x1: {} = u; // Error >x1 : {} > : ^^ ->u : unknown -> : ^^^^^^^ +>u : {} +> : ^^ let x2: {} | null | undefined = u; >x2 : {} | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^ ->u : unknown -> : ^^^^^^^ +>u : {} | null | undefined +> : ^^^^^^^^^^^^^^^^^^^^^ let x3: {} | { x: string } | null | undefined = u; >x3 : {} | { x: string; } | null | undefined > : ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->u : unknown -> : ^^^^^^^ +>u : {} | { x: string; } | null | undefined +> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ let x4: ThisOrThatNode | null | undefined = u; >x4 : ThisOrThatNode | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->u : unknown -> : ^^^^^^^ +>u : ThisOrThatNode | null | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } function f10(x: unknown) { diff --git a/tests/baselines/reference/unknownType1.errors.txt b/tests/baselines/reference/unknownType1.errors.txt index 6e5e472b1c0de..ee91ebfe74904 100644 --- a/tests/baselines/reference/unknownType1.errors.txt +++ b/tests/baselines/reference/unknownType1.errors.txt @@ -10,11 +10,11 @@ unknownType1.ts(63,5): error TS18046: 'x' is of type 'unknown'. unknownType1.ts(64,5): error TS18046: 'x' is of type 'unknown'. unknownType1.ts(65,5): error TS18046: 'x' is of type 'unknown'. unknownType1.ts(66,9): error TS18046: 'x' is of type 'unknown'. -unknownType1.ts(110,9): error TS2322: Type 'unknown' is not assignable to type 'object'. -unknownType1.ts(111,9): error TS2322: Type 'unknown' is not assignable to type 'string'. -unknownType1.ts(112,9): error TS2322: Type 'unknown' is not assignable to type 'string[]'. -unknownType1.ts(113,9): error TS2322: Type 'unknown' is not assignable to type '{}'. -unknownType1.ts(120,9): error TS2322: Type 'T' is not assignable to type 'object'. +unknownType1.ts(110,22): error TS2322: Type 'unknown' is not assignable to type 'object'. +unknownType1.ts(111,22): error TS2322: Type 'unknown' is not assignable to type 'string'. +unknownType1.ts(112,24): error TS2322: Type 'unknown' is not assignable to type 'string[]'. +unknownType1.ts(113,18): error TS2322: Type 'unknown' is not assignable to type '{}'. +unknownType1.ts(120,21): error TS2322: Type 'T' is not assignable to type 'object'. unknownType1.ts(128,5): error TS2322: Type 'number[]' is not assignable to type '{ [x: string]: unknown; }'. Index signature for type 'string' is missing in type 'number[]'. unknownType1.ts(129,5): error TS2322: Type 'number' is not assignable to type '{ [x: string]: unknown; }'. @@ -23,8 +23,8 @@ unknownType1.ts(144,29): error TS2698: Spread types may only be created from obj unknownType1.ts(150,17): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value. unknownType1.ts(156,14): error TS2700: Rest types may only be created from object types. unknownType1.ts(162,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor. -unknownType1.ts(170,9): error TS2322: Type 'T' is not assignable to type '{}'. -unknownType1.ts(171,9): error TS2322: Type 'U' is not assignable to type '{}'. +unknownType1.ts(170,17): error TS2322: Type 'T' is not assignable to type '{}'. +unknownType1.ts(171,17): error TS2322: Type 'U' is not assignable to type '{}'. unknownType1.ts(181,5): error TS2322: Type 'T' is not assignable to type '{}'. @@ -163,16 +163,16 @@ unknownType1.ts(181,5): error TS2322: Type 'T' is not assignable to type '{}'. let v1: any = x; let v2: unknown = x; let v3: object = x; // Error - ~~ + ~ !!! error TS2322: Type 'unknown' is not assignable to type 'object'. let v4: string = x; // Error - ~~ + ~ !!! error TS2322: Type 'unknown' is not assignable to type 'string'. let v5: string[] = x; // Error - ~~ + ~ !!! error TS2322: Type 'unknown' is not assignable to type 'string[]'. let v6: {} = x; // Error - ~~ + ~ !!! error TS2322: Type 'unknown' is not assignable to type '{}'. let v7: {} | null | undefined = x; // Error } @@ -181,7 +181,7 @@ unknownType1.ts(181,5): error TS2322: Type 'T' is not assignable to type '{}'. function f23(x: T) { let y: object = x; // Error - ~ + ~ !!! error TS2322: Type 'T' is not assignable to type 'object'. } @@ -248,11 +248,11 @@ unknownType1.ts(181,5): error TS2322: Type 'T' is not assignable to type '{}'. function f30(t: T, u: U) { let x: {} = t; - ~ + ~ !!! error TS2322: Type 'T' is not assignable to type '{}'. !!! related TS2208 unknownType1.ts:169:14: This type parameter might need an `extends {}` constraint. let y: {} = u; - ~ + ~ !!! error TS2322: Type 'U' is not assignable to type '{}'. } diff --git a/tests/baselines/reference/unknownType1.types b/tests/baselines/reference/unknownType1.types index 46be92d81bcea..a694da170650f 100644 --- a/tests/baselines/reference/unknownType1.types +++ b/tests/baselines/reference/unknownType1.types @@ -441,8 +441,8 @@ function f22(x: unknown) { let v1: any = x; >v1 : any > : ^^^ ->x : unknown -> : ^^^^^^^ +>x : any +> : ^^^ let v2: unknown = x; >v2 : unknown @@ -453,32 +453,32 @@ function f22(x: unknown) { let v3: object = x; // Error >v3 : object > : ^^^^^^ ->x : unknown -> : ^^^^^^^ +>x : object +> : ^^^^^^ let v4: string = x; // Error >v4 : string > : ^^^^^^ ->x : unknown -> : ^^^^^^^ +>x : string +> : ^^^^^^ let v5: string[] = x; // Error >v5 : string[] > : ^^^^^^^^ ->x : unknown -> : ^^^^^^^ +>x : string[] +> : ^^^^^^^^ let v6: {} = x; // Error >v6 : {} > : ^^ ->x : unknown -> : ^^^^^^^ +>x : {} +> : ^^ let v7: {} | null | undefined = x; // Error >v7 : {} | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^ ->x : unknown -> : ^^^^^^^ +>x : {} | null | undefined +> : ^^^^^^^^^^^^^^^^^^^^^ } // Type parameter 'T extends unknown' not related to object @@ -492,8 +492,8 @@ function f23(x: T) { let y: object = x; // Error >y : object > : ^^^^^^ ->x : T -> : ^ +>x : object +> : ^^^^^^ } // Anything fresh but primitive assignable to { [x: string]: unknown } @@ -687,14 +687,14 @@ function f30(t: T, u: U) { let x: {} = t; >x : {} > : ^^ ->t : T -> : ^ +>t : {} +> : ^^ let y: {} = u; >y : {} > : ^^ ->u : U -> : ^ +>u : {} +> : ^^ } // Repro from #26796 diff --git a/tests/baselines/reference/unknownType2.types b/tests/baselines/reference/unknownType2.types index a749e25e0ba6a..62db7303fc521 100644 --- a/tests/baselines/reference/unknownType2.types +++ b/tests/baselines/reference/unknownType2.types @@ -24,8 +24,8 @@ let validate: (x: unknown) => SomeResponse = x => (x === 'yes' || x === 'no') ? > : ^ ^^ ^^^^^ >x : unknown > : ^^^^^^^ ->x => (x === 'yes' || x === 'no') ? x : 'idk' : (x: unknown) => "yes" | "no" | "idk" -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>x => (x === 'yes' || x === 'no') ? x : 'idk' : (x: unknown) => SomeResponse +> : ^ ^^ ^^^^^ >x : unknown > : ^^^^^^^ >(x === 'yes' || x === 'no') ? x : 'idk' : "yes" | "no" | "idk" diff --git a/tests/baselines/reference/unknownTypeErrors.types b/tests/baselines/reference/unknownTypeErrors.types index 07ec9baf78822..4b7554f815748 100644 --- a/tests/baselines/reference/unknownTypeErrors.types +++ b/tests/baselines/reference/unknownTypeErrors.types @@ -4,6 +4,6 @@ var foo: Unknown = 0; >foo : Unknown > : ^^^^^^^ ->0 : 0 -> : ^ +>0 : Unknown +> : ^^^^^^^ diff --git a/tests/baselines/reference/unmatchedParameterPositions.types b/tests/baselines/reference/unmatchedParameterPositions.types index 078fa1c094c13..e423d3aada588 100644 --- a/tests/baselines/reference/unmatchedParameterPositions.types +++ b/tests/baselines/reference/unmatchedParameterPositions.types @@ -12,14 +12,14 @@ declare let s: (...items: never[]) => never[]; let t1: () => unknown[] = s; >t1 : () => unknown[] > : ^^^^^^ ->s : (...items: never[]) => never[] -> : ^^^^ ^^ ^^^^^ +>s : () => unknown[] +> : ^^^^^^ let t2: (...args: []) => unknown[] = s; >t2 : () => unknown[] > : ^^^^^^ >args : [] > : ^^ ->s : (...items: never[]) => never[] -> : ^^^^ ^^ ^^^^^ +>s : () => unknown[] +> : ^^^^^^ diff --git a/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.types b/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.types index b8e4050c1026b..ddc9abd8c3cb8 100644 --- a/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.types +++ b/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.types @@ -19,8 +19,8 @@ var r1 = x(); var y: any = x; >y : any > : ^^^ ->x : () => void -> : ^^^^^^^^^^ +>x : any +> : ^^^ var r2 = y(); >r2 : any diff --git a/tests/baselines/reference/unusedImportDeclaration.types b/tests/baselines/reference/unusedImportDeclaration.types index b80830894517c..254b6ed2c8b3d 100644 --- a/tests/baselines/reference/unusedImportDeclaration.types +++ b/tests/baselines/reference/unusedImportDeclaration.types @@ -8,8 +8,8 @@ import B = require("./unusedImportDeclaration_testerB"); var thingy: B = { >thingy : B > : ^ ->{ me: "A"} : { me: string; } -> : ^^^^^^^^^^^^^^^ +>{ me: "A"} : B +> : ^ me: "A" >me : string diff --git a/tests/baselines/reference/useBeforeDeclaration.types b/tests/baselines/reference/useBeforeDeclaration.types index 54fe93f5aa0f5..8b0e40dc7c3f4 100644 --- a/tests/baselines/reference/useBeforeDeclaration.types +++ b/tests/baselines/reference/useBeforeDeclaration.types @@ -46,7 +46,7 @@ namespace ts { >version : string > : ^^^^^^ >{version: "2.0.5"} : { version: string; } -> : ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^ >version : string > : ^^^^^^ >"2.0.5" : "2.0.5" diff --git a/tests/baselines/reference/useObjectValuesAndEntries1.types b/tests/baselines/reference/useObjectValuesAndEntries1.types index 5056e95ab3900..f7b92ba5f4ae9 100644 --- a/tests/baselines/reference/useObjectValuesAndEntries1.types +++ b/tests/baselines/reference/useObjectValuesAndEntries1.types @@ -244,8 +244,8 @@ interface I { } var i: I = {}; >i : I > : ^ ->{} : {} -> : ^^ +>{} : I +> : ^ var entries6 = Object.entries(i); // [string, any][] >entries6 : [string, any][] diff --git a/tests/baselines/reference/usingDeclarationsWithObjectLiterals1.types b/tests/baselines/reference/usingDeclarationsWithObjectLiterals1.types index 84f6f09b8de64..82d6e5038b7ec 100644 --- a/tests/baselines/reference/usingDeclarationsWithObjectLiterals1.types +++ b/tests/baselines/reference/usingDeclarationsWithObjectLiterals1.types @@ -57,8 +57,8 @@ interface MyDisposable { using _: MyDisposable = { [Symbol.dispose]() {}, value: 1, extra: "foo" }; >_ : MyDisposable > : ^^^^^^^^^^^^ ->{ [Symbol.dispose]() {}, value: 1, extra: "foo" } : { [Symbol.dispose](): void; value: number; extra: string; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ [Symbol.dispose]() {}, value: 1, extra: "foo" } : MyDisposable +> : ^^^^^^^^^^^^ >[Symbol.dispose] : () => void > : ^^^^^^^^^^ >Symbol.dispose : unique symbol diff --git a/tests/baselines/reference/usingModuleWithExportImportInValuePosition.types b/tests/baselines/reference/usingModuleWithExportImportInValuePosition.types index 1f9fe2da352e3..c9f6f68d92b50 100644 --- a/tests/baselines/reference/usingModuleWithExportImportInValuePosition.types +++ b/tests/baselines/reference/usingModuleWithExportImportInValuePosition.types @@ -61,8 +61,8 @@ var b: { x: number; y: number; } = new C.a.Point(0, 0); > : ^^^^^^ >y : number > : ^^^^^^ ->new C.a.Point(0, 0) : A.Point -> : ^^^^^^^ +>new C.a.Point(0, 0) : { x: number; y: number; } +> : ^^^^^ ^^^^^ ^^^ >C.a.Point : typeof A.Point > : ^^^^^^^^^^^^^^ >C.a : typeof A diff --git a/tests/baselines/reference/validBooleanAssignments.types b/tests/baselines/reference/validBooleanAssignments.types index 29712babefd91..a890a2d224d35 100644 --- a/tests/baselines/reference/validBooleanAssignments.types +++ b/tests/baselines/reference/validBooleanAssignments.types @@ -9,24 +9,23 @@ var x = true; var a: any = x; >a : any ->x : true -> : ^^^^ +>x : any var b: Object = x; >b : Object > : ^^^^^^ ->x : true -> : ^^^^ +>x : Object +> : ^^^^^^ var c: Boolean = x; >c : Boolean > : ^^^^^^^ ->x : true -> : ^^^^ +>x : Boolean +> : ^^^^^^^ var d: boolean = x; >d : boolean > : ^^^^^^^ ->x : true -> : ^^^^ +>x : boolean +> : ^^^^^^^ diff --git a/tests/baselines/reference/validMultipleVariableDeclarations.types b/tests/baselines/reference/validMultipleVariableDeclarations.types index c6539c0548510..33a5d769bac9c 100644 --- a/tests/baselines/reference/validMultipleVariableDeclarations.types +++ b/tests/baselines/reference/validMultipleVariableDeclarations.types @@ -76,8 +76,8 @@ var p = { x: 1, y: 2 }; var p: Point = { x: 0, y: undefined }; >p : Point > : ^^^^^ ->{ x: 0, y: undefined } : { x: number; y: undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 0, y: undefined } : Point +> : ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -111,7 +111,7 @@ var p: { x: number; y: number; } = { x: 1, y: 2 }; >y : number > : ^^^^^^ >{ x: 1, y: 2 } : { x: number; y: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >x : number > : ^^^^^^ >1 : 1 @@ -218,8 +218,8 @@ var a = []; var a: string[] = []; >a : string[] > : ^^^^^^^^ ->[] : undefined[] -> : ^^^^^^^^^^^ +>[] : string[] +> : ^^^^^^^^ var a = new Array(); >a : string[] diff --git a/tests/baselines/reference/validNumberAssignments.types b/tests/baselines/reference/validNumberAssignments.types index 5d40f18f1f4bb..9798ec3ce823c 100644 --- a/tests/baselines/reference/validNumberAssignments.types +++ b/tests/baselines/reference/validNumberAssignments.types @@ -9,13 +9,12 @@ var x = 1; var a: any = x; >a : any ->x : number -> : ^^^^^^ +>x : any var b: Object = x; >b : Object > : ^^^^^^ ->x : number +>x : Object > : ^^^^^^ var c: number = x; @@ -33,8 +32,8 @@ enum E { A }; var d: E = x; >d : E > : ^ ->x : number -> : ^^^^^^ +>x : E +> : ^ var e = E.A; >e : E diff --git a/tests/baselines/reference/validStringAssignments.types b/tests/baselines/reference/validStringAssignments.types index e205a6e4c36c3..3673983172ee4 100644 --- a/tests/baselines/reference/validStringAssignments.types +++ b/tests/baselines/reference/validStringAssignments.types @@ -9,13 +9,12 @@ var x = ''; var a: any = x; >a : any ->x : string -> : ^^^^^^ +>x : any var b: Object = x; >b : Object > : ^^^^^^ ->x : string +>x : Object > : ^^^^^^ var c: string = x; @@ -27,6 +26,6 @@ var c: string = x; var d: String = x; >d : String > : ^^^^^^ ->x : string +>x : String > : ^^^^^^ diff --git a/tests/baselines/reference/validUndefinedAssignments.types b/tests/baselines/reference/validUndefinedAssignments.types index dbe01371a43f8..13b5ff1d0e249 100644 --- a/tests/baselines/reference/validUndefinedAssignments.types +++ b/tests/baselines/reference/validUndefinedAssignments.types @@ -9,22 +9,26 @@ var x: typeof undefined; var a: number = x; >a : number > : ^^^^^^ ->x : any +>x : number +> : ^^^^^^ var b: boolean = x; >b : boolean > : ^^^^^^^ ->x : any +>x : boolean +> : ^^^^^^^ var c: string = x; >c : string > : ^^^^^^ ->x : any +>x : string +> : ^^^^^^ var d: void = x; >d : void > : ^^^^ ->x : any +>x : void +> : ^^^^ var e: typeof undefined = x; >e : any @@ -72,7 +76,8 @@ var h: { f(): void } = x; > : ^^^^^^^ ^^^ >f : () => void > : ^^^^^^ ->x : any +>x : { f(): void; } +> : ^^^^^^^ ^^^ function i(a: T) { >i : (a: T) => void diff --git a/tests/baselines/reference/varBlock.types b/tests/baselines/reference/varBlock.types index c8813d93b41ef..c616a2ec22940 100644 --- a/tests/baselines/reference/varBlock.types +++ b/tests/baselines/reference/varBlock.types @@ -10,8 +10,8 @@ module m2 { > : ^^^ >b2 : number > : ^^^^^^ ->10 : 10 -> : ^^ +>10 : number +> : ^^^^^^ >b : any > : ^^^ } diff --git a/tests/baselines/reference/vardecl.types b/tests/baselines/reference/vardecl.types index e74765d824481..041c2d67f2863 100644 --- a/tests/baselines/reference/vardecl.types +++ b/tests/baselines/reference/vardecl.types @@ -202,8 +202,8 @@ module m2 { >a : any >b2 : number > : ^^^^^^ ->10 : 10 -> : ^^ +>10 : number +> : ^^^^^^ >b : any var m1; @@ -213,8 +213,8 @@ module m2 { >a2 : any >b22 : number > : ^^^^^^ ->10 : 10 -> : ^^ +>10 : number +> : ^^^^^^ >b222 : any var m3; diff --git a/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.types b/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.types index 979aeb580871f..fa95fbed84218 100644 --- a/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.types +++ b/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.types @@ -460,8 +460,8 @@ class FileService { var result: IUploadResult = { // This should be error >result : IUploadResult > : ^^^^^^^^^^^^^ ->{ // This should be error stat: this.jsonToStat(newFilePath, "someString"), // _this needs to be emitted to the js file isNew: response.status === 201 } : { stat: any; isNew: boolean; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ // This should be error stat: this.jsonToStat(newFilePath, "someString"), // _this needs to be emitted to the js file isNew: response.status === 201 } : IUploadResult +> : ^^^^^^^^^^^^^ stat: this.jsonToStat(newFilePath, "someString"), // _this needs to be emitted to the js file >stat : any diff --git a/tests/baselines/reference/variadicTuples2.errors.txt b/tests/baselines/reference/variadicTuples2.errors.txt index 269771a5f2691..f79e63a45a89b 100644 --- a/tests/baselines/reference/variadicTuples2.errors.txt +++ b/tests/baselines/reference/variadicTuples2.errors.txt @@ -46,7 +46,7 @@ variadicTuples2.ts(79,5): error TS2322: Type '[number, ...T]' is not assignable Type '[number, ...unknown[]]' is not assignable to type '[number, ...number[]]'. Type at position 1 in source is not compatible with type at position 1 in target. Type 'unknown' is not assignable to type 'number'. -variadicTuples2.ts(84,5): error TS2322: Type '[number, string, ...any[]]' is not assignable to type '[number, ...number[]]'. +variadicTuples2.ts(84,34): error TS2322: Type '[number, string, ...any[]]' is not assignable to type '[number, ...number[]]'. Type at positions 1 through 2 in source is not compatible with type at position 1 in target. Type 'string' is not assignable to type 'number'. variadicTuples2.ts(116,16): error TS2345: Argument of type '[1, 2, 3, number]' is not assignable to parameter of type '[...number[], (...values: number[]) => void]'. @@ -225,7 +225,7 @@ variadicTuples2.ts(139,25): error TS2345: Argument of type '["blah2", 1, 2, 3]' // repro #50216 declare let tt3: [number, string, ...any[]] let tt4: [number, ...number[]] = tt3 // Error - ~~~ + ~~~ !!! error TS2322: Type '[number, string, ...any[]]' is not assignable to type '[number, ...number[]]'. !!! error TS2322: Type at positions 1 through 2 in source is not compatible with type at position 1 in target. !!! error TS2322: Type 'string' is not assignable to type 'number'. diff --git a/tests/baselines/reference/variadicTuples2.types b/tests/baselines/reference/variadicTuples2.types index 34516c7d7582b..8ac808925070c 100644 --- a/tests/baselines/reference/variadicTuples2.types +++ b/tests/baselines/reference/variadicTuples2.types @@ -500,8 +500,8 @@ declare let tt3: [number, string, ...any[]] let tt4: [number, ...number[]] = tt3 // Error >tt4 : [number, ...number[]] > : ^^^^^^^^^^^^^^^^^^^^^ ->tt3 : [number, string, ...any[]] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +>tt3 : [number, ...number[]] +> : ^^^^^^^^^^^^^^^^^^^^^ // Inference diff --git a/tests/baselines/reference/variadicTuples3.types b/tests/baselines/reference/variadicTuples3.types index 303507d764c71..9d820ff91b0f6 100644 --- a/tests/baselines/reference/variadicTuples3.types +++ b/tests/baselines/reference/variadicTuples3.types @@ -10,8 +10,8 @@ function test1(): [...T, ...P] { let x: any[] = []; >x : any[] > : ^^^^^ ->[] : never[] -> : ^^^^^^^ +>[] : any[] +> : ^^^^^ return x; >x : any[] @@ -25,8 +25,8 @@ function test2(): [...T, ...P] { let x: [any, any] = [null, null]; >x : [any, any] > : ^^^^^^^^^^ ->[null, null] : [null, null] -> : ^^^^^^^^^^^^ +>[null, null] : [any, any] +> : ^^^^^^^^^^ return x; >x : [any, any] @@ -40,8 +40,8 @@ function test3(): [...T, ...P] { let x: [any, any, any] = [null, null, null]; >x : [any, any, any] > : ^^^^^^^^^^^^^^^ ->[null, null, null] : [null, null, null] -> : ^^^^^^^^^^^^^^^^^^ +>[null, null, null] : [any, any, any] +> : ^^^^^^^^^^^^^^^ return x; >x : [any, any, any] diff --git a/tests/baselines/reference/voidFunctionAssignmentCompat.types b/tests/baselines/reference/voidFunctionAssignmentCompat.types index 223a89cab793d..324306e95a3a9 100644 --- a/tests/baselines/reference/voidFunctionAssignmentCompat.types +++ b/tests/baselines/reference/voidFunctionAssignmentCompat.types @@ -79,8 +79,8 @@ var fra: (v:any)=>any = function() { return function () {}; } // should work >fra : (v: any) => any > : ^ ^^ ^^^^^ >v : any ->function() { return function () {}; } : () => () => void -> : ^^^^^^^^^^^^^^^^ +>function() { return function () {}; } : (v: any) => any +> : ^ ^^ ^^^^^ >function () {} : () => void > : ^^^^^^^^^^ @@ -88,8 +88,8 @@ var frv: (v:any)=>void = function() { return function () { return 0; } } // shou >frv : (v: any) => void > : ^ ^^ ^^^^^ >v : any ->function() { return function () { return 0; } } : () => () => number -> : ^^^^^^^^^^^^^^^^^^ +>function() { return function () { return 0; } } : (v: any) => void +> : ^ ^^ ^^^^^ >function () { return 0; } : () => number > : ^^^^^^^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/voidOperator1.types b/tests/baselines/reference/voidOperator1.types index adb82280186f1..35e7e0cfdb16a 100644 --- a/tests/baselines/reference/voidOperator1.types +++ b/tests/baselines/reference/voidOperator1.types @@ -3,16 +3,15 @@ === voidOperator1.ts === var x: any = void 1; >x : any ->void 1 : undefined -> : ^^^^^^^^^ +>void 1 : any >1 : 1 > : ^ var y: void = void 1; >y : void > : ^^^^ ->void 1 : undefined -> : ^^^^^^^^^ +>void 1 : void +> : ^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/voidOperatorWithAnyOtherType.types b/tests/baselines/reference/voidOperatorWithAnyOtherType.types index 93cc0dfcb64ae..4a1e6793feb1c 100644 --- a/tests/baselines/reference/voidOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/voidOperatorWithAnyOtherType.types @@ -14,8 +14,8 @@ var ANY1; var ANY2: any[] = ["", ""]; >ANY2 : any[] > : ^^^^^ ->["", ""] : string[] -> : ^^^^^^^^ +>["", ""] : any[] +> : ^^^^^ >"" : "" > : ^^ >"" : "" diff --git a/tests/baselines/reference/voidParamAssignmentCompatibility.types b/tests/baselines/reference/voidParamAssignmentCompatibility.types index 772739b140b6e..5e7b97e7641b8 100644 --- a/tests/baselines/reference/voidParamAssignmentCompatibility.types +++ b/tests/baselines/reference/voidParamAssignmentCompatibility.types @@ -10,8 +10,8 @@ declare function g(a: void): void; let gg: () => void = g; >gg : () => void > : ^^^^^^ ->g : (a: void) => void -> : ^ ^^ ^^^^^ +>g : () => void +> : ^^^^^^ interface Obj { method(value: T): void; diff --git a/tests/baselines/reference/weakType.errors.txt b/tests/baselines/reference/weakType.errors.txt index 63732842ec62c..55ac4be5a99a4 100644 --- a/tests/baselines/reference/weakType.errors.txt +++ b/tests/baselines/reference/weakType.errors.txt @@ -5,7 +5,7 @@ weakType.ts(18,13): error TS2559: Type '12' has no properties in common with typ weakType.ts(19,13): error TS2559: Type '"completely wrong"' has no properties in common with type 'Settings'. weakType.ts(20,13): error TS2559: Type 'false' has no properties in common with type 'Settings'. weakType.ts(37,18): error TS2559: Type '{ error?: number; }' has no properties in common with type 'ChangeOptions'. -weakType.ts(62,5): error TS2322: Type '{ properties: { wrong: string; }; }' is not assignable to type 'Weak & Spoiler'. +weakType.ts(62,28): error TS2322: Type '{ properties: { wrong: string; }; }' is not assignable to type 'Weak & Spoiler'. Types of property 'properties' are incompatible. Type '{ wrong: string; }' has no properties in common with type '{ b?: number; }'. @@ -90,7 +90,7 @@ weakType.ts(62,5): error TS2322: Type '{ properties: { wrong: string; }; }' is n } } let weak: Weak & Spoiler = propertiesWrong - ~~~~ + ~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ properties: { wrong: string; }; }' is not assignable to type 'Weak & Spoiler'. !!! error TS2322: Types of property 'properties' are incompatible. !!! error TS2322: Type '{ wrong: string; }' has no properties in common with type '{ b?: number; }'. diff --git a/tests/baselines/reference/weakType.types b/tests/baselines/reference/weakType.types index be047048adee5..a98e2fd51a6ff 100644 --- a/tests/baselines/reference/weakType.types +++ b/tests/baselines/reference/weakType.types @@ -191,8 +191,8 @@ interface Ctor { let ctor: Ctor = K >ctor : Ctor > : ^^^^ ->K : typeof K -> : ^^^^^^^^ +>K : Ctor +> : ^^^^ type Spoiler = { nope?: string } >Spoiler : Spoiler @@ -233,7 +233,7 @@ declare let propertiesWrong: { let weak: Weak & Spoiler = propertiesWrong >weak : Weak & Spoiler > : ^^^^^^^^^^^^^^ ->propertiesWrong : { properties: { wrong: string; }; } -> : ^^^^^^^^^^^^^^ ^^^ +>propertiesWrong : Weak & Spoiler +> : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/widenToAny1.errors.txt b/tests/baselines/reference/widenToAny1.errors.txt index 3ecfc91260a24..91c0c3fc2d280 100644 --- a/tests/baselines/reference/widenToAny1.errors.txt +++ b/tests/baselines/reference/widenToAny1.errors.txt @@ -1,4 +1,4 @@ -widenToAny1.ts(4,5): error TS2322: Type 'string' is not assignable to type 'number'. +widenToAny1.ts(4,18): error TS2322: Type 'string' is not assignable to type 'number'. ==== widenToAny1.ts (1 errors) ==== @@ -6,6 +6,6 @@ widenToAny1.ts(4,5): error TS2322: Type 'string' is not assignable to type 'numb return undefined; } var z1: number = foo1({ x: undefined, y: "def" }); // Best common type is any - ~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/widenToAny1.types b/tests/baselines/reference/widenToAny1.types index ff6671a28ca8c..c4cdb336dd87e 100644 --- a/tests/baselines/reference/widenToAny1.types +++ b/tests/baselines/reference/widenToAny1.types @@ -18,7 +18,7 @@ function foo1(f1: { x: T; y: T }): T { var z1: number = foo1({ x: undefined, y: "def" }); // Best common type is any >z1 : number > : ^^^^^^ ->foo1({ x: undefined, y: "def" }) : string +>foo1({ x: undefined, y: "def" }) : number > : ^^^^^^ >foo1 : (f1: { x: T; y: T; }) => T > : ^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/widenToAny2.errors.txt b/tests/baselines/reference/widenToAny2.errors.txt index a13b9a6ea0995..cbc0d1c57aa53 100644 --- a/tests/baselines/reference/widenToAny2.errors.txt +++ b/tests/baselines/reference/widenToAny2.errors.txt @@ -1,4 +1,4 @@ -widenToAny2.ts(4,5): error TS2322: Type 'string' is not assignable to type 'number'. +widenToAny2.ts(4,17): error TS2322: Type 'string' is not assignable to type 'number'. ==== widenToAny2.ts (1 errors) ==== @@ -6,6 +6,6 @@ widenToAny2.ts(4,5): error TS2322: Type 'string' is not assignable to type 'numb return undefined; } var z3:number = foo3([undefined, "def"]); // Type is any, but should be string - ~~ + ~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/widenToAny2.types b/tests/baselines/reference/widenToAny2.types index f8db97cc759ab..fe786b7a14fad 100644 --- a/tests/baselines/reference/widenToAny2.types +++ b/tests/baselines/reference/widenToAny2.types @@ -14,7 +14,7 @@ function foo3(x: T[]): T { var z3:number = foo3([undefined, "def"]); // Type is any, but should be string >z3 : number > : ^^^^^^ ->foo3([undefined, "def"]) : string +>foo3([undefined, "def"]) : number > : ^^^^^^ >foo3 : (x: T[]) => T > : ^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/widenedTypes.errors.txt b/tests/baselines/reference/widenedTypes.errors.txt index f1f7a468015ad..bde686c133873 100644 --- a/tests/baselines/reference/widenedTypes.errors.txt +++ b/tests/baselines/reference/widenedTypes.errors.txt @@ -4,8 +4,11 @@ widenedTypes.ts(5,7): error TS18050: The value 'null' cannot be used here. widenedTypes.ts(9,14): error TS2695: Left side of comma operator is unused and has no side effects. widenedTypes.ts(10,1): error TS2322: Type 'string' is not assignable to type 'number'. widenedTypes.ts(17,1): error TS2322: Type 'string' is not assignable to type 'number'. -widenedTypes.ts(22,22): error TS2322: Type 'number' is not assignable to type 'string'. -widenedTypes.ts(23,39): error TS2322: Type 'number' is not assignable to type 'string'. +widenedTypes.ts(22,21): error TS2322: Type 'number[]' is not assignable to type 'string[]'. + Type 'number' is not assignable to type 'string'. +widenedTypes.ts(23,37): error TS2322: Type '{ x: number; y: null; }' is not assignable to type '{ [x: string]: string; }'. + Property 'x' is incompatible with index signature. + Type 'number' is not assignable to type 'string'. ==== widenedTypes.ts (8 errors) ==== @@ -43,9 +46,11 @@ widenedTypes.ts(23,39): error TS2322: Type 'number' is not assignable to type 's // Highlights the difference between array literals and object literals var arr: string[] = [3, null]; // not assignable because null is not widened. BCT is {} - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. + ~~~~~~~~~ +!!! error TS2322: Type 'number[]' is not assignable to type 'string[]'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var obj: { [x: string]: string; } = { x: 3, y: null }; // assignable because null is widened, and therefore BCT is any - ~ -!!! error TS2322: Type 'number' is not assignable to type 'string'. -!!! related TS6501 widenedTypes.ts:23:12: The expected type comes from this index signature. \ No newline at end of file + ~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ x: number; y: null; }' is not assignable to type '{ [x: string]: string; }'. +!!! error TS2322: Property 'x' is incompatible with index signature. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/widenedTypes.types b/tests/baselines/reference/widenedTypes.types index a720b3f015267..9a4ddb671937f 100644 --- a/tests/baselines/reference/widenedTypes.types +++ b/tests/baselines/reference/widenedTypes.types @@ -64,8 +64,8 @@ var x: typeof undefined = 3; > : ^^^ >undefined : undefined > : ^^^^^^^^^ ->3 : 3 -> : ^ +>3 : any +> : ^^^ x = 3; >x = 3 : 3 @@ -112,8 +112,8 @@ var ob: { x: typeof undefined } = { x: "" }; > : ^^^ >undefined : undefined > : ^^^^^^^^^ ->{ x: "" } : { x: string; } -> : ^^^^^^^^^^^^^^ +>{ x: "" } : { x: typeof undefined; } +> : ^^^^^ ^^^ >x : string > : ^^^^^^ >"" : "" @@ -123,7 +123,7 @@ var ob: { x: typeof undefined } = { x: "" }; var arr: string[] = [3, null]; // not assignable because null is not widened. BCT is {} >arr : string[] > : ^^^^^^^^ ->[3, null] : number[] +>[3, null] : string[] > : ^^^^^^^^ >3 : 3 > : ^ @@ -133,8 +133,8 @@ var obj: { [x: string]: string; } = { x: 3, y: null }; // assignable because nul > : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ ->{ x: 3, y: null } : { x: number; y: null; } -> : ^^^^^^^^^^^^^^^^^^^^^^^ +>{ x: 3, y: null } : { [x: string]: string; } +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ >3 : 3 diff --git a/tests/baselines/reference/wideningTuples2.types b/tests/baselines/reference/wideningTuples2.types index 622d196b08347..5b655b0fc02ab 100644 --- a/tests/baselines/reference/wideningTuples2.types +++ b/tests/baselines/reference/wideningTuples2.types @@ -5,7 +5,7 @@ var foo: () => [any] = function bar() { >foo : () => [any] > : ^^^^^^ >function bar() { let intermediate = bar(); intermediate = [""]; return [undefined];} : () => [any] -> : ^^^^^^^^^^^ +> : ^^^^^^ >bar : () => [any] > : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/yieldInForInInDownlevelGenerator.types b/tests/baselines/reference/yieldInForInInDownlevelGenerator.types index 324d21c2298c3..c0d89773160f0 100644 --- a/tests/baselines/reference/yieldInForInInDownlevelGenerator.types +++ b/tests/baselines/reference/yieldInForInInDownlevelGenerator.types @@ -8,8 +8,7 @@ function* gen() { var obj: any = { foo: 1, bar: 2 }; >obj : any ->{ foo: 1, bar: 2 } : { foo: number; bar: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>{ foo: 1, bar: 2 } : any >foo : number > : ^^^^^^ >1 : 1