From c4b22d338f32eda8117ce23a3ab887e86c53b211 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Fri, 15 Aug 2014 15:49:09 -0700 Subject: [PATCH] Emit comments for expression statements --- src/compiler/emitter.ts | 2 + tests/baselines/reference/aliasAssignments.js | 4 +- .../reference/aliasOnMergedModuleInterface.js | 2 +- .../reference/aliasUsedAsNameValue.js | 1 + .../ambiguousCallsWhereReturnTypesAgree.js | 2 +- ...gumentsBindsToFunctionScopeArgumentList.js | 2 +- .../baselines/reference/arithAssignTyping.js | 24 +- .../reference/arrayAssignmentTest1.js | 55 +- .../reference/arrayAssignmentTest2.js | 23 +- .../reference/arrayAssignmentTest4.js | 4 +- tests/baselines/reference/arrayCast.js | 3 + .../reference/arrayLiteralContextualType.js | 8 +- .../reference/arrowFunctionContexts.js | 2 + .../reference/assignFromBooleanInterface2.js | 4 +- .../reference/assignFromNumberInterface2.js | 4 +- .../reference/assignFromStringInterface2.js | 4 +- tests/baselines/reference/assignToEnum.js | 8 +- tests/baselines/reference/assignToModule.js | 2 +- .../reference/assignmentCompatBug2.js | 12 +- ...signmentCompatFunctionsWithOptionalArgs.js | 8 +- .../reference/assignmentCompatOnNew.js | 2 +- .../assignmentCompatWithCallSignatures.js | 1 + .../assignmentCompatWithCallSignatures2.js | 2 + .../assignmentCompatWithCallSignatures3.js | 72 +-- .../assignmentCompatWithCallSignatures4.js | 4 +- .../assignmentCompatWithCallSignatures5.js | 44 +- ...ithCallSignaturesWithOptionalParameters.js | 96 +-- ...patWithCallSignaturesWithRestParameters.js | 56 +- ...assignmentCompatWithConstructSignatures.js | 1 + ...ssignmentCompatWithConstructSignatures2.js | 2 + ...ssignmentCompatWithConstructSignatures3.js | 72 +-- ...ssignmentCompatWithConstructSignatures4.js | 48 +- ...ssignmentCompatWithConstructSignatures5.js | 44 +- ...nstructSignaturesWithOptionalParameters.js | 60 +- ...signmentCompatWithGenericCallSignatures.js | 4 +- ...ignmentCompatWithGenericCallSignatures2.js | 1 + ...ignmentCompatWithGenericCallSignatures3.js | 2 +- ...ignmentCompatWithGenericCallSignatures4.js | 1 + ...ricCallSignaturesWithOptionalParameters.js | 73 +-- .../assignmentCompatWithNumericIndexer.js | 16 +- .../assignmentCompatWithNumericIndexer2.js | 16 +- .../assignmentCompatWithNumericIndexer3.js | 16 +- .../assignmentCompatWithObjectMembers4.js | 76 +-- .../assignmentCompatWithObjectMembers5.js | 4 +- ...entCompatWithObjectMembersAccessibility.js | 48 +- ...nmentCompatWithObjectMembersOptionality.js | 27 +- ...mentCompatWithObjectMembersOptionality2.js | 27 +- ...mpatWithObjectMembersStringNumericNames.js | 46 +- .../assignmentCompatWithOverloads.js | 10 +- .../assignmentCompatWithStringIndexer.js | 24 +- .../assignmentCompatWithStringIndexer2.js | 24 +- .../assignmentCompatWithStringIndexer3.js | 8 +- ...-apply-member-off-of-function-interface.js | 3 + ...g-call-member-off-of-function-interface.js | 3 + .../reference/assignmentLHSIsReference.js | 1 + .../assignmentToParenthesizedIdentifiers.js | 76 +-- tests/baselines/reference/assignments.js | 16 +- tests/baselines/reference/avoid.js | 2 +- .../bitwiseNotOperatorWithAnyOtherType.js | 1 + .../bitwiseNotOperatorWithBooleanType.js | 1 + .../bitwiseNotOperatorWithEnumType.js | 1 + .../bitwiseNotOperatorWithNumberType.js | 1 + .../bitwiseNotOperatorWithStringType.js | 1 + .../reference/callConstructAssignment.js | 4 +- tests/baselines/reference/callOnInstance.js | 2 +- ...resShouldBeResolvedBeforeSpecialization.js | 4 +- .../reference/castExpressionParentheses.js | 6 + .../baselines/reference/chainedAssignment1.js | 4 +- .../baselines/reference/chainedAssignment3.js | 1 + .../reference/chainedAssignmentChecking.js | 2 +- ...arameterConstrainedToOtherTypeParameter.js | 1 + ...rameterConstrainedToOtherTypeParameter2.js | 7 + ...hainedSpecializationToObjectTypeLiteral.js | 2 +- .../reference/classImplementsClass6.js | 4 +- .../classMemberInitializerScoping.js | 2 +- .../classMemberInitializerWithLamdaScoping.js | 8 +- ...classMemberInitializerWithLamdaScoping2.js | 2 +- ...classMemberInitializerWithLamdaScoping5.js | 2 +- .../reference/classSideInheritance1.js | 8 +- tests/baselines/reference/cloduleTest2.js | 8 +- .../collisionRestParameterUnderscoreIUsage.js | 2 +- .../collisionSuperAndNameResolution.js | 2 +- ...sionThisExpressionAndAmbientVarInGlobal.js | 2 +- ...ollisionThisExpressionAndNameResolution.js | 2 +- .../commaOperatorInvalidAssignmentType.js | 1 + .../commaOperatorWithSecondOperandAnyType.js | 1 + ...mmaOperatorWithSecondOperandBooleanType.js | 2 + ...ommaOperatorWithSecondOperandNumberType.js | 2 + ...ommaOperatorWithSecondOperandObjectType.js | 2 + ...ommaOperatorWithSecondOperandStringType.js | 2 + .../commaOperatorsMultipleOperators.js | 2 + .../commentOnExpressionStatement1.js | 2 +- .../reference/commentsClassMembers.js | 1 + tests/baselines/reference/commentsFunction.js | 10 +- .../reference/commentsInheritance.js | 3 + tests/baselines/reference/commentsVarDecl.js | 1 + .../compoundAssignmentLHSIsReference.js | 1 + ...nditionalOperatorConditionIsBooleanType.js | 3 + ...onditionalOperatorConditionIsNumberType.js | 2 + ...onditionalOperatorConditionIsObjectType.js | 3 + .../conditionalOperatorConditoinIsAnyType.js | 3 + ...onditionalOperatorConditoinIsStringType.js | 2 + .../conditionalOperatorWithIdenticalBCT.js | 6 + .../conditionalOperatorWithoutIdenticalBCT.js | 2 + .../constraintSatisfactionWithAny.js | 2 + .../constraintsUsedInPrototypeProperty.js | 2 +- .../constructorArgWithGenericCallSignature.js | 2 +- .../constructorParameterShadowsOuterScopes.js | 2 +- ...tualSignatureInstatiationContravariance.js | 4 +- ...ntextualSignatureInstatiationCovariance.js | 4 +- ...ontextualTypingOfLambdaReturnExpression.js | 4 +- .../contextualTypingOfObjectLiterals.js | 10 +- .../contextualTypingOfObjectLiterals2.js | 2 +- ...ontextualTypingWithFixedTypeParameters1.js | 2 +- .../reference/copyrightWithNewLine1.js | 1 + .../reference/copyrightWithoutNewLine1.js | 1 + tests/baselines/reference/covariance1.js | 4 +- .../baselines/reference/customEventDetail.js | 1 + .../decrementAndIncrementOperators.js | 2 + .../decrementOperatorWithAnyOtherType.js | 1 + ...eratorWithAnyOtherTypeInvalidOperations.js | 1 + .../decrementOperatorWithEnumType.js | 1 + ...ntOperatorWithEnumTypeInvalidOperations.js | 1 + .../decrementOperatorWithNumberType.js | 1 + ...OperatorWithNumberTypeInvalidOperations.js | 1 + ...ementOperatorWithUnsupportedBooleanType.js | 1 + ...rementOperatorWithUnsupportedStringType.js | 1 + .../baselines/reference/defaultIndexProps2.js | 1 + .../deleteOperatorWithAnyOtherType.js | 1 + .../deleteOperatorWithBooleanType.js | 1 + .../reference/deleteOperatorWithEnumType.js | 1 + .../reference/deleteOperatorWithNumberType.js | 1 + .../reference/deleteOperatorWithStringType.js | 1 + .../derivedClassParameterProperties.js | 20 +- .../derivedClassSuperCallsWithThisArg.js | 8 +- ...edTypeCallingBaseImplWithOptionalParams.js | 4 +- .../reference/duplicateLocalVariable1.js | 10 + .../reference/dynamicModuleTypecheckError.js | 2 +- .../reference/emitMemberAccessExpression.js | 2 + .../baselines/reference/enumAssignability.js | 6 +- tests/baselines/reference/enumBasics1.js | 21 +- .../reference/enumMapBackIntoItself.js | 1 + .../baselines/reference/enumPropertyAccess.js | 6 +- tests/baselines/reference/errorSupression1.js | 1 + tests/baselines/reference/es6DeclOrdering.js | 2 +- .../reference/exportEqualErrorType.js | 2 +- .../reference/exportEqualMemberMissing.js | 2 +- .../reference/exportImportMultipleFiles.js | 4 +- .../reference/externalModuleAssignToVar.js | 6 +- .../reference/externalModuleResolution.js | 2 +- .../reference/externalModuleResolution2.js | 2 +- ...rowfunctionsInFunctionParameterDefaults.js | 2 +- ...eParameterInSignatureWithRestParameters.js | 2 +- tests/baselines/reference/forIn.js | 1 + .../reference/functionArgShadowing.js | 2 +- tests/baselines/reference/functionCalls.js | 4 + .../functionExpressionShadowedByParams.js | 8 +- .../reference/functionImplementationErrors.js | 2 + .../reference/functionImplementations.js | 1 + tests/baselines/reference/functionLiterals.js | 4 + .../reference/functionOverloadAmbiguity1.js | 4 +- .../genericArgumentCallSigAssignmentCompat.js | 3 + .../genericArrayPropertyAssignment.js | 2 +- .../genericCallSpecializedToTypeArg.js | 2 +- .../genericCallWithFixedArguments.js | 2 +- .../genericCallbacksAndClassHierarchy.js | 1 + .../genericClassWithStaticFactory.js | 6 +- .../genericContextualTypingSpecialization.js | 2 +- .../genericDerivedTypeWithSpecializedBase.js | 2 +- .../genericDerivedTypeWithSpecializedBase2.js | 2 +- ...genericFunctionsWithOptionalParameters1.js | 8 +- ...genericFunctionsWithOptionalParameters2.js | 8 +- .../genericInterfaceFunctionTypeParameter.js | 2 +- .../reference/genericInterfaceTypeCall.js | 2 +- .../reference/genericObjectLitReturnType.js | 2 +- .../reference/genericOfACloduleType2.js | 2 +- .../genericParameterAssignability1.js | 2 +- tests/baselines/reference/genericReduce.js | 12 +- .../reference/genericSpecializations3.js | 4 +- .../reference/genericTypeAssertions4.js | 10 +- .../reference/genericTypeAssertions5.js | 10 +- ...ithCallSignatureReturningSpecialization.js | 2 +- .../genericWithOpenTypeParameters1.js | 2 +- tests/baselines/reference/generics3.js | 2 +- tests/baselines/reference/generics4.js | 2 +- .../baselines/reference/globalThisCapture.js | 2 + .../baselines/reference/grammarAmbiguities.js | 4 +- .../heterogeneousArrayAndOverloads.js | 2 +- .../reference/hidingCallSignatures.js | 8 +- .../reference/hidingConstructSignatures.js | 8 +- .../reference/hidingIndexSignatures.js | 4 +- ...tAnyFunctionInvocationWithAnyArguements.js | 1 + ...mplicitAnyFunctionReturnNullOrUndefined.js | 1 + .../incrementOperatorWithAnyOtherType.js | 1 + ...eratorWithAnyOtherTypeInvalidOperations.js | 1 + .../incrementOperatorWithEnumType.js | 1 + ...ntOperatorWithEnumTypeInvalidOperations.js | 1 + .../incrementOperatorWithNumberType.js | 1 + ...OperatorWithNumberTypeInvalidOperations.js | 1 + ...ementOperatorWithUnsupportedBooleanType.js | 1 + ...rementOperatorWithUnsupportedStringType.js | 1 + .../baselines/reference/indexClassByNumber.js | 2 +- .../reference/indexIntoArraySubclass.js | 2 +- ...eArgumentsInSignatureWithRestParameters.js | 8 +- ...ypingWithFunctionTypeSyntacticScenarios.js | 5 + ...entialTypingWithObjectLiteralProperties.js | 4 +- .../infiniteExpansionThroughTypeInference.js | 2 +- .../reference/infinitelyExpandingTypes1.js | 6 +- .../reference/infinitelyExpandingTypes2.js | 2 +- .../reference/infinitelyExpandingTypes3.js | 2 +- .../reference/infinitelyExpandingTypes4.js | 4 +- .../inheritedConstructorWithRestParams.js | 2 + .../inheritedConstructorWithRestParams2.js | 2 + .../inheritedGenericCallSignature.js | 2 +- ...nheritedOverloadedSpecializedSignatures.js | 1 + .../instanceMemberAssignsToClassPrototype.js | 6 +- .../baselines/reference/instanceofOperator.js | 2 + .../reference/interfaceAssignmentCompat.js | 6 +- .../interfaceExtendsClassWithPrivate1.js | 6 +- .../reference/interfaceInheritance.js | 6 +- tests/baselines/reference/intrinsics.js | 2 +- .../baselines/reference/invalidConstraint1.js | 2 +- .../reference/invalidUndefinedAssignments.js | 1 + tests/baselines/reference/ipromise4.js | 4 +- tests/baselines/reference/lambdaArgCrash.js | 3 + tests/baselines/reference/lambdaExpression.js | 2 +- tests/baselines/reference/lambdaParamTypes.js | 18 +- .../baselines/reference/library_ArraySlice.js | 1 + .../library_DatePrototypeProperties.js | 2 + .../library_ObjectPrototypeProperties.js | 2 + .../reference/library_StringSlice.js | 1 + .../logicalNotOperatorWithAnyOtherType.js | 1 + .../logicalNotOperatorWithBooleanType.js | 1 + .../logicalNotOperatorWithEnumType.js | 1 + .../logicalNotOperatorWithNumberType.js | 1 + .../logicalNotOperatorWithStringType.js | 1 + .../reference/mergedDeclarations3.js | 8 +- .../methodSignaturesWithOverloads2.js | 2 + .../moduleAliasAsFunctionArgument.js | 4 +- .../reference/moduleAssignmentCompat1.js | 1 + .../reference/moduleAssignmentCompat2.js | 2 +- .../reference/moduleAssignmentCompat3.js | 1 + .../reference/moduleAssignmentCompat4.js | 2 +- tests/baselines/reference/moduleVariables.js | 6 +- .../baselines/reference/multiCallOverloads.js | 8 +- .../mutuallyRecursiveGenericBaseTypes1.js | 2 +- .../reference/namedFunctionExpressionCall.js | 2 + .../namedFunctionExpressionCallErrors.js | 4 + .../negateOperatorWithAnyOtherType.js | 1 + .../negateOperatorWithBooleanType.js | 1 + .../reference/negateOperatorWithEnumType.js | 1 + .../reference/negateOperatorWithNumberType.js | 1 + .../reference/negateOperatorWithStringType.js | 1 + .../reference/newOnInstanceSymbol.js | 2 +- .../reference/noImplicitAnyWithOverloads.js | 2 +- .../nonContextuallyTypedLogicalOr.js | 2 + tests/baselines/reference/numberToString.js | 4 +- .../reference/numericIndexExpressions.js | 8 +- .../objectLiteralArraySpecialization.js | 2 +- ...bjectLiteralFunctionArgContextualTyping.js | 12 +- .../reference/objectLiteralIndexerErrors.js | 2 +- .../reference/objectLiteralIndexers.js | 4 +- .../reference/objectMembersOnTypes.js | 4 +- ...peHidingMembersOfObjectAssignmentCompat.js | 12 +- ...eHidingMembersOfObjectAssignmentCompat2.js | 12 +- .../objectTypeWithRecursiveWrappedProperty.js | 4 +- ...objectTypeWithRecursiveWrappedProperty2.js | 4 +- ...ecursiveWrappedPropertyCheckedNominally.js | 34 +- .../optionalFunctionArgAssignability.js | 2 +- .../reference/optionalPropertiesTest.js | 8 +- tests/baselines/reference/overload1.js | 12 +- tests/baselines/reference/overloadCrash.js | 2 +- .../overloadOnConstNoAnyImplementation.js | 4 +- .../overloadOnConstNoAnyImplementation2.js | 2 +- .../overloadOnConstNoStringImplementation.js | 6 +- .../baselines/reference/overloadResolution.js | 25 +- .../overloadResolutionClassConstructors.js | 38 +- .../overloadResolutionConstructors.js | 25 +- .../overloadResolutionOverCTLambda.js | 2 +- .../reference/overloadResolutionWithAny.js | 14 +- .../overloadsAndTypeArgumentArity.js | 4 +- .../overloadsAndTypeArgumentArityErrors.js | 4 +- .../overloadsWithProvisionalErrors.js | 6 +- tests/baselines/reference/parser509534.js | 2 + .../reference/parserNotHexLiteral1.js | 2 + .../baselines/reference/parserS7.2_A1.5_T2.js | 9 + .../reference/plusOperatorWithAnyOtherType.js | 1 + .../reference/plusOperatorWithBooleanType.js | 1 + .../reference/plusOperatorWithEnumType.js | 1 + .../reference/plusOperatorWithNumberType.js | 1 + .../reference/plusOperatorWithStringType.js | 1 + .../reference/primitiveConstraints1.js | 4 +- .../reference/primitiveConstraints2.js | 4 +- .../baselines/reference/privateVisibility.js | 12 +- .../declareExportAdded/amd/consumer.js | 2 + .../declareExportAdded/node/consumer.js | 2 + .../reference/project/prologueEmit/amd/out.js | 1 + .../project/prologueEmit/node/out.js | 1 + .../reference/promisesWithConstraints.js | 8 +- .../propagationOfPromiseInitialization.js | 1 + tests/baselines/reference/propertyAccess.js | 2 + .../propertyParameterWithQuestionMark.js | 2 +- tests/baselines/reference/protoInIndexer.js | 2 +- ...prototypeInstantiatedWithBaseConstraint.js | 2 +- tests/baselines/reference/prototypes.js | 4 +- .../reference/recursiveClassReferenceTest.js | 1 + .../recursiveClassReferenceTest.js.map | 2 +- .../recursiveClassReferenceTest.sourcemap.txt | 592 +++++++++--------- .../reference/recursiveFunctionTypes.js | 16 +- .../reference/recursiveNamedLambdaCall.js | 1 + .../restParameterAssignmentCompatibility.js | 7 +- .../reference/restParamsWithNonRestParams.js | 6 +- ...verseInferenceInContextualInstantiation.js | 2 +- .../reference/scannerS7.2_A1.5_T2.js | 9 + .../scopeCheckInsidePublicMethod1.js | 2 +- .../scopeCheckInsideStaticMethod1.js | 4 +- ...pecializedSignatureAsCallbackParameter1.js | 1 + .../baselines/reference/staticInheritance.js | 2 +- ...mberAssignsToConstructorFunctionMembers.js | 6 +- ...AndPublicMemberOfAnotherClassAssignment.js | 6 +- .../reference/staticOffOfInstance2.js | 2 +- .../reference/strictModeInConstructor.js | 8 +- .../reference/stringIndexerAssignments1.js | 2 +- .../reference/subtypingTransitivity.js | 2 +- .../subtypingWithOptionalProperties.js | 2 +- .../reference/superCallArgsMustMatch.js | 2 +- .../superCallInConstructorWithNoBaseType.js | 4 +- .../superWithGenericSpecialization.js | 2 +- .../reference/targetTypeBaseCalls.js | 4 +- .../reference/targetTypeObjectLiteralToAny.js | 2 +- tests/baselines/reference/targetTypeTest1.js | 7 + tests/baselines/reference/thisBinding.js | 4 +- ...thisInArrowFunctionInStaticInitializer1.js | 1 + .../reference/thisInInnerFunctions.js | 2 +- tests/baselines/reference/thisInLambda.js | 2 +- .../reference/thisInOuterClassBody.js | 2 +- tests/baselines/reference/thisInSuperCall.js | 6 +- tests/baselines/reference/thisInSuperCall2.js | 4 +- ...railingCommaInHeterogenousArrayLiteral1.js | 1 + .../reference/typeArgInferenceWithNull.js | 2 +- .../typeArgumentConstraintResolution1.js | 4 +- ...ypeArgumentInferenceConstructSignatures.js | 8 +- .../reference/typeArgumentInferenceErrors.js | 8 +- ...mentInferenceWithConstraintAsCommonRoot.js | 2 +- .../typeArgumentInferenceWithConstraints.js | 32 +- .../typeAssertionToGenericFunctionType.js | 4 +- tests/baselines/reference/typeAssertions.js | 10 +- .../reference/typeIdentityConsidersBrands.js | 8 +- .../reference/typeLiteralCallback.js | 2 +- tests/baselines/reference/typeMatch2.js | 14 +- tests/baselines/reference/typeOfPrototype.js | 2 +- .../typeParameterArgumentEquivalence.js | 4 +- .../typeParameterArgumentEquivalence2.js | 4 +- .../typeParameterArgumentEquivalence3.js | 4 +- .../typeParameterArgumentEquivalence4.js | 4 +- .../typeParameterArgumentEquivalence5.js | 4 +- ...erAsTypeParameterConstraintTransitively.js | 2 + ...rAsTypeParameterConstraintTransitively2.js | 2 + .../reference/typeParameterAssignability.js | 4 +- .../reference/typeParameterAssignability2.js | 66 +- .../reference/typeParameterAssignability3.js | 16 +- .../typeParameterAssignmentCompat1.js | 4 +- .../typeParameterAssignmentWithConstraints.js | 2 +- ...rameterCompatibilityAccrossDeclarations.js | 8 +- .../typeParameterExplicitlyExtendsAny.js | 8 +- .../reference/typeParameterOrderReversal.js | 1 + .../typeParametersShouldNotBeEqual.js | 8 +- .../typeParametersShouldNotBeEqual2.js | 16 +- .../typeParametersShouldNotBeEqual3.js | 8 +- .../reference/typedGenericPrototypeMember.js | 2 +- .../typeofOperatorWithAnyOtherType.js | 1 + .../typeofOperatorWithBooleanType.js | 1 + .../reference/typeofOperatorWithEnumType.js | 1 + .../reference/typeofOperatorWithNumberType.js | 1 + .../reference/typeofOperatorWithStringType.js | 1 + tests/baselines/reference/undeclaredMethod.js | 4 +- tests/baselines/reference/underscoreTest1.js | 6 + .../unqualifiedCallToClassStatic1.js | 1 + ...untypedFunctionCallsWithTypeParameters1.js | 2 +- .../reference/validNullAssignments.js | 16 +- .../reference/validUndefinedAssignments.js | 2 +- .../reference/validUseOfThisInSuper.js | 2 +- tests/baselines/reference/vararg.js | 16 +- tests/baselines/reference/voidArrayLit.js | 4 +- .../reference/voidAsNonAmbiguousReturnType.js | 2 +- .../reference/voidFunctionAssignmentCompat.js | 8 +- .../reference/voidOperatorWithAnyOtherType.js | 1 + .../reference/voidOperatorWithBooleanType.js | 1 + .../reference/voidOperatorWithEnumType.js | 1 + .../reference/voidOperatorWithNumberType.js | 1 + .../reference/voidOperatorWithStringType.js | 1 + tests/baselines/reference/widenedTypes.js | 2 +- tests/baselines/reference/withStatement.js | 4 +- .../reference/wrappedRecursiveGenericType.js | 8 +- tests/cases/compiler/commentsFunction.ts | 5 +- 395 files changed, 1771 insertions(+), 1438 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 12ed9a1727d..c41ec877f2d 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -917,10 +917,12 @@ module ts { function emitExpressionStatement(node: ExpressionStatement) { var isArrowExpression = node.expression.kind === SyntaxKind.ArrowFunction; + emitLeadingComments(node); if (isArrowExpression) write("("); emit(node.expression); if (isArrowExpression) write(")"); write(";"); + emitTrailingComments(node); } function emitIfStatement(node: IfStatement) { diff --git a/tests/baselines/reference/aliasAssignments.js b/tests/baselines/reference/aliasAssignments.js index 6e9a98c85d1..a019d03f990 100644 --- a/tests/baselines/reference/aliasAssignments.js +++ b/tests/baselines/reference/aliasAssignments.js @@ -23,6 +23,6 @@ exports.someClass = someClass; //// [aliasAssignments_1.js] var moduleA = require("aliasAssignments_moduleA"); var x = moduleA; -x = 1; +x = 1; // Should be error var y = 1; -y = moduleA; +y = moduleA; // should be error diff --git a/tests/baselines/reference/aliasOnMergedModuleInterface.js b/tests/baselines/reference/aliasOnMergedModuleInterface.js index a85f49906df..2bd80be8634 100644 --- a/tests/baselines/reference/aliasOnMergedModuleInterface.js +++ b/tests/baselines/reference/aliasOnMergedModuleInterface.js @@ -24,5 +24,5 @@ var x: foo.A = foo.bar("hello"); // foo.A should be ok but foo.bar should be err //// [aliasOnMergedModuleInterface_0.js] //// [aliasOnMergedModuleInterface_1.js] var z; -z.bar("hello"); +z.bar("hello"); // This should be ok var x = foo.bar("hello"); // foo.A should be ok but foo.bar should be error diff --git a/tests/baselines/reference/aliasUsedAsNameValue.js b/tests/baselines/reference/aliasUsedAsNameValue.js index 4ae9a6a530c..4b6debf4c98 100644 --- a/tests/baselines/reference/aliasUsedAsNameValue.js +++ b/tests/baselines/reference/aliasUsedAsNameValue.js @@ -31,5 +31,6 @@ exports.b = b; var mod = require("aliasUsedAsNameValue_0"); var b = require("aliasUsedAsNameValue_1"); exports.a = function () { + //var x = mod.id; // TODO needed hack that mod is loaded b.b(mod); }; diff --git a/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.js b/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.js index 040a458775b..2beabb83d11 100644 --- a/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.js +++ b/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.js @@ -35,7 +35,7 @@ var TestClass = (function () { TestClass.prototype.bar = function (x) { }; TestClass.prototype.foo = function (x) { - this.bar(x); + this.bar(x); // should not error }; return TestClass; })(); diff --git a/tests/baselines/reference/argumentsBindsToFunctionScopeArgumentList.js b/tests/baselines/reference/argumentsBindsToFunctionScopeArgumentList.js index 6d021a45eba..9a5b13f74f3 100644 --- a/tests/baselines/reference/argumentsBindsToFunctionScopeArgumentList.js +++ b/tests/baselines/reference/argumentsBindsToFunctionScopeArgumentList.js @@ -7,5 +7,5 @@ function foo(a) { //// [argumentsBindsToFunctionScopeArgumentList.js] var arguments = 10; function foo(a) { - arguments = 10; + arguments = 10; /// This shouldnt be of type number and result in error. } diff --git a/tests/baselines/reference/arithAssignTyping.js b/tests/baselines/reference/arithAssignTyping.js index 5d4776fd99f..10e60bfb1f2 100644 --- a/tests/baselines/reference/arithAssignTyping.js +++ b/tests/baselines/reference/arithAssignTyping.js @@ -20,15 +20,15 @@ var f = (function () { } return f; })(); -f += ''; -f += 1; -f -= 1; -f *= 1; -f /= 1; -f %= 1; -f &= 1; -f |= 1; -f <<= 1; -f >>= 1; -f >>>= 1; -f ^= 1; +f += ''; // error +f += 1; // error +f -= 1; // error +f *= 1; // error +f /= 1; // error +f %= 1; // error +f &= 1; // error +f |= 1; // error +f <<= 1; // error +f >>= 1; // error +f >>>= 1; // error +f ^= 1; // error diff --git a/tests/baselines/reference/arrayAssignmentTest1.js b/tests/baselines/reference/arrayAssignmentTest1.js index 1e385fb5132..b7ded159ba9 100644 --- a/tests/baselines/reference/arrayAssignmentTest1.js +++ b/tests/baselines/reference/arrayAssignmentTest1.js @@ -153,29 +153,32 @@ var i1_error = []; // should be an error - is var c1_error = []; // should be an error - is var c2_error = []; // should be an error - is var c3_error = []; // should be an error - is -arr_any = arr_i1; -arr_any = arr_c1; -arr_any = arr_c2; -arr_any = arr_c3; -arr_i1 = arr_i1; -arr_i1 = arr_c1; -arr_i1 = arr_c2; -arr_i1 = arr_c3; -arr_c1 = arr_c1; -arr_c1 = arr_c2; -arr_c1 = arr_i1; -arr_c1 = arr_c3; -arr_c2 = arr_c2; -arr_c2 = arr_c1; -arr_c2 = arr_i1; -arr_c2 = arr_c3; -arr_c3 = arr_c2_2; -arr_c3 = arr_c1_2; -arr_c3 = arr_i1_2; -arr_any = f1; -arr_any = o1; -arr_any = a1; -arr_any = c1; -arr_any = c2; -arr_any = c3; -arr_any = i1; +arr_any = arr_i1; // should be ok - is +arr_any = arr_c1; // should be ok - is +arr_any = arr_c2; // should be ok - is +arr_any = arr_c3; // should be ok - is +arr_i1 = arr_i1; // should be ok - subtype relationship - is +arr_i1 = arr_c1; // should be ok - subtype relationship - is +arr_i1 = arr_c2; // should be ok - subtype relationship - is +arr_i1 = arr_c3; // should be an error - is +arr_c1 = arr_c1; // should be ok - subtype relationship - is +arr_c1 = arr_c2; // should be ok - subtype relationship - is +arr_c1 = arr_i1; // should be an error - is +arr_c1 = arr_c3; // should be an error - is +arr_c2 = arr_c2; // should be ok - subtype relationship - is +arr_c2 = arr_c1; // should be an error - subtype relationship - is +arr_c2 = arr_i1; // should be an error - subtype relationship - is +arr_c2 = arr_c3; // should be an error - is +// "clean up bug" occurs at this point +// if you move these three expressions to another file, they raise an error +// something to do with state from the above propagating forward? +arr_c3 = arr_c2_2; // should be an error - is +arr_c3 = arr_c1_2; // should be an error - is +arr_c3 = arr_i1_2; // should be an error - is +arr_any = f1; // should be an error - is +arr_any = o1; // should be an error - is +arr_any = a1; // should be ok - is +arr_any = c1; // should be an error - is +arr_any = c2; // should be an error - is +arr_any = c3; // should be an error - is +arr_any = i1; // should be an error - is diff --git a/tests/baselines/reference/arrayAssignmentTest2.js b/tests/baselines/reference/arrayAssignmentTest2.js index d7aef759546..ee6c1dab68b 100644 --- a/tests/baselines/reference/arrayAssignmentTest2.js +++ b/tests/baselines/reference/arrayAssignmentTest2.js @@ -123,16 +123,17 @@ var arr_i1_2 = []; var arr_c1_2 = []; var arr_c2_2 = []; var arr_c3 = []; -arr_c3 = arr_c2_2; -arr_c3 = arr_c1_2; -arr_c3 = arr_i1_2; -arr_any = f1; +// "clean up error" occurs at this point +arr_c3 = arr_c2_2; // should be an error - is +arr_c3 = arr_c1_2; // should be an error - is +arr_c3 = arr_i1_2; // should be an error - is +arr_any = f1; // should be an error - is arr_any = function () { return null; -}; -arr_any = o1; -arr_any = a1; -arr_any = c1; -arr_any = c2; -arr_any = c3; -arr_any = i1; +}; // should be an error - is +arr_any = o1; // should be an error - is +arr_any = a1; // should be ok - is +arr_any = c1; // should be an error - is +arr_any = c2; // should be an error - is +arr_any = c3; // should be an error - is +arr_any = i1; // should be an error - is diff --git a/tests/baselines/reference/arrayAssignmentTest4.js b/tests/baselines/reference/arrayAssignmentTest4.js index 87ddf2d41b4..3201e502d9b 100644 --- a/tests/baselines/reference/arrayAssignmentTest4.js +++ b/tests/baselines/reference/arrayAssignmentTest4.js @@ -51,5 +51,5 @@ var o1 = { one: 1 }; var arr_any = []; arr_any = function () { return null; -}; -arr_any = c3; +}; // should be an error - is +arr_any = c3; // should be an error - is diff --git a/tests/baselines/reference/arrayCast.js b/tests/baselines/reference/arrayCast.js index 5d3ee9b73f3..214bf642250 100644 --- a/tests/baselines/reference/arrayCast.js +++ b/tests/baselines/reference/arrayCast.js @@ -7,5 +7,8 @@ <{ id: number; }[]>[{ foo: "s" }, {}]; //// [arrayCast.js] +// Should fail. Even though the array is contextually typed with { id: number }[], it still +// has type { foo: string }[], which is not assignable to { id: number }[]. [{ foo: "s" }]; +// Should succeed, as the {} element causes the type of the array to be {}[] [{ foo: "s" }, {}]; diff --git a/tests/baselines/reference/arrayLiteralContextualType.js b/tests/baselines/reference/arrayLiteralContextualType.js index 427b14a8800..a551a754204 100644 --- a/tests/baselines/reference/arrayLiteralContextualType.js +++ b/tests/baselines/reference/arrayLiteralContextualType.js @@ -51,11 +51,11 @@ function bar(animals) { foo([ new Giraffe(), new Elephant() -]); +]); // Legal because of the contextual type IAnimal provided by the parameter bar([ new Giraffe(), new Elephant() -]); +]); // Legal because of the contextual type IAnimal provided by the parameter var arr = [new Giraffe(), new Elephant()]; -foo(arr); -bar(arr); +foo(arr); // Error because of no contextual type +bar(arr); // Error because of no contextual type diff --git a/tests/baselines/reference/arrowFunctionContexts.js b/tests/baselines/reference/arrowFunctionContexts.js index 3972bc6fcf9..abb8fd0ab7a 100644 --- a/tests/baselines/reference/arrowFunctionContexts.js +++ b/tests/baselines/reference/arrowFunctionContexts.js @@ -120,6 +120,7 @@ var Derived = (function (_super) { } return Derived; })(Base); +// Arrow function as function argument window.setTimeout(function () { return null; }, 100); // Arrow function as value in array literal var obj = function (n) { return ''; }; @@ -158,6 +159,7 @@ var M2; } return Derived; })(Base); + // Arrow function as function argument window.setTimeout(function () { return null; }, 100); // Arrow function as value in array literal var obj = function (n) { return ''; }; diff --git a/tests/baselines/reference/assignFromBooleanInterface2.js b/tests/baselines/reference/assignFromBooleanInterface2.js index cb74309cbc7..be376b293c0 100644 --- a/tests/baselines/reference/assignFromBooleanInterface2.js +++ b/tests/baselines/reference/assignFromBooleanInterface2.js @@ -30,5 +30,5 @@ a = x; a = b; b = a; b = x; -x = a; -x = b; +x = a; // expected error +x = b; // expected error diff --git a/tests/baselines/reference/assignFromNumberInterface2.js b/tests/baselines/reference/assignFromNumberInterface2.js index 017ef95a626..74384d42302 100644 --- a/tests/baselines/reference/assignFromNumberInterface2.js +++ b/tests/baselines/reference/assignFromNumberInterface2.js @@ -34,5 +34,5 @@ a = x; a = b; b = a; b = x; -x = a; -x = b; +x = a; // expected error +x = b; // expected error diff --git a/tests/baselines/reference/assignFromStringInterface2.js b/tests/baselines/reference/assignFromStringInterface2.js index f13fd55288b..7e4821ac2a7 100644 --- a/tests/baselines/reference/assignFromStringInterface2.js +++ b/tests/baselines/reference/assignFromStringInterface2.js @@ -57,5 +57,5 @@ a = x; a = b; b = a; b = x; -x = a; -x = b; +x = a; // expected error +x = b; // expected error diff --git a/tests/baselines/reference/assignToEnum.js b/tests/baselines/reference/assignToEnum.js index 37f98fa4146..153068738d1 100644 --- a/tests/baselines/reference/assignToEnum.js +++ b/tests/baselines/reference/assignToEnum.js @@ -13,7 +13,7 @@ var A; A[A["foo"] = 0] = "foo"; A[A["bar"] = 1] = "bar"; })(A || (A = {})); -A = undefined; -A = 1 /* bar */; -0 /* foo */ = 1; -0 /* foo */ = 1 /* bar */; +A = undefined; // invalid LHS +A = 1 /* bar */; // invalid LHS +0 /* foo */ = 1; // invalid LHS +0 /* foo */ = 1 /* bar */; // invalid LHS diff --git a/tests/baselines/reference/assignToModule.js b/tests/baselines/reference/assignToModule.js index 132a8b9ad9c..ae81518bee2 100644 --- a/tests/baselines/reference/assignToModule.js +++ b/tests/baselines/reference/assignToModule.js @@ -3,4 +3,4 @@ module A {} A = undefined; // invalid LHS //// [assignToModule.js] -A = undefined; +A = undefined; // invalid LHS diff --git a/tests/baselines/reference/assignmentCompatBug2.js b/tests/baselines/reference/assignmentCompatBug2.js index b3fee0da4c8..77d1e1b7d16 100644 --- a/tests/baselines/reference/assignmentCompatBug2.js +++ b/tests/baselines/reference/assignmentCompatBug2.js @@ -40,7 +40,7 @@ b3 = { //// [assignmentCompatBug2.js] var b2 = { a: 0 }; // error -b2 = { a: 0 }; +b2 = { a: 0 }; // error b2 = { b: 0, a: 0 }; var b3; b3 = { @@ -51,7 +51,7 @@ b3 = { return 0; }, m: 0 -}; +}; // ok b3 = { f: function (n) { return 0; @@ -59,13 +59,13 @@ b3 = { g: function (s) { return 0; } -}; +}; // error b3 = { f: function (n) { return 0; }, m: 0 -}; +}; // error b3 = { f: function (n) { return 0; @@ -78,7 +78,7 @@ b3 = { k: function (a) { return null; } -}; +}; // ok b3 = { f: function (n) { return 0; @@ -90,4 +90,4 @@ b3 = { k: function (a) { return null; } -}; +}; // error diff --git a/tests/baselines/reference/assignmentCompatFunctionsWithOptionalArgs.js b/tests/baselines/reference/assignmentCompatFunctionsWithOptionalArgs.js index 9fa9ec4c526..c96c739bf3c 100644 --- a/tests/baselines/reference/assignmentCompatFunctionsWithOptionalArgs.js +++ b/tests/baselines/reference/assignmentCompatFunctionsWithOptionalArgs.js @@ -6,7 +6,7 @@ foo({ id: 1234, name: false }); // Error, name of wrong type foo({ name: "hello" }); // Error, id required but missing //// [assignmentCompatFunctionsWithOptionalArgs.js] -foo({ id: 1234 }); -foo({ id: 1234, name: "hello" }); -foo({ id: 1234, name: false }); -foo({ name: "hello" }); +foo({ id: 1234 }); // Ok +foo({ id: 1234, name: "hello" }); // Ok +foo({ id: 1234, name: false }); // Error, name of wrong type +foo({ name: "hello" }); // Error, id required but missing diff --git a/tests/baselines/reference/assignmentCompatOnNew.js b/tests/baselines/reference/assignmentCompatOnNew.js index 5829fe9eea6..bc3b7e6ba96 100644 --- a/tests/baselines/reference/assignmentCompatOnNew.js +++ b/tests/baselines/reference/assignmentCompatOnNew.js @@ -15,4 +15,4 @@ var Foo = (function () { ; function bar(x) { } -bar(Foo); +bar(Foo); // Error, but should be allowed diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures.js b/tests/baselines/reference/assignmentCompatWithCallSignatures.js index bfee6f14941..c8e216cc6bd 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures.js +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures.js @@ -66,6 +66,7 @@ a = function (x) { }; var s2; var a3; +// these are errors t = s2; t = a3; t = function (x) { return 1; }; diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures2.js b/tests/baselines/reference/assignmentCompatWithCallSignatures2.js index b010064aba1..06332949056 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures2.js +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures2.js @@ -74,6 +74,7 @@ a = { f: function (x) { return 1; } }; a = { f: function (x) { return ''; } }; +// errors t = function () { return 1; }; t = function (x) { return ''; @@ -84,6 +85,7 @@ a = function (x) { }; var s2; var a3; +// these are errors t = s2; t = a3; t = function (x) { return 1; }; diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures3.js b/tests/baselines/reference/assignmentCompatWithCallSignatures3.js index 447e3706c02..20020200daa 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures3.js +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures3.js @@ -152,56 +152,56 @@ var a16; var a17; var a18; var b; -a = b; -b = a; +a = b; // ok +b = a; // ok var b2; -a2 = b2; -b2 = a2; +a2 = b2; // ok +b2 = a2; // ok var b3; -a3 = b3; -b3 = a3; +a3 = b3; // ok +b3 = a3; // ok var b4; -a4 = b4; -b4 = a4; +a4 = b4; // ok +b4 = a4; // ok var b5; -a5 = b5; -b5 = a5; +a5 = b5; // ok +b5 = a5; // ok var b6; -a6 = b6; -b6 = a6; +a6 = b6; // ok +b6 = a6; // ok var b7; -a7 = b7; -b7 = a7; +a7 = b7; // ok +b7 = a7; // ok var b8; -a8 = b8; -b8 = a8; +a8 = b8; // ok +b8 = a8; // ok var b9; -a9 = b9; -b9 = a9; +a9 = b9; // ok +b9 = a9; // ok var b10; -a10 = b10; -b10 = a10; +a10 = b10; // ok +b10 = a10; // ok var b11; -a11 = b11; -b11 = a11; +a11 = b11; // ok +b11 = a11; // ok var b12; -a12 = b12; -b12 = a12; +a12 = b12; // ok +b12 = a12; // ok var b13; -a13 = b13; -b13 = a13; +a13 = b13; // ok +b13 = a13; // ok var b14; -a14 = b14; -b14 = a14; +a14 = b14; // ok +b14 = a14; // ok var b15; -a15 = b15; -b15 = a15; +a15 = b15; // ok +b15 = a15; // ok var b16; -a16 = b16; -b16 = a16; +a16 = b16; // ok +b16 = a16; // ok var b17; // ok -a17 = b17; -b17 = a17; +a17 = b17; // ok +b17 = a17; // ok var b18; -a18 = b18; -b18 = a18; +a18 = b18; // ok +b18 = a18; // ok diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures4.js b/tests/baselines/reference/assignmentCompatWithCallSignatures4.js index a656fd6aa8b..dde28134341 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures4.js +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures4.js @@ -154,8 +154,8 @@ var Errors; a7 = b7; b7 = a7; var b8; - a8 = b8; - b8 = a8; + a8 = b8; // error, { foo: number } and Base are incompatible + b8 = a8; // error, { foo: number } and Base are incompatible var b10; a10 = b10; b10 = a10; diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures5.js b/tests/baselines/reference/assignmentCompatWithCallSignatures5.js index d017cc5acf8..5f2e5681b48 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures5.js +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures5.js @@ -111,35 +111,35 @@ var a16; var a17; var a18; var b; -a = b; -b = a; +a = b; // ok +b = a; // ok var b2; -a2 = b2; -b2 = a2; +a2 = b2; // ok +b2 = a2; // ok var b3; -a3 = b3; -b3 = a3; +a3 = b3; // ok +b3 = a3; // ok var b4; -a4 = b4; -b4 = a4; +a4 = b4; // ok +b4 = a4; // ok var b5; -a5 = b5; -b5 = a5; +a5 = b5; // ok +b5 = a5; // ok var b6; -a6 = b6; -b6 = a6; +a6 = b6; // ok +b6 = a6; // ok var b11; -a11 = b11; -b11 = a11; +a11 = b11; // ok +b11 = a11; // ok var b15; -a15 = b15; -b15 = a15; +a15 = b15; // ok, T = U, T = V +b15 = a15; // ok var b16; -a15 = b16; -b15 = a16; +a15 = b16; // ok +b15 = a16; // ok var b17; -a17 = b17; -b17 = a17; +a17 = b17; // ok +b17 = a17; // ok var b18; -a18 = b18; -b18 = a18; +a18 = b18; // ok +b18 = a18; // ok diff --git a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.js b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.js index da0bb3bac22..d0f2e471df5 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.js +++ b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.js @@ -72,55 +72,55 @@ var a5: (x?: number, y?: number) => number; //// [assignmentCompatWithCallSignaturesWithOptionalParameters.js] var b; var a; -a = function () { return 1; }; -a = function (x) { return 1; }; -a = function (x) { return 1; }; -a = b.a; -a = b.a2; -a = b.a3; -a = b.a4; -a = b.a5; -a = b.a6; +a = function () { return 1; }; // ok, same number of required params +a = function (x) { return 1; }; // ok, same number of required params +a = function (x) { return 1; }; // error, too many required params +a = b.a; // ok +a = b.a2; // ok +a = b.a3; // error +a = b.a4; // error +a = b.a5; // ok +a = b.a6; // error var a2; -a2 = function () { return 1; }; -a2 = function (x) { return 1; }; -a2 = function (x) { return 1; }; -a2 = b.a; -a2 = b.a2; -a2 = b.a3; -a2 = b.a4; -a2 = b.a5; -a2 = b.a6; +a2 = function () { return 1; }; // ok, same number of required params +a2 = function (x) { return 1; }; // ok, same number of required params +a2 = function (x) { return 1; }; // ok, same number of params +a2 = b.a; // ok +a2 = b.a2; // ok +a2 = b.a3; // ok, same number of params +a2 = b.a4; // ok, excess params are optional in b.a3 +a2 = b.a5; // ok +a2 = b.a6; // error var a3; -a3 = function () { return 1; }; -a3 = function (x) { return 1; }; -a3 = function (x) { return 1; }; -a3 = function (x, y) { return 1; }; -a3 = b.a; -a3 = b.a2; -a3 = b.a3; -a3 = b.a4; -a3 = b.a5; -a3 = b.a6; +a3 = function () { return 1; }; // ok, fewer required params +a3 = function (x) { return 1; }; // ok, fewer required params +a3 = function (x) { return 1; }; // ok, same number of required params +a3 = function (x, y) { return 1; }; // error, too many required params +a3 = b.a; // ok +a3 = b.a2; // ok +a3 = b.a3; // ok +a3 = b.a4; // ok +a3 = b.a5; // ok +a3 = b.a6; // error var a4; -a4 = function () { return 1; }; -a4 = function (x, y) { return 1; }; -a4 = function (x) { return 1; }; -a4 = function (x, y) { return 1; }; -a4 = b.a; -a4 = b.a2; -a4 = b.a3; -a4 = b.a4; -a4 = b.a5; -a4 = b.a6; +a4 = function () { return 1; }; // ok, fewer required params +a4 = function (x, y) { return 1; }; // ok, fewer required params +a4 = function (x) { return 1; }; // ok, same number of required params +a4 = function (x, y) { return 1; }; // ok, same number of params +a4 = b.a; // ok +a4 = b.a2; // ok +a4 = b.a3; // ok +a4 = b.a4; // ok +a4 = b.a5; // ok +a4 = b.a6; // ok, same number of params var a5; -a5 = function () { return 1; }; -a5 = function (x, y) { return 1; }; -a5 = function (x) { return 1; }; -a5 = function (x, y) { return 1; }; -a5 = b.a; -a5 = b.a2; -a5 = b.a3; -a5 = b.a4; -a5 = b.a5; -a5 = b.a6; +a5 = function () { return 1; }; // ok, fewer required params +a5 = function (x, y) { return 1; }; // ok, fewer required params +a5 = function (x) { return 1; }; // ok, fewer params in lambda +a5 = function (x, y) { return 1; }; // ok, same number of params +a5 = b.a; // ok +a5 = b.a2; // ok +a5 = b.a3; // ok, fewer params in b.a3 +a5 = b.a4; // ok, same number of params +a5 = b.a5; // ok +a5 = b.a6; // ok, same number of params diff --git a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.js b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.js index eea78af20e2..ff555ab08ba 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.js +++ b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.js @@ -47,76 +47,76 @@ var a4: (x?: number, y?: string, ...z: number[]) => number; //// [assignmentCompatWithCallSignaturesWithRestParameters.js] var a; // ok, same number of required params -a = function () { return 1; }; +a = function () { return 1; }; // ok, same number of required params a = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i - 0] = arguments[_i]; } return 1; -}; +}; // ok, same number of required params a = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i - 0] = arguments[_i]; } return 1; -}; -a = function (x) { return 1; }; -a = function (x, y, z) { return 1; }; -a = function (x) { return 1; }; -a = function (x) { return 1; }; +}; // error, type mismatch +a = function (x) { return 1; }; // ok, same number of required params +a = function (x, y, z) { return 1; }; // ok, same number of required params +a = function (x) { return 1; }; // ok, rest param corresponds to infinite number of params +a = function (x) { return 1; }; // error, incompatible type var a2; -a2 = function () { return 1; }; +a2 = function () { return 1; }; // ok, fewer required params a2 = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i - 0] = arguments[_i]; } return 1; -}; -a2 = function (x) { return 1; }; -a2 = function (x) { return 1; }; +}; // ok, fewer required params +a2 = function (x) { return 1; }; // ok, fewer required params +a2 = function (x) { return 1; }; // ok, same number of required params a2 = function (x) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return 1; -}; +}; // ok, same number of required params a2 = function (x) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return 1; -}; -a2 = function (x, y) { return 1; }; -a2 = function (x, y) { return 1; }; +}; // should be type mismatch error +a2 = function (x, y) { return 1; }; // ok, rest param corresponds to infinite number of params +a2 = function (x, y) { return 1; }; // ok, same number of required params var a3; -a3 = function () { return 1; }; -a3 = function (x) { return 1; }; -a3 = function (x) { return 1; }; -a3 = function (x, y) { return 1; }; -a3 = function (x, y, z) { return 1; }; +a3 = function () { return 1; }; // ok, fewer required params +a3 = function (x) { return 1; }; // ok, fewer required params +a3 = function (x) { return 1; }; // ok, same number of required params +a3 = function (x, y) { return 1; }; // ok, all present params match +a3 = function (x, y, z) { return 1; }; // error a3 = function (x) { var z = []; for (var _i = 1; _i < arguments.length; _i++) { z[_i - 1] = arguments[_i]; } return 1; -}; -a3 = function (x, y, z) { return 1; }; +}; // error +a3 = function (x, y, z) { return 1; }; // error var a4; -a4 = function () { return 1; }; -a4 = function (x, y) { return 1; }; -a4 = function (x) { return 1; }; -a4 = function (x, y) { return 1; }; -a4 = function (x, y) { return 1; }; +a4 = function () { return 1; }; // ok, fewer required params +a4 = function (x, y) { return 1; }; // error, type mismatch +a4 = function (x) { return 1; }; // ok, all present params match +a4 = function (x, y) { return 1; }; // error, second param has type mismatch +a4 = function (x, y) { return 1; }; // ok, same number of required params with matching types a4 = function (x) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return 1; -}; +}; // error, rest params have type mismatch diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures.js b/tests/baselines/reference/assignmentCompatWithConstructSignatures.js index 7c08c37ed9c..5fe05db8fc6 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures.js +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures.js @@ -49,6 +49,7 @@ a = s; a = a2; var s2; var a3; +// these are errors t = s2; t = a3; t = function (x) { return 1; }; diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures2.js b/tests/baselines/reference/assignmentCompatWithConstructSignatures2.js index 5e525b92299..7b42a4d6a29 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures2.js +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures2.js @@ -53,6 +53,7 @@ t = s; t = a2; a = s; a = a2; +// errors t = function () { return 1; }; t = function (x) { return ''; @@ -63,6 +64,7 @@ a = function (x) { }; var s2; var a3; +// these are errors t = s2; t = a3; t = function (x) { return 1; }; diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.js b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.js index 98ca559989e..b2366b67007 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.js +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.js @@ -152,56 +152,56 @@ var a16; var a17; var a18; var b; -a = b; -b = a; +a = b; // ok +b = a; // ok var b2; -a2 = b2; -b2 = a2; +a2 = b2; // ok +b2 = a2; // ok var b3; -a3 = b3; -b3 = a3; +a3 = b3; // ok +b3 = a3; // ok var b4; -a4 = b4; -b4 = a4; +a4 = b4; // ok +b4 = a4; // ok var b5; -a5 = b5; -b5 = a5; +a5 = b5; // ok +b5 = a5; // ok var b6; -a6 = b6; -b6 = a6; +a6 = b6; // ok +b6 = a6; // ok var b7; -a7 = b7; -b7 = a7; +a7 = b7; // ok +b7 = a7; // ok var b8; -a8 = b8; -b8 = a8; +a8 = b8; // ok +b8 = a8; // ok var b9; -a9 = b9; -b9 = a9; +a9 = b9; // ok +b9 = a9; // ok var b10; -a10 = b10; -b10 = a10; +a10 = b10; // ok +b10 = a10; // ok var b11; -a11 = b11; -b11 = a11; +a11 = b11; // ok +b11 = a11; // ok var b12; -a12 = b12; -b12 = a12; +a12 = b12; // ok +b12 = a12; // ok var b13; -a13 = b13; -b13 = a13; +a13 = b13; // ok +b13 = a13; // ok var b14; -a14 = b14; -b14 = a14; +a14 = b14; // ok +b14 = a14; // ok var b15; -a15 = b15; -b15 = a15; +a15 = b15; // ok +b15 = a15; // ok var b16; -a16 = b16; -b16 = a16; +a16 = b16; // ok +b16 = a16; // ok var b17; // ok -a17 = b17; -b17 = a17; +a17 = b17; // ok +b17 = a17; // ok var b18; -a18 = b18; -b18 = a18; +a18 = b18; // ok +b18 = a18; // ok diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.js b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.js index 7e6bc1ac02b..ed221d05059 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.js +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.js @@ -148,47 +148,47 @@ var Errors; var a16; var a17; var b2; - a2 = b2; - b2 = a2; + a2 = b2; // ok + b2 = a2; // ok var b7; - a7 = b7; - b7 = a7; + a7 = b7; // ok + b7 = a7; // ok var b8; - a8 = b8; - b8 = a8; + a8 = b8; // error, type mismatch + b8 = a8; // error var b10; - a10 = b10; - b10 = a10; + a10 = b10; // ok + b10 = a10; // ok var b11; - a11 = b11; - b11 = a11; + a11 = b11; // ok + b11 = a11; // ok var b12; - a12 = b12; - b12 = a12; + a12 = b12; // ok + b12 = a12; // ok var b15; - a15 = b15; - b15 = a15; + a15 = b15; // ok + b15 = a15; // ok var b15a; - a15 = b15a; - b15a = a15; + a15 = b15a; // ok + b15a = a15; // ok var b16; - a16 = b16; - b16 = a16; + a16 = b16; // error + b16 = a16; // error var b17; - a17 = b17; - b17 = a17; + a17 = b17; // error + b17 = a17; // error })(WithNonGenericSignaturesInBaseType || (WithNonGenericSignaturesInBaseType = {})); var WithGenericSignaturesInBaseType; (function (WithGenericSignaturesInBaseType) { // target type has generic call signature var a2; var b2; - a2 = b2; - b2 = a2; + a2 = b2; // ok + b2 = a2; // ok // target type has generic call signature var a3; var b3; - a3 = b3; - b3 = a3; + a3 = b3; // ok + b3 = a3; // ok })(WithGenericSignaturesInBaseType || (WithGenericSignaturesInBaseType = {})); })(Errors || (Errors = {})); diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.js b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.js index f88e69eb34f..b9c9ceaa428 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.js +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.js @@ -111,35 +111,35 @@ var a16; var a17; var a18; var b; -a = b; -b = a; +a = b; // ok +b = a; // ok var b2; -a2 = b2; -b2 = a2; +a2 = b2; // ok +b2 = a2; // ok var b3; -a3 = b3; -b3 = a3; +a3 = b3; // ok +b3 = a3; // ok var b4; -a4 = b4; -b4 = a4; +a4 = b4; // ok +b4 = a4; // ok var b5; -a5 = b5; -b5 = a5; +a5 = b5; // ok +b5 = a5; // ok var b6; -a6 = b6; -b6 = a6; +a6 = b6; // ok +b6 = a6; // ok var b11; -a11 = b11; -b11 = a11; +a11 = b11; // ok +b11 = a11; // ok var b15; -a15 = b15; -b15 = a15; +a15 = b15; // ok +b15 = a15; // ok var b16; -a15 = b16; -b15 = a16; +a15 = b16; // ok +b15 = a16; // ok var b17; -a17 = b17; -b17 = a17; +a17 = b17; // ok +b17 = a17; // ok var b18; -a18 = b18; -b18 = a18; +a18 = b18; // ok +b18 = a18; // ok diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.js b/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.js index 81494071a42..ddd4ec5cca6 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.js +++ b/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.js @@ -55,37 +55,37 @@ var a5: new (x?: number, y?: number) => number; //// [assignmentCompatWithConstructSignaturesWithOptionalParameters.js] var b; var a; -a = b.a; -a = b.a2; -a = b.a3; -a = b.a4; -a = b.a5; -a = b.a6; +a = b.a; // ok +a = b.a2; // ok +a = b.a3; // error +a = b.a4; // error +a = b.a5; // ok +a = b.a6; // error var a2; -a2 = b.a; -a2 = b.a2; -a2 = b.a3; -a2 = b.a4; -a2 = b.a5; -a2 = b.a6; +a2 = b.a; // ok +a2 = b.a2; // ok +a2 = b.a3; // ok +a2 = b.a4; // ok +a2 = b.a5; // ok +a2 = b.a6; // error var a3; -a3 = b.a; -a3 = b.a2; -a3 = b.a3; -a3 = b.a4; -a3 = b.a5; -a3 = b.a6; +a3 = b.a; // ok +a3 = b.a2; // ok +a3 = b.a3; // ok +a3 = b.a4; // ok +a3 = b.a5; // ok +a3 = b.a6; // error var a4; -a4 = b.a; -a4 = b.a2; -a4 = b.a3; -a4 = b.a4; -a4 = b.a5; -a4 = b.a6; +a4 = b.a; // ok +a4 = b.a2; // ok +a4 = b.a3; // ok +a4 = b.a4; // ok +a4 = b.a5; // ok +a4 = b.a6; // ok var a5; -a5 = b.a; -a5 = b.a2; -a5 = b.a3; -a5 = b.a4; -a5 = b.a5; -a5 = b.a6; +a5 = b.a; // ok +a5 = b.a2; // ok +a5 = b.a3; // ok +a5 = b.a4; // ok +a5 = b.a5; // ok +a5 = b.a6; // ok diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.js b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.js index 4e8052f56d0..ba4093f523d 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.js +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.js @@ -11,5 +11,5 @@ g = f; // ok // some complex cases of assignment compat of generic signatures that stress contextual signature instantiation var f; var g; -f = g; -g = f; +f = g; // ok +g = f; // ok diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.js b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.js index 51d5160b119..88f63523f9d 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.js +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.js @@ -20,5 +20,6 @@ b = a; //// [assignmentCompatWithGenericCallSignatures2.js] var a; var b; +// Both ok a = b; b = a; diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.js b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.js index f5f076c5816..f32a8e20a5e 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.js +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.js @@ -13,4 +13,4 @@ g = h // ok //// [assignmentCompatWithGenericCallSignatures3.js] var g; var h; -g = h; +g = h; // ok diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.js b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.js index 8d1b6e5d47d..ee82be8916e 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.js +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.js @@ -16,5 +16,6 @@ y = x //// [assignmentCompatWithGenericCallSignatures4.js] var x; var y; +// These both do not make sense as we would eventually be comparing I2 to I2>, and they are self referencing anyway x = y; y = x; diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.js b/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.js index e561a4edfa7..f5a3499c8cc 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.js +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.js @@ -138,24 +138,24 @@ var ClassTypeParam; function Base() { var _this = this; this.init = function () { - _this.a = function () { return null; }; - _this.a = function (x) { return null; }; - _this.a = function (x) { return null; }; - _this.a2 = function () { return null; }; - _this.a2 = function (x) { return null; }; - _this.a2 = function (x) { return null; }; - _this.a3 = function () { return null; }; - _this.a3 = function (x) { return null; }; - _this.a3 = function (x) { return null; }; - _this.a3 = function (x, y) { return null; }; - _this.a4 = function () { return null; }; - _this.a4 = function (x, y) { return null; }; - _this.a4 = function (x) { return null; }; - _this.a4 = function (x, y) { return null; }; - _this.a5 = function () { return null; }; - _this.a5 = function (x, y) { return null; }; - _this.a5 = function (x) { return null; }; - _this.a5 = function (x, y) { return null; }; + _this.a = function () { return null; }; // ok, same T of required params + _this.a = function (x) { return null; }; // ok, same T of required params + _this.a = function (x) { return null; }; // error, too many required params + _this.a2 = function () { return null; }; // ok, same T of required params + _this.a2 = function (x) { return null; }; // ok, same T of required params + _this.a2 = function (x) { return null; }; // ok, same number of params + _this.a3 = function () { return null; }; // ok, fewer required params + _this.a3 = function (x) { return null; }; // ok, fewer required params + _this.a3 = function (x) { return null; }; // ok, same T of required params + _this.a3 = function (x, y) { return null; }; // error, too many required params + _this.a4 = function () { return null; }; // ok, fewer required params + _this.a4 = function (x, y) { return null; }; // ok, fewer required params + _this.a4 = function (x) { return null; }; // ok, same T of required params + _this.a4 = function (x, y) { return null; }; // ok, same number of params + _this.a5 = function () { return null; }; // ok, fewer required params + _this.a5 = function (x, y) { return null; }; // ok, fewer required params + _this.a5 = function (x) { return null; }; // ok, all present params match + _this.a5 = function (x, y) { return null; }; // ok, same number of params }; } return Base; @@ -176,6 +176,7 @@ var GenericSignaturesInvalid; function foo() { var b; var t; + // all errors b.a = t.a; b.a = t.a2; b.a = t.a3; @@ -209,24 +210,24 @@ var GenericSignaturesValid; function Base2() { var _this = this; this.init = function () { - _this.a = function () { return null; }; - _this.a = function (x) { return null; }; - _this.a = function (x) { return null; }; - _this.a2 = function () { return null; }; - _this.a2 = function (x) { return null; }; - _this.a2 = function (x) { return null; }; - _this.a3 = function () { return null; }; - _this.a3 = function (x) { return null; }; - _this.a3 = function (x) { return null; }; - _this.a3 = function (x, y) { return null; }; - _this.a4 = function () { return null; }; - _this.a4 = function (x, y) { return null; }; - _this.a4 = function (x) { return null; }; - _this.a4 = function (x, y) { return null; }; - _this.a5 = function () { return null; }; - _this.a5 = function (x, y) { return null; }; - _this.a5 = function (x) { return null; }; - _this.a5 = function (x, y) { return null; }; + _this.a = function () { return null; }; // ok, same T of required params + _this.a = function (x) { return null; }; // ok, same T of required params + _this.a = function (x) { return null; }; // error, too many required params + _this.a2 = function () { return null; }; // ok, same T of required params + _this.a2 = function (x) { return null; }; // ok, same T of required params + _this.a2 = function (x) { return null; }; // ok, same number of params + _this.a3 = function () { return null; }; // ok, fewer required params + _this.a3 = function (x) { return null; }; // ok, fewer required params + _this.a3 = function (x) { return null; }; // ok, same T of required params + _this.a3 = function (x, y) { return null; }; // error, too many required params + _this.a4 = function () { return null; }; // ok, fewer required params + _this.a4 = function (x, y) { return null; }; // ok, fewer required params + _this.a4 = function (x) { return null; }; // ok, same T of required params + _this.a4 = function (x, y) { return null; }; // ok, same number of params + _this.a5 = function () { return null; }; // ok, fewer required params + _this.a5 = function (x, y) { return null; }; // ok, fewer required params + _this.a5 = function (x) { return null; }; // ok, all present params match + _this.a5 = function (x, y) { return null; }; // ok, same number of params }; } return Base2; diff --git a/tests/baselines/reference/assignmentCompatWithNumericIndexer.js b/tests/baselines/reference/assignmentCompatWithNumericIndexer.js index 075a9b286a7..3f6ce00e650 100644 --- a/tests/baselines/reference/assignmentCompatWithNumericIndexer.js +++ b/tests/baselines/reference/assignmentCompatWithNumericIndexer.js @@ -58,10 +58,10 @@ var A = (function () { var a; var b; a = b; -b = a; +b = a; // error var b2; a = b2; -b2 = a; +b2 = a; // error var Generics; (function (Generics) { var A = (function () { @@ -79,13 +79,13 @@ var Generics; function foo() { var a; var b; - a = b; - b = a; + a = b; // error + b = a; // error var b2; - a = b2; - b2 = a; + a = b2; // error + b2 = a; // error var b3; - a = b3; - b3 = a; + a = b3; // ok + b3 = a; // ok } })(Generics || (Generics = {})); diff --git a/tests/baselines/reference/assignmentCompatWithNumericIndexer2.js b/tests/baselines/reference/assignmentCompatWithNumericIndexer2.js index 47a28b8ce2a..7be2db4097e 100644 --- a/tests/baselines/reference/assignmentCompatWithNumericIndexer2.js +++ b/tests/baselines/reference/assignmentCompatWithNumericIndexer2.js @@ -47,22 +47,22 @@ module Generics { var a; var b; a = b; -b = a; +b = a; // error var b2; a = b2; -b2 = a; +b2 = a; // error var Generics; (function (Generics) { function foo() { var a; var b; - a = b; - b = a; + a = b; // error + b = a; // error var b2; - a = b2; - b2 = a; + a = b2; // error + b2 = a; // error var b3; - a = b3; - b3 = a; + a = b3; // ok + b3 = a; // ok } })(Generics || (Generics = {})); diff --git a/tests/baselines/reference/assignmentCompatWithNumericIndexer3.js b/tests/baselines/reference/assignmentCompatWithNumericIndexer3.js index f59a0a99bd7..36e6c416cfb 100644 --- a/tests/baselines/reference/assignmentCompatWithNumericIndexer3.js +++ b/tests/baselines/reference/assignmentCompatWithNumericIndexer3.js @@ -54,8 +54,8 @@ var A = (function () { })(); var a; var b; -a = b; -b = a; +a = b; // error +b = a; // ok var B2 = (function (_super) { __extends(B2, _super); function B2() { @@ -64,8 +64,8 @@ var B2 = (function (_super) { return B2; })(A); var b2; -a = b2; -b2 = a; +a = b2; // ok +b2 = a; // error var Generics; (function (Generics) { var A = (function () { @@ -76,10 +76,10 @@ var Generics; function foo() { var a; var b; - a = b; - b = a; + a = b; // error + b = a; // ok var b2; - a = b2; - b2 = a; + a = b2; // ok + b2 = a; // ok } })(Generics || (Generics = {})); diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers4.js b/tests/baselines/reference/assignmentCompatWithObjectMembers4.js index 297bf8b245a..8b8740c1454 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembers4.js +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers4.js @@ -138,25 +138,25 @@ var OnlyDerived; var b; var a2 = { foo: new Derived() }; var b2 = { foo: new Derived2() }; - s = t; - t = s; - s = s2; - s = a2; - s2 = t2; - t2 = s2; - s2 = t; - s2 = b; - s2 = a2; - a = b; - b = a; - a = s; - a = s2; - a = a2; - a2 = b2; - b2 = a2; - a2 = b; - a2 = t2; - a2 = t; + s = t; // error + t = s; // error + s = s2; // ok + s = a2; // ok + s2 = t2; // error + t2 = s2; // error + s2 = t; // error + s2 = b; // error + s2 = a2; // ok + a = b; // error + b = a; // error + a = s; // ok + a = s2; // ok + a = a2; // ok + a2 = b2; // error + b2 = a2; // error + a2 = b; // error + a2 = t2; // error + a2 = t; // error })(OnlyDerived || (OnlyDerived = {})); var WithBase; (function (WithBase) { @@ -197,23 +197,23 @@ var WithBase; var b; var a2 = { foo: new Base() }; var b2 = { foo: new Derived2() }; - s = t; - t = s; - s = s2; - s = a2; - s2 = t2; - t2 = s2; - s2 = t; - s2 = b; - s2 = a2; - a = b; - b = a; - a = s; - a = s2; - a = a2; - a2 = b2; - b2 = a2; - a2 = b; - a2 = t2; - a2 = t; + s = t; // ok + t = s; // error + s = s2; // ok + s = a2; // ok + s2 = t2; // ok + t2 = s2; // error + s2 = t; // ok + s2 = b; // ok + s2 = a2; // ok + a = b; // ok + b = a; // error + a = s; // ok + a = s2; // ok + a = a2; // ok + a2 = b2; // ok + b2 = a2; // error + a2 = b; // ok + a2 = t2; // ok + a2 = t; // ok })(WithBase || (WithBase = {})); diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers5.js b/tests/baselines/reference/assignmentCompatWithObjectMembers5.js index 87ef37370bb..d7556298414 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembers5.js +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers5.js @@ -22,5 +22,5 @@ var C = (function () { })(); var c; var i; -c = i; -i = c; +c = i; // error +i = c; // error diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembersAccessibility.js b/tests/baselines/reference/assignmentCompatWithObjectMembersAccessibility.js index c28bd9c9c3b..3363ed70890 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembersAccessibility.js +++ b/tests/baselines/reference/assignmentCompatWithObjectMembersAccessibility.js @@ -138,23 +138,23 @@ var TargetIsPublic; a = b; a = i; a = d; - a = e; + a = e; // error b = a; b = i; b = d; - b = e; + b = e; // error i = a; i = b; i = d; - i = e; + i = e; // error d = a; d = b; d = i; - d = e; - e = a; - e = b; - e = i; - e = d; + d = e; // error + e = a; // errror + e = b; // errror + e = i; // errror + e = d; // errror e = e; })(TargetIsPublic || (TargetIsPublic = {})); var TargetIsPublic; @@ -181,27 +181,27 @@ var TargetIsPublic; })(); var d; var e; - a = b; - a = i; + a = b; // error + a = i; // error a = d; - a = e; - b = a; + a = e; // error + b = a; // error b = i; - b = d; - b = e; + b = d; // error + b = e; // error b = b; - i = a; + i = a; // error i = b; - i = d; - i = e; + i = d; // error + i = e; // error i = i; d = a; - d = b; - d = i; - d = e; - e = a; - e = b; - e = i; - e = d; + d = b; // error + d = i; // error + d = e; // error + e = a; // errror + e = b; // errror + e = i; // errror + e = d; // errror e = e; })(TargetIsPublic || (TargetIsPublic = {})); diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality.js b/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality.js index 5e0adcbebf5..fa4f5ac2213 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality.js +++ b/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality.js @@ -123,6 +123,7 @@ var TargetHasOptional; var d; var e; var f; + // all ok c = d; c = e; c = f; @@ -145,17 +146,17 @@ var SourceHasOptional; var d; var e; var f; - c = d; - c = e; - c = f; - c = a; - a = d; - a = e; - a = f; - a = c; - b = d; - b = e; - b = f; - b = a; - b = c; + c = d; // error + c = e; // error + c = f; // ok + c = a; // ok + a = d; // error + a = e; // error + a = f; // ok + a = c; // ok + b = d; // error + b = e; // error + b = f; // ok + b = a; // ok + b = c; // ok })(SourceHasOptional || (SourceHasOptional = {})); diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality2.js b/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality2.js index 0b24903eafa..ba316b0f5c1 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality2.js +++ b/tests/baselines/reference/assignmentCompatWithObjectMembersOptionality2.js @@ -125,6 +125,7 @@ var TargetHasOptional; var d; var e; var f; + // all ok c = d; c = e; c = f; @@ -147,17 +148,17 @@ var SourceHasOptional; var d; var e; var f; - c = d; - c = e; - c = f; - c = a; - a = d; - a = e; - a = f; - a = c; - b = d; - b = e; - b = f; - b = a; - b = c; + c = d; // error + c = e; // error + c = f; // error + c = a; // ok + a = d; // error + a = e; // error + a = f; // error + a = c; // ok + b = d; // error + b = e; // error + b = f; // error + b = a; // ok + b = c; // ok })(SourceHasOptional || (SourceHasOptional = {})); diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembersStringNumericNames.js b/tests/baselines/reference/assignmentCompatWithObjectMembersStringNumericNames.js index 5cc91c6d3da..a042897ba57 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembersStringNumericNames.js +++ b/tests/baselines/reference/assignmentCompatWithObjectMembersStringNumericNames.js @@ -110,7 +110,7 @@ var JustStrings; var b2 = { '1': '' }; s = t; t = s; - s = s2; + s = s2; // ok s = a2; s2 = t2; t2 = s2; @@ -124,8 +124,8 @@ var JustStrings; a = a2; a2 = b2; b2 = a2; - a2 = b; - a2 = t2; + a2 = b; // ok + a2 = t2; // ok a2 = t; })(JustStrings || (JustStrings = {})); var NumbersAndStrings; @@ -148,24 +148,24 @@ var NumbersAndStrings; var b; var a2 = { '1.0': '' }; var b2 = { 1.: '' }; - s = t; - t = s; - s = s2; - s = a2; - s2 = t2; - t2 = s2; - s2 = t; - s2 = b; - s2 = a2; - a = b; - b = a; - a = s; - a = s2; - a = a2; - a = b2; - a2 = b2; - b2 = a2; - a2 = b; - a2 = t2; - a2 = t; + s = t; // ok + t = s; // ok + s = s2; // ok + s = a2; // error + s2 = t2; // ok + t2 = s2; // ok + s2 = t; // ok + s2 = b; // ok + s2 = a2; // error + a = b; // error + b = a; // error + a = s; // error + a = s2; // error + a = a2; // error + a = b2; // error + a2 = b2; // error + b2 = a2; // error + a2 = b; // error + a2 = t2; // error + a2 = t; // error })(NumbersAndStrings || (NumbersAndStrings = {})); diff --git a/tests/baselines/reference/assignmentCompatWithOverloads.js b/tests/baselines/reference/assignmentCompatWithOverloads.js index 0bd69767515..472ebec2967 100644 --- a/tests/baselines/reference/assignmentCompatWithOverloads.js +++ b/tests/baselines/reference/assignmentCompatWithOverloads.js @@ -44,14 +44,14 @@ function f4(x) { return undefined; } var g; -g = f1; -g = f2; -g = f3; -g = f4; +g = f1; // OK +g = f2; // Error +g = f3; // Error +g = f4; // Error var C = (function () { function C(x) { } return C; })(); var d; -d = C; +d = C; // Error diff --git a/tests/baselines/reference/assignmentCompatWithStringIndexer.js b/tests/baselines/reference/assignmentCompatWithStringIndexer.js index 58340fe08cc..df0054fc87d 100644 --- a/tests/baselines/reference/assignmentCompatWithStringIndexer.js +++ b/tests/baselines/reference/assignmentCompatWithStringIndexer.js @@ -67,11 +67,11 @@ var A = (function () { })(); var a; var b; -a = b; -b = a; +a = b; // ok +b = a; // error var b2; -a = b2; -b2 = a; +a = b2; // ok +b2 = a; // error var Generics; (function (Generics) { var A = (function () { @@ -88,8 +88,8 @@ var Generics; })(A); var b1; var a1; - a1 = b1; - b1 = a1; + a1 = b1; // ok + b1 = a1; // error var B2 = (function (_super) { __extends(B2, _super); function B2() { @@ -98,15 +98,15 @@ var Generics; return B2; })(A); var b2; - a1 = b2; - b2 = a1; + a1 = b2; // ok + b2 = a1; // error function foo() { var b3; var a3; - a3 = b3; - b3 = a3; + a3 = b3; // error + b3 = a3; // error var b4; - a3 = b4; - b4 = a3; + a3 = b4; // error + b4 = a3; // error } })(Generics || (Generics = {})); diff --git a/tests/baselines/reference/assignmentCompatWithStringIndexer2.js b/tests/baselines/reference/assignmentCompatWithStringIndexer2.js index ae8af19da8a..3e55f34fa60 100644 --- a/tests/baselines/reference/assignmentCompatWithStringIndexer2.js +++ b/tests/baselines/reference/assignmentCompatWithStringIndexer2.js @@ -56,27 +56,27 @@ module Generics { //// [assignmentCompatWithStringIndexer2.js] var a; var b; -a = b; -b = a; +a = b; // ok +b = a; // error var b2; -a = b2; -b2 = a; +a = b2; // ok +b2 = a; // error var Generics; (function (Generics) { var b1; var a1; - a1 = b1; - b1 = a1; + a1 = b1; // ok + b1 = a1; // error var b2; - a1 = b2; - b2 = a1; + a1 = b2; // ok + b2 = a1; // error function foo() { var b3; var a3; - a3 = b3; - b3 = a3; + a3 = b3; // error + b3 = a3; // error var b4; - a3 = b4; - b4 = a3; + a3 = b4; // error + b4 = a3; // error } })(Generics || (Generics = {})); diff --git a/tests/baselines/reference/assignmentCompatWithStringIndexer3.js b/tests/baselines/reference/assignmentCompatWithStringIndexer3.js index b706859006f..13415f9c248 100644 --- a/tests/baselines/reference/assignmentCompatWithStringIndexer3.js +++ b/tests/baselines/reference/assignmentCompatWithStringIndexer3.js @@ -26,8 +26,8 @@ module Generics { //// [assignmentCompatWithStringIndexer3.js] var a; var b1; -a = b1; -b1 = a; +a = b1; // error +b1 = a; // error var Generics; (function (Generics) { var A = (function () { @@ -38,7 +38,7 @@ var Generics; function foo() { var a; var b; - a = b; - b = a; + a = b; // error + b = a; // error } })(Generics || (Generics = {})); diff --git a/tests/baselines/reference/assignmentCompatability_checking-apply-member-off-of-function-interface.js b/tests/baselines/reference/assignmentCompatability_checking-apply-member-off-of-function-interface.js index d2eef2982da..bf575040fbc 100644 --- a/tests/baselines/reference/assignmentCompatability_checking-apply-member-off-of-function-interface.js +++ b/tests/baselines/reference/assignmentCompatability_checking-apply-member-off-of-function-interface.js @@ -32,6 +32,7 @@ fn(a => { }); //// [assignmentCompatability_checking-apply-member-off-of-function-interface.js] var x; +// Should fail x = ''; x = ['']; x = 4; @@ -43,9 +44,11 @@ function f() { x = f; function fn(c) { } +// Should Fail fn(''); fn(['']); fn(4); fn({}); +// Should work fn(function (a) { }); diff --git a/tests/baselines/reference/assignmentCompatability_checking-call-member-off-of-function-interface.js b/tests/baselines/reference/assignmentCompatability_checking-call-member-off-of-function-interface.js index 26e7aa5c484..c5a35e1975d 100644 --- a/tests/baselines/reference/assignmentCompatability_checking-call-member-off-of-function-interface.js +++ b/tests/baselines/reference/assignmentCompatability_checking-call-member-off-of-function-interface.js @@ -32,6 +32,7 @@ fn(a => { }); //// [assignmentCompatability_checking-call-member-off-of-function-interface.js] var x; +// Should fail x = ''; x = ['']; x = 4; @@ -43,9 +44,11 @@ function f() { x = f; function fn(c) { } +// Should Fail fn(''); fn(['']); fn(4); fn({}); +// Should work fn(function (a) { }); diff --git a/tests/baselines/reference/assignmentLHSIsReference.js b/tests/baselines/reference/assignmentLHSIsReference.js index cbcd2d40972..f0af56ebc3b 100644 --- a/tests/baselines/reference/assignmentLHSIsReference.js +++ b/tests/baselines/reference/assignmentLHSIsReference.js @@ -36,6 +36,7 @@ function fn1(x2) { var x3; x3.a = value; x3['a'] = value; +// parentheses, the contained expression is reference (x1) = value; function fn2(x4) { (x4) = value; diff --git a/tests/baselines/reference/assignmentToParenthesizedIdentifiers.js b/tests/baselines/reference/assignmentToParenthesizedIdentifiers.js index 9e006251682..cd687a41db9 100644 --- a/tests/baselines/reference/assignmentToParenthesizedIdentifiers.js +++ b/tests/baselines/reference/assignmentToParenthesizedIdentifiers.js @@ -73,66 +73,66 @@ C = undefined; // Error //// [assignmentToParenthesizedIdentifiers.js] var x; -x = 3; -(x) = 3; -x = ''; -(x) = ''; +x = 3; // OK +(x) = 3; // OK +x = ''; // Error +(x) = ''; // Error var M; (function (M) { M.y; })(M || (M = {})); -M.y = 3; -(M).y = 3; -(M.y) = 3; -M.y = ''; -(M).y = ''; -(M.y) = ''; -M = { y: 3 }; -(M) = { y: 3 }; +M.y = 3; // OK +(M).y = 3; // OK +(M.y) = 3; // OK +M.y = ''; // Error +(M).y = ''; // Error +(M.y) = ''; // Error +M = { y: 3 }; // Error +(M) = { y: 3 }; // Error var M2; (function (M2) { (function (M3) { M3.x; })(M2.M3 || (M2.M3 = {})); var M3 = M2.M3; - M3 = { x: 3 }; + M3 = { x: 3 }; // Error })(M2 || (M2 = {})); -M2.M3 = { x: 3 }; -(M2).M3 = { x: 3 }; -(M2.M3) = { x: 3 }; -M2.M3 = { x: '' }; -(M2).M3 = { x: '' }; -(M2.M3) = { x: '' }; +M2.M3 = { x: 3 }; // OK +(M2).M3 = { x: 3 }; // OK +(M2.M3) = { x: 3 }; // OK +M2.M3 = { x: '' }; // Error +(M2).M3 = { x: '' }; // Error +(M2.M3) = { x: '' }; // Error function fn() { } -fn = function () { return 3; }; -(fn) = function () { return 3; }; +fn = function () { return 3; }; // Bug 823548: Should be error (fn is not a reference) +(fn) = function () { return 3; }; // Should be error function fn2(x, y) { x = 3; - (x) = 3; - x = ''; - (x) = ''; - (y).t = 3; - (y.t) = 3; - (y).t = ''; - (y.t) = ''; - y['t'] = 3; - (y)['t'] = 3; - (y['t']) = 3; - y['t'] = ''; - (y)['t'] = ''; - (y['t']) = ''; + (x) = 3; // OK + x = ''; // Error + (x) = ''; // Error + (y).t = 3; // OK + (y.t) = 3; // OK + (y).t = ''; // Error + (y.t) = ''; // Error + y['t'] = 3; // OK + (y)['t'] = 3; // OK + (y['t']) = 3; // OK + y['t'] = ''; // Error + (y)['t'] = ''; // Error + (y['t']) = ''; // Error } var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -E = undefined; -(E) = undefined; +E = undefined; // Error +(E) = undefined; // Error var C = (function () { function C() { } return C; })(); -C = undefined; -(C) = undefined; +C = undefined; // Error +(C) = undefined; // Error diff --git a/tests/baselines/reference/assignments.js b/tests/baselines/reference/assignments.js index 3a7479a0734..ba0e0721cad 100644 --- a/tests/baselines/reference/assignments.js +++ b/tests/baselines/reference/assignments.js @@ -32,25 +32,25 @@ interface I { } I = null; // Error //// [assignments.js] -M = null; +M = null; // Error var C = (function () { function C() { } return C; })(); -C = null; +C = null; // Error var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -E = null; -0 /* A */ = null; +E = null; // Error +0 /* A */ = null; // OK per spec, Error per implementation (509581) function fn() { } -fn = null; +fn = null; // Should be error var v; -v = null; +v = null; // OK function fn2(p) { - p = null; + p = null; // OK } -I = null; +I = null; // Error diff --git a/tests/baselines/reference/avoid.js b/tests/baselines/reference/avoid.js index 8bfc3e24215..ad10d2ac9bc 100644 --- a/tests/baselines/reference/avoid.js +++ b/tests/baselines/reference/avoid.js @@ -26,7 +26,7 @@ function f() { var y = f(); // error void fn var why = f(); // error void fn var w; -w = f(); +w = f(); // error void fn var C = (function () { function C() { } diff --git a/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.js b/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.js index 9765448b8f2..dafacc5cc50 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.js @@ -113,6 +113,7 @@ var ResultIsNumber18 = ~(undefined + undefined); // multiple ~ operators var ResultIsNumber19 = ~~ANY; var ResultIsNumber20 = ~~~(ANY + ANY1); +//miss assignment operators ~ANY; ~ANY1; ~ANY2[0]; diff --git a/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.js b/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.js index e8e9a9e04d4..9416e7b1a06 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.js +++ b/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.js @@ -69,6 +69,7 @@ var ResultIsNumber6 = ~foo(); var ResultIsNumber7 = ~A.foo(); // multiple ~ operators var ResultIsNumber8 = ~~BOOLEAN; +// miss assignment operators ~true; ~BOOLEAN; ~foo(); diff --git a/tests/baselines/reference/bitwiseNotOperatorWithEnumType.js b/tests/baselines/reference/bitwiseNotOperatorWithEnumType.js index f09678cefdc..e38520ef71a 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithEnumType.js +++ b/tests/baselines/reference/bitwiseNotOperatorWithEnumType.js @@ -34,6 +34,7 @@ var ResultIsNumber2 = ~ENUM1[1]; var ResultIsNumber3 = ~(ENUM1[1] + ENUM1[2]); // multiple ~ operators var ResultIsNumber4 = ~~~(ENUM1[1] + ENUM1[2]); +// miss assignment operators ~ENUM1; ~ENUM1[1]; ~ENUM1[1], ~ENUM1[2]; diff --git a/tests/baselines/reference/bitwiseNotOperatorWithNumberType.js b/tests/baselines/reference/bitwiseNotOperatorWithNumberType.js index 3fe796c98e1..2f9703ae669 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithNumberType.js +++ b/tests/baselines/reference/bitwiseNotOperatorWithNumberType.js @@ -83,6 +83,7 @@ var ResultIsNumber11 = ~(NUMBER + NUMBER); // multiple ~ operators var ResultIsNumber12 = ~~NUMBER; var ResultIsNumber13 = ~~~(NUMBER + NUMBER); +// miss assignment operators ~NUMBER; ~NUMBER1; ~foo(); diff --git a/tests/baselines/reference/bitwiseNotOperatorWithStringType.js b/tests/baselines/reference/bitwiseNotOperatorWithStringType.js index f4bb2ba2cb7..fbd77c6119a 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithStringType.js +++ b/tests/baselines/reference/bitwiseNotOperatorWithStringType.js @@ -83,6 +83,7 @@ var ResultIsNumber12 = ~STRING.charAt(0); // multiple ~ operators var ResultIsNumber13 = ~~STRING; var ResultIsNumber14 = ~~~(STRING + STRING); +//miss assignment operators ~STRING; ~STRING1; ~foo(); diff --git a/tests/baselines/reference/callConstructAssignment.js b/tests/baselines/reference/callConstructAssignment.js index 936269a996e..9f011c8ec02 100644 --- a/tests/baselines/reference/callConstructAssignment.js +++ b/tests/baselines/reference/callConstructAssignment.js @@ -11,5 +11,5 @@ bar = foo; // error //// [callConstructAssignment.js] var foo; var bar; -foo = bar; -bar = foo; +foo = bar; // error +bar = foo; // error diff --git a/tests/baselines/reference/callOnInstance.js b/tests/baselines/reference/callOnInstance.js index d6f0db57f75..477bdca26a7 100644 --- a/tests/baselines/reference/callOnInstance.js +++ b/tests/baselines/reference/callOnInstance.js @@ -13,4 +13,4 @@ declare class C { constructor(value: number); } //// [callOnInstance.js] var s1 = D(); // OK var s2 = (new D(1))(); -(new C(1))(); +(new C(1))(); // Error for calling an instance diff --git a/tests/baselines/reference/callSignaturesShouldBeResolvedBeforeSpecialization.js b/tests/baselines/reference/callSignaturesShouldBeResolvedBeforeSpecialization.js index 62ffe63ecf0..b2cf7d5f5c5 100644 --- a/tests/baselines/reference/callSignaturesShouldBeResolvedBeforeSpecialization.js +++ b/tests/baselines/reference/callSignaturesShouldBeResolvedBeforeSpecialization.js @@ -13,6 +13,6 @@ function foo() { //// [callSignaturesShouldBeResolvedBeforeSpecialization.js] function foo() { var test; - test("expects boolean instead of string"); - test(true); + test("expects boolean instead of string"); // should not error - "test" should not expect a boolean + test(true); // should error - string expected } diff --git a/tests/baselines/reference/castExpressionParentheses.js b/tests/baselines/reference/castExpressionParentheses.js index 9a33471ea72..2f62d6e9447 100644 --- a/tests/baselines/reference/castExpressionParentheses.js +++ b/tests/baselines/reference/castExpressionParentheses.js @@ -40,6 +40,8 @@ new (A()); //// [castExpressionParentheses.js] +// parentheses should be omitted +// literals { a: 0 }; [1, 3, ]; "string"; @@ -48,6 +50,7 @@ new (A()); false; true; null; +// names and dotted names this; this.x; a.x; @@ -55,6 +58,7 @@ a; a[0]; a.b["0"]; a().x; +// should keep the parentheses in emit (new A).foo; (typeof A).x; (-A).x; @@ -64,5 +68,7 @@ new (A()); (function foo() { })(); (-A).x; +// nested cast, should keep one pair of parenthese (-A).x; +// nested parenthesized expression, should keep one pair of parenthese (A); diff --git a/tests/baselines/reference/chainedAssignment1.js b/tests/baselines/reference/chainedAssignment1.js index 1f1c5cb7621..ac637b7def2 100644 --- a/tests/baselines/reference/chainedAssignment1.js +++ b/tests/baselines/reference/chainedAssignment1.js @@ -43,5 +43,5 @@ var Z = (function () { var c1 = new X(3); var c2 = new Y(5); var c3 = new Z(); -c1 = c2 = c3; -c2 = c3; +c1 = c2 = c3; // a bug made this not report the same error as below +c2 = c3; // Error TS111: Cannot convert Z to Y diff --git a/tests/baselines/reference/chainedAssignment3.js b/tests/baselines/reference/chainedAssignment3.js index f2c1554be8a..11b9ceb3a07 100644 --- a/tests/baselines/reference/chainedAssignment3.js +++ b/tests/baselines/reference/chainedAssignment3.js @@ -47,5 +47,6 @@ a = b = null; a = b = new B(); b = a = new B(); a.id = b.value = null; +// error cases b = a = new A(); a = b = new A(); diff --git a/tests/baselines/reference/chainedAssignmentChecking.js b/tests/baselines/reference/chainedAssignmentChecking.js index 403b4868569..e9c66ab3681 100644 --- a/tests/baselines/reference/chainedAssignmentChecking.js +++ b/tests/baselines/reference/chainedAssignmentChecking.js @@ -43,4 +43,4 @@ var Z = (function () { var c1 = new X(3); var c2 = new Y(5); var c3 = new Z(); -c1 = c2 = c3; +c1 = c2 = c3; // Should be error diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js index 92243b90d14..70456b9e9d1 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js @@ -54,4 +54,5 @@ var C = (function (_super) { } return C; })(B); +// Ok to go down the chain, but error to try to climb back up (new Chain(new A)).then(function (a) { return new B; }).then(function (b) { return new C; }).then(function (c) { return new B; }).then(function (b) { return new A; }); diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js index 608e6f72c37..3b9b8b80ecf 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js @@ -49,8 +49,11 @@ var Chain = (function () { Chain.prototype.then = function (cb) { var t; var s; + // Ok to go down the chain, but error to climb up the chain (new Chain(t)).then(function (tt) { return s; }).then(function (ss) { return t; }); + // But error to try to climb up the chain (new Chain(s)).then(function (ss) { return t; }); + // Staying at T or S should be fine (new Chain(t)).then(function (tt) { return t; }).then(function (tt) { return t; }).then(function (tt) { return t; }); (new Chain(s)).then(function (ss) { return s; }).then(function (ss) { return s; }).then(function (ss) { return s; }); return null; @@ -65,7 +68,11 @@ var Chain2 = (function () { var i; var t; var s; + // Ok to go down the chain, check the constraint at the end. + // Should get an error that we are assigning a string to a number (new Chain2(i)).then(function (ii) { return t; }).then(function (tt) { return s; }).value.x = ""; + // Staying at T or S should keep the constraint. + // Get an error when we assign a string to a number in both cases (new Chain2(i)).then(function (ii) { return t; }).then(function (tt) { return t; }).then(function (tt) { return t; }).then(function (tt) { return t; }).value.x = ""; (new Chain2(i)).then(function (ii) { return s; }).then(function (ss) { return s; }).then(function (ss) { return s; }).then(function (ss) { return s; }).value.x = ""; return null; diff --git a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.js b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.js index c4c2328178d..e6995a04aca 100644 --- a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.js +++ b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.js @@ -15,5 +15,5 @@ var s3 = s2.each(x => { x.key /* Type is K, should be number */ }); var s; var s2 = s.groupBy(function (s) { return s.length; }); var s3 = s2.each(function (x) { - x.key; + x.key; /* Type is K, should be number */ }); diff --git a/tests/baselines/reference/classImplementsClass6.js b/tests/baselines/reference/classImplementsClass6.js index 2ed6ddc396e..386cd6685ae 100644 --- a/tests/baselines/reference/classImplementsClass6.js +++ b/tests/baselines/reference/classImplementsClass6.js @@ -58,5 +58,5 @@ var c; var c2; c = c2; c2 = c; -c.bar(); -c2.bar(); +c.bar(); // error +c2.bar(); // should error diff --git a/tests/baselines/reference/classMemberInitializerScoping.js b/tests/baselines/reference/classMemberInitializerScoping.js index 14ed74708be..db8d6a1bede 100644 --- a/tests/baselines/reference/classMemberInitializerScoping.js +++ b/tests/baselines/reference/classMemberInitializerScoping.js @@ -25,7 +25,7 @@ var aaa = 1; var CCC = (function () { function CCC(aaa) { this.y = aaa; - this.y = ''; + this.y = ''; // was: error, cannot assign string to number } CCC.staticY = aaa; // This shouldnt be error return CCC; diff --git a/tests/baselines/reference/classMemberInitializerWithLamdaScoping.js b/tests/baselines/reference/classMemberInitializerWithLamdaScoping.js index 9eb0eb83074..aabba3c1b2c 100644 --- a/tests/baselines/reference/classMemberInitializerWithLamdaScoping.js +++ b/tests/baselines/reference/classMemberInitializerWithLamdaScoping.js @@ -37,12 +37,12 @@ var Test = (function () { this.field = field; this.messageHandler = function () { var field = _this.field; - console.log(field); + console.log(field); // Using field here shouldnt be error }; } Test.staticMessageHandler = function () { var field = Test.field; - console.log(field); + console.log(field); // Using field here shouldnt be error }; return Test; })(); @@ -51,11 +51,11 @@ var Test1 = (function () { function Test1(field1) { this.field1 = field1; this.messageHandler = function () { - console.log(field1); + console.log(field1); // But this should be error as the field1 will resolve to var field1 }; } Test1.staticMessageHandler = function () { - console.log(field1); + console.log(field1); // This shouldnt be error as its a static property }; return Test1; })(); diff --git a/tests/baselines/reference/classMemberInitializerWithLamdaScoping2.js b/tests/baselines/reference/classMemberInitializerWithLamdaScoping2.js index fb299aea4c6..81b6eb08e65 100644 --- a/tests/baselines/reference/classMemberInitializerWithLamdaScoping2.js +++ b/tests/baselines/reference/classMemberInitializerWithLamdaScoping2.js @@ -24,7 +24,7 @@ var Test1 = (function () { function Test1(field1) { this.field1 = field1; this.messageHandler = function () { - console.log(field1); + console.log(field1); // But this should be error as the field1 will resolve to var field1 }; } return Test1; diff --git a/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.js b/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.js index 0dec98fb9b3..3e7649210ba 100644 --- a/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.js +++ b/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.js @@ -15,7 +15,7 @@ class Greeter { var Greeter = (function () { function Greeter(message) { this.messageHandler = function (message) { - console.log(message); + console.log(message); // This shouldnt be error }; } return Greeter; diff --git a/tests/baselines/reference/classSideInheritance1.js b/tests/baselines/reference/classSideInheritance1.js index 7cb37e7d154..38b84b77bd3 100644 --- a/tests/baselines/reference/classSideInheritance1.js +++ b/tests/baselines/reference/classSideInheritance1.js @@ -42,7 +42,7 @@ var C2 = (function (_super) { })(A); var a; var c; -a.bar(); -c.bar(); -A.bar(); -C2.bar(); +a.bar(); // static off an instance - should be an error +c.bar(); // static off an instance - should be an error +A.bar(); // valid +C2.bar(); // valid diff --git a/tests/baselines/reference/cloduleTest2.js b/tests/baselines/reference/cloduleTest2.js index d5d30083aec..96221ed58a2 100644 --- a/tests/baselines/reference/cloduleTest2.js +++ b/tests/baselines/reference/cloduleTest2.js @@ -61,8 +61,8 @@ var T3; })(m3d || (m3d = {})); var r = new m3d(); r.foo(); - r.bar(); - r.y; + r.bar(); // error + r.y; // error })(T3 || (T3 = {})); var T4; (function (T4) { @@ -72,8 +72,8 @@ var T4; })(m3d || (m3d = {})); var r = new m3d(); r.foo(); - r.bar(); - r.y; + r.bar(); // error + r.y; // error })(T4 || (T4 = {})); var m3d; (function (m3d) { diff --git a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.js b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.js index 3e3d86265da..b8d3aaec91c 100644 --- a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.js +++ b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.js @@ -16,7 +16,7 @@ var Foo = (function () { for (var _i = 0; _i < arguments.length; _i++) { args[_i - 0] = arguments[_i]; } - console.log(_i); + console.log(_i); // This should result in error } return Foo; })(); diff --git a/tests/baselines/reference/collisionSuperAndNameResolution.js b/tests/baselines/reference/collisionSuperAndNameResolution.js index 8af9464b37e..763e151247e 100644 --- a/tests/baselines/reference/collisionSuperAndNameResolution.js +++ b/tests/baselines/reference/collisionSuperAndNameResolution.js @@ -31,7 +31,7 @@ var Foo = (function (_super) { _super.apply(this, arguments); } Foo.prototype.x = function () { - console.log(_super); + console.log(_super); // Error as this doesnt not resolve to user defined _super }; return Foo; })(base); diff --git a/tests/baselines/reference/collisionThisExpressionAndAmbientVarInGlobal.js b/tests/baselines/reference/collisionThisExpressionAndAmbientVarInGlobal.js index 1aff51e65e2..c6c54869056 100644 --- a/tests/baselines/reference/collisionThisExpressionAndAmbientVarInGlobal.js +++ b/tests/baselines/reference/collisionThisExpressionAndAmbientVarInGlobal.js @@ -6,4 +6,4 @@ _this = 10; // Error //// [collisionThisExpressionAndAmbientVarInGlobal.js] var _this = this; var f = function () { return _this; }; -_this = 10; +_this = 10; // Error diff --git a/tests/baselines/reference/collisionThisExpressionAndNameResolution.js b/tests/baselines/reference/collisionThisExpressionAndNameResolution.js index b31a8717e30..8b128d92946 100644 --- a/tests/baselines/reference/collisionThisExpressionAndNameResolution.js +++ b/tests/baselines/reference/collisionThisExpressionAndNameResolution.js @@ -21,7 +21,7 @@ var Foo = (function () { var _this = 10; // Local var. No this capture in x(), so no conflict. function inner() { var _this = this; - console.log(_this); + console.log(_this); // Error as this doesnt not resolve to user defined _this return function (x) { return _this; }; // New scope. So should inject new _this capture into function inner } }; diff --git a/tests/baselines/reference/commaOperatorInvalidAssignmentType.js b/tests/baselines/reference/commaOperatorInvalidAssignmentType.js index 37a72e824ec..0d6b9389cfc 100644 --- a/tests/baselines/reference/commaOperatorInvalidAssignmentType.js +++ b/tests/baselines/reference/commaOperatorInvalidAssignmentType.js @@ -25,6 +25,7 @@ var STRING; var resultIsBoolean; var resultIsNumber; var resultIsString; +//Expect errors when the results type is different form the second operand resultIsBoolean = (BOOLEAN, STRING); resultIsBoolean = (BOOLEAN, NUMBER); resultIsNumber = (NUMBER, BOOLEAN); diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.js b/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.js index 3a0b17efa49..522bbbe4e19 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.js +++ b/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.js @@ -43,6 +43,7 @@ var BOOLEAN; var NUMBER; var STRING; var OBJECT; +//The second operand type is any ANY, ANY; BOOLEAN, ANY; NUMBER, ANY; diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.js b/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.js index caab9865caf..dfaba1a93ca 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.js +++ b/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.js @@ -41,6 +41,7 @@ var BOOLEAN; var NUMBER; var STRING; var OBJECT; +//The second operand type is boolean ANY, BOOLEAN; BOOLEAN, BOOLEAN; NUMBER, BOOLEAN; @@ -52,6 +53,7 @@ var resultIsBoolean2 = (BOOLEAN, BOOLEAN); var resultIsBoolean3 = (NUMBER, BOOLEAN); var resultIsBoolean4 = (STRING, BOOLEAN); var resultIsBoolean5 = (OBJECT, BOOLEAN); +//Literal and expression null, BOOLEAN; ANY = undefined, BOOLEAN; 1, true; diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.js b/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.js index fc357009acd..b5b8887e749 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.js +++ b/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.js @@ -41,6 +41,7 @@ var BOOLEAN; var NUMBER; var STRING; var OBJECT; +//The second operand type is number ANY, NUMBER; BOOLEAN, NUMBER; NUMBER, NUMBER; @@ -52,6 +53,7 @@ var resultIsNumber2 = (BOOLEAN, NUMBER); var resultIsNumber3 = (NUMBER, NUMBER); var resultIsNumber4 = (STRING, NUMBER); var resultIsNumber5 = (OBJECT, NUMBER); +//Literal and expression null, NUMBER; ANY = undefined, NUMBER; true, 1; diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.js b/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.js index b182425a935..90c16543ff2 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.js +++ b/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.js @@ -50,6 +50,7 @@ var CLASS = (function () { } return CLASS; })(); +//The second operand type is Object ANY, OBJECT; BOOLEAN, OBJECT; NUMBER, OBJECT; @@ -61,6 +62,7 @@ var resultIsObject2 = (BOOLEAN, OBJECT); var resultIsObject3 = (NUMBER, OBJECT); var resultIsObject4 = (STRING, OBJECT); var resultIsObject5 = (OBJECT, OBJECT); +//Literal and expression null, OBJECT; ANY = null, OBJECT; true, {}; diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandStringType.js b/tests/baselines/reference/commaOperatorWithSecondOperandStringType.js index f4676a3d39b..412e9e83121 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandStringType.js +++ b/tests/baselines/reference/commaOperatorWithSecondOperandStringType.js @@ -44,6 +44,7 @@ var NUMBER; var STRING; var OBJECT; var resultIsString; +//The second operand is string ANY, STRING; BOOLEAN, STRING; NUMBER, STRING; @@ -55,6 +56,7 @@ var resultIsString2 = (BOOLEAN, STRING); var resultIsString3 = (NUMBER, STRING); var resultIsString4 = (STRING, STRING); var resultIsString5 = (OBJECT, STRING); +//Literal and expression null, STRING; ANY = new Date(), STRING; true, ""; diff --git a/tests/baselines/reference/commaOperatorsMultipleOperators.js b/tests/baselines/reference/commaOperatorsMultipleOperators.js index 5d0447324b0..15d93c1f18c 100644 --- a/tests/baselines/reference/commaOperatorsMultipleOperators.js +++ b/tests/baselines/reference/commaOperatorsMultipleOperators.js @@ -32,6 +32,7 @@ var BOOLEAN; var NUMBER; var STRING; var OBJECT; +//Expected: work well ANY, BOOLEAN, NUMBER; BOOLEAN, NUMBER, STRING; NUMBER, STRING, OBJECT; @@ -43,6 +44,7 @@ var resultIsBoolean1 = (OBJECT, ANY, BOOLEAN); var resultIsNumber1 = (ANY, BOOLEAN, NUMBER); var resultIsString1 = (BOOLEAN, NUMBER, STRING); var resultIsObject1 = (NUMBER, STRING, OBJECT); +//Literal and expression null, true, 1; ++NUMBER, STRING.charAt(0), new Object(); var resultIsNumber2 = (null, true, 1); diff --git a/tests/baselines/reference/commentOnExpressionStatement1.js b/tests/baselines/reference/commentOnExpressionStatement1.js index 6daee86cc1b..713c079bcf2 100644 --- a/tests/baselines/reference/commentOnExpressionStatement1.js +++ b/tests/baselines/reference/commentOnExpressionStatement1.js @@ -3,4 +3,4 @@ 1 + 1; // Comment. //// [commentOnExpressionStatement1.js] -1 + 1; +1 + 1; // Comment. diff --git a/tests/baselines/reference/commentsClassMembers.js b/tests/baselines/reference/commentsClassMembers.js index 0ff7212b366..691d1a9097d 100644 --- a/tests/baselines/reference/commentsClassMembers.js +++ b/tests/baselines/reference/commentsClassMembers.js @@ -406,6 +406,7 @@ var c1 = (function () { /** setter property */ set: function (value) { + /** setter */ c1.b_s1 = c1.b_s2(value); }, enumerable: true, diff --git a/tests/baselines/reference/commentsFunction.js b/tests/baselines/reference/commentsFunction.js index 40cb173d34d..2144f8277ef 100644 --- a/tests/baselines/reference/commentsFunction.js +++ b/tests/baselines/reference/commentsFunction.js @@ -35,7 +35,10 @@ function blah3(a: string // trailing commen single line ) { } -lambdaFoo = (a, b) => a * b; // This is trailing comment that will not get emitted since we are not emitting statement comments yet +lambdaFoo = (a, b) => a * b; // This is trailing comment + +/*leading comment*/() => 0; // Needs to be wrapped in parens to be a valid expression (not declaration) +/*leading comment*/(() => 0); //trailing comment //// [commentsFunction.js] /** This comment should appear for foo*/ @@ -68,7 +71,10 @@ function blah2(a /* single line multiple trailing comments */ /* second */) { function blah3(a // trailing commen single line ) { } -lambdaFoo = function (a, b) { return a * b; }; +lambdaFoo = function (a, b) { return a * b; }; // This is trailing comment +/*leading comment*/ ( +/*leading comment*/ function () { return 0; }); // Needs to be wrapped in parens to be a valid expression (not declaration) +/*leading comment*/ (function () { return 0; }); //trailing comment //// [commentsFunction.d.ts] diff --git a/tests/baselines/reference/commentsInheritance.js b/tests/baselines/reference/commentsInheritance.js index 5cc18001840..ba5fcd2dcdc 100644 --- a/tests/baselines/reference/commentsInheritance.js +++ b/tests/baselines/reference/commentsInheritance.js @@ -176,6 +176,7 @@ var c1 = (function () { })(); var i1_i; var c1_i = new c1(); +// assign to interface i1_i = c1_i; var c2 = (function () { /** c2 constructor*/ @@ -253,6 +254,7 @@ var c3 = (function (_super) { })(c2); var c2_i = new c2(10); var c3_i = new c3(); +// assign c2_i = c3_i; var c4 = (function (_super) { __extends(c4, _super); @@ -264,6 +266,7 @@ var c4 = (function (_super) { var c4_i = new c4(10); var i2_i; var i3_i; +// assign to interface i2_i = i3_i; diff --git a/tests/baselines/reference/commentsVarDecl.js b/tests/baselines/reference/commentsVarDecl.js index 4dd7392a8ce..cd7413715c1 100644 --- a/tests/baselines/reference/commentsVarDecl.js +++ b/tests/baselines/reference/commentsVarDecl.js @@ -58,6 +58,7 @@ var anotherAnotherVariable = 70; /* these are multiple trailing comments */ /* m /** comment line 2*/ var x = 70; /* multiline trailing comment this is multiline trailing comment */ +/** Triple slash comment on the assignement shouldnt be in .d.ts file*/ x = myVariable; /** triple slash comment1*/ /** jsdocstyle comment - only this comment should be in .d.ts file*/ diff --git a/tests/baselines/reference/compoundAssignmentLHSIsReference.js b/tests/baselines/reference/compoundAssignmentLHSIsReference.js index c583a37ac49..7b9b21db01a 100644 --- a/tests/baselines/reference/compoundAssignmentLHSIsReference.js +++ b/tests/baselines/reference/compoundAssignmentLHSIsReference.js @@ -50,6 +50,7 @@ x3.a *= value; x3.a += value; x3['a'] *= value; x3['a'] += value; +// parentheses, the contained expression is reference (x1) *= value; (x1) += value; function fn2(x4) { diff --git a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.js b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.js index 5d87aac88fd..ab9dca9023f 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.js +++ b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.js @@ -68,16 +68,19 @@ var exprBoolean2; var exprNumber2; var exprString2; var exprIsObject2; +//Cond is a boolean type variable condBoolean ? exprAny1 : exprAny2; condBoolean ? exprBoolean1 : exprBoolean2; condBoolean ? exprNumber1 : exprNumber2; condBoolean ? exprString1 : exprString2; condBoolean ? exprIsObject1 : exprIsObject2; +//Cond is a boolean type literal true ? exprAny1 : exprAny2; false ? exprBoolean1 : exprBoolean2; true ? exprNumber1 : exprNumber2; false ? exprString1 : exprString2; true ? exprIsObject1 : exprIsObject2; +//Cond is a boolean type expression !true ? exprAny1 : exprAny2; typeof "123" == "string" ? exprBoolean1 : exprBoolean2; 2 > 1 ? exprNumber1 : exprNumber2; diff --git a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.js b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.js index 305aa3caccd..166841f0a89 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.js +++ b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.js @@ -71,11 +71,13 @@ var exprBoolean2; var exprNumber2; var exprString2; var exprIsObject2; +//Cond is a number type variable condNumber ? exprAny1 : exprAny2; condNumber ? exprBoolean1 : exprBoolean2; condNumber ? exprNumber1 : exprNumber2; condNumber ? exprString1 : exprString2; condNumber ? exprIsObject1 : exprIsObject2; +//Cond is a number type literal 1 ? exprAny1 : exprAny2; 0 ? exprBoolean1 : exprBoolean2; 0.123456789 ? exprNumber1 : exprNumber2; diff --git a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js index 0d4908b939f..3f98398d94d 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js +++ b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js @@ -80,16 +80,19 @@ var C = (function () { return C; })(); ; +//Cond is an object type variable condObject ? exprAny1 : exprAny2; condObject ? exprBoolean1 : exprBoolean2; condObject ? exprNumber1 : exprNumber2; condObject ? exprString1 : exprString2; condObject ? exprIsObject1 : exprIsObject2; +//Cond is an object type literal (function (a) { return a.length; }) ? exprAny1 : exprAny2; (function (a) { return a.length; }) ? exprBoolean1 : exprBoolean2; ({}) ? exprNumber1 : exprNumber2; ({ a: 1, b: "s" }) ? exprString1 : exprString2; ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +//Cond is an object type expression foo() ? exprAny1 : exprAny2; new Date() ? exprBoolean1 : exprBoolean2; new C() ? exprNumber1 : exprNumber2; diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.js b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.js index 3ed7431399e..5869023d17d 100644 --- a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.js +++ b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.js @@ -70,16 +70,19 @@ var exprBoolean2; var exprNumber2; var exprString2; var exprIsObject2; +//Cond is an any type variable condAny ? exprAny1 : exprAny2; condAny ? exprBoolean1 : exprBoolean2; condAny ? exprNumber1 : exprNumber2; condAny ? exprString1 : exprString2; condAny ? exprIsObject1 : exprIsObject2; +//Cond is an any type literal null ? exprAny1 : exprAny2; null ? exprBoolean1 : exprBoolean2; undefined ? exprNumber1 : exprNumber2; [null, undefined] ? exprString1 : exprString2; [null, undefined] ? exprIsObject1 : exprIsObject2; +//Cond is an any type expression x.doSomeThing() ? exprAny1 : exprAny2; x("x") ? exprBoolean1 : exprBoolean2; x(x) ? exprNumber1 : exprNumber2; diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.js b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.js index 2a0a25d4762..4bd67a40640 100644 --- a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.js +++ b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.js @@ -71,11 +71,13 @@ var exprBoolean2; var exprNumber2; var exprString2; var exprIsObject2; +//Cond is a string type variable condString ? exprAny1 : exprAny2; condString ? exprBoolean1 : exprBoolean2; condString ? exprNumber1 : exprNumber2; condString ? exprString1 : exprString2; condString ? exprIsObject1 : exprIsObject2; +//Cond is a string type literal "" ? exprAny1 : exprAny2; "string" ? exprBoolean1 : exprBoolean2; 'c' ? exprNumber1 : exprNumber2; diff --git a/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.js b/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.js index 50bd9338b67..722310815ae 100644 --- a/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.js +++ b/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.js @@ -80,8 +80,11 @@ var B = (function (_super) { var x; var a; var b; +//Cond ? Expr1 : Expr2, Expr1 is supertype +//Be Not contextually typed true ? x : a; var result1 = true ? x : a; +//Expr1 and Expr2 are literals true ? {} : 1; true ? { a: 1 } : { a: 2, b: 'string' }; var result2 = true ? {} : 1; @@ -89,8 +92,11 @@ var result3 = true ? { a: 1 } : { a: 2, b: 'string' }; //Contextually typed var resultIsX1 = true ? x : a; var result4 = true ? function (m) { return m.propertyX; } : function (n) { return n.propertyA; }; +//Cond ? Expr1 : Expr2, Expr2 is supertype +//Be Not contextually typed true ? a : x; var result5 = true ? a : x; +//Expr1 and Expr2 are literals true ? 1 : {}; true ? { a: 2, b: 'string' } : { a: 1 }; var result6 = true ? 1 : {}; diff --git a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.js b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.js index 41e7b7bc2dd..90125d4ebf6 100644 --- a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.js +++ b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.js @@ -54,6 +54,8 @@ var B = (function (_super) { var x; var a; var b; +//Expect to have compiler errors +//Be not contextually typed true ? a : b; var result1 = true ? a : b; //Be contextually typed and and bct is not identical diff --git a/tests/baselines/reference/constraintSatisfactionWithAny.js b/tests/baselines/reference/constraintSatisfactionWithAny.js index 70db5251a4b..924c2ab1700 100644 --- a/tests/baselines/reference/constraintSatisfactionWithAny.js +++ b/tests/baselines/reference/constraintSatisfactionWithAny.js @@ -67,10 +67,12 @@ function foo4(x) { var a; foo(a); foo2(a); +//foo3(a); foo4(a); var b; foo(b); foo2(b); +//foo3(b); foo4(b); //function foo5(x: T, y: U): T { return null; } //foo5(a, a); diff --git a/tests/baselines/reference/constraintsUsedInPrototypeProperty.js b/tests/baselines/reference/constraintsUsedInPrototypeProperty.js index fc5bae9a3d9..7f055e519c3 100644 --- a/tests/baselines/reference/constraintsUsedInPrototypeProperty.js +++ b/tests/baselines/reference/constraintsUsedInPrototypeProperty.js @@ -8,4 +8,4 @@ var Foo = (function () { } return Foo; })(); -Foo.prototype; +Foo.prototype; // Foo diff --git a/tests/baselines/reference/constructorArgWithGenericCallSignature.js b/tests/baselines/reference/constructorArgWithGenericCallSignature.js index 1460cd2b668..5fa7c46124b 100644 --- a/tests/baselines/reference/constructorArgWithGenericCallSignature.js +++ b/tests/baselines/reference/constructorArgWithGenericCallSignature.js @@ -28,5 +28,5 @@ var Test; Test.F = F; })(Test || (Test = {})); var func; -Test.F(func); +Test.F(func); // OK var test = new Test.MyClass(func); // Should be OK diff --git a/tests/baselines/reference/constructorParameterShadowsOuterScopes.js b/tests/baselines/reference/constructorParameterShadowsOuterScopes.js index 3e222cc6cb3..18a1891c927 100644 --- a/tests/baselines/reference/constructorParameterShadowsOuterScopes.js +++ b/tests/baselines/reference/constructorParameterShadowsOuterScopes.js @@ -29,7 +29,7 @@ var x = 1; var C = (function () { function C(x) { this.b = x; // error, evaluated in scope of constructor, cannot reference x - x = 2; + x = 2; // error, x is string } return C; })(); diff --git a/tests/baselines/reference/contextualSignatureInstatiationContravariance.js b/tests/baselines/reference/contextualSignatureInstatiationContravariance.js index f2ea802c81e..6e731d61713 100644 --- a/tests/baselines/reference/contextualSignatureInstatiationContravariance.js +++ b/tests/baselines/reference/contextualSignatureInstatiationContravariance.js @@ -14,6 +14,6 @@ h2 = f2; // valid because Giraffe satisfies the constraint. It is safe in the tr //// [contextualSignatureInstatiationContravariance.js] var f2; var g2; -g2 = f2; +g2 = f2; // valid because both Giraffe and Elephant satisfy the constraint. T is Animal var h2; -h2 = f2; +h2 = f2; // valid because Giraffe satisfies the constraint. It is safe in the traditional contravariant fashion. diff --git a/tests/baselines/reference/contextualSignatureInstatiationCovariance.js b/tests/baselines/reference/contextualSignatureInstatiationCovariance.js index c766c43e510..dd37210f96c 100644 --- a/tests/baselines/reference/contextualSignatureInstatiationCovariance.js +++ b/tests/baselines/reference/contextualSignatureInstatiationCovariance.js @@ -14,6 +14,6 @@ h2 = f2; // Animal does not satisfy the constraint, but T is at worst a Giraffe //// [contextualSignatureInstatiationCovariance.js] var f2; var g2; -g2 = f2; +g2 = f2; // While neither Animal nor TallThing satisfy the constraint, T is at worst a Giraffe and compatible with both via covariance. var h2; -h2 = f2; +h2 = f2; // Animal does not satisfy the constraint, but T is at worst a Giraffe and compatible with Animal via covariance. diff --git a/tests/baselines/reference/contextualTypingOfLambdaReturnExpression.js b/tests/baselines/reference/contextualTypingOfLambdaReturnExpression.js index d72fd1352c0..f7e6b63ce05 100644 --- a/tests/baselines/reference/contextualTypingOfLambdaReturnExpression.js +++ b/tests/baselines/reference/contextualTypingOfLambdaReturnExpression.js @@ -9,7 +9,7 @@ callb((a) => { a.length; }); // Error, we picked the first overload and errored //// [contextualTypingOfLambdaReturnExpression.js] function callb(a) { } -callb(function (a) { return a.length; }); +callb(function (a) { return a.length; }); // Ok, we choose the second overload because the first one gave us an error when trying to resolve the lambda return type callb(function (a) { a.length; -}); +}); // Error, we picked the first overload and errored when type checking the lambda body diff --git a/tests/baselines/reference/contextualTypingOfObjectLiterals.js b/tests/baselines/reference/contextualTypingOfObjectLiterals.js index 6311b242bca..2d585284f50 100644 --- a/tests/baselines/reference/contextualTypingOfObjectLiterals.js +++ b/tests/baselines/reference/contextualTypingOfObjectLiterals.js @@ -13,10 +13,10 @@ f(obj2); // Error - indexer doesn't match //// [contextualTypingOfObjectLiterals.js] var obj1; var obj2 = { x: "" }; -obj1 = {}; -obj1 = obj2; +obj1 = {}; // Ok +obj1 = obj2; // Error - indexer doesn't match function f(x) { } -f({}); -f(obj1); -f(obj2); +f({}); // Ok +f(obj1); // Ok +f(obj2); // Error - indexer doesn't match diff --git a/tests/baselines/reference/contextualTypingOfObjectLiterals2.js b/tests/baselines/reference/contextualTypingOfObjectLiterals2.js index 52cbaa48d77..ce8abe35810 100644 --- a/tests/baselines/reference/contextualTypingOfObjectLiterals2.js +++ b/tests/baselines/reference/contextualTypingOfObjectLiterals2.js @@ -8,4 +8,4 @@ f2({ foo: s => s.hmm }) // 's' should be 'string', so this should be an error //// [contextualTypingOfObjectLiterals2.js] function f2(args) { } -f2({ foo: function (s) { return s.hmm; } }); +f2({ foo: function (s) { return s.hmm; } }); // 's' should be 'string', so this should be an error diff --git a/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.js b/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.js index 4c5cc06e75e..cf7274db8a0 100644 --- a/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.js +++ b/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.js @@ -5,5 +5,5 @@ var r9 = f10('', () => (a => a.foo), 1); // now a should be any //// [contextualTypingWithFixedTypeParameters1.js] var f10; -f10('', function () { return function (a) { return a.foo; }; }, ''); +f10('', function () { return function (a) { return a.foo; }; }, ''); // a is string, fixed by first parameter var r9 = f10('', function () { return (function (a) { return a.foo; }); }, 1); // now a should be any diff --git a/tests/baselines/reference/copyrightWithNewLine1.js b/tests/baselines/reference/copyrightWithNewLine1.js index 47d0571adc5..ede3fa8d92a 100644 --- a/tests/baselines/reference/copyrightWithNewLine1.js +++ b/tests/baselines/reference/copyrightWithNewLine1.js @@ -13,5 +13,6 @@ greeter.start(); define(["require", "exports", "./greeter"], function (require, exports, model) { var el = document.getElementById('content'); var greeter = new model.Greeter(el); + /** things */ greeter.start(); }); diff --git a/tests/baselines/reference/copyrightWithoutNewLine1.js b/tests/baselines/reference/copyrightWithoutNewLine1.js index f7b343cdc60..507c66fa3af 100644 --- a/tests/baselines/reference/copyrightWithoutNewLine1.js +++ b/tests/baselines/reference/copyrightWithoutNewLine1.js @@ -12,5 +12,6 @@ greeter.start(); define(["require", "exports", "./greeter"], function (require, exports, model) { var el = document.getElementById('content'); var greeter = new model.Greeter(el); + /** things */ greeter.start(); }); diff --git a/tests/baselines/reference/covariance1.js b/tests/baselines/reference/covariance1.js index 4c19c9d2038..3c3891af882 100644 --- a/tests/baselines/reference/covariance1.js +++ b/tests/baselines/reference/covariance1.js @@ -31,7 +31,7 @@ var M; } M.f = f; var a; - f({ x: a }); + f({ x: a }); // ok var b; - f({ x: b }); + f({ x: b }); // ok covariant subtype })(M || (M = {})); diff --git a/tests/baselines/reference/customEventDetail.js b/tests/baselines/reference/customEventDetail.js index 2ad8d60b8c8..7207ecf0628 100644 --- a/tests/baselines/reference/customEventDetail.js +++ b/tests/baselines/reference/customEventDetail.js @@ -7,5 +7,6 @@ var y = x.detail.name; //// [customEventDetail.js] var x; +// valid since detail is any x.initCustomEvent('hello', true, true, { id: 12, name: 'hello' }); var y = x.detail.name; diff --git a/tests/baselines/reference/decrementAndIncrementOperators.js b/tests/baselines/reference/decrementAndIncrementOperators.js index c5a1c6d8d14..5e9b9472a35 100644 --- a/tests/baselines/reference/decrementAndIncrementOperators.js +++ b/tests/baselines/reference/decrementAndIncrementOperators.js @@ -40,6 +40,7 @@ x[x++]++; //// [decrementAndIncrementOperators.js] var x = 0; +// errors 1++; (1)++; (1)--; @@ -53,6 +54,7 @@ var x = 0; (x + x)--; ++(x + x); --(x + x); +//OK x++; x--; ++x; diff --git a/tests/baselines/reference/decrementOperatorWithAnyOtherType.js b/tests/baselines/reference/decrementOperatorWithAnyOtherType.js index 983ca4b6cf0..34ea154daa6 100644 --- a/tests/baselines/reference/decrementOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/decrementOperatorWithAnyOtherType.js @@ -80,6 +80,7 @@ var ResultIsNumber10 = obj.x--; var ResultIsNumber11 = obj.y--; var ResultIsNumber12 = objA.a--; var ResultIsNumber13 = M.n--; +// miss assignment opertors --ANY; --ANY1; --ANY2[0]; diff --git a/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.js b/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.js index c72bf171043..6006f1bcf26 100644 --- a/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.js +++ b/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.js @@ -130,6 +130,7 @@ var ResultIsNumber27 = (null + null)--; var ResultIsNumber28 = (undefined + undefined)--; var ResultIsNumber29 = obj1.x--; var ResultIsNumber30 = obj1.y--; +// miss assignment operators --ANY2; ANY2--; --ANY1--; diff --git a/tests/baselines/reference/decrementOperatorWithEnumType.js b/tests/baselines/reference/decrementOperatorWithEnumType.js index d6a2d892386..8c22fd18928 100644 --- a/tests/baselines/reference/decrementOperatorWithEnumType.js +++ b/tests/baselines/reference/decrementOperatorWithEnumType.js @@ -24,5 +24,6 @@ var ENUM1; // expression var ResultIsNumber1 = --ENUM1[1]; var ResultIsNumber2 = ENUM1[1]--; +// miss assignment operator --ENUM1[1]; ENUM1[1]--; diff --git a/tests/baselines/reference/decrementOperatorWithEnumTypeInvalidOperations.js b/tests/baselines/reference/decrementOperatorWithEnumTypeInvalidOperations.js index 3ee0c88dc9e..410e3c144ef 100644 --- a/tests/baselines/reference/decrementOperatorWithEnumTypeInvalidOperations.js +++ b/tests/baselines/reference/decrementOperatorWithEnumTypeInvalidOperations.js @@ -43,6 +43,7 @@ var ResultIsNumber4 = ENUM1--; // enum type expressions var ResultIsNumber5 = --(ENUM[1] + ENUM[2]); var ResultIsNumber6 = (ENUM[1] + ENUM[2])--; +// miss assignment operator --ENUM; --ENUM1; ENUM--; diff --git a/tests/baselines/reference/decrementOperatorWithNumberType.js b/tests/baselines/reference/decrementOperatorWithNumberType.js index c8631a6afbe..85ed9ca548a 100644 --- a/tests/baselines/reference/decrementOperatorWithNumberType.js +++ b/tests/baselines/reference/decrementOperatorWithNumberType.js @@ -62,6 +62,7 @@ var ResultIsNumber4 = --M.n; var ResultIsNumber5 = objA.a--; var ResultIsNumber6 = M.n--; var ResultIsNumber7 = NUMBER1[0]--; +// miss assignment operators --NUMBER; --NUMBER1[0]; --objA.a; diff --git a/tests/baselines/reference/decrementOperatorWithNumberTypeInvalidOperations.js b/tests/baselines/reference/decrementOperatorWithNumberTypeInvalidOperations.js index bbe69efa1bd..8fc1c601982 100644 --- a/tests/baselines/reference/decrementOperatorWithNumberTypeInvalidOperations.js +++ b/tests/baselines/reference/decrementOperatorWithNumberTypeInvalidOperations.js @@ -87,6 +87,7 @@ var ResultIsNumber11 = --(NUMBER + NUMBER); var ResultIsNumber12 = foo()--; var ResultIsNumber13 = A.foo()--; var ResultIsNumber14 = (NUMBER + NUMBER)--; +// miss assignment operator --1; --NUMBER1; --foo(); diff --git a/tests/baselines/reference/decrementOperatorWithUnsupportedBooleanType.js b/tests/baselines/reference/decrementOperatorWithUnsupportedBooleanType.js index c113ea6ef3b..22c86aa8450 100644 --- a/tests/baselines/reference/decrementOperatorWithUnsupportedBooleanType.js +++ b/tests/baselines/reference/decrementOperatorWithUnsupportedBooleanType.js @@ -96,6 +96,7 @@ var ResultIsNumber13 = foo()--; var ResultIsNumber14 = A.foo()--; var ResultIsNumber15 = objA.a--; var ResultIsNumber16 = M.n--; +// miss assignment operators --true; --BOOLEAN; --foo(); diff --git a/tests/baselines/reference/decrementOperatorWithUnsupportedStringType.js b/tests/baselines/reference/decrementOperatorWithUnsupportedStringType.js index 2fe2748d55c..1747b1648d6 100644 --- a/tests/baselines/reference/decrementOperatorWithUnsupportedStringType.js +++ b/tests/baselines/reference/decrementOperatorWithUnsupportedStringType.js @@ -114,6 +114,7 @@ var ResultIsNumber19 = STRING1[0]--; var ResultIsNumber20 = foo()--; var ResultIsNumber21 = A.foo()--; var ResultIsNumber22 = (STRING + STRING)--; +// miss assignment operators --""; --STRING; --STRING1; diff --git a/tests/baselines/reference/defaultIndexProps2.js b/tests/baselines/reference/defaultIndexProps2.js index 9f8b97c1350..7652e591cc9 100644 --- a/tests/baselines/reference/defaultIndexProps2.js +++ b/tests/baselines/reference/defaultIndexProps2.js @@ -25,5 +25,6 @@ var Foo = (function () { var f = new Foo(); // WScript.Echo(f[0]); var o = { v: "Yo2" }; +// WScript.Echo(o[0]); 1[0]; var q = "s"[0]; diff --git a/tests/baselines/reference/deleteOperatorWithAnyOtherType.js b/tests/baselines/reference/deleteOperatorWithAnyOtherType.js index a344262a266..c8a84ac83ea 100644 --- a/tests/baselines/reference/deleteOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/deleteOperatorWithAnyOtherType.js @@ -112,6 +112,7 @@ var ResultIsBoolean19 = delete (undefined + undefined); // multiple delete operators var ResultIsBoolean20 = delete delete ANY; var ResultIsBoolean21 = delete delete delete (ANY + ANY1); +// miss assignment operators delete ANY; delete ANY1; delete ANY2[0]; diff --git a/tests/baselines/reference/deleteOperatorWithBooleanType.js b/tests/baselines/reference/deleteOperatorWithBooleanType.js index c0257d29048..cab9cba2c95 100644 --- a/tests/baselines/reference/deleteOperatorWithBooleanType.js +++ b/tests/baselines/reference/deleteOperatorWithBooleanType.js @@ -69,6 +69,7 @@ var ResultIsBoolean6 = delete foo(); var ResultIsBoolean7 = delete A.foo(); // multiple delete operator var ResultIsBoolean8 = delete delete BOOLEAN; +// miss assignment operators delete true; delete BOOLEAN; delete foo(); diff --git a/tests/baselines/reference/deleteOperatorWithEnumType.js b/tests/baselines/reference/deleteOperatorWithEnumType.js index b8df20ea1dd..d7fd9c95ee8 100644 --- a/tests/baselines/reference/deleteOperatorWithEnumType.js +++ b/tests/baselines/reference/deleteOperatorWithEnumType.js @@ -44,6 +44,7 @@ var ResultIsBoolean4 = delete (ENUM[0] + ENUM1[1]); // multiple delete operators var ResultIsBoolean5 = delete delete ENUM; var ResultIsBoolean6 = delete delete delete (ENUM[0] + ENUM1[1]); +// miss assignment operators delete ENUM; delete ENUM1; delete ENUM1[1]; diff --git a/tests/baselines/reference/deleteOperatorWithNumberType.js b/tests/baselines/reference/deleteOperatorWithNumberType.js index 6c5a4a6c449..d19ae045805 100644 --- a/tests/baselines/reference/deleteOperatorWithNumberType.js +++ b/tests/baselines/reference/deleteOperatorWithNumberType.js @@ -84,6 +84,7 @@ var ResultIsBoolean11 = delete (NUMBER + NUMBER); // multiple delete operator var ResultIsBoolean12 = delete delete NUMBER; var ResultIsBoolean13 = delete delete delete (NUMBER + NUMBER); +// miss assignment operators delete 1; delete NUMBER; delete NUMBER1; diff --git a/tests/baselines/reference/deleteOperatorWithStringType.js b/tests/baselines/reference/deleteOperatorWithStringType.js index 3697e04c3d1..ad27e8f84ad 100644 --- a/tests/baselines/reference/deleteOperatorWithStringType.js +++ b/tests/baselines/reference/deleteOperatorWithStringType.js @@ -84,6 +84,7 @@ var ResultIsBoolean12 = delete STRING.charAt(0); // multiple delete operator var ResultIsBoolean13 = delete delete STRING; var ResultIsBoolean14 = delete delete delete (STRING + STRING); +// miss assignment operators delete ""; delete STRING; delete STRING1; diff --git a/tests/baselines/reference/derivedClassParameterProperties.js b/tests/baselines/reference/derivedClassParameterProperties.js index 2ba78f89ab0..344f1c4ead1 100644 --- a/tests/baselines/reference/derivedClassParameterProperties.js +++ b/tests/baselines/reference/derivedClassParameterProperties.js @@ -111,7 +111,7 @@ var Derived = (function (_super) { __extends(Derived, _super); function Derived(y) { var a = 1; - _super.call(this); + _super.call(this); // ok } return Derived; })(Base); @@ -120,14 +120,14 @@ var Derived2 = (function (_super) { function Derived2(y) { this.y = y; var a = 1; - _super.call(this); + _super.call(this); // error } return Derived2; })(Base); var Derived3 = (function (_super) { __extends(Derived3, _super); function Derived3(y) { - _super.call(this); + _super.call(this); // ok this.y = y; var a = 1; } @@ -138,14 +138,14 @@ var Derived4 = (function (_super) { function Derived4(y) { this.a = 1; var b = 2; - _super.call(this); + _super.call(this); // error } return Derived4; })(Base); var Derived5 = (function (_super) { __extends(Derived5, _super); function Derived5(y) { - _super.call(this); + _super.call(this); // ok this.a = 1; var b = 2; } @@ -156,7 +156,7 @@ var Derived6 = (function (_super) { function Derived6(y) { this.a = 1; var b = 2; - _super.call(this); + _super.call(this); // ok } return Derived6; })(Base); @@ -166,14 +166,14 @@ var Derived7 = (function (_super) { this.a = 1; this.a = 3; this.b = 3; - _super.call(this); + _super.call(this); // error } return Derived7; })(Base); var Derived8 = (function (_super) { __extends(Derived8, _super); function Derived8(y) { - _super.call(this); + _super.call(this); // ok this.a = 1; this.a = 3; this.b = 3; @@ -192,14 +192,14 @@ var Derived9 = (function (_super) { this.a = 1; this.a = 3; this.b = 3; - _super.call(this); + _super.call(this); // error } return Derived9; })(Base2); var Derived10 = (function (_super) { __extends(Derived10, _super); function Derived10(y) { - _super.call(this); + _super.call(this); // ok this.a = 1; this.a = 3; this.b = 3; diff --git a/tests/baselines/reference/derivedClassSuperCallsWithThisArg.js b/tests/baselines/reference/derivedClassSuperCallsWithThisArg.js index 0616d94cdff..7e61be1c1c9 100644 --- a/tests/baselines/reference/derivedClassSuperCallsWithThisArg.js +++ b/tests/baselines/reference/derivedClassSuperCallsWithThisArg.js @@ -43,14 +43,14 @@ var Base = (function () { var Derived = (function (_super) { __extends(Derived, _super); function Derived() { - _super.call(this, this); + _super.call(this, this); // ok } return Derived; })(Base); var Derived2 = (function (_super) { __extends(Derived2, _super); function Derived2(a) { - _super.call(this, this); + _super.call(this, this); // error this.a = a; } return Derived2; @@ -59,7 +59,7 @@ var Derived3 = (function (_super) { __extends(Derived3, _super); function Derived3(a) { var _this = this; - _super.call(this, function () { return _this; }); + _super.call(this, function () { return _this; }); // error this.a = a; } return Derived3; @@ -69,7 +69,7 @@ var Derived4 = (function (_super) { function Derived4(a) { _super.call(this, function () { return this; - }); + }); // ok this.a = a; } return Derived4; diff --git a/tests/baselines/reference/derivedTypeCallingBaseImplWithOptionalParams.js b/tests/baselines/reference/derivedTypeCallingBaseImplWithOptionalParams.js index fc82f7f2872..7bf7444a0e5 100644 --- a/tests/baselines/reference/derivedTypeCallingBaseImplWithOptionalParams.js +++ b/tests/baselines/reference/derivedTypeCallingBaseImplWithOptionalParams.js @@ -22,6 +22,6 @@ var MyClass = (function () { return MyClass; })(); var x = new MyClass(); -x.myMethod(); +x.myMethod(); // should be valid, but MyClass has no implementation to handle it. var y = new MyClass(); -y.myMethod(); +y.myMethod(); // error diff --git a/tests/baselines/reference/duplicateLocalVariable1.js b/tests/baselines/reference/duplicateLocalVariable1.js index f6c4813cecd..d20f9c43d83 100644 --- a/tests/baselines/reference/duplicateLocalVariable1.js +++ b/tests/baselines/reference/duplicateLocalVariable1.js @@ -407,6 +407,7 @@ var TestRunner = (function () { exports.TestRunner = TestRunner; exports.tests = (function () { var testRunner = new TestRunner(); + // First 3 are for simple harness validation testRunner.addTest(new TestCase("Basic test", function () { return true; })); @@ -424,12 +425,14 @@ exports.tests = (function () { testRunner.addTest(new TestCase("Test array compare false", function () { return !TestRunner.arrayCompare([3, 2, 3], [1, 2, 3]); })); + // File detection tests testRunner.addTest(new TestCase("Check file exists", function () { return FileManager.DirectoryManager.fileExists(TestFileDir + "\\Test.txt"); })); testRunner.addTest(new TestCase("Check file doesn't exist", function () { return !FileManager.DirectoryManager.fileExists(TestFileDir + "\\Test2.txt"); })); + // File pattern matching tests testRunner.addTest(new TestCase("Check text file match", function () { return (FileManager.FileBuffer.isTextFile("C:\\somedir\\readme.txt") && FileManager.FileBuffer.isTextFile("C:\\spaces path\\myapp.str") && FileManager.FileBuffer.isTextFile("C:\\somedir\\code.js")); })); @@ -439,6 +442,7 @@ exports.tests = (function () { testRunner.addTest(new TestCase("Check binary file doesn't match", function () { return (!FileManager.FileBuffer.isTextFile("C:\\somedir\\app.exe") && !FileManager.FileBuffer.isTextFile("C:\\somedir\\my lib.dll")); })); + // Command-line parameter tests testRunner.addTest(new TestCase("Check App defaults", function () { var app = new App.App([]); return (app.fixLines === false && app.recurse === true && app.lineEndings === "CRLF" && app.matchPattern === undefined && app.rootDirectory === ".\\" && app.encodings[0] === "ascii" && app.encodings[1] === "utf8nobom"); @@ -447,6 +451,7 @@ exports.tests = (function () { var app = new App.App(["-dir=C:\\test dir", "-lineEndings=LF", "-encodings=utf16be,ascii", "-recurse=false", "-fixlines"]); return (app.fixLines === true && app.lineEndings === "LF" && app.recurse === false && app.matchPattern === undefined && app.rootDirectory === "C:\\test dir" && app.encodings[0] === "utf16be" && app.encodings[1] === "ascii" && app.encodings.length === 2); })); + // File BOM detection tests testRunner.addTest(new TestCase("Check encoding detection no BOM", function () { var fb = new FileManager.FileBuffer(TestFileDir + "\\noBOM.txt"); return fb.bom === 'none' && fb.encoding === 'utf8'; @@ -471,6 +476,7 @@ exports.tests = (function () { var fb = new FileManager.FileBuffer(TestFileDir + "\\0bytefile.txt"); return fb.bom === 'none' && fb.encoding === 'utf8'; })); + // UTF8 encoding tests testRunner.addTest(new TestCase("Check byte reader", function () { var fb = new FileManager.FileBuffer(TestFileDir + "\\UTF8BOM.txt"); var chars = []; @@ -502,6 +508,7 @@ exports.tests = (function () { var expected = [0xEF, 0xBB, 0xBF, 0x54, 0xC3, 0xA8, 0xE1, 0xB4, 0xA3, 0xE2, 0x80, 0xA0, 0x0D, 0x0A]; return TestRunner.arrayCompare(bytes, expected); })); + // Test reading and writing files testRunner.addTest(new TestCase("Check saving a file", function () { var filename = TestFileDir + "\\tmpUTF16LE.txt"; var fb = new FileManager.FileBuffer(14); @@ -535,6 +542,7 @@ exports.tests = (function () { fb.writeByte(5, 200); return true; }, "write beyond buffer length")); + // Non-BMP unicode char tests testRunner.addTest(new TestCase("Read non-BMP utf16 chars", function () { var savedFile = new FileManager.FileBuffer(TestFileDir + "\\utf16leNonBmp.txt"); if (savedFile.encoding !== 'utf16le') { @@ -610,12 +618,14 @@ exports.tests = (function () { var fb = new FileManager.FileBuffer(filename); return true; }, "Trail surrogate has an invalid value")); + // Count of CRs & LFs testRunner.addTest(new TestCase("Count character occurrences", function () { var filename = TestFileDir + "\\charCountASCII.txt"; var fb = new FileManager.FileBuffer(filename); var result = (fb.countCR === 5 && fb.countLF === 4 && fb.countCRLF === 5 && fb.countHT === 3); return result; })); + // Control characters in text testRunner.addTest(new TestCase("Test file with control character", function () { var filename = TestFileDir + "\\controlChar.txt"; var fb = new FileManager.FileBuffer(filename); diff --git a/tests/baselines/reference/dynamicModuleTypecheckError.js b/tests/baselines/reference/dynamicModuleTypecheckError.js index 065eee59a5e..1a9e058971e 100644 --- a/tests/baselines/reference/dynamicModuleTypecheckError.js +++ b/tests/baselines/reference/dynamicModuleTypecheckError.js @@ -11,5 +11,5 @@ for(var i = 0; i < 30; i++) { //// [dynamicModuleTypecheckError.js] exports.x = 1; for (var i = 0; i < 30; i++) { - exports.x = i * 1000; + exports.x = i * 1000; // should not be an error here } diff --git a/tests/baselines/reference/emitMemberAccessExpression.js b/tests/baselines/reference/emitMemberAccessExpression.js index 260ce49c599..bf7da2505de 100644 --- a/tests/baselines/reference/emitMemberAccessExpression.js +++ b/tests/baselines/reference/emitMemberAccessExpression.js @@ -25,6 +25,7 @@ module Microsoft.PeopleAtWork.Model { } //// [emitMemberAccessExpression_file2.js] +/// "use strict"; var Microsoft; (function (Microsoft) { @@ -45,6 +46,7 @@ var Microsoft; var PeopleAtWork = Microsoft.PeopleAtWork; })(Microsoft || (Microsoft = {})); //// [emitMemberAccessExpression_file1.js] +/// "use strict"; //// [emitMemberAccessExpression_file3.js] var Microsoft; diff --git a/tests/baselines/reference/enumAssignability.js b/tests/baselines/reference/enumAssignability.js index 3df51cfbaa9..874c177c4e6 100644 --- a/tests/baselines/reference/enumAssignability.js +++ b/tests/baselines/reference/enumAssignability.js @@ -68,10 +68,10 @@ var e = 0 /* A */; var f = 0 /* B */; e = f; f = e; -e = 1; -f = 1; +e = 1; // ok +f = 1; // ok var x = e; // ok -x = f; +x = f; // ok var Others; (function (Others) { var a = e; // ok diff --git a/tests/baselines/reference/enumBasics1.js b/tests/baselines/reference/enumBasics1.js index c8549fe4805..6a441f2929a 100644 --- a/tests/baselines/reference/enumBasics1.js +++ b/tests/baselines/reference/enumBasics1.js @@ -44,7 +44,26 @@ var E; E[E["B"] = 2] = "B"; E[E["C"] = 3] = "C"; })(E || (E = {})); -1 /* A */.A; +/* +var a: E; +var b = E["B"]; // shouldn't error + + +function foo(e: E) {} + +foo(a); // shouldn't error + + +class C { + public e: E; + + public m(): E { return this.e; } // shouldn't error +} + + +var e = E; // shouldn't error +*/ +1 /* A */.A; // should error var E2; (function (E2) { E2[E2["A"] = 0] = "A"; diff --git a/tests/baselines/reference/enumMapBackIntoItself.js b/tests/baselines/reference/enumMapBackIntoItself.js index 3402e3375df..2d177731b95 100644 --- a/tests/baselines/reference/enumMapBackIntoItself.js +++ b/tests/baselines/reference/enumMapBackIntoItself.js @@ -18,4 +18,5 @@ var TShirtSize; })(TShirtSize || (TShirtSize = {})); var mySize = 2 /* Large */; var test = TShirtSize[mySize]; +// specifically checking output here, bug was that test used to be undefined at runtime test + ''; diff --git a/tests/baselines/reference/enumPropertyAccess.js b/tests/baselines/reference/enumPropertyAccess.js index 7b74e6272bc..4c2a7df3c94 100644 --- a/tests/baselines/reference/enumPropertyAccess.js +++ b/tests/baselines/reference/enumPropertyAccess.js @@ -22,9 +22,9 @@ var Colors; })(Colors || (Colors = {})); var x = 0 /* Red */; // type of 'x' should be 'Colors' var p = x.Green; // error -x.toFixed(); +x.toFixed(); // ok // Now with generics function fill(f) { - f.Green; - f.toFixed(); + f.Green; // error + f.toFixed(); // ok } diff --git a/tests/baselines/reference/errorSupression1.js b/tests/baselines/reference/errorSupression1.js index 47d9811b85e..92330a6c074 100644 --- a/tests/baselines/reference/errorSupression1.js +++ b/tests/baselines/reference/errorSupression1.js @@ -18,4 +18,5 @@ var Foo = (function () { return Foo; })(); var baz = Foo.b; +// Foo.b won't bind. baz.concat("y"); diff --git a/tests/baselines/reference/es6DeclOrdering.js b/tests/baselines/reference/es6DeclOrdering.js index d14a02938f9..53726e3b0bf 100644 --- a/tests/baselines/reference/es6DeclOrdering.js +++ b/tests/baselines/reference/es6DeclOrdering.js @@ -19,7 +19,7 @@ class Bar { //// [es6DeclOrdering.js] var Bar = (function () { function Bar(store) { - this._store = store; + this._store = store; // this is an error for some reason? Unresolved symbol store } //public bar() { } Bar.prototype.foo = function () { diff --git a/tests/baselines/reference/exportEqualErrorType.js b/tests/baselines/reference/exportEqualErrorType.js index dfa6383d8de..533a2c2501c 100644 --- a/tests/baselines/reference/exportEqualErrorType.js +++ b/tests/baselines/reference/exportEqualErrorType.js @@ -28,5 +28,5 @@ define(["require", "exports"], function (require, exports) { }); //// [exportEqualErrorType_1.js] define(["require", "exports", 'exportEqualErrorType_0'], function (require, exports, connect) { - connect().use(connect.static('foo')); + connect().use(connect.static('foo')); // Error 1 The property 'static' does not exist on value of type ''. }); diff --git a/tests/baselines/reference/exportEqualMemberMissing.js b/tests/baselines/reference/exportEqualMemberMissing.js index 17a44dd50dd..583176f12f3 100644 --- a/tests/baselines/reference/exportEqualMemberMissing.js +++ b/tests/baselines/reference/exportEqualMemberMissing.js @@ -27,4 +27,4 @@ module.exports = server; //// [exportEqualMemberMissing_1.js] /// var connect = require('exportEqualMemberMissing_0'); -connect().use(connect.static('foo')); +connect().use(connect.static('foo')); // Error 1 The property 'static' does not exist on value of type ''. diff --git a/tests/baselines/reference/exportImportMultipleFiles.js b/tests/baselines/reference/exportImportMultipleFiles.js index f6424cb8a9b..225b605f689 100644 --- a/tests/baselines/reference/exportImportMultipleFiles.js +++ b/tests/baselines/reference/exportImportMultipleFiles.js @@ -22,9 +22,9 @@ define(["require", "exports"], function (require, exports) { //// [exportImportMultipleFiles_library.js] define(["require", "exports", "exportImportMultipleFiles_math"], function (require, exports, math) { exports.math = math; - exports.math.add(3, 4); + exports.math.add(3, 4); // OK }); //// [exportImportMultipleFiles_userCode.js] define(["require", "exports", './exportImportMultipleFiles_library'], function (require, exports, lib) { - lib.math.add(3, 4); + lib.math.add(3, 4); // Shouldnt be error }); diff --git a/tests/baselines/reference/externalModuleAssignToVar.js b/tests/baselines/reference/externalModuleAssignToVar.js index 9440fbb069c..e41719ef88a 100644 --- a/tests/baselines/reference/externalModuleAssignToVar.js +++ b/tests/baselines/reference/externalModuleAssignToVar.js @@ -56,9 +56,9 @@ define(["require", "exports"], function (require, exports) { //// [externalModuleAssignToVar_core.js] define(["require", "exports", 'externalModuleAssignToVar_core_require', 'externalModuleAssignToVar_core_require2', 'externalModuleAssignToVar_ext'], function (require, exports, ext, ext2, ext3) { var y1 = ext; - y1 = ext; + y1 = ext; // ok var y2 = ext2; - y2 = ext2; + y2 = ext2; // ok var y3 = ext3; - y3 = ext3; + y3 = ext3; // ok }); diff --git a/tests/baselines/reference/externalModuleResolution.js b/tests/baselines/reference/externalModuleResolution.js index 9c2a8073706..04dc4289bb6 100644 --- a/tests/baselines/reference/externalModuleResolution.js +++ b/tests/baselines/reference/externalModuleResolution.js @@ -24,4 +24,4 @@ var M2; module.exports = M2; //// [consumer.js] var x = require('./foo'); -x.Y; +x.Y; // .ts should be picked diff --git a/tests/baselines/reference/externalModuleResolution2.js b/tests/baselines/reference/externalModuleResolution2.js index e04b0691116..9d35f8e61e1 100644 --- a/tests/baselines/reference/externalModuleResolution2.js +++ b/tests/baselines/reference/externalModuleResolution2.js @@ -25,4 +25,4 @@ var M2; module.exports = M2; //// [consumer.js] var x = require('./foo'); -x.X; +x.X; // .ts should be picked diff --git a/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.js b/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.js index 14b8af6b1a1..d73eec12bcd 100644 --- a/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.js +++ b/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.js @@ -17,4 +17,4 @@ function fn(x, y) { // should be 4 return y; } -fn.call(4); +fn.call(4); // Should be 4 diff --git a/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.js b/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.js index acb30a88ffa..d8521e56a14 100644 --- a/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.js +++ b/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.js @@ -5,4 +5,4 @@ bar(1, ""); // Should be ok //// [fixTypeParameterInSignatureWithRestParameters.js] function bar(item1, item2) { } -bar(1, ""); +bar(1, ""); // Should be ok diff --git a/tests/baselines/reference/forIn.js b/tests/baselines/reference/forIn.js index e287792ac01..28e395a9cf3 100644 --- a/tests/baselines/reference/forIn.js +++ b/tests/baselines/reference/forIn.js @@ -37,5 +37,6 @@ for (j in arr2) { var y3 = arr2[j]; } for (var l in arr) { + // error in the body k[l] = 1; } diff --git a/tests/baselines/reference/functionArgShadowing.js b/tests/baselines/reference/functionArgShadowing.js index 8a49841de43..c74570902ed 100644 --- a/tests/baselines/reference/functionArgShadowing.js +++ b/tests/baselines/reference/functionArgShadowing.js @@ -31,7 +31,7 @@ var B = (function () { })(); function foo(x) { var x = new B(); - x.bar(); + x.bar(); // the property bar does not exist on a value of type A } var C = (function () { function C(p) { diff --git a/tests/baselines/reference/functionCalls.js b/tests/baselines/reference/functionCalls.js index a2a938b2298..e7b80fffdd8 100644 --- a/tests/baselines/reference/functionCalls.js +++ b/tests/baselines/reference/functionCalls.js @@ -41,6 +41,8 @@ func(); var anyVar; anyVar(0); anyVar(''); +// Invoke function call on value of type 'any' with type arguments +// These should be errors anyVar('hello'); anyVar(); anyVar(undefined); @@ -48,6 +50,8 @@ var subFunc; subFunc(0); subFunc(''); subFunc(); +// Invoke function call on value of a subtype of Function with no call signatures with type arguments +// These should be errors subFunc(0); subFunc(''); subFunc(); diff --git a/tests/baselines/reference/functionExpressionShadowedByParams.js b/tests/baselines/reference/functionExpressionShadowedByParams.js index be3f6aef6ca..e2e7d501abe 100644 --- a/tests/baselines/reference/functionExpressionShadowedByParams.js +++ b/tests/baselines/reference/functionExpressionShadowedByParams.js @@ -15,12 +15,12 @@ var x = { //// [functionExpressionShadowedByParams.js] function b1(b1) { - b1.toPrecision(2); - b1(12); + b1.toPrecision(2); // should not error + b1(12); // should error } var x = { b: function b(b) { - b.toPrecision(2); - b.apply(null, null); + b.toPrecision(2); // should not error + b.apply(null, null); // should error } }; diff --git a/tests/baselines/reference/functionImplementationErrors.js b/tests/baselines/reference/functionImplementationErrors.js index 453e359c6d3..90e1997f396 100644 --- a/tests/baselines/reference/functionImplementationErrors.js +++ b/tests/baselines/reference/functionImplementationErrors.js @@ -80,6 +80,8 @@ function f6(n) { function f7(n, m) { if (n === void 0) { n = m; } } +// FunctionExpression with non -void return type annotation with a throw, no return, and other code +// Should be error but isn't undefined === function () { throw undefined; var x = 4; diff --git a/tests/baselines/reference/functionImplementations.js b/tests/baselines/reference/functionImplementations.js index 31ae7aa705e..365ee1d7c0d 100644 --- a/tests/baselines/reference/functionImplementations.js +++ b/tests/baselines/reference/functionImplementations.js @@ -216,6 +216,7 @@ var a = function f() { return new Derived(); return f(); // ? }(); +// FunctionExpression with non -void return type annotation with a single throw statement undefined === function () { throw undefined; }; diff --git a/tests/baselines/reference/functionLiterals.js b/tests/baselines/reference/functionLiterals.js index 65dc491eb35..a6431aab617 100644 --- a/tests/baselines/reference/functionLiterals.js +++ b/tests/baselines/reference/functionLiterals.js @@ -60,6 +60,7 @@ c2.func5 = c2.func4; //// [functionLiterals.js] // PropName(ParamList):ReturnType is equivalent to PropName: { (ParamList): ReturnType } var b; +// no errors b.func1 = b.func2; b.func1 = b.func3; b.func2 = b.func1; @@ -67,10 +68,12 @@ b.func2 = b.func3; b.func3 = b.func1; b.func3 = b.func2; var c; +// no errors c.func4 = c.func5; c.func5 = c.func4; // generic versions var b2; +// no errors b2.func1 = b2.func2; b2.func1 = b2.func3; b2.func2 = b2.func1; @@ -78,5 +81,6 @@ b2.func2 = b2.func3; b2.func3 = b2.func1; b2.func3 = b2.func2; var c2; +// no errors c2.func4 = c2.func5; c2.func5 = c2.func4; diff --git a/tests/baselines/reference/functionOverloadAmbiguity1.js b/tests/baselines/reference/functionOverloadAmbiguity1.js index 23f81f4ecdd..d53ec68c9d9 100644 --- a/tests/baselines/reference/functionOverloadAmbiguity1.js +++ b/tests/baselines/reference/functionOverloadAmbiguity1.js @@ -15,9 +15,9 @@ function callb(a) { } callb(function (a) { a.length; -}); +}); // error, chose first overload function callb2(a) { } callb2(function (a) { a.length; -}); +}); // ok, chose first overload diff --git a/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.js b/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.js index c08994e20dc..dd06b855b68 100644 --- a/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.js +++ b/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.js @@ -21,5 +21,8 @@ _.all([true], _.identity); //// [genericArgumentCallSigAssignmentCompat.js] +// No error, Call signatures of types '(value: T) => T' and 'Underscore.Iterator<{}, boolean>' are compatible when instantiated with any. +// Ideally, we would not have a generic signature here, because it should be instantiated with {} during inferential typing _.all([true, 1, null, 'yes'], _.identity); +// Ok, because fixing makes us infer boolean for T _.all([true], _.identity); diff --git a/tests/baselines/reference/genericArrayPropertyAssignment.js b/tests/baselines/reference/genericArrayPropertyAssignment.js index 6aaeb26d233..4539b20ad36 100644 --- a/tests/baselines/reference/genericArrayPropertyAssignment.js +++ b/tests/baselines/reference/genericArrayPropertyAssignment.js @@ -12,4 +12,4 @@ isEmpty([]); // error function isEmpty(list) { return list.length === 0; } -isEmpty([]); +isEmpty([]); // error diff --git a/tests/baselines/reference/genericCallSpecializedToTypeArg.js b/tests/baselines/reference/genericCallSpecializedToTypeArg.js index 4561959649b..8df231b0de5 100644 --- a/tests/baselines/reference/genericCallSpecializedToTypeArg.js +++ b/tests/baselines/reference/genericCallSpecializedToTypeArg.js @@ -15,6 +15,6 @@ function dupe(x) { } function dupeAndGetDist(x) { var y = dupe(x); //<-- dupe has incorrect type here - y.getDist(); + y.getDist(); //<-- this requires a missing constraint, but it's not caught return y; } diff --git a/tests/baselines/reference/genericCallWithFixedArguments.js b/tests/baselines/reference/genericCallWithFixedArguments.js index 53d33635720..10c0e2b496b 100644 --- a/tests/baselines/reference/genericCallWithFixedArguments.js +++ b/tests/baselines/reference/genericCallWithFixedArguments.js @@ -24,4 +24,4 @@ var B = (function () { })(); function g(x) { } -g(7); +g(7); // the parameter list is fixed, so this should not error diff --git a/tests/baselines/reference/genericCallbacksAndClassHierarchy.js b/tests/baselines/reference/genericCallbacksAndClassHierarchy.js index 7cf2cc22fbe..682cd6010f1 100644 --- a/tests/baselines/reference/genericCallbacksAndClassHierarchy.js +++ b/tests/baselines/reference/genericCallbacksAndClassHierarchy.js @@ -59,6 +59,7 @@ var M; var f = function (newValue) { }; var v = viewModel.value; + // both of these should work v.subscribe(f); v.subscribe(function (newValue) { }); diff --git a/tests/baselines/reference/genericClassWithStaticFactory.js b/tests/baselines/reference/genericClassWithStaticFactory.js index a9eb58bac66..6fbef32dc1b 100644 --- a/tests/baselines/reference/genericClassWithStaticFactory.js +++ b/tests/baselines/reference/genericClassWithStaticFactory.js @@ -183,7 +183,7 @@ var Editor; entry.next = this.next; entry.prev = this; this.next = entry; - entry.next.prev = entry; + entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does }; List.prototype.push = function (data) { var entry = this.listFactory.MakeEntry(data); @@ -192,7 +192,7 @@ var Editor; entry.next = this.next; entry.prev = this; this.next = entry; - entry.next.prev = entry; + entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does }; List.prototype.popEntry = function (head) { if (this.next.isHead) { @@ -215,7 +215,7 @@ var Editor; entry.next = this.next; entry.prev = this; this.next = entry; - entry.next.prev = entry; + entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does return entry; }; List.prototype.insertEntryBefore = function (entry) { diff --git a/tests/baselines/reference/genericContextualTypingSpecialization.js b/tests/baselines/reference/genericContextualTypingSpecialization.js index 900189bab88..75d8b995fa3 100644 --- a/tests/baselines/reference/genericContextualTypingSpecialization.js +++ b/tests/baselines/reference/genericContextualTypingSpecialization.js @@ -4,4 +4,4 @@ b.reduce((c, d) => c + d, 0); // should not error on '+' //// [genericContextualTypingSpecialization.js] var b; -b.reduce(function (c, d) { return c + d; }, 0); +b.reduce(function (c, d) { return c + d; }, 0); // should not error on '+' diff --git a/tests/baselines/reference/genericDerivedTypeWithSpecializedBase.js b/tests/baselines/reference/genericDerivedTypeWithSpecializedBase.js index 913484d4b55..7f639415490 100644 --- a/tests/baselines/reference/genericDerivedTypeWithSpecializedBase.js +++ b/tests/baselines/reference/genericDerivedTypeWithSpecializedBase.js @@ -33,4 +33,4 @@ var B = (function (_super) { })(A); var x; var y; -x = y; +x = y; // error diff --git a/tests/baselines/reference/genericDerivedTypeWithSpecializedBase2.js b/tests/baselines/reference/genericDerivedTypeWithSpecializedBase2.js index 9739721c04f..4b28d4b7f1c 100644 --- a/tests/baselines/reference/genericDerivedTypeWithSpecializedBase2.js +++ b/tests/baselines/reference/genericDerivedTypeWithSpecializedBase2.js @@ -33,4 +33,4 @@ var B = (function (_super) { })(A); var x; var y; -x = y; +x = y; // error diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.js b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.js index eee26581839..b0b97eea7de 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.js +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.js @@ -13,7 +13,7 @@ utils.fold(null, null, null); // no error //// [genericFunctionsWithOptionalParameters1.js] var utils; -utils.fold(); -utils.fold(null); -utils.fold(null, null); -utils.fold(null, null, null); +utils.fold(); // no error +utils.fold(null); // no error +utils.fold(null, null); // no error +utils.fold(null, null, null); // no error diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters2.js b/tests/baselines/reference/genericFunctionsWithOptionalParameters2.js index bd785e13bf8..ff47461c666 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters2.js +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters2.js @@ -13,7 +13,7 @@ utils.fold(null, null, null); // error: Unable to invoke type with no call signa //// [genericFunctionsWithOptionalParameters2.js] var utils; -utils.fold(); -utils.fold(null); -utils.fold(null, null); -utils.fold(null, null, null); +utils.fold(); // error +utils.fold(null); // no error +utils.fold(null, null); // no error +utils.fold(null, null, null); // error: Unable to invoke type with no call signatures diff --git a/tests/baselines/reference/genericInterfaceFunctionTypeParameter.js b/tests/baselines/reference/genericInterfaceFunctionTypeParameter.js index 080f3853dd4..30c7aa72e57 100644 --- a/tests/baselines/reference/genericInterfaceFunctionTypeParameter.js +++ b/tests/baselines/reference/genericInterfaceFunctionTypeParameter.js @@ -10,7 +10,7 @@ export function foo(fn: (ifoo: IFoo) => void) { //// [genericInterfaceFunctionTypeParameter.js] define(["require", "exports"], function (require, exports) { function foo(fn) { - foo(fn); + foo(fn); // Invocation is necessary to repro (!) } exports.foo = foo; }); diff --git a/tests/baselines/reference/genericInterfaceTypeCall.js b/tests/baselines/reference/genericInterfaceTypeCall.js index 6b69dc383d5..7f5f586ec12 100644 --- a/tests/baselines/reference/genericInterfaceTypeCall.js +++ b/tests/baselines/reference/genericInterfaceTypeCall.js @@ -18,4 +18,4 @@ test.fail2(arg => foo.reject(arg)); // Error: Supplied parameters do not match a var foo; var test; test.fail(function (arg) { return foo.reject(arg); }); -test.fail2(function (arg) { return foo.reject(arg); }); +test.fail2(function (arg) { return foo.reject(arg); }); // Error: Supplied parameters do not match any signature of call target diff --git a/tests/baselines/reference/genericObjectLitReturnType.js b/tests/baselines/reference/genericObjectLitReturnType.js index 730364ddb37..5191f17796b 100644 --- a/tests/baselines/reference/genericObjectLitReturnType.js +++ b/tests/baselines/reference/genericObjectLitReturnType.js @@ -22,4 +22,4 @@ var X = (function () { })(); var x; var t1 = x.f(5); -t1.a = 5; +t1.a = 5; // Should not error: t1 should have type {a: number}, instead has type {a: T} diff --git a/tests/baselines/reference/genericOfACloduleType2.js b/tests/baselines/reference/genericOfACloduleType2.js index 4a277b606c5..7eb0a6f110e 100644 --- a/tests/baselines/reference/genericOfACloduleType2.js +++ b/tests/baselines/reference/genericOfACloduleType2.js @@ -44,7 +44,7 @@ var M; })(M.C || (M.C = {})); var C = M.C; var g1 = new G(); - g1.bar(null).foo(); + g1.bar(null).foo(); // no error })(M || (M = {})); var N; (function (N) { diff --git a/tests/baselines/reference/genericParameterAssignability1.js b/tests/baselines/reference/genericParameterAssignability1.js index 042a5c3ca36..844c8f9a988 100644 --- a/tests/baselines/reference/genericParameterAssignability1.js +++ b/tests/baselines/reference/genericParameterAssignability1.js @@ -8,4 +8,4 @@ function f(x) { return null; } var r = function (x) { return x; }; -r = f; +r = f; // should be allowed diff --git a/tests/baselines/reference/genericReduce.js b/tests/baselines/reference/genericReduce.js index af7c960baae..ac160e43868 100644 --- a/tests/baselines/reference/genericReduce.js +++ b/tests/baselines/reference/genericReduce.js @@ -18,10 +18,10 @@ var a = ["An", "array", "of", "strings"]; var b = a.map(function (s) { return s.length; }); var n1 = b.reduce(function (x, y) { return x + y; }); var n2 = b.reduceRight(function (x, y) { return x + y; }); -n1.x = "fail"; -n1.toExponential(2); -n2.x = "fail"; -n2.toExponential(2); +n1.x = "fail"; // should error, as 'n1' should be type 'number', not 'any'. +n1.toExponential(2); // should not error if 'n1' is correctly number. +n2.x = "fail"; // should error, as 'n2' should be type 'number', not 'any'. +n2.toExponential(2); // should not error if 'n2' is correctly number. var n3 = b.reduce(function (x, y) { return x + y; }, ""); // Initial value is of type string -n3.toExponential(2); -n3.charAt(0); +n3.toExponential(2); // should error if 'n3' is correctly type 'string' +n3.charAt(0); // should not error if 'n3' is correctly type 'string' diff --git a/tests/baselines/reference/genericSpecializations3.js b/tests/baselines/reference/genericSpecializations3.js index 5b9c49e173b..8d157761160 100644 --- a/tests/baselines/reference/genericSpecializations3.js +++ b/tests/baselines/reference/genericSpecializations3.js @@ -66,8 +66,8 @@ var StringFoo2 = (function () { })(); var stringFoo2; stringFoo2.foo("hm"); -intFoo = stringFoo2; -stringFoo2 = intFoo; +intFoo = stringFoo2; // error +stringFoo2 = intFoo; // error var StringFoo3 = (function () { function StringFoo3() { } diff --git a/tests/baselines/reference/genericTypeAssertions4.js b/tests/baselines/reference/genericTypeAssertions4.js index 2357f882399..d04b6cbe104 100644 --- a/tests/baselines/reference/genericTypeAssertions4.js +++ b/tests/baselines/reference/genericTypeAssertions4.js @@ -65,10 +65,10 @@ var b; var c; function foo2(x) { var y = x; + y = a; // error: cannot convert A to T + y = b; // error: cannot convert B to T + y = c; // error: cannot convert C to T y = a; - y = b; - y = c; - y = a; - y = b; - y = c; + y = b; // error: cannot convert B to T + y = c; // error: cannot convert C to T } diff --git a/tests/baselines/reference/genericTypeAssertions5.js b/tests/baselines/reference/genericTypeAssertions5.js index dc83c3ed743..5dc73022203 100644 --- a/tests/baselines/reference/genericTypeAssertions5.js +++ b/tests/baselines/reference/genericTypeAssertions5.js @@ -31,10 +31,10 @@ var b; var c; function foo2(x) { var y = x; + y = a; // error: cannot convert A to T + y = b; // error: cannot convert B to T + y = c; // error: cannot convert C to T y = a; - y = b; - y = c; - y = a; - y = b; - y = c; + y = b; // error: cannot convert B to T + y = c; // error: cannot convert C to T } diff --git a/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.js b/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.js index ba9e3d63d67..1afd647cb7f 100644 --- a/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.js +++ b/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.js @@ -9,4 +9,4 @@ x(true); // was error //// [genericWithCallSignatureReturningSpecialization.js] var x; -x(true); +x(true); // was error diff --git a/tests/baselines/reference/genericWithOpenTypeParameters1.js b/tests/baselines/reference/genericWithOpenTypeParameters1.js index c7994d71423..afdce73cb11 100644 --- a/tests/baselines/reference/genericWithOpenTypeParameters1.js +++ b/tests/baselines/reference/genericWithOpenTypeParameters1.js @@ -21,7 +21,7 @@ var B = (function () { return B; })(); var x; -x.foo(1); +x.foo(1); // no error var f = function (x) { return x.foo(1); }; // error diff --git a/tests/baselines/reference/generics3.js b/tests/baselines/reference/generics3.js index 4d45a301ee7..d88ed1082cd 100644 --- a/tests/baselines/reference/generics3.js +++ b/tests/baselines/reference/generics3.js @@ -15,7 +15,7 @@ var C = (function () { })(); var a; var b; -a = b; +a = b; // Ok - should be identical //// [generics3.d.ts] diff --git a/tests/baselines/reference/generics4.js b/tests/baselines/reference/generics4.js index 8a74afe9e52..95d8aea4f55 100644 --- a/tests/baselines/reference/generics4.js +++ b/tests/baselines/reference/generics4.js @@ -15,4 +15,4 @@ var C = (function () { })(); var a; var b; -a = b; +a = b; // Not ok - return types of "f" are different diff --git a/tests/baselines/reference/globalThisCapture.js b/tests/baselines/reference/globalThisCapture.js index f3186389f22..b854e754a34 100644 --- a/tests/baselines/reference/globalThisCapture.js +++ b/tests/baselines/reference/globalThisCapture.js @@ -10,6 +10,8 @@ parts[0]; //// [globalThisCapture.js] var _this = this; +// Add a lambda to ensure global 'this' capture is triggered (function () { return _this.window; }); var parts = []; +// Ensure that the generated code is correct parts[0]; diff --git a/tests/baselines/reference/grammarAmbiguities.js b/tests/baselines/reference/grammarAmbiguities.js index 1b58e69e514..ee81d947ff6 100644 --- a/tests/baselines/reference/grammarAmbiguities.js +++ b/tests/baselines/reference/grammarAmbiguities.js @@ -20,5 +20,5 @@ function g(x) { } var A, B; f(g(7)); -f(g < A, B > 7); -f(g < A, B > +(7)); +f(g < A, B > 7); // Should error +f(g < A, B > +(7)); // Should error diff --git a/tests/baselines/reference/heterogeneousArrayAndOverloads.js b/tests/baselines/reference/heterogeneousArrayAndOverloads.js index 1e166879621..c44a0921bc6 100644 --- a/tests/baselines/reference/heterogeneousArrayAndOverloads.js +++ b/tests/baselines/reference/heterogeneousArrayAndOverloads.js @@ -21,7 +21,7 @@ var arrTest = (function () { this.test([1, 2, 3, 5]); this.test(["hi"]); this.test([]); - this.test([1, 2, "hi", 5]); + this.test([1, 2, "hi", 5]); // Error }; return arrTest; })(); diff --git a/tests/baselines/reference/hidingCallSignatures.js b/tests/baselines/reference/hidingCallSignatures.js index b5f074da236..6b206d7d8a0 100644 --- a/tests/baselines/reference/hidingCallSignatures.js +++ b/tests/baselines/reference/hidingCallSignatures.js @@ -27,9 +27,9 @@ e(""); // {} //// [hidingCallSignatures.js] var d; -d(""); -new d(""); +d(""); // number +new d(""); // should be string var f; -f(""); +f(""); // string var e; -e(""); +e(""); // {} diff --git a/tests/baselines/reference/hidingConstructSignatures.js b/tests/baselines/reference/hidingConstructSignatures.js index 089e2e89f2b..6e0a2054885 100644 --- a/tests/baselines/reference/hidingConstructSignatures.js +++ b/tests/baselines/reference/hidingConstructSignatures.js @@ -27,9 +27,9 @@ new e(""); // {} //// [hidingConstructSignatures.js] var d; -d(""); -new d(""); +d(""); // string +new d(""); // should be number var f; -new f(""); +new f(""); // string var e; -new e(""); +new e(""); // {} diff --git a/tests/baselines/reference/hidingIndexSignatures.js b/tests/baselines/reference/hidingIndexSignatures.js index 9c6df13b8a8..76b2381b69f 100644 --- a/tests/baselines/reference/hidingIndexSignatures.js +++ b/tests/baselines/reference/hidingIndexSignatures.js @@ -14,6 +14,6 @@ a[""]; // Should be {} //// [hidingIndexSignatures.js] var b; -b[""]; +b[""]; // Should be number var a; -a[""]; +a[""]; // Should be {} diff --git a/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js b/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js index 0d4cc7bfdb0..e7642fd8420 100644 --- a/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js +++ b/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js @@ -54,6 +54,7 @@ function testObjLiteral(objLit) { function testFuncLiteral(funcLit) { } ; +// this should not be an error testFunctionExprC2(function (v1, v2) { return 1; }); testObjLiteral(objL); testFuncLiteral(funcL); diff --git a/tests/baselines/reference/implicitAnyFunctionReturnNullOrUndefined.js b/tests/baselines/reference/implicitAnyFunctionReturnNullOrUndefined.js index 6b61cecfb2d..699b57603eb 100644 --- a/tests/baselines/reference/implicitAnyFunctionReturnNullOrUndefined.js +++ b/tests/baselines/reference/implicitAnyFunctionReturnNullOrUndefined.js @@ -56,5 +56,6 @@ function fooBar() { function fooFoo() { return 5; } +// this should not be an error as the error is raised by expr above nullWidenFunction(); undefinedWidenFunction(); diff --git a/tests/baselines/reference/incrementOperatorWithAnyOtherType.js b/tests/baselines/reference/incrementOperatorWithAnyOtherType.js index 551c54feeda..4c9d570d07f 100644 --- a/tests/baselines/reference/incrementOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/incrementOperatorWithAnyOtherType.js @@ -80,6 +80,7 @@ var ResultIsNumber10 = obj.x++; var ResultIsNumber11 = obj.y++; var ResultIsNumber12 = objA.a++; var ResultIsNumber13 = M.n++; +// miss assignment opertors ++ANY; ++ANY1; ++ANY2[0]; diff --git a/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.js b/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.js index fb9c5fd1e60..9fb1c4e616e 100644 --- a/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.js +++ b/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.js @@ -127,6 +127,7 @@ var ResultIsNumber27 = (null + null)++; var ResultIsNumber28 = (undefined + undefined)++; var ResultIsNumber29 = obj1.x++; var ResultIsNumber30 = obj1.y++; +// miss assignment operators ++ANY2; ANY2++; ++ANY1++; diff --git a/tests/baselines/reference/incrementOperatorWithEnumType.js b/tests/baselines/reference/incrementOperatorWithEnumType.js index 50b122df2d1..cdea036c335 100644 --- a/tests/baselines/reference/incrementOperatorWithEnumType.js +++ b/tests/baselines/reference/incrementOperatorWithEnumType.js @@ -24,5 +24,6 @@ var ENUM1; // expression var ResultIsNumber1 = ++ENUM1[1]; var ResultIsNumber2 = ENUM1[1]++; +// miss assignment operator ++ENUM1[1]; ENUM1[1]++; diff --git a/tests/baselines/reference/incrementOperatorWithEnumTypeInvalidOperations.js b/tests/baselines/reference/incrementOperatorWithEnumTypeInvalidOperations.js index 0f39b0b154a..ed9b33e16bb 100644 --- a/tests/baselines/reference/incrementOperatorWithEnumTypeInvalidOperations.js +++ b/tests/baselines/reference/incrementOperatorWithEnumTypeInvalidOperations.js @@ -43,6 +43,7 @@ var ResultIsNumber4 = ENUM1++; // enum type expressions var ResultIsNumber5 = ++(ENUM[1] + ENUM[2]); var ResultIsNumber6 = (ENUM[1] + ENUM[2])++; +// miss assignment operator ++ENUM; ++ENUM1; ENUM++; diff --git a/tests/baselines/reference/incrementOperatorWithNumberType.js b/tests/baselines/reference/incrementOperatorWithNumberType.js index e78892077c0..09365833e3b 100644 --- a/tests/baselines/reference/incrementOperatorWithNumberType.js +++ b/tests/baselines/reference/incrementOperatorWithNumberType.js @@ -62,6 +62,7 @@ var ResultIsNumber4 = ++M.n; var ResultIsNumber5 = objA.a++; var ResultIsNumber6 = M.n++; var ResultIsNumber7 = NUMBER1[0]++; +// miss assignment operators ++NUMBER; ++NUMBER1[0]; ++objA.a; diff --git a/tests/baselines/reference/incrementOperatorWithNumberTypeInvalidOperations.js b/tests/baselines/reference/incrementOperatorWithNumberTypeInvalidOperations.js index 6319774d505..564516ead64 100644 --- a/tests/baselines/reference/incrementOperatorWithNumberTypeInvalidOperations.js +++ b/tests/baselines/reference/incrementOperatorWithNumberTypeInvalidOperations.js @@ -87,6 +87,7 @@ var ResultIsNumber11 = ++(NUMBER + NUMBER); var ResultIsNumber12 = foo()++; var ResultIsNumber13 = A.foo()++; var ResultIsNumber14 = (NUMBER + NUMBER)++; +// miss assignment operator ++1; ++NUMBER1; ++foo(); diff --git a/tests/baselines/reference/incrementOperatorWithUnsupportedBooleanType.js b/tests/baselines/reference/incrementOperatorWithUnsupportedBooleanType.js index a409b0bc95b..6c0775b520f 100644 --- a/tests/baselines/reference/incrementOperatorWithUnsupportedBooleanType.js +++ b/tests/baselines/reference/incrementOperatorWithUnsupportedBooleanType.js @@ -96,6 +96,7 @@ var ResultIsNumber13 = foo()++; var ResultIsNumber14 = A.foo()++; var ResultIsNumber15 = objA.a++; var ResultIsNumber16 = M.n++; +// miss assignment operators ++true; ++BOOLEAN; ++foo(); diff --git a/tests/baselines/reference/incrementOperatorWithUnsupportedStringType.js b/tests/baselines/reference/incrementOperatorWithUnsupportedStringType.js index c932542c3fb..065cf6ed5eb 100644 --- a/tests/baselines/reference/incrementOperatorWithUnsupportedStringType.js +++ b/tests/baselines/reference/incrementOperatorWithUnsupportedStringType.js @@ -114,6 +114,7 @@ var ResultIsNumber19 = STRING1[0]++; var ResultIsNumber20 = foo()++; var ResultIsNumber21 = A.foo()++; var ResultIsNumber22 = (STRING + STRING)++; +// miss assignment operators ++""; ++STRING; ++STRING1; diff --git a/tests/baselines/reference/indexClassByNumber.js b/tests/baselines/reference/indexClassByNumber.js index 380496a75af..1725e5bf6a1 100644 --- a/tests/baselines/reference/indexClassByNumber.js +++ b/tests/baselines/reference/indexClassByNumber.js @@ -15,4 +15,4 @@ var foo = (function () { return foo; })(); var f = new foo(); -f[0] = 4; +f[0] = 4; // Shouldn't be allowed diff --git a/tests/baselines/reference/indexIntoArraySubclass.js b/tests/baselines/reference/indexIntoArraySubclass.js index c5b7ba66e51..b66271d3815 100644 --- a/tests/baselines/reference/indexIntoArraySubclass.js +++ b/tests/baselines/reference/indexIntoArraySubclass.js @@ -7,4 +7,4 @@ r = 0; //error //// [indexIntoArraySubclass.js] var x2; var r = x2[0]; // string -r = 0; +r = 0; //error diff --git a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.js b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.js index 1b7ab4f0843..1cc86829a6b 100644 --- a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.js +++ b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.js @@ -33,7 +33,7 @@ function h(nonarray) { function i(array, opt) { } var a = [1, 2, 3, 4, 5]; -f(a); -g(a); -h(a); -i(a); +f(a); // OK +g(a); // OK +h(a); // OK +i(a); // OK diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.js b/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.js index 1300e52e77b..2f5eea63a8a 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.js +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.js @@ -38,13 +38,18 @@ var s; // dotted name var dottedIdentity = { x: identity }; s = map("", dottedIdentity.x); +// index expression s = map("", dottedIdentity['x']); +// function call s = map("", (function () { return identity; })()); var ic; s = map("", new ic()); // assignment var t; s = map("", t = identity); +// type assertion s = map("", identity); +// parenthesized expression s = map("", (identity)); +// comma s = map("", ("", identity)); diff --git a/tests/baselines/reference/inferentialTypingWithObjectLiteralProperties.js b/tests/baselines/reference/inferentialTypingWithObjectLiteralProperties.js index 970a3f72962..216604dd4d5 100644 --- a/tests/baselines/reference/inferentialTypingWithObjectLiteralProperties.js +++ b/tests/baselines/reference/inferentialTypingWithObjectLiteralProperties.js @@ -10,5 +10,5 @@ f({ x: [1] }, { x: [null] }).x[0] = "" // was error TS2011: Cannot convert 'stri function f(x, y) { return x; } -f({ x: [null] }, { x: [1] }).x[0] = ""; -f({ x: [1] }, { x: [null] }).x[0] = ""; +f({ x: [null] }, { x: [1] }).x[0] = ""; // ok +f({ x: [1] }, { x: [null] }).x[0] = ""; // was error TS2011: Cannot convert 'string' to 'number'. diff --git a/tests/baselines/reference/infiniteExpansionThroughTypeInference.js b/tests/baselines/reference/infiniteExpansionThroughTypeInference.js index 269a4282f53..b5b3f9b85a5 100644 --- a/tests/baselines/reference/infiniteExpansionThroughTypeInference.js +++ b/tests/baselines/reference/infiniteExpansionThroughTypeInference.js @@ -12,5 +12,5 @@ function ff(g: G): void { //// [infiniteExpansionThroughTypeInference.js] function ff(g) { - ff(g); + ff(g); // when infering T here we need to make sure to not descend into the structure of G infinitely } diff --git a/tests/baselines/reference/infinitelyExpandingTypes1.js b/tests/baselines/reference/infinitelyExpandingTypes1.js index d10634d3af0..409c2108579 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes1.js +++ b/tests/baselines/reference/infinitelyExpandingTypes1.js @@ -26,7 +26,7 @@ l == l; // should not error //// [infinitelyExpandingTypes1.js] var l; var m; -l == m; +l == m; // should error var l2; -l == l2; -l == l; +l == l2; // should error; +l == l; // should not error diff --git a/tests/baselines/reference/infinitelyExpandingTypes2.js b/tests/baselines/reference/infinitelyExpandingTypes2.js index 73075e85246..b1eb04b5e0e 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes2.js +++ b/tests/baselines/reference/infinitelyExpandingTypes2.js @@ -21,4 +21,4 @@ function f(p) { console.log(p); } var v = null; -f(v); +f(v); // should not error diff --git a/tests/baselines/reference/infinitelyExpandingTypes3.js b/tests/baselines/reference/infinitelyExpandingTypes3.js index b425a66c7dc..b6e05740ec0 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes3.js +++ b/tests/baselines/reference/infinitelyExpandingTypes3.js @@ -21,4 +21,4 @@ o1 = o2; // should not error //// [infinitelyExpandingTypes3.js] var o1; var o2; -o1 = o2; +o1 = o2; // should not error diff --git a/tests/baselines/reference/infinitelyExpandingTypes4.js b/tests/baselines/reference/infinitelyExpandingTypes4.js index f80c52fc237..34b2ba229b2 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes4.js +++ b/tests/baselines/reference/infinitelyExpandingTypes4.js @@ -27,5 +27,5 @@ q1 = q3; // should not error var q1; var q2; var q3; -q1 = q2; -q1 = q3; +q1 = q2; // should error +q1 = q3; // should not error diff --git a/tests/baselines/reference/inheritedConstructorWithRestParams.js b/tests/baselines/reference/inheritedConstructorWithRestParams.js index 6ab1f67013c..b924fe25db9 100644 --- a/tests/baselines/reference/inheritedConstructorWithRestParams.js +++ b/tests/baselines/reference/inheritedConstructorWithRestParams.js @@ -37,8 +37,10 @@ var Derived = (function (_super) { } return Derived; })(Base); +// Ok new Derived("", ""); new Derived(""); new Derived(); +// Errors new Derived("", 3); new Derived(3); diff --git a/tests/baselines/reference/inheritedConstructorWithRestParams2.js b/tests/baselines/reference/inheritedConstructorWithRestParams2.js index 2259d10dc15..2c59c91dde7 100644 --- a/tests/baselines/reference/inheritedConstructorWithRestParams2.js +++ b/tests/baselines/reference/inheritedConstructorWithRestParams2.js @@ -65,6 +65,7 @@ var Derived = (function (_super) { } return Derived; })(Base); +// Ok new Derived("", ""); new Derived("", 3); new Derived("", 3, 3); @@ -72,6 +73,7 @@ new Derived("", 3, 3, 3); new Derived("", 3, ""); new Derived("", "", 3); new Derived("", "", 3, 3); +// Errors new Derived(3); new Derived("", 3, "", 3); new Derived("", 3, "", ""); diff --git a/tests/baselines/reference/inheritedGenericCallSignature.js b/tests/baselines/reference/inheritedGenericCallSignature.js index 67d653df1ce..2ee6e2149a9 100644 --- a/tests/baselines/reference/inheritedGenericCallSignature.js +++ b/tests/baselines/reference/inheritedGenericCallSignature.js @@ -31,4 +31,4 @@ y.length; // should not error //// [inheritedGenericCallSignature.js] var x; var y = x(undefined); -y.length; +y.length; // should not error diff --git a/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.js b/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.js index affae8a2f02..792c9232fa2 100644 --- a/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.js +++ b/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.js @@ -38,6 +38,7 @@ var x5: void = b('A0'); //// [inheritedOverloadedSpecializedSignatures.js] var b; +// Should not error b('foo').charAt(0); var b; // non of these lines should error diff --git a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js index 8ba9f1ea983..79535360b7a 100644 --- a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js +++ b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js @@ -22,9 +22,9 @@ var C = (function () { }; C.prototype.bar = function (x) { C.prototype.bar = function () { - }; - C.prototype.bar = function (x) { return x; }; - C.prototype.bar = function (x) { return 1; }; + }; // error + C.prototype.bar = function (x) { return x; }; // ok + C.prototype.bar = function (x) { return 1; }; // ok return 1; }; return C; diff --git a/tests/baselines/reference/instanceofOperator.js b/tests/baselines/reference/instanceofOperator.js index 24ed562fb6a..7620c3e83f4 100644 --- a/tests/baselines/reference/instanceofOperator.js +++ b/tests/baselines/reference/instanceofOperator.js @@ -34,8 +34,10 @@ var Object = (function () { })(); var obj; 4 instanceof null; +// Error and should be error obj instanceof 4; Object instanceof obj; +// Error on left hand side null instanceof null; obj instanceof Object; undefined instanceof undefined; diff --git a/tests/baselines/reference/interfaceAssignmentCompat.js b/tests/baselines/reference/interfaceAssignmentCompat.js index 9187dcf00b2..1037df1769e 100644 --- a/tests/baselines/reference/interfaceAssignmentCompat.js +++ b/tests/baselines/reference/interfaceAssignmentCompat.js @@ -75,7 +75,7 @@ var M; x[0] = { color: 2 /* Brown */ }; x[1] = { color: 1 /* Blue */ }; x[2] = { color: 0 /* Green */ }; - x = x.sort(CompareYeux); + x = x.sort(CompareYeux); // parameter mismatch // type of z inferred from specialized array type var z = x.sort(CompareEyes); // ok for (var i = 0, len = z.length; i < len; i++) { @@ -83,9 +83,9 @@ var M; } var eeks = []; for (var j = z.length = 1; j >= 0; j--) { - eeks[j] = z[j]; + eeks[j] = z[j]; // nope: element assignment } - eeks = z; + eeks = z; // nope: array assignment return result; } M.test = test; diff --git a/tests/baselines/reference/interfaceExtendsClassWithPrivate1.js b/tests/baselines/reference/interfaceExtendsClassWithPrivate1.js index c609b9cf5a8..4cf0281ac7a 100644 --- a/tests/baselines/reference/interfaceExtendsClassWithPrivate1.js +++ b/tests/baselines/reference/interfaceExtendsClassWithPrivate1.js @@ -62,8 +62,8 @@ var c; var i; var d; c = i; -i = c; +i = c; // error i = d; -d = i; +d = i; // error c = d; -d = c; +d = c; // error diff --git a/tests/baselines/reference/interfaceInheritance.js b/tests/baselines/reference/interfaceInheritance.js index 68c25cebc5d..beec0f35d86 100644 --- a/tests/baselines/reference/interfaceInheritance.js +++ b/tests/baselines/reference/interfaceInheritance.js @@ -50,9 +50,9 @@ var i2; var i1; var i3; i1 = i2; -i2 = i3; +i2 = i3; // should be an error - i3 does not implement the members of i1 var c1; var i4; var i5; -i4 = i5; -i5 = i4; +i4 = i5; // should be an error +i5 = i4; // should be an error diff --git a/tests/baselines/reference/intrinsics.js b/tests/baselines/reference/intrinsics.js index 09cd69b9d94..5e608b7fd6a 100644 --- a/tests/baselines/reference/intrinsics.js +++ b/tests/baselines/reference/intrinsics.js @@ -26,7 +26,7 @@ var m1; return C; })(); })(m1 || (m1 = {})); -__proto__ = 0; +__proto__ = 0; // Error, __proto__ not defined m1.__proto__ = 0; var Foo = (function () { function Foo() { diff --git a/tests/baselines/reference/invalidConstraint1.js b/tests/baselines/reference/invalidConstraint1.js index f98e5777dc6..330cabfcc80 100644 --- a/tests/baselines/reference/invalidConstraint1.js +++ b/tests/baselines/reference/invalidConstraint1.js @@ -10,4 +10,4 @@ f(); // should error function f() { return undefined; } -f(); +f(); // should error diff --git a/tests/baselines/reference/invalidUndefinedAssignments.js b/tests/baselines/reference/invalidUndefinedAssignments.js index 7d0b408fc1b..0b37316e085 100644 --- a/tests/baselines/reference/invalidUndefinedAssignments.js +++ b/tests/baselines/reference/invalidUndefinedAssignments.js @@ -46,4 +46,5 @@ var M; M = x; function i(a) { } +// BUG 767030 i = x; diff --git a/tests/baselines/reference/ipromise4.js b/tests/baselines/reference/ipromise4.js index 19f0c8da685..5b65e0818c2 100644 --- a/tests/baselines/reference/ipromise4.js +++ b/tests/baselines/reference/ipromise4.js @@ -19,9 +19,9 @@ p.then(function (x) { return "hello"; } ).then(function (x) { return x } ); // s //// [ipromise4.js] var p = null; p.then(function (x) { -}); +}); // should not error p.then(function (x) { return "hello"; }).then(function (x) { return x; -}); +}); // should not error diff --git a/tests/baselines/reference/lambdaArgCrash.js b/tests/baselines/reference/lambdaArgCrash.js index 49121f63ba1..f86ffe5743d 100644 --- a/tests/baselines/reference/lambdaArgCrash.js +++ b/tests/baselines/reference/lambdaArgCrash.js @@ -44,9 +44,12 @@ var __extends = this.__extends || function (d, b) { var Event = (function () { function Event() { this._listeners = []; + // TODO: remove this._listeners = []; } Event.prototype.add = function (listener) { + /// Registers a new listener for the event. + /// The callback function to register. this._listeners.push(listener); }; return Event; diff --git a/tests/baselines/reference/lambdaExpression.js b/tests/baselines/reference/lambdaExpression.js index 65636b87dd1..dc5c94c8b33 100644 --- a/tests/baselines/reference/lambdaExpression.js +++ b/tests/baselines/reference/lambdaExpression.js @@ -6,7 +6,7 @@ var x = 0; //// [lambdaExpression.js] -(function () { return 0; }); +(function () { return 0; }); // Needs to be wrapped in parens to be a valid expression (not declaration) var y = 0; (function () { return 0; }); var x = 0; diff --git a/tests/baselines/reference/lambdaParamTypes.js b/tests/baselines/reference/lambdaParamTypes.js index c1457565d3c..3bd212512e4 100644 --- a/tests/baselines/reference/lambdaParamTypes.js +++ b/tests/baselines/reference/lambdaParamTypes.js @@ -25,13 +25,15 @@ thing.doSomething((x, y) => y.name.toExponential(0)); //// [lambdaParamTypes.js] var thing = create([{ name: "bob", id: 24 }, { name: "doug", id: 32 }]); -thing.doSomething(function (x, y) { return x.name.charAt(0); }); -thing.doSomething(function (x, y) { return x.id.toExponential(0); }); -thing.doSomething(function (x, y) { return y.name.charAt(0); }); -thing.doSomething(function (x, y) { return y.id.toExponential(0); }); -thing.doSomething(function (x, y) { return x.foo; }); -thing.doSomething(function (x, y) { return y.foo; }); -thing.doSomething(function (x, y) { return x.id.charAt(0); }); -thing.doSomething(function (x, y) { return x.name.toExponential(0); }); +// Below should all be OK +thing.doSomething(function (x, y) { return x.name.charAt(0); }); // x.name should be string, so should be OK +thing.doSomething(function (x, y) { return x.id.toExponential(0); }); // x.id should be string, so should be OK +thing.doSomething(function (x, y) { return y.name.charAt(0); }); // x.name should be string, so should be OK +thing.doSomething(function (x, y) { return y.id.toExponential(0); }); // x.id should be string, so should be OK +// Below should all be in error +thing.doSomething(function (x, y) { return x.foo; }); // no such property on x +thing.doSomething(function (x, y) { return y.foo; }); // no such property on y +thing.doSomething(function (x, y) { return x.id.charAt(0); }); // x.id should be number, no charAt member +thing.doSomething(function (x, y) { return x.name.toExponential(0); }); // x.name should be string, no toExponential member thing.doSomething(function (x, y) { return y.id.charAt(0); }); thing.doSomething(function (x, y) { return y.name.toExponential(0); }); diff --git a/tests/baselines/reference/library_ArraySlice.js b/tests/baselines/reference/library_ArraySlice.js index 89e4134237d..e4f2222d1fe 100644 --- a/tests/baselines/reference/library_ArraySlice.js +++ b/tests/baselines/reference/library_ArraySlice.js @@ -5,6 +5,7 @@ Array.prototype.slice(0); Array.prototype.slice(0, 1); //// [library_ArraySlice.js] +// Array.prototype.slice can have zero, one, or two arguments Array.prototype.slice(); Array.prototype.slice(0); Array.prototype.slice(0, 1); diff --git a/tests/baselines/reference/library_DatePrototypeProperties.js b/tests/baselines/reference/library_DatePrototypeProperties.js index 4a9b9269dfa..8619fd17d17 100644 --- a/tests/baselines/reference/library_DatePrototypeProperties.js +++ b/tests/baselines/reference/library_DatePrototypeProperties.js @@ -50,6 +50,8 @@ Date.prototype.toISOString(); Date.prototype.toJSON(null); //// [library_DatePrototypeProperties.js] +// Properties of the Date prototype object as per ES5 spec +// http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5 Date.prototype.constructor; Date.prototype.toString(); Date.prototype.toDateString(); diff --git a/tests/baselines/reference/library_ObjectPrototypeProperties.js b/tests/baselines/reference/library_ObjectPrototypeProperties.js index ce3b18b28b6..59ef1a9f6f7 100644 --- a/tests/baselines/reference/library_ObjectPrototypeProperties.js +++ b/tests/baselines/reference/library_ObjectPrototypeProperties.js @@ -10,6 +10,8 @@ Object.prototype.isPrototypeOf(Object); Object.prototype.propertyIsEnumerable("string"); //// [library_ObjectPrototypeProperties.js] +// Properties of the Object Prototype Object as per ES5 spec +// http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.4 Object.prototype.constructor; Object.prototype.toString(); Object.prototype.toLocaleString(); diff --git a/tests/baselines/reference/library_StringSlice.js b/tests/baselines/reference/library_StringSlice.js index 28a0b27b902..9fd7774e772 100644 --- a/tests/baselines/reference/library_StringSlice.js +++ b/tests/baselines/reference/library_StringSlice.js @@ -6,6 +6,7 @@ String.prototype.slice(0,1); //// [library_StringSlice.js] +// String.prototype.slice can have zero, one, or two arguments String.prototype.slice(); String.prototype.slice(0); String.prototype.slice(0, 1); diff --git a/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.js b/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.js index c1ec8aeffc4..04317151f86 100644 --- a/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.js @@ -110,6 +110,7 @@ var ResultIsBoolean19 = !(undefined + undefined); // multiple ! operators var ResultIsBoolean20 = !!ANY; var ResultIsBoolean21 = !!!(ANY + ANY1); +// miss assignment operators !ANY; !ANY1; !ANY2[0]; diff --git a/tests/baselines/reference/logicalNotOperatorWithBooleanType.js b/tests/baselines/reference/logicalNotOperatorWithBooleanType.js index 4254153d304..0f3c39a09ff 100644 --- a/tests/baselines/reference/logicalNotOperatorWithBooleanType.js +++ b/tests/baselines/reference/logicalNotOperatorWithBooleanType.js @@ -69,6 +69,7 @@ var ResultIsBoolean6 = !foo(); var ResultIsBoolean7 = !A.foo(); // multiple ! operators var ResultIsBoolean = !!BOOLEAN; +// miss assignment operators !true; !BOOLEAN; !foo(); diff --git a/tests/baselines/reference/logicalNotOperatorWithEnumType.js b/tests/baselines/reference/logicalNotOperatorWithEnumType.js index a2351eba940..19efcc979ad 100644 --- a/tests/baselines/reference/logicalNotOperatorWithEnumType.js +++ b/tests/baselines/reference/logicalNotOperatorWithEnumType.js @@ -42,6 +42,7 @@ var ResultIsBoolean3 = !(ENUM[1] + ENUM[2]); // multiple ! operators var ResultIsBoolean4 = !!ENUM; var ResultIsBoolean5 = !!!(ENUM[1] + ENUM[2]); +// miss assignment operators !ENUM; !ENUM1; !ENUM[1]; diff --git a/tests/baselines/reference/logicalNotOperatorWithNumberType.js b/tests/baselines/reference/logicalNotOperatorWithNumberType.js index 6a7d82304ab..48e1468285e 100644 --- a/tests/baselines/reference/logicalNotOperatorWithNumberType.js +++ b/tests/baselines/reference/logicalNotOperatorWithNumberType.js @@ -84,6 +84,7 @@ var ResultIsBoolean11 = !(NUMBER + NUMBER); // multiple ! operator var ResultIsBoolean12 = !!NUMBER; var ResultIsBoolean13 = !!!(NUMBER + NUMBER); +// miss assignment operators !1; !NUMBER; !NUMBER1; diff --git a/tests/baselines/reference/logicalNotOperatorWithStringType.js b/tests/baselines/reference/logicalNotOperatorWithStringType.js index 120c21c2e29..1bab5de239d 100644 --- a/tests/baselines/reference/logicalNotOperatorWithStringType.js +++ b/tests/baselines/reference/logicalNotOperatorWithStringType.js @@ -84,6 +84,7 @@ var ResultIsBoolean12 = !STRING.charAt(0); // multiple ! operator var ResultIsBoolean13 = !!STRING; var ResultIsBoolean14 = !!!(STRING + STRING); +// miss assignment operators !""; !STRING; !STRING1; diff --git a/tests/baselines/reference/mergedDeclarations3.js b/tests/baselines/reference/mergedDeclarations3.js index f4fd8a5450b..c86fa204669 100644 --- a/tests/baselines/reference/mergedDeclarations3.js +++ b/tests/baselines/reference/mergedDeclarations3.js @@ -83,7 +83,7 @@ var M; foo.z = 1; })(foo || (foo = {})); })(M || (M = {})); -M.foo(); -M.foo.x; -M.foo.y; -M.foo.z; +M.foo(); // ok +M.foo.x; // error +M.foo.y; // ok +M.foo.z; // error diff --git a/tests/baselines/reference/methodSignaturesWithOverloads2.js b/tests/baselines/reference/methodSignaturesWithOverloads2.js index 63252090b2c..a51ec01c41b 100644 --- a/tests/baselines/reference/methodSignaturesWithOverloads2.js +++ b/tests/baselines/reference/methodSignaturesWithOverloads2.js @@ -31,8 +31,10 @@ c2.func5 = c2.func4; //// [methodSignaturesWithOverloads2.js] // Object type literals permit overloads with optionality but they must match var c; +// no errors c.func4 = c.func5; c.func5 = c.func4; var c2; +// no errors c2.func4 = c2.func5; c2.func5 = c2.func4; diff --git a/tests/baselines/reference/moduleAliasAsFunctionArgument.js b/tests/baselines/reference/moduleAliasAsFunctionArgument.js index df6487d5753..4cf9114a26d 100644 --- a/tests/baselines/reference/moduleAliasAsFunctionArgument.js +++ b/tests/baselines/reference/moduleAliasAsFunctionArgument.js @@ -22,6 +22,6 @@ define(["require", "exports"], function (require, exports) { define(["require", "exports", 'moduleAliasAsFunctionArgument_0'], function (require, exports, a) { function fn(arg) { } - a.x; - fn(a); + a.x; // OK + fn(a); // Error: property 'x' is missing from 'a' }); diff --git a/tests/baselines/reference/moduleAssignmentCompat1.js b/tests/baselines/reference/moduleAssignmentCompat1.js index 704b7640f15..9df11af7270 100644 --- a/tests/baselines/reference/moduleAssignmentCompat1.js +++ b/tests/baselines/reference/moduleAssignmentCompat1.js @@ -42,5 +42,6 @@ var B; })(B || (B = {})); var a; var b; +// no error a = b; b = a; diff --git a/tests/baselines/reference/moduleAssignmentCompat2.js b/tests/baselines/reference/moduleAssignmentCompat2.js index 0b63b83dcac..2e54ba565ee 100644 --- a/tests/baselines/reference/moduleAssignmentCompat2.js +++ b/tests/baselines/reference/moduleAssignmentCompat2.js @@ -41,4 +41,4 @@ var B; var a; var b; a = b; -b = a; +b = a; // error diff --git a/tests/baselines/reference/moduleAssignmentCompat3.js b/tests/baselines/reference/moduleAssignmentCompat3.js index e57119cc446..7115faea9df 100644 --- a/tests/baselines/reference/moduleAssignmentCompat3.js +++ b/tests/baselines/reference/moduleAssignmentCompat3.js @@ -25,5 +25,6 @@ var B; })(B || (B = {})); var a; var b; +// both errors a = b; b = a; diff --git a/tests/baselines/reference/moduleAssignmentCompat4.js b/tests/baselines/reference/moduleAssignmentCompat4.js index 1f349443bf5..2f7fa110ee6 100644 --- a/tests/baselines/reference/moduleAssignmentCompat4.js +++ b/tests/baselines/reference/moduleAssignmentCompat4.js @@ -43,4 +43,4 @@ var B; var a; var b; a = b; -b = a; +b = a; // error diff --git a/tests/baselines/reference/moduleVariables.js b/tests/baselines/reference/moduleVariables.js index 428c4803890..e127fec768f 100644 --- a/tests/baselines/reference/moduleVariables.js +++ b/tests/baselines/reference/moduleVariables.js @@ -22,14 +22,14 @@ var x = 1; var M; (function (M) { M.x = 2; - console.log(M.x); + console.log(M.x); // 2 })(M || (M = {})); var M; (function (M) { - console.log(M.x); + console.log(M.x); // 2 })(M || (M = {})); var M; (function (M) { var x = 3; - console.log(x); + console.log(x); // 3 })(M || (M = {})); diff --git a/tests/baselines/reference/multiCallOverloads.js b/tests/baselines/reference/multiCallOverloads.js index 94edef40bd5..85b008d52b7 100644 --- a/tests/baselines/reference/multiCallOverloads.js +++ b/tests/baselines/reference/multiCallOverloads.js @@ -20,9 +20,9 @@ var f1 = function (z) { }; var f2 = function (z) { }; -load(f1); -load(f2); +load(f1); // ok +load(f2); // ok load(function () { -}); +}); // this shouldn’t be an error load(function (z) { -}); +}); // this shouldn't be an error diff --git a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.js b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.js index d66c16bc241..9d1c10b42fd 100644 --- a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.js +++ b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.js @@ -18,4 +18,4 @@ b.foo(); // should not error //// [mutuallyRecursiveGenericBaseTypes1.js] var b; -b.foo(); +b.foo(); // should not error diff --git a/tests/baselines/reference/namedFunctionExpressionCall.js b/tests/baselines/reference/namedFunctionExpressionCall.js index 6e9eeae1197..175feb76b07 100644 --- a/tests/baselines/reference/namedFunctionExpressionCall.js +++ b/tests/baselines/reference/namedFunctionExpressionCall.js @@ -14,7 +14,9 @@ var recurser = function foo() { //// [namedFunctionExpressionCall.js] var recurser = function foo() { + // using the local name foo(); + // using the globally visible name recurser(); }; (function bar() { diff --git a/tests/baselines/reference/namedFunctionExpressionCallErrors.js b/tests/baselines/reference/namedFunctionExpressionCallErrors.js index 484b65e6359..180411d4fbd 100644 --- a/tests/baselines/reference/namedFunctionExpressionCallErrors.js +++ b/tests/baselines/reference/namedFunctionExpressionCallErrors.js @@ -19,9 +19,13 @@ bar(); //// [namedFunctionExpressionCallErrors.js] var recurser = function foo() { }; +// Error: foo should not be visible here foo(); +// recurser should be recurser(); (function bar() { + // Error: foo should not be visible here either foo(); }); +// Error: bar should not be visible bar(); diff --git a/tests/baselines/reference/negateOperatorWithAnyOtherType.js b/tests/baselines/reference/negateOperatorWithAnyOtherType.js index 58c1ba58e39..190d80eaba3 100644 --- a/tests/baselines/reference/negateOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/negateOperatorWithAnyOtherType.js @@ -98,6 +98,7 @@ var ResultIsNumber12 = -M.n; var ResultIsNumber13 = -foo(); var ResultIsNumber14 = -A.foo(); var ResultIsNumber15 = -(ANY - ANY1); +// miss assignment operators -ANY; -ANY1; -ANY2[0]; diff --git a/tests/baselines/reference/negateOperatorWithBooleanType.js b/tests/baselines/reference/negateOperatorWithBooleanType.js index 9ca22347acd..ce7b14b2d82 100644 --- a/tests/baselines/reference/negateOperatorWithBooleanType.js +++ b/tests/baselines/reference/negateOperatorWithBooleanType.js @@ -64,6 +64,7 @@ var ResultIsNumber4 = -objA.a; var ResultIsNumber5 = -M.n; var ResultIsNumber6 = -foo(); var ResultIsNumber7 = -A.foo(); +// miss assignment operators -true; -BOOLEAN; -foo(); diff --git a/tests/baselines/reference/negateOperatorWithEnumType.js b/tests/baselines/reference/negateOperatorWithEnumType.js index db28d6fadc1..a3235a3ccc0 100644 --- a/tests/baselines/reference/negateOperatorWithEnumType.js +++ b/tests/baselines/reference/negateOperatorWithEnumType.js @@ -35,6 +35,7 @@ var ResultIsNumber1 = -ENUM; // expressions var ResultIsNumber2 = -ENUM1[1]; var ResultIsNumber3 = -(ENUM1[1] + ENUM1[2]); +// miss assignment operators -ENUM; -ENUM1; -ENUM1[1]; diff --git a/tests/baselines/reference/negateOperatorWithNumberType.js b/tests/baselines/reference/negateOperatorWithNumberType.js index 901ce55fce6..15e0eeca435 100644 --- a/tests/baselines/reference/negateOperatorWithNumberType.js +++ b/tests/baselines/reference/negateOperatorWithNumberType.js @@ -77,6 +77,7 @@ var ResultIsNumber8 = -NUMBER1[0]; var ResultIsNumber9 = -foo(); var ResultIsNumber10 = -A.foo(); var ResultIsNumber11 = -(NUMBER - NUMBER); +// miss assignment operators -1; -NUMBER; -NUMBER1; diff --git a/tests/baselines/reference/negateOperatorWithStringType.js b/tests/baselines/reference/negateOperatorWithStringType.js index a30a0204616..228733b65c5 100644 --- a/tests/baselines/reference/negateOperatorWithStringType.js +++ b/tests/baselines/reference/negateOperatorWithStringType.js @@ -77,6 +77,7 @@ var ResultIsNumber9 = -foo(); var ResultIsNumber10 = -A.foo(); var ResultIsNumber11 = -(STRING + STRING); var ResultIsNumber12 = -STRING.charAt(0); +// miss assignment operators -""; -STRING; -STRING1; diff --git a/tests/baselines/reference/newOnInstanceSymbol.js b/tests/baselines/reference/newOnInstanceSymbol.js index dab9033eaa4..a66e4d74255 100644 --- a/tests/baselines/reference/newOnInstanceSymbol.js +++ b/tests/baselines/reference/newOnInstanceSymbol.js @@ -10,4 +10,4 @@ var C = (function () { return C; })(); var x = new C(); // should be ok -new x(); +new x(); // should error diff --git a/tests/baselines/reference/noImplicitAnyWithOverloads.js b/tests/baselines/reference/noImplicitAnyWithOverloads.js index e0eba16dacf..3bce6e18ba3 100644 --- a/tests/baselines/reference/noImplicitAnyWithOverloads.js +++ b/tests/baselines/reference/noImplicitAnyWithOverloads.js @@ -14,4 +14,4 @@ function callb(a) { } callb(function (a) { a.foo; -}); +}); // error, chose first overload diff --git a/tests/baselines/reference/nonContextuallyTypedLogicalOr.js b/tests/baselines/reference/nonContextuallyTypedLogicalOr.js index 765b83e4091..a29390bcf7f 100644 --- a/tests/baselines/reference/nonContextuallyTypedLogicalOr.js +++ b/tests/baselines/reference/nonContextuallyTypedLogicalOr.js @@ -19,4 +19,6 @@ var e: Ellement; //// [nonContextuallyTypedLogicalOr.js] var c; var e; +// This should error. Even though we are contextually typing e with Contextual, the RHS still +// needs to be a supertype of the LHS to win as the best common type. (c || e).dummy; diff --git a/tests/baselines/reference/numberToString.js b/tests/baselines/reference/numberToString.js index 1ffc7f9460a..882a3653f52 100644 --- a/tests/baselines/reference/numberToString.js +++ b/tests/baselines/reference/numberToString.js @@ -18,5 +18,5 @@ function f1(n) { function f2(s) { } f1(3); -f2(3); -f2(3 + ""); +f2(3); // error no coercion to string +f2(3 + ""); // ok + operator promotes diff --git a/tests/baselines/reference/numericIndexExpressions.js b/tests/baselines/reference/numericIndexExpressions.js index c7c636293ac..ca7cbd8043f 100644 --- a/tests/baselines/reference/numericIndexExpressions.js +++ b/tests/baselines/reference/numericIndexExpressions.js @@ -17,8 +17,8 @@ y[1] = 4; // should be error //// [numericIndexExpressions.js] var x; -x[1] = 4; -x['1'] = 4; +x[1] = 4; // error +x['1'] = 4; // error var y; -y['1'] = 4; -y[1] = 4; +y['1'] = 4; // should be error +y[1] = 4; // should be error diff --git a/tests/baselines/reference/objectLiteralArraySpecialization.js b/tests/baselines/reference/objectLiteralArraySpecialization.js index 91d8a5cf805..0a48a3dccdd 100644 --- a/tests/baselines/reference/objectLiteralArraySpecialization.js +++ b/tests/baselines/reference/objectLiteralArraySpecialization.js @@ -10,4 +10,4 @@ thing.doSomething((x, y) => x.name === "bob"); // should not error //// [objectLiteralArraySpecialization.js] var thing = create([{ name: "bob", id: 24 }, { name: "doug", id: 32 }]); // should not error -thing.doSomething(function (x, y) { return x.name === "bob"; }); +thing.doSomething(function (x, y) { return x.name === "bob"; }); // should not error diff --git a/tests/baselines/reference/objectLiteralFunctionArgContextualTyping.js b/tests/baselines/reference/objectLiteralFunctionArgContextualTyping.js index 7391c6b09f5..0cd1626222b 100644 --- a/tests/baselines/reference/objectLiteralFunctionArgContextualTyping.js +++ b/tests/baselines/reference/objectLiteralFunctionArgContextualTyping.js @@ -16,9 +16,9 @@ f2({ value: '', toString: (s) => s.uhhh }) // error //// [objectLiteralFunctionArgContextualTyping.js] function f2(args) { } -f2({ hello: 1 }); -f2({ value: '' }); -f2({ value: '', what: 1 }); -f2({ toString: function (s) { return s; } }); -f2({ toString: function (s) { return s; } }); -f2({ value: '', toString: function (s) { return s.uhhh; } }); +f2({ hello: 1 }); // error +f2({ value: '' }); // missing toString satisfied by Object's member +f2({ value: '', what: 1 }); // missing toString satisfied by Object's member +f2({ toString: function (s) { return s; } }); // error, missing property value from ArgsString +f2({ toString: function (s) { return s; } }); // error, missing property value from ArgsString +f2({ value: '', toString: function (s) { return s.uhhh; } }); // error diff --git a/tests/baselines/reference/objectLiteralIndexerErrors.js b/tests/baselines/reference/objectLiteralIndexerErrors.js index 1c791150f50..5e0159015d5 100644 --- a/tests/baselines/reference/objectLiteralIndexerErrors.js +++ b/tests/baselines/reference/objectLiteralIndexerErrors.js @@ -19,4 +19,4 @@ var a; var b; var c; var o1 = { x: b, 0: a }; // both indexers are A -o1 = { x: c, 0: a }; +o1 = { x: c, 0: a }; // string indexer is any, number indexer is A diff --git a/tests/baselines/reference/objectLiteralIndexers.js b/tests/baselines/reference/objectLiteralIndexers.js index 568c528a615..c36cbfc7571 100644 --- a/tests/baselines/reference/objectLiteralIndexers.js +++ b/tests/baselines/reference/objectLiteralIndexers.js @@ -20,5 +20,5 @@ var a; var b; var c; var o1 = { x: a, 0: b }; // string indexer is A, number indexer is B -o1 = { x: b, 0: c }; -o1 = { x: c, 0: b }; +o1 = { x: b, 0: c }; // both indexers are any +o1 = { x: c, 0: b }; // string indexer is any, number indexer is B diff --git a/tests/baselines/reference/objectMembersOnTypes.js b/tests/baselines/reference/objectMembersOnTypes.js index 7a82de789f9..f0c33e8d897 100644 --- a/tests/baselines/reference/objectMembersOnTypes.js +++ b/tests/baselines/reference/objectMembersOnTypes.js @@ -18,6 +18,6 @@ var AAA = (function () { var x; x.toString(); var i; -i.toString(); +i.toString(); // used to be an error var c; -c.toString(); +c.toString(); // used to be an error diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.js b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.js index 379c74c1a47..93d985f7987 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.js +++ b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.js @@ -24,8 +24,8 @@ a = o; // ok //// [objectTypeHidingMembersOfObjectAssignmentCompat.js] var i; var o; -o = i; -i = o; +o = i; // error +i = o; // ok var C = (function () { function C() { } @@ -34,11 +34,11 @@ var C = (function () { return C; })(); var c; -o = c; -c = o; +o = c; // error +c = o; // ok var a = { toString: function () { } }; -o = a; -a = o; +o = a; // error +a = o; // ok diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.js b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.js index b287e2efa80..b8a5aa87aef 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.js +++ b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.js @@ -24,8 +24,8 @@ a = o; // ok //// [objectTypeHidingMembersOfObjectAssignmentCompat2.js] var i; var o; -o = i; -i = o; +o = i; // error +i = o; // error var C = (function () { function C() { } @@ -35,11 +35,11 @@ var C = (function () { return C; })(); var c; -o = c; -c = o; +o = c; // error +c = o; // error var a = { toString: function () { } }; -o = a; -a = o; +o = a; // error +a = o; // ok diff --git a/tests/baselines/reference/objectTypeWithRecursiveWrappedProperty.js b/tests/baselines/reference/objectTypeWithRecursiveWrappedProperty.js index db72f9ce605..8c4a89aab68 100644 --- a/tests/baselines/reference/objectTypeWithRecursiveWrappedProperty.js +++ b/tests/baselines/reference/objectTypeWithRecursiveWrappedProperty.js @@ -23,5 +23,5 @@ var List = (function () { var list1 = new List(); var list2 = new List(); var list3 = new List(); -list1 = list2; -list1 = list3; +list1 = list2; // ok +list1 = list3; // error diff --git a/tests/baselines/reference/objectTypeWithRecursiveWrappedProperty2.js b/tests/baselines/reference/objectTypeWithRecursiveWrappedProperty2.js index f01608d2d4b..cbb3032f00f 100644 --- a/tests/baselines/reference/objectTypeWithRecursiveWrappedProperty2.js +++ b/tests/baselines/reference/objectTypeWithRecursiveWrappedProperty2.js @@ -23,5 +23,5 @@ var List = (function () { var list1 = new List(); var list2 = new List(); var list3 = new List(); -list1 = list2; -list1 = list3; +list1 = list2; // ok +list1 = list3; // error diff --git a/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.js b/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.js index 47628d0a889..388c4009a74 100644 --- a/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.js +++ b/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.js @@ -68,30 +68,30 @@ var list1 = new List(); var list2 = new List(); var myList1 = new MyList(); var myList2 = new MyList(); -list1 = myList1; -list1 = myList2; -list2 = myList1; -list2 = myList2; +list1 = myList1; // error, not nominally equal +list1 = myList2; // error, type mismatch +list2 = myList1; // error, not nominally equal +list2 = myList2; // error, type mismatch var rList1 = new List(); var rMyList1 = new List(); -rList1 = rMyList1; +rList1 = rMyList1; // error, not nominally equal function foo(t, u) { - t = u; - u = t; + t = u; // error + u = t; // error var a; var b; - a = t; - a = u; - b = t; - b = u; + a = t; // ok + a = u; // error + b = t; // error + b = u; // ok } function foo2(t, u) { - t = u; - u = t; + t = u; // error + u = t; // was error, ok after constraint made illegal, doesn't matter var a; var b; - a = t; - a = u; - b = t; - b = u; + a = t; // error + a = u; // error + b = t; // ok + b = u; // ok } diff --git a/tests/baselines/reference/optionalFunctionArgAssignability.js b/tests/baselines/reference/optionalFunctionArgAssignability.js index 1179bdf58da..bca42060066 100644 --- a/tests/baselines/reference/optionalFunctionArgAssignability.js +++ b/tests/baselines/reference/optionalFunctionArgAssignability.js @@ -15,4 +15,4 @@ var a = function then(onFulfill, onReject) { var b = function then(onFulFill, onReject) { return null; }; -a = b; +a = b; // error because number is not assignable to string diff --git a/tests/baselines/reference/optionalPropertiesTest.js b/tests/baselines/reference/optionalPropertiesTest.js index ec59d76d44e..708f2803a38 100644 --- a/tests/baselines/reference/optionalPropertiesTest.js +++ b/tests/baselines/reference/optionalPropertiesTest.js @@ -43,11 +43,11 @@ test10_1 = test10_2; //// [optionalPropertiesTest.js] var x; var foo; -foo = { id: 1234 }; -foo = { id: 1234, name: "test" }; -foo = { name: "test" }; +foo = { id: 1234 }; // Ok +foo = { id: 1234, name: "test" }; // Ok +foo = { name: "test" }; // Error, id missing foo = { id: 1234, print: function () { -} }; +} }; // Ok var s = foo.name || "default"; if (foo.print !== undefined) foo.print(); diff --git a/tests/baselines/reference/overload1.js b/tests/baselines/reference/overload1.js index fe91c018a1a..c7134966cec 100644 --- a/tests/baselines/reference/overload1.js +++ b/tests/baselines/reference/overload1.js @@ -73,11 +73,11 @@ var O; })(O || (O = {})); var e = x.g(new O.A()); // matches overload but bad assignment var y = x.f(3); // good -y = x.f("nope"); +y = x.f("nope"); // can't assign number to string var z = x.g(x.g(3, 3)); // good -z = x.g(2, 2, 2); -z = x.g(); -z = x.g(new O.B()); -z = x.h(2, 2); -z = x.h("hello", 0); +z = x.g(2, 2, 2); // no match +z = x.g(); // no match +z = x.g(new O.B()); // ambiguous (up and down conversion) +z = x.h(2, 2); // no match +z = x.h("hello", 0); // good var v = x.g; diff --git a/tests/baselines/reference/overloadCrash.js b/tests/baselines/reference/overloadCrash.js index bcb7b8dd848..8995546c2f4 100644 --- a/tests/baselines/reference/overloadCrash.js +++ b/tests/baselines/reference/overloadCrash.js @@ -16,4 +16,4 @@ foo(i3, i3); // should not crash the compiler :) ; ; var i3; -foo(i3, i3); +foo(i3, i3); // should not crash the compiler :) diff --git a/tests/baselines/reference/overloadOnConstNoAnyImplementation.js b/tests/baselines/reference/overloadOnConstNoAnyImplementation.js index 78de2aa2727..0c2f330b5ed 100644 --- a/tests/baselines/reference/overloadOnConstNoAnyImplementation.js +++ b/tests/baselines/reference/overloadOnConstNoAnyImplementation.js @@ -22,9 +22,9 @@ function x1(a, cb) { var hm = 'hm'; cb(hm); cb('uh'); - cb(1); + cb(1); // error } var cb = function (x) { return 1; }; x1(1, cb); -x1(1, function (x) { return 1; }); +x1(1, function (x) { return 1; }); // error x1(1, function (x) { return 1; }); diff --git a/tests/baselines/reference/overloadOnConstNoAnyImplementation2.js b/tests/baselines/reference/overloadOnConstNoAnyImplementation2.js index 6a5ac8973a0..6c66c23f1f8 100644 --- a/tests/baselines/reference/overloadOnConstNoAnyImplementation2.js +++ b/tests/baselines/reference/overloadOnConstNoAnyImplementation2.js @@ -30,7 +30,7 @@ var C = (function () { callback('bye'); var hm = "hm"; callback(hm); - callback(1); + callback(1); // error }; return C; })(); diff --git a/tests/baselines/reference/overloadOnConstNoStringImplementation.js b/tests/baselines/reference/overloadOnConstNoStringImplementation.js index 1b014bd708c..65fd6d07567 100644 --- a/tests/baselines/reference/overloadOnConstNoStringImplementation.js +++ b/tests/baselines/reference/overloadOnConstNoStringImplementation.js @@ -20,11 +20,11 @@ function x2(a, cb) { cb('hi'); cb('bye'); var hm = 'hm'; - cb(hm); + cb(hm); // should this work without a string definition? cb('uh'); cb(1); } var cb = function (x) { return 1; }; -x2(1, cb); -x2(1, function (x) { return 1; }); +x2(1, cb); // error +x2(1, function (x) { return 1; }); // error x2(1, function (x) { return 1; }); diff --git a/tests/baselines/reference/overloadResolution.js b/tests/baselines/reference/overloadResolution.js index 6d7b72ef951..fc8fa501efc 100644 --- a/tests/baselines/reference/overloadResolution.js +++ b/tests/baselines/reference/overloadResolution.js @@ -132,7 +132,8 @@ function fn1() { } var s = fn1(undefined); var s; -fn1({}); +// No candidate overloads found +fn1({}); // Error function fn2() { return undefined; } @@ -140,8 +141,10 @@ var d = fn2(0, undefined); var d; // Generic and non - generic overload where generic overload is the only candidate when called without type arguments var s = fn2(0, ''); -fn2('', 0); -fn2('', 0); +// Generic and non - generic overload where non - generic overload is the only candidate when called with type arguments +fn2('', 0); // Error +// Generic and non - generic overload where non - generic overload is the only candidate when called without type arguments +fn2('', 0); // OK function fn3() { return null; } @@ -153,20 +156,24 @@ var n; var s = fn3(4); var s = fn3('', '', ''); var n = fn3('', '', 3); -fn3(); +// Generic overloads with differing arity called with type argument count that doesn't match any overload +fn3(); // Error function fn4() { } fn4('', 3); +fn4(3, ''); // Error +fn4('', 3); // Error fn4(3, ''); -fn4('', 3); -fn4(3, ''); +// Generic overloads with constraints called without type arguments but with types that satisfy the constraints fn4('', 3); fn4(3, ''); fn4(3, undefined); fn4('', null); -fn4(null, null); -fn4(true, null); -fn4(null, true); +// Generic overloads with constraints called with type arguments that do not satisfy the constraints +fn4(null, null); // Error +// Generic overloads with constraints called without type arguments but with types that do not satisfy the constraints +fn4(true, null); // Error +fn4(null, true); // Error function fn5() { return undefined; } diff --git a/tests/baselines/reference/overloadResolutionClassConstructors.js b/tests/baselines/reference/overloadResolutionClassConstructors.js index 62b1ce5ad18..2571a0e02db 100644 --- a/tests/baselines/reference/overloadResolutionClassConstructors.js +++ b/tests/baselines/reference/overloadResolutionClassConstructors.js @@ -141,7 +141,8 @@ var fn1 = (function () { return fn1; })(); new fn1(undefined); -new fn1({}); +// No candidate overloads found +new fn1({}); // Error // Generic and non - generic overload where generic overload is the only candidate when called with type arguments var fn2 = (function () { function fn2() { @@ -151,8 +152,10 @@ var fn2 = (function () { var d = new fn2(0, undefined); // Generic and non - generic overload where generic overload is the only candidate when called without type arguments var s = new fn2(0, ''); -new fn2('', 0); -new fn2('', 0); +// Generic and non - generic overload where non - generic overload is the only candidate when called with type arguments +new fn2('', 0); // OK +// Generic and non - generic overload where non - generic overload is the only candidate when called without type arguments +new fn2('', 0); // OK // Generic overloads with differing arity called without type arguments var fn3 = (function () { function fn3() { @@ -162,10 +165,12 @@ var fn3 = (function () { new fn3(3); new fn3('', 3, ''); new fn3(5, 5, 5); -new fn3(4); -new fn3('', '', ''); +// Generic overloads with differing arity called with type arguments matching each overload type parameter count +new fn3(4); // Error +new fn3('', '', ''); // Error new fn3('', '', 3); -new fn3(); +// Generic overloads with differing arity called with type argument count that doesn't match any overload +new fn3(); // Error // Generic overloads with constraints called with type arguments that satisfy the constraints var fn4 = (function () { function fn4() { @@ -173,16 +178,19 @@ var fn4 = (function () { return fn4; })(); new fn4('', 3); -new fn4(3, ''); +new fn4(3, ''); // Error +new fn4('', 3); // Error +new fn4(3, ''); // Error +// Generic overloads with constraints called without type arguments but with types that satisfy the constraints new fn4('', 3); -new fn4(3, ''); -new fn4('', 3); -new fn4(3, ''); -new fn4(3, undefined); +new fn4(3, ''); // Error +new fn4(3, undefined); // Error new fn4('', null); -new fn4(null, null); -new fn4(true, null); -new fn4(null, true); +// Generic overloads with constraints called with type arguments that do not satisfy the constraints +new fn4(null, null); // Error +// Generic overloads with constraints called without type arguments but with types that do not satisfy the constraints +new fn4(true, null); // Error +new fn4(null, true); // Error // Non - generic overloads where contextual typing of function arguments has errors var fn5 = (function () { function fn5() { @@ -192,4 +200,4 @@ var fn5 = (function () { })(); new fn5(function (n) { return n.toFixed(); }); new fn5(function (n) { return n.substr(0); }); -new fn5(function (n) { return n.blah; }); +new fn5(function (n) { return n.blah; }); // Error diff --git a/tests/baselines/reference/overloadResolutionConstructors.js b/tests/baselines/reference/overloadResolutionConstructors.js index 0c076f80a7d..9e10215b1cb 100644 --- a/tests/baselines/reference/overloadResolutionConstructors.js +++ b/tests/baselines/reference/overloadResolutionConstructors.js @@ -139,14 +139,17 @@ var fn1; // Ambiguous call picks the first overload in declaration order var s = new fn1(undefined); var s; -new fn1({}); +// No candidate overloads found +new fn1({}); // Error var fn2; var d = new fn2(0, undefined); var d; // Generic and non - generic overload where generic overload is the only candidate when called without type arguments var s = new fn2(0, ''); -new fn2('', 0); -new fn2('', 0); +// Generic and non - generic overload where non - generic overload is the only candidate when called with type arguments +new fn2('', 0); // Error +// Generic and non - generic overload where non - generic overload is the only candidate when called without type arguments +new fn2('', 0); // OK var fn3; var s = new fn3(3); var s = new fn3('', 3, ''); @@ -156,19 +159,23 @@ var n; var s = new fn3(4); var s = new fn3('', '', ''); var n = new fn3('', '', 3); -new fn3(); +// Generic overloads with differing arity called with type argument count that doesn't match any overload +new fn3(); // Error var fn4; new fn4('', 3); +new fn4(3, ''); // Error +new fn4('', 3); // Error new fn4(3, ''); -new fn4('', 3); -new fn4(3, ''); +// Generic overloads with constraints called without type arguments but with types that satisfy the constraints new fn4('', 3); new fn4(3, ''); new fn4(3, undefined); new fn4('', null); -new fn4(null, null); -new fn4(true, null); -new fn4(null, true); +// Generic overloads with constraints called with type arguments that do not satisfy the constraints +new fn4(null, null); // Error +// Generic overloads with constraints called without type arguments but with types that do not satisfy the constraints +new fn4(true, null); // Error +new fn4(null, true); // Error var fn5; var n = new fn5(function (n) { return n.toFixed(); }); var s = new fn5(function (n) { return n.substr(0); }); diff --git a/tests/baselines/reference/overloadResolutionOverCTLambda.js b/tests/baselines/reference/overloadResolutionOverCTLambda.js index 6876795e2c6..07cd4232bde 100644 --- a/tests/baselines/reference/overloadResolutionOverCTLambda.js +++ b/tests/baselines/reference/overloadResolutionOverCTLambda.js @@ -5,4 +5,4 @@ foo(a => a); // can not convert (number)=>bool to (number)=>number //// [overloadResolutionOverCTLambda.js] function foo(b) { } -foo(function (a) { return a; }); +foo(function (a) { return a; }); // can not convert (number)=>bool to (number)=>number diff --git a/tests/baselines/reference/overloadResolutionWithAny.js b/tests/baselines/reference/overloadResolutionWithAny.js index 6f4e2b15216..2765982a58f 100644 --- a/tests/baselines/reference/overloadResolutionWithAny.js +++ b/tests/baselines/reference/overloadResolutionWithAny.js @@ -23,12 +23,12 @@ func2("", x); // RegExp //// [overloadResolutionWithAny.js] var func; -func(""); -func(3); +func(""); // number +func(3); // string var x; -func(x); +func(x); // string var func2; -func2(x, x); -func2("", ""); -func2(x, ""); -func2("", x); +func2(x, x); // string +func2("", ""); // number +func2(x, ""); // boolean +func2("", x); // RegExp diff --git a/tests/baselines/reference/overloadsAndTypeArgumentArity.js b/tests/baselines/reference/overloadsAndTypeArgumentArity.js index e08a64b6e47..fd8f3a81661 100644 --- a/tests/baselines/reference/overloadsAndTypeArgumentArity.js +++ b/tests/baselines/reference/overloadsAndTypeArgumentArity.js @@ -8,5 +8,5 @@ Callbacks('s'); // no error new Callbacks('s'); // no error //// [overloadsAndTypeArgumentArity.js] -Callbacks('s'); -new Callbacks('s'); +Callbacks('s'); // no error +new Callbacks('s'); // no error diff --git a/tests/baselines/reference/overloadsAndTypeArgumentArityErrors.js b/tests/baselines/reference/overloadsAndTypeArgumentArityErrors.js index 7809929aab8..1117bc43e1a 100644 --- a/tests/baselines/reference/overloadsAndTypeArgumentArityErrors.js +++ b/tests/baselines/reference/overloadsAndTypeArgumentArityErrors.js @@ -7,5 +7,5 @@ Callbacks('s'); // wrong number of type arguments new Callbacks('s'); // wrong number of type arguments //// [overloadsAndTypeArgumentArityErrors.js] -Callbacks('s'); -new Callbacks('s'); +Callbacks('s'); // wrong number of type arguments +new Callbacks('s'); // wrong number of type arguments diff --git a/tests/baselines/reference/overloadsWithProvisionalErrors.js b/tests/baselines/reference/overloadsWithProvisionalErrors.js index 5d201e770cd..c7fb4785d09 100644 --- a/tests/baselines/reference/overloadsWithProvisionalErrors.js +++ b/tests/baselines/reference/overloadsWithProvisionalErrors.js @@ -10,6 +10,6 @@ func(s => ({ a: blah })); // Two errors here, one for blah not being defined, an //// [overloadsWithProvisionalErrors.js] var func; -func(function (s) { return ({}); }); -func(function (s) { return ({ a: blah, b: 3 }); }); -func(function (s) { return ({ a: blah }); }); +func(function (s) { return ({}); }); // Error for no applicable overload (object type is missing a and b) +func(function (s) { return ({ a: blah, b: 3 }); }); // Only error inside the function, but not outside (since it would be applicable if not for the provisional error) +func(function (s) { return ({ a: blah }); }); // Two errors here, one for blah not being defined, and one for the overload since it would not be applicable anyway diff --git a/tests/baselines/reference/parser509534.js b/tests/baselines/reference/parser509534.js index c066d5c0895..4562c7ef7a4 100644 --- a/tests/baselines/reference/parser509534.js +++ b/tests/baselines/reference/parser509534.js @@ -16,7 +16,9 @@ module.exports.route = function (server) { "use strict"; var config = require("../config"); module.exports.route = function (server) { + // General Login Page server.get(config.env.siteRoot + "/auth/login", function (req, res, next) { + // TODO Should render login page that shows auth options req.redirect("/auth/live"); }); }; diff --git a/tests/baselines/reference/parserNotHexLiteral1.js b/tests/baselines/reference/parserNotHexLiteral1.js index a38ace7a32d..89b978fcaa8 100644 --- a/tests/baselines/reference/parserNotHexLiteral1.js +++ b/tests/baselines/reference/parserNotHexLiteral1.js @@ -9,4 +9,6 @@ console.info (x.e0); //// [parserNotHexLiteral1.js] var x = { e0: 'cat', x0: 'dog' }; console.info(x.x0); +// tsc dies on this next line with "bug.ts (5,16): Expected ')'" +// tsc seems to be parsing the e0 as a hex constant. console.info(x.e0); diff --git a/tests/baselines/reference/parserS7.2_A1.5_T2.js b/tests/baselines/reference/parserS7.2_A1.5_T2.js index 4df6144f86a..cf0be93bc4a 100644 --- a/tests/baselines/reference/parserS7.2_A1.5_T2.js +++ b/tests/baselines/reference/parserS7.2_A1.5_T2.js @@ -25,6 +25,15 @@ if (x !== 1) { //// [parserS7.2_A1.5_T2.js] +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/** + * NO-BREAK SPACE (U+00A0) between any two tokens is allowed + * + * @path ch07/7.2/S7.2_A1.5_T2.js + * @description Insert real NO-BREAK SPACE between tokens of var x=1 + */ +//CHECK#1 eval("\u00A0var x\u00A0= 1\u00A0"); if (x !== 1) { $ERROR('#1: eval("\\u00A0var x\\u00A0= 1\\u00A0"); x === 1. Actual: ' + (x)); diff --git a/tests/baselines/reference/plusOperatorWithAnyOtherType.js b/tests/baselines/reference/plusOperatorWithAnyOtherType.js index 19ccd4799a0..4ddb89f205e 100644 --- a/tests/baselines/reference/plusOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/plusOperatorWithAnyOtherType.js @@ -105,6 +105,7 @@ var ResultIsNumber16 = +(ANY + ANY1); var ResultIsNumber17 = +(null + undefined); var ResultIsNumber18 = +(null + null); var ResultIsNumber19 = +(undefined + undefined); +// miss assignment operators +ANY; +ANY1; +ANY2[0]; diff --git a/tests/baselines/reference/plusOperatorWithBooleanType.js b/tests/baselines/reference/plusOperatorWithBooleanType.js index 57a7ba81b11..3de502f5ff6 100644 --- a/tests/baselines/reference/plusOperatorWithBooleanType.js +++ b/tests/baselines/reference/plusOperatorWithBooleanType.js @@ -64,6 +64,7 @@ var ResultIsNumber4 = +objA.a; var ResultIsNumber5 = +M.n; var ResultIsNumber6 = +foo(); var ResultIsNumber7 = +A.foo(); +// miss assignment operators +true; +BOOLEAN; +foo(); diff --git a/tests/baselines/reference/plusOperatorWithEnumType.js b/tests/baselines/reference/plusOperatorWithEnumType.js index 4fab550d520..279f3bc286b 100644 --- a/tests/baselines/reference/plusOperatorWithEnumType.js +++ b/tests/baselines/reference/plusOperatorWithEnumType.js @@ -37,6 +37,7 @@ var ResultIsNumber2 = +ENUM1; // enum type expressions var ResultIsNumber3 = +ENUM1[0]; var ResultIsNumber4 = +(ENUM[0] + ENUM1[1]); +// miss assignment operators +ENUM; +ENUM1; +ENUM1[1]; diff --git a/tests/baselines/reference/plusOperatorWithNumberType.js b/tests/baselines/reference/plusOperatorWithNumberType.js index 9c8f59a5edd..fa993b80f87 100644 --- a/tests/baselines/reference/plusOperatorWithNumberType.js +++ b/tests/baselines/reference/plusOperatorWithNumberType.js @@ -77,6 +77,7 @@ var ResultIsNumber8 = +NUMBER1[0]; var ResultIsNumber9 = +foo(); var ResultIsNumber10 = +A.foo(); var ResultIsNumber11 = +(NUMBER + NUMBER); +// miss assignment operators +1; +NUMBER; +NUMBER1; diff --git a/tests/baselines/reference/plusOperatorWithStringType.js b/tests/baselines/reference/plusOperatorWithStringType.js index 876e37ab383..93af186ce8f 100644 --- a/tests/baselines/reference/plusOperatorWithStringType.js +++ b/tests/baselines/reference/plusOperatorWithStringType.js @@ -77,6 +77,7 @@ var ResultIsNumber9 = +foo(); var ResultIsNumber10 = +A.foo(); var ResultIsNumber11 = +(STRING + STRING); var ResultIsNumber12 = +STRING.charAt(0); +// miss assignment operators +""; +STRING; +STRING1; diff --git a/tests/baselines/reference/primitiveConstraints1.js b/tests/baselines/reference/primitiveConstraints1.js index 03db6bb9616..7d697e57dfa 100644 --- a/tests/baselines/reference/primitiveConstraints1.js +++ b/tests/baselines/reference/primitiveConstraints1.js @@ -9,7 +9,7 @@ foo2(1, 'hm'); // error //// [primitiveConstraints1.js] function foo1(t, u) { } -foo1('hm', 1); +foo1('hm', 1); // no error function foo2(t, u) { } -foo2(1, 'hm'); +foo2(1, 'hm'); // error diff --git a/tests/baselines/reference/primitiveConstraints2.js b/tests/baselines/reference/primitiveConstraints2.js index 5f5e0f590e8..4ce8480ae0e 100644 --- a/tests/baselines/reference/primitiveConstraints2.js +++ b/tests/baselines/reference/primitiveConstraints2.js @@ -19,5 +19,5 @@ var C = (function () { return C; })(); var x = new C(); -x.bar2(2, ""); -x.bar2(2, ""); +x.bar2(2, ""); // should error +x.bar2(2, ""); // should error diff --git a/tests/baselines/reference/privateVisibility.js b/tests/baselines/reference/privateVisibility.js index 9f2a1ffa179..80e0bf51a1b 100644 --- a/tests/baselines/reference/privateVisibility.js +++ b/tests/baselines/reference/privateVisibility.js @@ -40,10 +40,10 @@ var Foo = (function () { return Foo; })(); var f = new Foo(); -f.privMeth(); -f.privProp; -f.pubMeth(); -f.pubProp; +f.privMeth(); // should not work +f.privProp; // should not work +f.pubMeth(); // should work +f.pubProp; // should work var M; (function (M) { var C = (function () { @@ -57,5 +57,5 @@ var M; M.V = 0; })(M || (M = {})); var c = new M.C(); -c.pub; -c.priv; +c.pub; // should work +c.priv; // should not work diff --git a/tests/baselines/reference/project/declareExportAdded/amd/consumer.js b/tests/baselines/reference/project/declareExportAdded/amd/consumer.js index d42137754fa..34184594b0e 100644 --- a/tests/baselines/reference/project/declareExportAdded/amd/consumer.js +++ b/tests/baselines/reference/project/declareExportAdded/amd/consumer.js @@ -1 +1,3 @@ +/// +// in the generated code a 'this' is added before this call M1.f1(); diff --git a/tests/baselines/reference/project/declareExportAdded/node/consumer.js b/tests/baselines/reference/project/declareExportAdded/node/consumer.js index d42137754fa..34184594b0e 100644 --- a/tests/baselines/reference/project/declareExportAdded/node/consumer.js +++ b/tests/baselines/reference/project/declareExportAdded/node/consumer.js @@ -1 +1,3 @@ +/// +// in the generated code a 'this' is added before this call M1.f1(); diff --git a/tests/baselines/reference/project/prologueEmit/amd/out.js b/tests/baselines/reference/project/prologueEmit/amd/out.js index 4a1d7f0d396..b19a07f6490 100644 --- a/tests/baselines/reference/project/prologueEmit/amd/out.js +++ b/tests/baselines/reference/project/prologueEmit/amd/out.js @@ -1,4 +1,5 @@ var _this = this; +// Add a lambda to ensure global 'this' capture is triggered (function () { return _this.window; }); var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; diff --git a/tests/baselines/reference/project/prologueEmit/node/out.js b/tests/baselines/reference/project/prologueEmit/node/out.js index 4a1d7f0d396..b19a07f6490 100644 --- a/tests/baselines/reference/project/prologueEmit/node/out.js +++ b/tests/baselines/reference/project/prologueEmit/node/out.js @@ -1,4 +1,5 @@ var _this = this; +// Add a lambda to ensure global 'this' capture is triggered (function () { return _this.window; }); var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; diff --git a/tests/baselines/reference/promisesWithConstraints.js b/tests/baselines/reference/promisesWithConstraints.js index aa618bf4df3..a7f97abb6d3 100644 --- a/tests/baselines/reference/promisesWithConstraints.js +++ b/tests/baselines/reference/promisesWithConstraints.js @@ -24,9 +24,9 @@ b2 = a2; // was error //// [promisesWithConstraints.js] var a; var b; -a = b; -b = a; +a = b; // ok +b = a; // ok var a2; var b2; -a2 = b2; -b2 = a2; +a2 = b2; // ok +b2 = a2; // was error diff --git a/tests/baselines/reference/propagationOfPromiseInitialization.js b/tests/baselines/reference/propagationOfPromiseInitialization.js index ae5e186bfff..7d00a018241 100644 --- a/tests/baselines/reference/propagationOfPromiseInitialization.js +++ b/tests/baselines/reference/propagationOfPromiseInitialization.js @@ -20,6 +20,7 @@ foo.then(function (x) { // x is inferred to be a number return "asdf"; }).then(function (x) { + // x is inferred to be string x.length; return 123; }); diff --git a/tests/baselines/reference/propertyAccess.js b/tests/baselines/reference/propertyAccess.js index 89b4751635d..594bdcd84c2 100644 --- a/tests/baselines/reference/propertyAccess.js +++ b/tests/baselines/reference/propertyAccess.js @@ -153,7 +153,9 @@ var obj = { 'literal property': 100 }; var anyVar = {}; +// Assign to a property access obj.y = 4; +// Property access on value of type 'any' anyVar.x = anyVar.y = obj.x = anyVar.z; // Dotted property access of property that exists var aa = obj.x; diff --git a/tests/baselines/reference/propertyParameterWithQuestionMark.js b/tests/baselines/reference/propertyParameterWithQuestionMark.js index 5191927b67b..e3b6bd153c2 100644 --- a/tests/baselines/reference/propertyParameterWithQuestionMark.js +++ b/tests/baselines/reference/propertyParameterWithQuestionMark.js @@ -19,5 +19,5 @@ var C = (function () { // x should not be an optional property var v = {}; // Should fail var v2; -v = v2; +v = v2; // Should fail var v3 = new C; // Should succeed diff --git a/tests/baselines/reference/protoInIndexer.js b/tests/baselines/reference/protoInIndexer.js index e36a0c769bc..08e1fbc931c 100644 --- a/tests/baselines/reference/protoInIndexer.js +++ b/tests/baselines/reference/protoInIndexer.js @@ -8,7 +8,7 @@ class X { //// [protoInIndexer.js] var X = (function () { function X() { - this['__proto__'] = null; + this['__proto__'] = null; // used to cause ICE } return X; })(); diff --git a/tests/baselines/reference/prototypeInstantiatedWithBaseConstraint.js b/tests/baselines/reference/prototypeInstantiatedWithBaseConstraint.js index 34681e76f87..7267d2dad29 100644 --- a/tests/baselines/reference/prototypeInstantiatedWithBaseConstraint.js +++ b/tests/baselines/reference/prototypeInstantiatedWithBaseConstraint.js @@ -11,4 +11,4 @@ var C = (function () { } return C; })(); -C.prototype.x.boo; +C.prototype.x.boo; // No error, prototype is instantiated to any diff --git a/tests/baselines/reference/prototypes.js b/tests/baselines/reference/prototypes.js index 423c6bbfabd..4ecdafb3dc4 100644 --- a/tests/baselines/reference/prototypes.js +++ b/tests/baselines/reference/prototypes.js @@ -5,8 +5,8 @@ function f() {} f.prototype; //// [prototypes.js] -Object.prototype; -new Object().prototype; +Object.prototype; // ok +new Object().prototype; // error function f() { } f.prototype; diff --git a/tests/baselines/reference/recursiveClassReferenceTest.js b/tests/baselines/reference/recursiveClassReferenceTest.js index 5de343015c2..1c6898b0e87 100644 --- a/tests/baselines/reference/recursiveClassReferenceTest.js +++ b/tests/baselines/reference/recursiveClassReferenceTest.js @@ -141,6 +141,7 @@ var Sample; function FindWidget(codeThing) { this.codeThing = codeThing; this.domNode = null; + // scenario 1 codeThing.addWidget("addWidget", this); } FindWidget.prototype.gar = function (runner) { diff --git a/tests/baselines/reference/recursiveClassReferenceTest.js.map b/tests/baselines/reference/recursiveClassReferenceTest.js.map index 14bfd9b7a59..bb44cf1181b 100644 --- a/tests/baselines/reference/recursiveClassReferenceTest.js.map +++ b/tests/baselines/reference/recursiveClassReferenceTest.js.map @@ -1,2 +1,2 @@ //// [recursiveClassReferenceTest.js.map] -{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":["Sample","Sample.Actions","Sample.Actions.Thing","Sample.Actions.Thing.Find","Sample.Actions.Thing.Find.StartFindAction","Sample.Actions.Thing.Find.StartFindAction.constructor","Sample.Actions.Thing.Find.StartFindAction.getId","Sample.Actions.Thing.Find.StartFindAction.run","Sample.Thing","Sample.Thing.Widgets","Sample.Thing.Widgets.FindWidget","Sample.Thing.Widgets.FindWidget.constructor","Sample.Thing.Widgets.FindWidget.gar","Sample.Thing.Widgets.FindWidget.getDomNode","Sample.Thing.Widgets.FindWidget.destroy","AbstractMode","AbstractMode.constructor","AbstractMode.getInitialState","Sample.Thing.Languages","Sample.Thing.Languages.PlainText","Sample.Thing.Languages.PlainText.State","Sample.Thing.Languages.PlainText.State.constructor","Sample.Thing.Languages.PlainText.State.clone","Sample.Thing.Languages.PlainText.State.equals","Sample.Thing.Languages.PlainText.State.getMode","Sample.Thing.Languages.PlainText.Mode","Sample.Thing.Languages.PlainText.Mode.constructor","Sample.Thing.Languages.PlainText.Mode.getInitialState"],"mappings":";;;;;;AA+BA,IAAO,MAAM,CAUZ;AAVD,WAAO,MAAM;IAACA,WAAAA,OAAOA;QAACC,WAAAA,MAAKA;YAACC,WAAAA,IAAIA,EAACA,CAACA;gBACjCC,IAAaA,eAAeA;oBAA5BC,SAAaA,eAAeA;oBAQ5BC,CAACA;oBANOD,+BAAKA,GAAZA;wBAAiBE,MAAMA,CAACA,IAAIA,CAACA;oBAACA,CAACA;oBAExBF,6BAAGA,GAAVA,UAAWA,KAA6BA;wBAEvCG,MAAMA,CAACA,IAAIA,CAACA;oBACbA,CAACA;oBACFH,sBAACA;gBAADA,CAACA,AARDD,IAQCA;gBARYA,oBAAeA,GAAfA,eAQZA,CAAAA;YACFA,CAACA,EAV2BD,WAAIA,KAAJA,WAAIA,QAU/BA;YAV2BA,IAAAA,IAAIA,GAAJA,WAU3BA,CAAAA;QAADA,CAACA,EAVqBD,aAAKA,KAALA,aAAKA,QAU1BA;QAVqBA,IAAAA,KAAKA,GAALA,aAUrBA,CAAAA;IAADA,CAACA,EAVaD,cAAOA,KAAPA,cAAOA,QAUpBA;IAVaA,IAAAA,OAAOA,GAAPA,cAUbA,CAAAA;AAADA,CAACA,EAVM,MAAM,KAAN,MAAM,QAUZ;AAED,IAAO,MAAM,CAoBZ;AApBD,WAAO,MAAM;IAACA,WAAAA,KAAKA;QAACQ,WAAAA,OAAOA,EAACA,CAACA;YAC5BC,IAAaA,UAAUA;gBAKtBC,SALYA,UAAUA,CAKFA,SAAkCA;oBAAlCC,cAASA,GAATA,SAASA,CAAyBA;oBAD9CA,YAAOA,GAAOA,IAAIA,CAACA;oBAGvBA,SAASA,CAACA,SAASA,CAACA,WAAWA,EAAEA,IAAIA,CAACA,CAACA;gBAC3CA,CAACA;gBANMD,wBAAGA,GAAVA,UAAWA,MAAyCA;oBAAIE,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAAAA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;oBAAAA,CAACA;gBAAAA,CAACA;gBAQlFF,+BAAUA,GAAjBA;oBACCG,MAAMA,CAACA,OAAOA,CAACA;gBAChBA,CAACA;gBAEMH,4BAAOA,GAAdA;gBAEAI,CAACA;gBAEFJ,iBAACA;YAADA,CAACA,AAlBDD,IAkBCA;YAlBYA,kBAAUA,GAAVA,UAkBZA,CAAAA;QACFA,CAACA,EApBmBD,aAAOA,KAAPA,aAAOA,QAoB1BA;QApBmBA,IAAAA,OAAOA,GAAPA,aAoBnBA,CAAAA;IAADA,CAACA,EApBaR,YAAKA,KAALA,YAAKA,QAoBlBA;IApBaA,IAAAA,KAAKA,GAALA,YAoBbA,CAAAA;AAADA,CAACA,EApBM,MAAM,KAAN,MAAM,QAoBZ;AAGD,IAAM,YAAY;IAAlBe,SAAMA,YAAYA;IAAqEC,CAACA;IAA3CD,sCAAeA,GAAtBA;QAAmCE,MAAMA,CAACA,IAAIA,CAACA;IAAAA,CAACA;IAACF,mBAACA;AAADA,CAACA,AAAxF,IAAwF;AASxF,IAAO,MAAM,CAwBZ;AAxBD,WAAO,MAAM;IAACf,WAAAA,KAAKA;QAACQ,WAAAA,SAASA;YAACU,WAAAA,SAASA,EAACA,CAACA;gBAExCC,IAAaA,KAAKA;oBACXC,SADMA,KAAKA,CACSA,IAAWA;wBAAXC,SAAIA,GAAJA,IAAIA,CAAOA;oBAAIA,CAACA;oBACnCD,qBAAKA,GAAZA;wBACCE,MAAMA,CAACA,IAAIA,CAACA;oBACbA,CAACA;oBAEMF,sBAAMA,GAAbA,UAAcA,KAAYA;wBACzBG,MAAMA,CAACA,IAAIA,KAAKA,KAAKA,CAACA;oBACvBA,CAACA;oBAEMH,uBAAOA,GAAdA;wBAA0BI,MAAMA,CAACA,IAAIA,CAACA;oBAACA,CAACA;oBACzCJ,YAACA;gBAADA,CAACA,AAXDD,IAWCA;gBAXYA,eAAKA,GAALA,KAWZA,CAAAA;gBAEDA,IAAaA,IAAIA;oBAASM,UAAbA,IAAIA,UAAqBA;oBAAtCA,SAAaA,IAAIA;wBAASC,8BAAYA;oBAQtCA,CAACA;oBANAD,aAAaA;oBACNA,8BAAeA,GAAtBA;wBACCE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACxBA,CAACA;oBAGFF,WAACA;gBAADA,CAACA,AARDN,EAA0BA,YAAYA,EAQrCA;gBARYA,cAAIA,GAAJA,IAQZA,CAAAA;YACFA,CAACA,EAxB6BD,mBAASA,KAATA,mBAASA,QAwBtCA;YAxB6BA,IAAAA,SAASA,GAATA,mBAwB7BA,CAAAA;QAADA,CAACA,EAxBmBV,eAASA,KAATA,eAASA,QAwB5BA;QAxBmBA,IAAAA,SAASA,GAATA,eAwBnBA,CAAAA;IAADA,CAACA,EAxBaR,YAAKA,KAALA,YAAKA,QAwBlBA;IAxBaA,IAAAA,KAAKA,GAALA,YAwBbA,CAAAA;AAADA,CAACA,EAxBM,MAAM,KAAN,MAAM,QAwBZ"} \ No newline at end of file +{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":["Sample","Sample.Actions","Sample.Actions.Thing","Sample.Actions.Thing.Find","Sample.Actions.Thing.Find.StartFindAction","Sample.Actions.Thing.Find.StartFindAction.constructor","Sample.Actions.Thing.Find.StartFindAction.getId","Sample.Actions.Thing.Find.StartFindAction.run","Sample.Thing","Sample.Thing.Widgets","Sample.Thing.Widgets.FindWidget","Sample.Thing.Widgets.FindWidget.constructor","Sample.Thing.Widgets.FindWidget.gar","Sample.Thing.Widgets.FindWidget.getDomNode","Sample.Thing.Widgets.FindWidget.destroy","AbstractMode","AbstractMode.constructor","AbstractMode.getInitialState","Sample.Thing.Languages","Sample.Thing.Languages.PlainText","Sample.Thing.Languages.PlainText.State","Sample.Thing.Languages.PlainText.State.constructor","Sample.Thing.Languages.PlainText.State.clone","Sample.Thing.Languages.PlainText.State.equals","Sample.Thing.Languages.PlainText.State.getMode","Sample.Thing.Languages.PlainText.Mode","Sample.Thing.Languages.PlainText.Mode.constructor","Sample.Thing.Languages.PlainText.Mode.getInitialState"],"mappings":";;;;;;AA+BA,IAAO,MAAM,CAUZ;AAVD,WAAO,MAAM;IAACA,WAAAA,OAAOA;QAACC,WAAAA,MAAKA;YAACC,WAAAA,IAAIA,EAACA,CAACA;gBACjCC,IAAaA,eAAeA;oBAA5BC,SAAaA,eAAeA;oBAQ5BC,CAACA;oBANOD,+BAAKA,GAAZA;wBAAiBE,MAAMA,CAACA,IAAIA,CAACA;oBAACA,CAACA;oBAExBF,6BAAGA,GAAVA,UAAWA,KAA6BA;wBAEvCG,MAAMA,CAACA,IAAIA,CAACA;oBACbA,CAACA;oBACFH,sBAACA;gBAADA,CAACA,AARDD,IAQCA;gBARYA,oBAAeA,GAAfA,eAQZA,CAAAA;YACFA,CAACA,EAV2BD,WAAIA,KAAJA,WAAIA,QAU/BA;YAV2BA,IAAAA,IAAIA,GAAJA,WAU3BA,CAAAA;QAADA,CAACA,EAVqBD,aAAKA,KAALA,aAAKA,QAU1BA;QAVqBA,IAAAA,KAAKA,GAALA,aAUrBA,CAAAA;IAADA,CAACA,EAVaD,cAAOA,KAAPA,cAAOA,QAUpBA;IAVaA,IAAAA,OAAOA,GAAPA,cAUbA,CAAAA;AAADA,CAACA,EAVM,MAAM,KAAN,MAAM,QAUZ;AAED,IAAO,MAAM,CAoBZ;AApBD,WAAO,MAAM;IAACA,WAAAA,KAAKA;QAACQ,WAAAA,OAAOA,EAACA,CAACA;YAC5BC,IAAaA,UAAUA;gBAKtBC,SALYA,UAAUA,CAKFA,SAAkCA;oBAAlCC,cAASA,GAATA,SAASA,CAAyBA;oBAD9CA,YAAOA,GAAOA,IAAIA,CAACA;oBAGvBA,AADAA,aAAaA;oBACbA,SAASA,CAACA,SAASA,CAACA,WAAWA,EAAEA,IAAIA,CAACA,CAACA;gBAC3CA,CAACA;gBANMD,wBAAGA,GAAVA,UAAWA,MAAyCA;oBAAIE,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAAAA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;oBAAAA,CAACA;gBAAAA,CAACA;gBAQlFF,+BAAUA,GAAjBA;oBACCG,MAAMA,CAACA,OAAOA,CAACA;gBAChBA,CAACA;gBAEMH,4BAAOA,GAAdA;gBAEAI,CAACA;gBAEFJ,iBAACA;YAADA,CAACA,AAlBDD,IAkBCA;YAlBYA,kBAAUA,GAAVA,UAkBZA,CAAAA;QACFA,CAACA,EApBmBD,aAAOA,KAAPA,aAAOA,QAoB1BA;QApBmBA,IAAAA,OAAOA,GAAPA,aAoBnBA,CAAAA;IAADA,CAACA,EApBaR,YAAKA,KAALA,YAAKA,QAoBlBA;IApBaA,IAAAA,KAAKA,GAALA,YAoBbA,CAAAA;AAADA,CAACA,EApBM,MAAM,KAAN,MAAM,QAoBZ;AAGD,IAAM,YAAY;IAAlBe,SAAMA,YAAYA;IAAqEC,CAACA;IAA3CD,sCAAeA,GAAtBA;QAAmCE,MAAMA,CAACA,IAAIA,CAACA;IAAAA,CAACA;IAACF,mBAACA;AAADA,CAACA,AAAxF,IAAwF;AASxF,IAAO,MAAM,CAwBZ;AAxBD,WAAO,MAAM;IAACf,WAAAA,KAAKA;QAACQ,WAAAA,SAASA;YAACU,WAAAA,SAASA,EAACA,CAACA;gBAExCC,IAAaA,KAAKA;oBACXC,SADMA,KAAKA,CACSA,IAAWA;wBAAXC,SAAIA,GAAJA,IAAIA,CAAOA;oBAAIA,CAACA;oBACnCD,qBAAKA,GAAZA;wBACCE,MAAMA,CAACA,IAAIA,CAACA;oBACbA,CAACA;oBAEMF,sBAAMA,GAAbA,UAAcA,KAAYA;wBACzBG,MAAMA,CAACA,IAAIA,KAAKA,KAAKA,CAACA;oBACvBA,CAACA;oBAEMH,uBAAOA,GAAdA;wBAA0BI,MAAMA,CAACA,IAAIA,CAACA;oBAACA,CAACA;oBACzCJ,YAACA;gBAADA,CAACA,AAXDD,IAWCA;gBAXYA,eAAKA,GAALA,KAWZA,CAAAA;gBAEDA,IAAaA,IAAIA;oBAASM,UAAbA,IAAIA,UAAqBA;oBAAtCA,SAAaA,IAAIA;wBAASC,8BAAYA;oBAQtCA,CAACA;oBANAD,aAAaA;oBACNA,8BAAeA,GAAtBA;wBACCE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACxBA,CAACA;oBAGFF,WAACA;gBAADA,CAACA,AARDN,EAA0BA,YAAYA,EAQrCA;gBARYA,cAAIA,GAAJA,IAQZA,CAAAA;YACFA,CAACA,EAxB6BD,mBAASA,KAATA,mBAASA,QAwBtCA;YAxB6BA,IAAAA,SAASA,GAATA,mBAwB7BA,CAAAA;QAADA,CAACA,EAxBmBV,eAASA,KAATA,eAASA,QAwB5BA;QAxBmBA,IAAAA,SAASA,GAATA,eAwBnBA,CAAAA;IAADA,CAACA,EAxBaR,YAAKA,KAALA,YAAKA,QAwBlBA;IAxBaA,IAAAA,KAAKA,GAALA,YAwBbA,CAAAA;AAADA,CAACA,EAxBM,MAAM,KAAN,MAAM,QAwBZ"} \ No newline at end of file diff --git a/tests/baselines/reference/recursiveClassReferenceTest.sourcemap.txt b/tests/baselines/reference/recursiveClassReferenceTest.sourcemap.txt index a03e1bfe4d6..d21f664149a 100644 --- a/tests/baselines/reference/recursiveClassReferenceTest.sourcemap.txt +++ b/tests/baselines/reference/recursiveClassReferenceTest.sourcemap.txt @@ -675,7 +675,6 @@ sourceFile:recursiveClassReferenceTest.ts 3 > ^^^ 4 > ^^^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^-> 1 > 2 > domNode 3 > :any = @@ -687,6 +686,21 @@ sourceFile:recursiveClassReferenceTest.ts 4 >Emitted(38, 40) Source(49, 29) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) 5 >Emitted(38, 41) Source(49, 30) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) --- +>>> // scenario 1 +1 >^^^^^^^^^^^^^^^^^^^^ +2 > +3 > ^^^^^^^^^^^^^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > constructor(private codeThing: Sample.Thing.ICodeThing) { + > // scenario 1 + > +2 > +3 > // scenario 1 +1 >Emitted(39, 21) Source(52, 7) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +2 >Emitted(39, 21) Source(51, 7) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +3 >Emitted(39, 34) Source(51, 20) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +--- >>> codeThing.addWidget("addWidget", this); 1->^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^ @@ -699,8 +713,6 @@ sourceFile:recursiveClassReferenceTest.ts 9 > ^ 10> ^ 1-> - > constructor(private codeThing: Sample.Thing.ICodeThing) { - > // scenario 1 > 2 > codeThing 3 > . @@ -711,16 +723,16 @@ sourceFile:recursiveClassReferenceTest.ts 8 > this 9 > ) 10> ; -1->Emitted(39, 21) Source(52, 7) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -2 >Emitted(39, 30) Source(52, 16) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -3 >Emitted(39, 31) Source(52, 17) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -4 >Emitted(39, 40) Source(52, 26) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -5 >Emitted(39, 41) Source(52, 27) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -6 >Emitted(39, 52) Source(52, 38) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -7 >Emitted(39, 54) Source(52, 40) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -8 >Emitted(39, 58) Source(52, 44) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -9 >Emitted(39, 59) Source(52, 45) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -10>Emitted(39, 60) Source(52, 46) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +1->Emitted(40, 21) Source(52, 7) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +2 >Emitted(40, 30) Source(52, 16) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +3 >Emitted(40, 31) Source(52, 17) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +4 >Emitted(40, 40) Source(52, 26) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +5 >Emitted(40, 41) Source(52, 27) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +6 >Emitted(40, 52) Source(52, 38) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +7 >Emitted(40, 54) Source(52, 40) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +8 >Emitted(40, 58) Source(52, 44) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +9 >Emitted(40, 59) Source(52, 45) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +10>Emitted(40, 60) Source(52, 46) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) --- >>> } 1 >^^^^^^^^^^^^^^^^ @@ -729,8 +741,8 @@ sourceFile:recursiveClassReferenceTest.ts 1 > > 2 > } -1 >Emitted(40, 17) Source(53, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) -2 >Emitted(40, 18) Source(53, 4) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +1 >Emitted(41, 17) Source(53, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) +2 >Emitted(41, 18) Source(53, 4) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.constructor) --- >>> FindWidget.prototype.gar = function (runner) { 1->^^^^^^^^^^^^^^^^ @@ -743,11 +755,11 @@ sourceFile:recursiveClassReferenceTest.ts 3 > 4 > public gar( 5 > runner:(widget:Sample.Thing.IWidget)=>any -1->Emitted(41, 17) Source(47, 10) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -2 >Emitted(41, 41) Source(47, 13) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -3 >Emitted(41, 44) Source(47, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -4 >Emitted(41, 54) Source(47, 14) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -5 >Emitted(41, 60) Source(47, 55) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +1->Emitted(42, 17) Source(47, 10) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +2 >Emitted(42, 41) Source(47, 13) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +3 >Emitted(42, 44) Source(47, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +4 >Emitted(42, 54) Source(47, 14) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +5 >Emitted(42, 60) Source(47, 55) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) --- >>> if (true) { 1 >^^^^^^^^^^^^^^^^^^^^ @@ -767,14 +779,14 @@ sourceFile:recursiveClassReferenceTest.ts 6 > ) 7 > 8 > { -1 >Emitted(42, 21) Source(47, 59) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -2 >Emitted(42, 23) Source(47, 61) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -3 >Emitted(42, 24) Source(47, 62) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -4 >Emitted(42, 25) Source(47, 63) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -5 >Emitted(42, 29) Source(47, 67) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -6 >Emitted(42, 30) Source(47, 68) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -7 >Emitted(42, 31) Source(47, 69) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -8 >Emitted(42, 32) Source(47, 70) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +1 >Emitted(43, 21) Source(47, 59) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +2 >Emitted(43, 23) Source(47, 61) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +3 >Emitted(43, 24) Source(47, 62) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +4 >Emitted(43, 25) Source(47, 63) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +5 >Emitted(43, 29) Source(47, 67) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +6 >Emitted(43, 30) Source(47, 68) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +7 >Emitted(43, 31) Source(47, 69) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +8 >Emitted(43, 32) Source(47, 70) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) --- >>> return runner(this); 1->^^^^^^^^^^^^^^^^^^^^^^^^ @@ -793,22 +805,22 @@ sourceFile:recursiveClassReferenceTest.ts 6 > this 7 > ) 8 > ; -1->Emitted(43, 25) Source(47, 70) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -2 >Emitted(43, 31) Source(47, 76) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -3 >Emitted(43, 32) Source(47, 77) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -4 >Emitted(43, 38) Source(47, 83) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -5 >Emitted(43, 39) Source(47, 84) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -6 >Emitted(43, 43) Source(47, 88) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -7 >Emitted(43, 44) Source(47, 89) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -8 >Emitted(43, 45) Source(47, 90) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +1->Emitted(44, 25) Source(47, 70) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +2 >Emitted(44, 31) Source(47, 76) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +3 >Emitted(44, 32) Source(47, 77) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +4 >Emitted(44, 38) Source(47, 83) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +5 >Emitted(44, 39) Source(47, 84) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +6 >Emitted(44, 43) Source(47, 88) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +7 >Emitted(44, 44) Source(47, 89) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +8 >Emitted(44, 45) Source(47, 90) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) --- >>> } 1 >^^^^^^^^^^^^^^^^^^^^ 2 > ^ 1 > 2 > } -1 >Emitted(44, 21) Source(47, 90) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -2 >Emitted(44, 22) Source(47, 91) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +1 >Emitted(45, 21) Source(47, 90) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +2 >Emitted(45, 22) Source(47, 91) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) --- >>> }; 1 >^^^^^^^^^^^^^^^^ @@ -816,8 +828,8 @@ sourceFile:recursiveClassReferenceTest.ts 3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > 2 > } -1 >Emitted(45, 17) Source(47, 91) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) -2 >Emitted(45, 18) Source(47, 92) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +1 >Emitted(46, 17) Source(47, 91) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) +2 >Emitted(46, 18) Source(47, 92) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.gar) --- >>> FindWidget.prototype.getDomNode = function () { 1->^^^^^^^^^^^^^^^^ @@ -834,9 +846,9 @@ sourceFile:recursiveClassReferenceTest.ts > public 2 > getDomNode 3 > -1->Emitted(46, 17) Source(55, 10) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -2 >Emitted(46, 48) Source(55, 20) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -3 >Emitted(46, 51) Source(55, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +1->Emitted(47, 17) Source(55, 10) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +2 >Emitted(47, 48) Source(55, 20) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +3 >Emitted(47, 51) Source(55, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) --- >>> return domNode; 1 >^^^^^^^^^^^^^^^^^^^^ @@ -850,11 +862,11 @@ sourceFile:recursiveClassReferenceTest.ts 3 > 4 > domNode 5 > ; -1 >Emitted(47, 21) Source(56, 4) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) -2 >Emitted(47, 27) Source(56, 10) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) -3 >Emitted(47, 28) Source(56, 11) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) -4 >Emitted(47, 35) Source(56, 18) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) -5 >Emitted(47, 36) Source(56, 19) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) +1 >Emitted(48, 21) Source(56, 4) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) +2 >Emitted(48, 27) Source(56, 10) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) +3 >Emitted(48, 28) Source(56, 11) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) +4 >Emitted(48, 35) Source(56, 18) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) +5 >Emitted(48, 36) Source(56, 19) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) --- >>> }; 1 >^^^^^^^^^^^^^^^^ @@ -863,8 +875,8 @@ sourceFile:recursiveClassReferenceTest.ts 1 > > 2 > } -1 >Emitted(48, 17) Source(57, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) -2 >Emitted(48, 18) Source(57, 4) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) +1 >Emitted(49, 17) Source(57, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) +2 >Emitted(49, 18) Source(57, 4) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.getDomNode) --- >>> FindWidget.prototype.destroy = function () { 1->^^^^^^^^^^^^^^^^ @@ -875,9 +887,9 @@ sourceFile:recursiveClassReferenceTest.ts > public 2 > destroy 3 > -1->Emitted(49, 17) Source(59, 10) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -2 >Emitted(49, 45) Source(59, 17) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -3 >Emitted(49, 48) Source(59, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +1->Emitted(50, 17) Source(59, 10) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +2 >Emitted(50, 45) Source(59, 17) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +3 >Emitted(50, 48) Source(59, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) --- >>> }; 1 >^^^^^^^^^^^^^^^^ @@ -887,8 +899,8 @@ sourceFile:recursiveClassReferenceTest.ts > > 2 > } -1 >Emitted(50, 17) Source(61, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.destroy) -2 >Emitted(50, 18) Source(61, 4) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.destroy) +1 >Emitted(51, 17) Source(61, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.destroy) +2 >Emitted(51, 18) Source(61, 4) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget.destroy) --- >>> return FindWidget; 1->^^^^^^^^^^^^^^^^ @@ -897,8 +909,8 @@ sourceFile:recursiveClassReferenceTest.ts > > 2 > } -1->Emitted(51, 17) Source(63, 2) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -2 >Emitted(51, 34) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +1->Emitted(52, 17) Source(63, 2) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +2 >Emitted(52, 34) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) --- >>> })(); 1 >^^^^^^^^^^^^ @@ -928,10 +940,10 @@ sourceFile:recursiveClassReferenceTest.ts > } > > } -1 >Emitted(52, 13) Source(63, 2) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -2 >Emitted(52, 14) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) -3 >Emitted(52, 14) Source(45, 2) + SourceIndex(0) name (Sample.Thing.Widgets) -4 >Emitted(52, 18) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets) +1 >Emitted(53, 13) Source(63, 2) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +2 >Emitted(53, 14) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets.FindWidget) +3 >Emitted(53, 14) Source(45, 2) + SourceIndex(0) name (Sample.Thing.Widgets) +4 >Emitted(53, 18) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets) --- >>> Widgets.FindWidget = FindWidget; 1->^^^^^^^^^^^^ @@ -963,11 +975,11 @@ sourceFile:recursiveClassReferenceTest.ts > > } 5 > -1->Emitted(53, 13) Source(45, 15) + SourceIndex(0) name (Sample.Thing.Widgets) -2 >Emitted(53, 31) Source(45, 25) + SourceIndex(0) name (Sample.Thing.Widgets) -3 >Emitted(53, 34) Source(45, 15) + SourceIndex(0) name (Sample.Thing.Widgets) -4 >Emitted(53, 44) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets) -5 >Emitted(53, 45) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets) +1->Emitted(54, 13) Source(45, 15) + SourceIndex(0) name (Sample.Thing.Widgets) +2 >Emitted(54, 31) Source(45, 25) + SourceIndex(0) name (Sample.Thing.Widgets) +3 >Emitted(54, 34) Source(45, 15) + SourceIndex(0) name (Sample.Thing.Widgets) +4 >Emitted(54, 44) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets) +5 >Emitted(54, 45) Source(63, 3) + SourceIndex(0) name (Sample.Thing.Widgets) --- >>> })(Thing.Widgets || (Thing.Widgets = {})); 1->^^^^^^^^ @@ -1005,13 +1017,13 @@ sourceFile:recursiveClassReferenceTest.ts > > } > } -1->Emitted(54, 9) Source(64, 1) + SourceIndex(0) name (Sample.Thing.Widgets) -2 >Emitted(54, 10) Source(64, 2) + SourceIndex(0) name (Sample.Thing.Widgets) -3 >Emitted(54, 12) Source(44, 21) + SourceIndex(0) name (Sample.Thing) -4 >Emitted(54, 25) Source(44, 28) + SourceIndex(0) name (Sample.Thing) -5 >Emitted(54, 30) Source(44, 21) + SourceIndex(0) name (Sample.Thing) -6 >Emitted(54, 43) Source(44, 28) + SourceIndex(0) name (Sample.Thing) -7 >Emitted(54, 51) Source(64, 2) + SourceIndex(0) name (Sample.Thing) +1->Emitted(55, 9) Source(64, 1) + SourceIndex(0) name (Sample.Thing.Widgets) +2 >Emitted(55, 10) Source(64, 2) + SourceIndex(0) name (Sample.Thing.Widgets) +3 >Emitted(55, 12) Source(44, 21) + SourceIndex(0) name (Sample.Thing) +4 >Emitted(55, 25) Source(44, 28) + SourceIndex(0) name (Sample.Thing) +5 >Emitted(55, 30) Source(44, 21) + SourceIndex(0) name (Sample.Thing) +6 >Emitted(55, 43) Source(44, 28) + SourceIndex(0) name (Sample.Thing) +7 >Emitted(55, 51) Source(64, 2) + SourceIndex(0) name (Sample.Thing) --- >>> var Widgets = Thing.Widgets; 1 >^^^^^^^^ @@ -1047,12 +1059,12 @@ sourceFile:recursiveClassReferenceTest.ts > } > } 6 > -1 >Emitted(55, 9) Source(44, 21) + SourceIndex(0) name (Sample.Thing) -2 >Emitted(55, 13) Source(44, 21) + SourceIndex(0) name (Sample.Thing) -3 >Emitted(55, 20) Source(44, 28) + SourceIndex(0) name (Sample.Thing) -4 >Emitted(55, 23) Source(44, 21) + SourceIndex(0) name (Sample.Thing) -5 >Emitted(55, 36) Source(64, 2) + SourceIndex(0) name (Sample.Thing) -6 >Emitted(55, 37) Source(64, 2) + SourceIndex(0) name (Sample.Thing) +1 >Emitted(56, 9) Source(44, 21) + SourceIndex(0) name (Sample.Thing) +2 >Emitted(56, 13) Source(44, 21) + SourceIndex(0) name (Sample.Thing) +3 >Emitted(56, 20) Source(44, 28) + SourceIndex(0) name (Sample.Thing) +4 >Emitted(56, 23) Source(44, 21) + SourceIndex(0) name (Sample.Thing) +5 >Emitted(56, 36) Source(64, 2) + SourceIndex(0) name (Sample.Thing) +6 >Emitted(56, 37) Source(64, 2) + SourceIndex(0) name (Sample.Thing) --- >>> })(Sample.Thing || (Sample.Thing = {})); 1->^^^^ @@ -1089,13 +1101,13 @@ sourceFile:recursiveClassReferenceTest.ts > > } > } -1->Emitted(56, 5) Source(64, 1) + SourceIndex(0) name (Sample.Thing) -2 >Emitted(56, 6) Source(64, 2) + SourceIndex(0) name (Sample.Thing) -3 >Emitted(56, 8) Source(44, 15) + SourceIndex(0) name (Sample) -4 >Emitted(56, 20) Source(44, 20) + SourceIndex(0) name (Sample) -5 >Emitted(56, 25) Source(44, 15) + SourceIndex(0) name (Sample) -6 >Emitted(56, 37) Source(44, 20) + SourceIndex(0) name (Sample) -7 >Emitted(56, 45) Source(64, 2) + SourceIndex(0) name (Sample) +1->Emitted(57, 5) Source(64, 1) + SourceIndex(0) name (Sample.Thing) +2 >Emitted(57, 6) Source(64, 2) + SourceIndex(0) name (Sample.Thing) +3 >Emitted(57, 8) Source(44, 15) + SourceIndex(0) name (Sample) +4 >Emitted(57, 20) Source(44, 20) + SourceIndex(0) name (Sample) +5 >Emitted(57, 25) Source(44, 15) + SourceIndex(0) name (Sample) +6 >Emitted(57, 37) Source(44, 20) + SourceIndex(0) name (Sample) +7 >Emitted(57, 45) Source(64, 2) + SourceIndex(0) name (Sample) --- >>> var Thing = Sample.Thing; 1 >^^^^ @@ -1130,12 +1142,12 @@ sourceFile:recursiveClassReferenceTest.ts > } > } 6 > -1 >Emitted(57, 5) Source(44, 15) + SourceIndex(0) name (Sample) -2 >Emitted(57, 9) Source(44, 15) + SourceIndex(0) name (Sample) -3 >Emitted(57, 14) Source(44, 20) + SourceIndex(0) name (Sample) -4 >Emitted(57, 17) Source(44, 15) + SourceIndex(0) name (Sample) -5 >Emitted(57, 29) Source(64, 2) + SourceIndex(0) name (Sample) -6 >Emitted(57, 30) Source(64, 2) + SourceIndex(0) name (Sample) +1 >Emitted(58, 5) Source(44, 15) + SourceIndex(0) name (Sample) +2 >Emitted(58, 9) Source(44, 15) + SourceIndex(0) name (Sample) +3 >Emitted(58, 14) Source(44, 20) + SourceIndex(0) name (Sample) +4 >Emitted(58, 17) Source(44, 15) + SourceIndex(0) name (Sample) +5 >Emitted(58, 29) Source(64, 2) + SourceIndex(0) name (Sample) +6 >Emitted(58, 30) Source(64, 2) + SourceIndex(0) name (Sample) --- >>>})(Sample || (Sample = {})); 1 > @@ -1173,13 +1185,13 @@ sourceFile:recursiveClassReferenceTest.ts > > } > } -1 >Emitted(58, 1) Source(64, 1) + SourceIndex(0) name (Sample) -2 >Emitted(58, 2) Source(64, 2) + SourceIndex(0) name (Sample) -3 >Emitted(58, 4) Source(44, 8) + SourceIndex(0) -4 >Emitted(58, 10) Source(44, 14) + SourceIndex(0) -5 >Emitted(58, 15) Source(44, 8) + SourceIndex(0) -6 >Emitted(58, 21) Source(44, 14) + SourceIndex(0) -7 >Emitted(58, 29) Source(64, 2) + SourceIndex(0) +1 >Emitted(59, 1) Source(64, 1) + SourceIndex(0) name (Sample) +2 >Emitted(59, 2) Source(64, 2) + SourceIndex(0) name (Sample) +3 >Emitted(59, 4) Source(44, 8) + SourceIndex(0) +4 >Emitted(59, 10) Source(44, 14) + SourceIndex(0) +5 >Emitted(59, 15) Source(44, 8) + SourceIndex(0) +6 >Emitted(59, 21) Source(44, 14) + SourceIndex(0) +7 >Emitted(59, 29) Source(64, 2) + SourceIndex(0) --- >>>var AbstractMode = (function () { 1-> @@ -1192,9 +1204,9 @@ sourceFile:recursiveClassReferenceTest.ts > 2 >class 3 > AbstractMode -1->Emitted(59, 1) Source(67, 1) + SourceIndex(0) -2 >Emitted(59, 5) Source(67, 7) + SourceIndex(0) -3 >Emitted(59, 17) Source(67, 19) + SourceIndex(0) +1->Emitted(60, 1) Source(67, 1) + SourceIndex(0) +2 >Emitted(60, 5) Source(67, 7) + SourceIndex(0) +3 >Emitted(60, 17) Source(67, 19) + SourceIndex(0) --- >>> function AbstractMode() { 1->^^^^ @@ -1203,9 +1215,9 @@ sourceFile:recursiveClassReferenceTest.ts 1-> 2 > class 3 > AbstractMode -1->Emitted(60, 5) Source(67, 1) + SourceIndex(0) name (AbstractMode) -2 >Emitted(60, 14) Source(67, 7) + SourceIndex(0) name (AbstractMode) -3 >Emitted(60, 26) Source(67, 19) + SourceIndex(0) name (AbstractMode) +1->Emitted(61, 5) Source(67, 1) + SourceIndex(0) name (AbstractMode) +2 >Emitted(61, 14) Source(67, 7) + SourceIndex(0) name (AbstractMode) +3 >Emitted(61, 26) Source(67, 19) + SourceIndex(0) name (AbstractMode) --- >>> } 1 >^^^^ @@ -1213,8 +1225,8 @@ sourceFile:recursiveClassReferenceTest.ts 3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > implements IMode { public getInitialState(): IState { return null;} 2 > } -1 >Emitted(61, 5) Source(67, 88) + SourceIndex(0) name (AbstractMode.constructor) -2 >Emitted(61, 6) Source(67, 89) + SourceIndex(0) name (AbstractMode.constructor) +1 >Emitted(62, 5) Source(67, 88) + SourceIndex(0) name (AbstractMode.constructor) +2 >Emitted(62, 6) Source(67, 89) + SourceIndex(0) name (AbstractMode.constructor) --- >>> AbstractMode.prototype.getInitialState = function () { 1->^^^^ @@ -1223,9 +1235,9 @@ sourceFile:recursiveClassReferenceTest.ts 1-> 2 > getInitialState 3 > -1->Emitted(62, 5) Source(67, 46) + SourceIndex(0) name (AbstractMode) -2 >Emitted(62, 43) Source(67, 61) + SourceIndex(0) name (AbstractMode) -3 >Emitted(62, 46) Source(67, 39) + SourceIndex(0) name (AbstractMode) +1->Emitted(63, 5) Source(67, 46) + SourceIndex(0) name (AbstractMode) +2 >Emitted(63, 43) Source(67, 61) + SourceIndex(0) name (AbstractMode) +3 >Emitted(63, 46) Source(67, 39) + SourceIndex(0) name (AbstractMode) --- >>> return null; 1 >^^^^^^^^ @@ -1238,11 +1250,11 @@ sourceFile:recursiveClassReferenceTest.ts 3 > 4 > null 5 > ; -1 >Emitted(63, 9) Source(67, 74) + SourceIndex(0) name (AbstractMode.getInitialState) -2 >Emitted(63, 15) Source(67, 80) + SourceIndex(0) name (AbstractMode.getInitialState) -3 >Emitted(63, 16) Source(67, 81) + SourceIndex(0) name (AbstractMode.getInitialState) -4 >Emitted(63, 20) Source(67, 85) + SourceIndex(0) name (AbstractMode.getInitialState) -5 >Emitted(63, 21) Source(67, 86) + SourceIndex(0) name (AbstractMode.getInitialState) +1 >Emitted(64, 9) Source(67, 74) + SourceIndex(0) name (AbstractMode.getInitialState) +2 >Emitted(64, 15) Source(67, 80) + SourceIndex(0) name (AbstractMode.getInitialState) +3 >Emitted(64, 16) Source(67, 81) + SourceIndex(0) name (AbstractMode.getInitialState) +4 >Emitted(64, 20) Source(67, 85) + SourceIndex(0) name (AbstractMode.getInitialState) +5 >Emitted(64, 21) Source(67, 86) + SourceIndex(0) name (AbstractMode.getInitialState) --- >>> }; 1 >^^^^ @@ -1250,16 +1262,16 @@ sourceFile:recursiveClassReferenceTest.ts 3 > ^^^^^^^^^^^^^^^^^^^^-> 1 > 2 > } -1 >Emitted(64, 5) Source(67, 86) + SourceIndex(0) name (AbstractMode.getInitialState) -2 >Emitted(64, 6) Source(67, 87) + SourceIndex(0) name (AbstractMode.getInitialState) +1 >Emitted(65, 5) Source(67, 86) + SourceIndex(0) name (AbstractMode.getInitialState) +2 >Emitted(65, 6) Source(67, 87) + SourceIndex(0) name (AbstractMode.getInitialState) --- >>> return AbstractMode; 1->^^^^ 2 > ^^^^^^^^^^^^^^^^^^^ 1-> 2 > } -1->Emitted(65, 5) Source(67, 88) + SourceIndex(0) name (AbstractMode) -2 >Emitted(65, 24) Source(67, 89) + SourceIndex(0) name (AbstractMode) +1->Emitted(66, 5) Source(67, 88) + SourceIndex(0) name (AbstractMode) +2 >Emitted(66, 24) Source(67, 89) + SourceIndex(0) name (AbstractMode) --- >>>})(); 1 > @@ -1271,10 +1283,10 @@ sourceFile:recursiveClassReferenceTest.ts 2 >} 3 > 4 > class AbstractMode implements IMode { public getInitialState(): IState { return null;} } -1 >Emitted(66, 1) Source(67, 88) + SourceIndex(0) name (AbstractMode) -2 >Emitted(66, 2) Source(67, 89) + SourceIndex(0) name (AbstractMode) -3 >Emitted(66, 2) Source(67, 1) + SourceIndex(0) -4 >Emitted(66, 6) Source(67, 89) + SourceIndex(0) +1 >Emitted(67, 1) Source(67, 88) + SourceIndex(0) name (AbstractMode) +2 >Emitted(67, 2) Source(67, 89) + SourceIndex(0) name (AbstractMode) +3 >Emitted(67, 2) Source(67, 1) + SourceIndex(0) +4 >Emitted(67, 6) Source(67, 89) + SourceIndex(0) --- >>>var Sample; 1-> @@ -1319,10 +1331,10 @@ sourceFile:recursiveClassReferenceTest.ts > > } > } -1->Emitted(67, 1) Source(76, 1) + SourceIndex(0) -2 >Emitted(67, 5) Source(76, 8) + SourceIndex(0) -3 >Emitted(67, 11) Source(76, 14) + SourceIndex(0) -4 >Emitted(67, 12) Source(100, 2) + SourceIndex(0) +1->Emitted(68, 1) Source(76, 1) + SourceIndex(0) +2 >Emitted(68, 5) Source(76, 8) + SourceIndex(0) +3 >Emitted(68, 11) Source(76, 14) + SourceIndex(0) +4 >Emitted(68, 12) Source(100, 2) + SourceIndex(0) --- >>>(function (Sample) { 1-> @@ -1332,9 +1344,9 @@ sourceFile:recursiveClassReferenceTest.ts 1-> 2 >module 3 > Sample -1->Emitted(68, 1) Source(76, 1) + SourceIndex(0) -2 >Emitted(68, 12) Source(76, 8) + SourceIndex(0) -3 >Emitted(68, 18) Source(76, 14) + SourceIndex(0) +1->Emitted(69, 1) Source(76, 1) + SourceIndex(0) +2 >Emitted(69, 12) Source(76, 8) + SourceIndex(0) +3 >Emitted(69, 18) Source(76, 14) + SourceIndex(0) --- >>> (function (Thing) { 1->^^^^ @@ -1344,9 +1356,9 @@ sourceFile:recursiveClassReferenceTest.ts 1->. 2 > 3 > Thing -1->Emitted(69, 5) Source(76, 15) + SourceIndex(0) name (Sample) -2 >Emitted(69, 16) Source(76, 15) + SourceIndex(0) name (Sample) -3 >Emitted(69, 21) Source(76, 20) + SourceIndex(0) name (Sample) +1->Emitted(70, 5) Source(76, 15) + SourceIndex(0) name (Sample) +2 >Emitted(70, 16) Source(76, 15) + SourceIndex(0) name (Sample) +3 >Emitted(70, 21) Source(76, 20) + SourceIndex(0) name (Sample) --- >>> (function (Languages) { 1->^^^^^^^^ @@ -1356,9 +1368,9 @@ sourceFile:recursiveClassReferenceTest.ts 1->. 2 > 3 > Languages -1->Emitted(70, 9) Source(76, 21) + SourceIndex(0) name (Sample.Thing) -2 >Emitted(70, 20) Source(76, 21) + SourceIndex(0) name (Sample.Thing) -3 >Emitted(70, 29) Source(76, 30) + SourceIndex(0) name (Sample.Thing) +1->Emitted(71, 9) Source(76, 21) + SourceIndex(0) name (Sample.Thing) +2 >Emitted(71, 20) Source(76, 21) + SourceIndex(0) name (Sample.Thing) +3 >Emitted(71, 29) Source(76, 30) + SourceIndex(0) name (Sample.Thing) --- >>> (function (PlainText) { 1->^^^^^^^^^^^^ @@ -1372,11 +1384,11 @@ sourceFile:recursiveClassReferenceTest.ts 3 > PlainText 4 > 5 > { -1->Emitted(71, 13) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) -2 >Emitted(71, 24) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) -3 >Emitted(71, 33) Source(76, 40) + SourceIndex(0) name (Sample.Thing.Languages) -4 >Emitted(71, 35) Source(76, 41) + SourceIndex(0) name (Sample.Thing.Languages) -5 >Emitted(71, 36) Source(76, 42) + SourceIndex(0) name (Sample.Thing.Languages) +1->Emitted(72, 13) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) +2 >Emitted(72, 24) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) +3 >Emitted(72, 33) Source(76, 40) + SourceIndex(0) name (Sample.Thing.Languages) +4 >Emitted(72, 35) Source(76, 41) + SourceIndex(0) name (Sample.Thing.Languages) +5 >Emitted(72, 36) Source(76, 42) + SourceIndex(0) name (Sample.Thing.Languages) --- >>> var State = (function () { 1->^^^^^^^^^^^^^^^^ @@ -1388,9 +1400,9 @@ sourceFile:recursiveClassReferenceTest.ts > 2 > export class 3 > State -1->Emitted(72, 17) Source(78, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -2 >Emitted(72, 21) Source(78, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -3 >Emitted(72, 26) Source(78, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +1->Emitted(73, 17) Source(78, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +2 >Emitted(73, 21) Source(78, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +3 >Emitted(73, 26) Source(78, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) --- >>> function State(mode) { 1->^^^^^^^^^^^^^^^^^^^^ @@ -1406,11 +1418,11 @@ sourceFile:recursiveClassReferenceTest.ts 4 > implements IState { > constructor(private 5 > mode: IMode -1->Emitted(73, 21) Source(79, 9) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -2 >Emitted(73, 30) Source(78, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -3 >Emitted(73, 35) Source(78, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -4 >Emitted(73, 36) Source(79, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -5 >Emitted(73, 40) Source(79, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +1->Emitted(74, 21) Source(79, 9) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +2 >Emitted(74, 30) Source(78, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +3 >Emitted(74, 35) Source(78, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +4 >Emitted(74, 36) Source(79, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +5 >Emitted(74, 40) Source(79, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) --- >>> this.mode = mode; 1->^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1423,11 +1435,11 @@ sourceFile:recursiveClassReferenceTest.ts 3 > 4 > mode 5 > : IMode -1->Emitted(74, 25) Source(79, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) -2 >Emitted(74, 34) Source(79, 33) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) -3 >Emitted(74, 37) Source(79, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) -4 >Emitted(74, 41) Source(79, 33) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) -5 >Emitted(74, 42) Source(79, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) +1->Emitted(75, 25) Source(79, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) +2 >Emitted(75, 34) Source(79, 33) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) +3 >Emitted(75, 37) Source(79, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) +4 >Emitted(75, 41) Source(79, 33) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) +5 >Emitted(75, 42) Source(79, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) --- >>> } 1 >^^^^^^^^^^^^^^^^^^^^ @@ -1435,8 +1447,8 @@ sourceFile:recursiveClassReferenceTest.ts 3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 >) { 2 > } -1 >Emitted(75, 21) Source(79, 44) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) -2 >Emitted(75, 22) Source(79, 45) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) +1 >Emitted(76, 21) Source(79, 44) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) +2 >Emitted(76, 22) Source(79, 45) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.constructor) --- >>> State.prototype.clone = function () { 1->^^^^^^^^^^^^^^^^^^^^ @@ -1446,9 +1458,9 @@ sourceFile:recursiveClassReferenceTest.ts > public 2 > clone 3 > -1->Emitted(76, 21) Source(80, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -2 >Emitted(76, 42) Source(80, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -3 >Emitted(76, 45) Source(80, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +1->Emitted(77, 21) Source(80, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +2 >Emitted(77, 42) Source(80, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +3 >Emitted(77, 45) Source(80, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) --- >>> return this; 1 >^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1462,11 +1474,11 @@ sourceFile:recursiveClassReferenceTest.ts 3 > 4 > this 5 > ; -1 >Emitted(77, 25) Source(81, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) -2 >Emitted(77, 31) Source(81, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) -3 >Emitted(77, 32) Source(81, 11) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) -4 >Emitted(77, 36) Source(81, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) -5 >Emitted(77, 37) Source(81, 16) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) +1 >Emitted(78, 25) Source(81, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) +2 >Emitted(78, 31) Source(81, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) +3 >Emitted(78, 32) Source(81, 11) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) +4 >Emitted(78, 36) Source(81, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) +5 >Emitted(78, 37) Source(81, 16) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) --- >>> }; 1 >^^^^^^^^^^^^^^^^^^^^ @@ -1475,8 +1487,8 @@ sourceFile:recursiveClassReferenceTest.ts 1 > > 2 > } -1 >Emitted(78, 21) Source(82, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) -2 >Emitted(78, 22) Source(82, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) +1 >Emitted(79, 21) Source(82, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) +2 >Emitted(79, 22) Source(82, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.clone) --- >>> State.prototype.equals = function (other) { 1->^^^^^^^^^^^^^^^^^^^^ @@ -1491,11 +1503,11 @@ sourceFile:recursiveClassReferenceTest.ts 3 > 4 > public equals( 5 > other:IState -1->Emitted(79, 21) Source(84, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -2 >Emitted(79, 43) Source(84, 16) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -3 >Emitted(79, 46) Source(84, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -4 >Emitted(79, 56) Source(84, 17) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -5 >Emitted(79, 61) Source(84, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +1->Emitted(80, 21) Source(84, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +2 >Emitted(80, 43) Source(84, 16) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +3 >Emitted(80, 46) Source(84, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +4 >Emitted(80, 56) Source(84, 17) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +5 >Emitted(80, 61) Source(84, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) --- >>> return this === other; 1 >^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1513,13 +1525,13 @@ sourceFile:recursiveClassReferenceTest.ts 5 > === 6 > other 7 > ; -1 >Emitted(80, 25) Source(85, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) -2 >Emitted(80, 31) Source(85, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) -3 >Emitted(80, 32) Source(85, 11) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) -4 >Emitted(80, 36) Source(85, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) -5 >Emitted(80, 41) Source(85, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) -6 >Emitted(80, 46) Source(85, 25) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) -7 >Emitted(80, 47) Source(85, 26) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +1 >Emitted(81, 25) Source(85, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +2 >Emitted(81, 31) Source(85, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +3 >Emitted(81, 32) Source(85, 11) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +4 >Emitted(81, 36) Source(85, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +5 >Emitted(81, 41) Source(85, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +6 >Emitted(81, 46) Source(85, 25) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +7 >Emitted(81, 47) Source(85, 26) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) --- >>> }; 1 >^^^^^^^^^^^^^^^^^^^^ @@ -1528,8 +1540,8 @@ sourceFile:recursiveClassReferenceTest.ts 1 > > 2 > } -1 >Emitted(81, 21) Source(86, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) -2 >Emitted(81, 22) Source(86, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +1 >Emitted(82, 21) Source(86, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) +2 >Emitted(82, 22) Source(86, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.equals) --- >>> State.prototype.getMode = function () { 1->^^^^^^^^^^^^^^^^^^^^ @@ -1540,9 +1552,9 @@ sourceFile:recursiveClassReferenceTest.ts > public 2 > getMode 3 > -1->Emitted(82, 21) Source(88, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -2 >Emitted(82, 44) Source(88, 17) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -3 >Emitted(82, 47) Source(88, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +1->Emitted(83, 21) Source(88, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +2 >Emitted(83, 44) Source(88, 17) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +3 >Emitted(83, 47) Source(88, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) --- >>> return mode; 1 >^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1555,11 +1567,11 @@ sourceFile:recursiveClassReferenceTest.ts 3 > 4 > mode 5 > ; -1 >Emitted(83, 25) Source(88, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) -2 >Emitted(83, 31) Source(88, 35) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) -3 >Emitted(83, 32) Source(88, 36) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) -4 >Emitted(83, 36) Source(88, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) -5 >Emitted(83, 37) Source(88, 41) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) +1 >Emitted(84, 25) Source(88, 29) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) +2 >Emitted(84, 31) Source(88, 35) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) +3 >Emitted(84, 32) Source(88, 36) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) +4 >Emitted(84, 36) Source(88, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) +5 >Emitted(84, 37) Source(88, 41) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) --- >>> }; 1 >^^^^^^^^^^^^^^^^^^^^ @@ -1567,8 +1579,8 @@ sourceFile:recursiveClassReferenceTest.ts 3 > ^^^^^^^^^^^^^-> 1 > 2 > } -1 >Emitted(84, 21) Source(88, 42) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) -2 >Emitted(84, 22) Source(88, 43) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) +1 >Emitted(85, 21) Source(88, 42) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) +2 >Emitted(85, 22) Source(88, 43) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State.getMode) --- >>> return State; 1->^^^^^^^^^^^^^^^^^^^^ @@ -1576,8 +1588,8 @@ sourceFile:recursiveClassReferenceTest.ts 1-> > 2 > } -1->Emitted(85, 21) Source(89, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -2 >Emitted(85, 33) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +1->Emitted(86, 21) Source(89, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +2 >Emitted(86, 33) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) --- >>> })(); 1 >^^^^^^^^^^^^^^^^ @@ -1600,10 +1612,10 @@ sourceFile:recursiveClassReferenceTest.ts > > public getMode(): IMode { return mode; } > } -1 >Emitted(86, 17) Source(89, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -2 >Emitted(86, 18) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) -3 >Emitted(86, 18) Source(78, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -4 >Emitted(86, 22) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +1 >Emitted(87, 17) Source(89, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +2 >Emitted(87, 18) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.State) +3 >Emitted(87, 18) Source(78, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +4 >Emitted(87, 22) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) --- >>> PlainText.State = State; 1->^^^^^^^^^^^^^^^^ @@ -1628,11 +1640,11 @@ sourceFile:recursiveClassReferenceTest.ts > public getMode(): IMode { return mode; } > } 5 > -1->Emitted(87, 17) Source(78, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -2 >Emitted(87, 32) Source(78, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -3 >Emitted(87, 35) Source(78, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -4 >Emitted(87, 40) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -5 >Emitted(87, 41) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +1->Emitted(88, 17) Source(78, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +2 >Emitted(88, 32) Source(78, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +3 >Emitted(88, 35) Source(78, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +4 >Emitted(88, 40) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +5 >Emitted(88, 41) Source(89, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) --- >>> var Mode = (function (_super) { 1->^^^^^^^^^^^^^^^^ @@ -1644,9 +1656,9 @@ sourceFile:recursiveClassReferenceTest.ts > 2 > export class 3 > Mode -1->Emitted(88, 17) Source(91, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -2 >Emitted(88, 21) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -3 >Emitted(88, 25) Source(91, 19) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +1->Emitted(89, 17) Source(91, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +2 >Emitted(89, 21) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +3 >Emitted(89, 25) Source(91, 19) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) --- >>> __extends(Mode, _super); 1->^^^^^^^^^^^^^^^^^^^^ @@ -1657,10 +1669,10 @@ sourceFile:recursiveClassReferenceTest.ts 2 > 3 > Mode 4 > extends AbstractMode -1->Emitted(89, 21) Source(91, 28) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -2 >Emitted(89, 31) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -3 >Emitted(89, 35) Source(91, 19) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -4 >Emitted(89, 45) Source(91, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +1->Emitted(90, 21) Source(91, 28) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +2 >Emitted(90, 31) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +3 >Emitted(90, 35) Source(91, 19) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +4 >Emitted(90, 45) Source(91, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) --- >>> function Mode() { 1 >^^^^^^^^^^^^^^^^^^^^ @@ -1670,17 +1682,17 @@ sourceFile:recursiveClassReferenceTest.ts 1 > 2 > export class 3 > Mode -1 >Emitted(90, 21) Source(91, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -2 >Emitted(90, 30) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -3 >Emitted(90, 34) Source(91, 19) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +1 >Emitted(91, 21) Source(91, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +2 >Emitted(91, 30) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +3 >Emitted(91, 34) Source(91, 19) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) --- >>> _super.apply(this, arguments); 1->^^^^^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1-> extends 2 > AbstractMode -1->Emitted(91, 25) Source(91, 28) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.constructor) -2 >Emitted(91, 55) Source(91, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.constructor) +1->Emitted(92, 25) Source(91, 28) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.constructor) +2 >Emitted(92, 55) Source(91, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.constructor) --- >>> } 1 >^^^^^^^^^^^^^^^^^^^^ @@ -1696,8 +1708,8 @@ sourceFile:recursiveClassReferenceTest.ts > > 2 > } -1 >Emitted(92, 21) Source(99, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.constructor) -2 >Emitted(92, 22) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.constructor) +1 >Emitted(93, 21) Source(99, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.constructor) +2 >Emitted(93, 22) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.constructor) --- >>> // scenario 2 1->^^^^^^^^^^^^^^^^^^^^ @@ -1705,8 +1717,8 @@ sourceFile:recursiveClassReferenceTest.ts 3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> 2 > // scenario 2 -1->Emitted(93, 21) Source(93, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -2 >Emitted(93, 34) Source(93, 16) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +1->Emitted(94, 21) Source(93, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +2 >Emitted(94, 34) Source(93, 16) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) --- >>> Mode.prototype.getInitialState = function () { 1->^^^^^^^^^^^^^^^^^^^^ @@ -1716,9 +1728,9 @@ sourceFile:recursiveClassReferenceTest.ts > public 2 > getInitialState 3 > -1->Emitted(94, 21) Source(94, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -2 >Emitted(94, 51) Source(94, 25) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -3 >Emitted(94, 54) Source(94, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +1->Emitted(95, 21) Source(94, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +2 >Emitted(95, 51) Source(94, 25) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +3 >Emitted(95, 54) Source(94, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) --- >>> return new State(self); 1 >^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1740,15 +1752,15 @@ sourceFile:recursiveClassReferenceTest.ts 7 > self 8 > ) 9 > ; -1 >Emitted(95, 25) Source(95, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -2 >Emitted(95, 31) Source(95, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -3 >Emitted(95, 32) Source(95, 11) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -4 >Emitted(95, 36) Source(95, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -5 >Emitted(95, 41) Source(95, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -6 >Emitted(95, 42) Source(95, 21) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -7 >Emitted(95, 46) Source(95, 25) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -8 >Emitted(95, 47) Source(95, 26) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -9 >Emitted(95, 48) Source(95, 27) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +1 >Emitted(96, 25) Source(95, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +2 >Emitted(96, 31) Source(95, 10) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +3 >Emitted(96, 32) Source(95, 11) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +4 >Emitted(96, 36) Source(95, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +5 >Emitted(96, 41) Source(95, 20) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +6 >Emitted(96, 42) Source(95, 21) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +7 >Emitted(96, 46) Source(95, 25) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +8 >Emitted(96, 47) Source(95, 26) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +9 >Emitted(96, 48) Source(95, 27) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) --- >>> }; 1 >^^^^^^^^^^^^^^^^^^^^ @@ -1757,8 +1769,8 @@ sourceFile:recursiveClassReferenceTest.ts 1 > > 2 > } -1 >Emitted(96, 21) Source(96, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) -2 >Emitted(96, 22) Source(96, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +1 >Emitted(97, 21) Source(96, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) +2 >Emitted(97, 22) Source(96, 4) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode.getInitialState) --- >>> return Mode; 1->^^^^^^^^^^^^^^^^^^^^ @@ -1769,8 +1781,8 @@ sourceFile:recursiveClassReferenceTest.ts > > 2 > } -1->Emitted(97, 21) Source(99, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -2 >Emitted(97, 32) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +1->Emitted(98, 21) Source(99, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +2 >Emitted(98, 32) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) --- >>> })(AbstractMode); 1->^^^^^^^^^^^^^^^^ @@ -1794,12 +1806,12 @@ sourceFile:recursiveClassReferenceTest.ts > > > } -1->Emitted(98, 17) Source(99, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -2 >Emitted(98, 18) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) -3 >Emitted(98, 18) Source(91, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -4 >Emitted(98, 20) Source(91, 28) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -5 >Emitted(98, 32) Source(91, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -6 >Emitted(98, 34) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +1->Emitted(99, 17) Source(99, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +2 >Emitted(99, 18) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText.Mode) +3 >Emitted(99, 18) Source(91, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +4 >Emitted(99, 20) Source(91, 28) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +5 >Emitted(99, 32) Source(91, 40) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +6 >Emitted(99, 34) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) --- >>> PlainText.Mode = Mode; 1->^^^^^^^^^^^^^^^^ @@ -1821,11 +1833,11 @@ sourceFile:recursiveClassReferenceTest.ts > > } 5 > -1->Emitted(99, 17) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -2 >Emitted(99, 31) Source(91, 19) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -3 >Emitted(99, 34) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -4 >Emitted(99, 38) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -5 >Emitted(99, 39) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +1->Emitted(100, 17) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +2 >Emitted(100, 31) Source(91, 19) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +3 >Emitted(100, 34) Source(91, 15) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +4 >Emitted(100, 38) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +5 >Emitted(100, 39) Source(99, 3) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) --- >>> })(Languages.PlainText || (Languages.PlainText = {})); 1->^^^^^^^^^^^^ @@ -1867,13 +1879,13 @@ sourceFile:recursiveClassReferenceTest.ts > > } > } -1->Emitted(100, 13) Source(100, 1) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -2 >Emitted(100, 14) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) -3 >Emitted(100, 16) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) -4 >Emitted(100, 35) Source(76, 40) + SourceIndex(0) name (Sample.Thing.Languages) -5 >Emitted(100, 40) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) -6 >Emitted(100, 59) Source(76, 40) + SourceIndex(0) name (Sample.Thing.Languages) -7 >Emitted(100, 67) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages) +1->Emitted(101, 13) Source(100, 1) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +2 >Emitted(101, 14) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages.PlainText) +3 >Emitted(101, 16) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) +4 >Emitted(101, 35) Source(76, 40) + SourceIndex(0) name (Sample.Thing.Languages) +5 >Emitted(101, 40) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) +6 >Emitted(101, 59) Source(76, 40) + SourceIndex(0) name (Sample.Thing.Languages) +7 >Emitted(101, 67) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages) --- >>> var PlainText = Languages.PlainText; 1 >^^^^^^^^^^^^ @@ -1913,12 +1925,12 @@ sourceFile:recursiveClassReferenceTest.ts > } > } 6 > -1 >Emitted(101, 13) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) -2 >Emitted(101, 17) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) -3 >Emitted(101, 26) Source(76, 40) + SourceIndex(0) name (Sample.Thing.Languages) -4 >Emitted(101, 29) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) -5 >Emitted(101, 48) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages) -6 >Emitted(101, 49) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages) +1 >Emitted(102, 13) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) +2 >Emitted(102, 17) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) +3 >Emitted(102, 26) Source(76, 40) + SourceIndex(0) name (Sample.Thing.Languages) +4 >Emitted(102, 29) Source(76, 31) + SourceIndex(0) name (Sample.Thing.Languages) +5 >Emitted(102, 48) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages) +6 >Emitted(102, 49) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages) --- >>> })(Thing.Languages || (Thing.Languages = {})); 1->^^^^^^^^ @@ -1959,13 +1971,13 @@ sourceFile:recursiveClassReferenceTest.ts > > } > } -1->Emitted(102, 9) Source(100, 1) + SourceIndex(0) name (Sample.Thing.Languages) -2 >Emitted(102, 10) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages) -3 >Emitted(102, 12) Source(76, 21) + SourceIndex(0) name (Sample.Thing) -4 >Emitted(102, 27) Source(76, 30) + SourceIndex(0) name (Sample.Thing) -5 >Emitted(102, 32) Source(76, 21) + SourceIndex(0) name (Sample.Thing) -6 >Emitted(102, 47) Source(76, 30) + SourceIndex(0) name (Sample.Thing) -7 >Emitted(102, 55) Source(100, 2) + SourceIndex(0) name (Sample.Thing) +1->Emitted(103, 9) Source(100, 1) + SourceIndex(0) name (Sample.Thing.Languages) +2 >Emitted(103, 10) Source(100, 2) + SourceIndex(0) name (Sample.Thing.Languages) +3 >Emitted(103, 12) Source(76, 21) + SourceIndex(0) name (Sample.Thing) +4 >Emitted(103, 27) Source(76, 30) + SourceIndex(0) name (Sample.Thing) +5 >Emitted(103, 32) Source(76, 21) + SourceIndex(0) name (Sample.Thing) +6 >Emitted(103, 47) Source(76, 30) + SourceIndex(0) name (Sample.Thing) +7 >Emitted(103, 55) Source(100, 2) + SourceIndex(0) name (Sample.Thing) --- >>> var Languages = Thing.Languages; 1 >^^^^^^^^ @@ -2005,12 +2017,12 @@ sourceFile:recursiveClassReferenceTest.ts > } > } 6 > -1 >Emitted(103, 9) Source(76, 21) + SourceIndex(0) name (Sample.Thing) -2 >Emitted(103, 13) Source(76, 21) + SourceIndex(0) name (Sample.Thing) -3 >Emitted(103, 22) Source(76, 30) + SourceIndex(0) name (Sample.Thing) -4 >Emitted(103, 25) Source(76, 21) + SourceIndex(0) name (Sample.Thing) -5 >Emitted(103, 40) Source(100, 2) + SourceIndex(0) name (Sample.Thing) -6 >Emitted(103, 41) Source(100, 2) + SourceIndex(0) name (Sample.Thing) +1 >Emitted(104, 9) Source(76, 21) + SourceIndex(0) name (Sample.Thing) +2 >Emitted(104, 13) Source(76, 21) + SourceIndex(0) name (Sample.Thing) +3 >Emitted(104, 22) Source(76, 30) + SourceIndex(0) name (Sample.Thing) +4 >Emitted(104, 25) Source(76, 21) + SourceIndex(0) name (Sample.Thing) +5 >Emitted(104, 40) Source(100, 2) + SourceIndex(0) name (Sample.Thing) +6 >Emitted(104, 41) Source(100, 2) + SourceIndex(0) name (Sample.Thing) --- >>> })(Sample.Thing || (Sample.Thing = {})); 1->^^^^ @@ -2051,13 +2063,13 @@ sourceFile:recursiveClassReferenceTest.ts > > } > } -1->Emitted(104, 5) Source(100, 1) + SourceIndex(0) name (Sample.Thing) -2 >Emitted(104, 6) Source(100, 2) + SourceIndex(0) name (Sample.Thing) -3 >Emitted(104, 8) Source(76, 15) + SourceIndex(0) name (Sample) -4 >Emitted(104, 20) Source(76, 20) + SourceIndex(0) name (Sample) -5 >Emitted(104, 25) Source(76, 15) + SourceIndex(0) name (Sample) -6 >Emitted(104, 37) Source(76, 20) + SourceIndex(0) name (Sample) -7 >Emitted(104, 45) Source(100, 2) + SourceIndex(0) name (Sample) +1->Emitted(105, 5) Source(100, 1) + SourceIndex(0) name (Sample.Thing) +2 >Emitted(105, 6) Source(100, 2) + SourceIndex(0) name (Sample.Thing) +3 >Emitted(105, 8) Source(76, 15) + SourceIndex(0) name (Sample) +4 >Emitted(105, 20) Source(76, 20) + SourceIndex(0) name (Sample) +5 >Emitted(105, 25) Source(76, 15) + SourceIndex(0) name (Sample) +6 >Emitted(105, 37) Source(76, 20) + SourceIndex(0) name (Sample) +7 >Emitted(105, 45) Source(100, 2) + SourceIndex(0) name (Sample) --- >>> var Thing = Sample.Thing; 1 >^^^^ @@ -2096,12 +2108,12 @@ sourceFile:recursiveClassReferenceTest.ts > } > } 6 > -1 >Emitted(105, 5) Source(76, 15) + SourceIndex(0) name (Sample) -2 >Emitted(105, 9) Source(76, 15) + SourceIndex(0) name (Sample) -3 >Emitted(105, 14) Source(76, 20) + SourceIndex(0) name (Sample) -4 >Emitted(105, 17) Source(76, 15) + SourceIndex(0) name (Sample) -5 >Emitted(105, 29) Source(100, 2) + SourceIndex(0) name (Sample) -6 >Emitted(105, 30) Source(100, 2) + SourceIndex(0) name (Sample) +1 >Emitted(106, 5) Source(76, 15) + SourceIndex(0) name (Sample) +2 >Emitted(106, 9) Source(76, 15) + SourceIndex(0) name (Sample) +3 >Emitted(106, 14) Source(76, 20) + SourceIndex(0) name (Sample) +4 >Emitted(106, 17) Source(76, 15) + SourceIndex(0) name (Sample) +5 >Emitted(106, 29) Source(100, 2) + SourceIndex(0) name (Sample) +6 >Emitted(106, 30) Source(100, 2) + SourceIndex(0) name (Sample) --- >>>})(Sample || (Sample = {})); 1 > @@ -2143,12 +2155,12 @@ sourceFile:recursiveClassReferenceTest.ts > > } > } -1 >Emitted(106, 1) Source(100, 1) + SourceIndex(0) name (Sample) -2 >Emitted(106, 2) Source(100, 2) + SourceIndex(0) name (Sample) -3 >Emitted(106, 4) Source(76, 8) + SourceIndex(0) -4 >Emitted(106, 10) Source(76, 14) + SourceIndex(0) -5 >Emitted(106, 15) Source(76, 8) + SourceIndex(0) -6 >Emitted(106, 21) Source(76, 14) + SourceIndex(0) -7 >Emitted(106, 29) Source(100, 2) + SourceIndex(0) +1 >Emitted(107, 1) Source(100, 1) + SourceIndex(0) name (Sample) +2 >Emitted(107, 2) Source(100, 2) + SourceIndex(0) name (Sample) +3 >Emitted(107, 4) Source(76, 8) + SourceIndex(0) +4 >Emitted(107, 10) Source(76, 14) + SourceIndex(0) +5 >Emitted(107, 15) Source(76, 8) + SourceIndex(0) +6 >Emitted(107, 21) Source(76, 14) + SourceIndex(0) +7 >Emitted(107, 29) Source(100, 2) + SourceIndex(0) --- >>>//# sourceMappingURL=recursiveClassReferenceTest.js.map \ No newline at end of file diff --git a/tests/baselines/reference/recursiveFunctionTypes.js b/tests/baselines/reference/recursiveFunctionTypes.js index 11bd97201e4..6f10ef99080 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.js +++ b/tests/baselines/reference/recursiveFunctionTypes.js @@ -69,18 +69,18 @@ var C = (function () { }; return C; })(); -C.g(3); +C.g(3); // error var f4; -f4 = 3; +f4 = 3; // error function f5() { return f5; } function f6(a) { return f6; } -f6("", 3); -f6(""); -f6(); -f7("", 3); -f7(""); -f7(); +f6("", 3); // error (arity mismatch) +f6(""); // ok (function takes an any param) +f6(); // ok +f7("", 3); // error (arity mismatch) +f7(""); // ok (function takes an any param) +f7(); // ok diff --git a/tests/baselines/reference/recursiveNamedLambdaCall.js b/tests/baselines/reference/recursiveNamedLambdaCall.js index e44312aec86..8de5f950103 100644 --- a/tests/baselines/reference/recursiveNamedLambdaCall.js +++ b/tests/baselines/reference/recursiveNamedLambdaCall.js @@ -30,6 +30,7 @@ var promise = function (obj) { catch (e) { return setTimeout(doScrollCheck, 50); } + // detach all dom ready events detach(); } })(); diff --git a/tests/baselines/reference/restParameterAssignmentCompatibility.js b/tests/baselines/reference/restParameterAssignmentCompatibility.js index 6608d195f9f..62c0204c749 100644 --- a/tests/baselines/reference/restParameterAssignmentCompatibility.js +++ b/tests/baselines/reference/restParameterAssignmentCompatibility.js @@ -47,7 +47,9 @@ var S = (function () { })(); var t; var s; -t = s; +// M is a non - specialized call or construct signature and S' contains a call or construct signature N where, +// the number of non-optional parameters in N is less than or equal to the total number of parameters in M, +t = s; // Should be valid (rest params correspond to an infinite expansion of parameters) var T1 = (function () { function T1() { } @@ -56,4 +58,5 @@ var T1 = (function () { return T1; })(); var t1; -t1 = s; +// When comparing call or construct signatures, parameter names are ignored and rest parameters correspond to an unbounded expansion of optional parameters of the rest parameter element type. +t1 = s; // Similar to above, but optionality does not matter here. diff --git a/tests/baselines/reference/restParamsWithNonRestParams.js b/tests/baselines/reference/restParamsWithNonRestParams.js index c6efa140829..6b0caa72394 100644 --- a/tests/baselines/reference/restParamsWithNonRestParams.js +++ b/tests/baselines/reference/restParamsWithNonRestParams.js @@ -13,18 +13,18 @@ function foo() { b[_i - 0] = arguments[_i]; } } -foo(); +foo(); // ok function foo2(a) { var b = []; for (var _i = 1; _i < arguments.length; _i++) { b[_i - 1] = arguments[_i]; } } -foo2(); +foo2(); // should be an error function foo3(a) { var b = []; for (var _i = 1; _i < arguments.length; _i++) { b[_i - 1] = arguments[_i]; } } -foo3(); +foo3(); // error but shouldn't be diff --git a/tests/baselines/reference/reverseInferenceInContextualInstantiation.js b/tests/baselines/reference/reverseInferenceInContextualInstantiation.js index 5e3856b2429..7108029ac54 100644 --- a/tests/baselines/reference/reverseInferenceInContextualInstantiation.js +++ b/tests/baselines/reference/reverseInferenceInContextualInstantiation.js @@ -9,4 +9,4 @@ function compare(a, b) { return 0; } var x; -x.sort(compare); +x.sort(compare); // Error, but shouldn't be diff --git a/tests/baselines/reference/scannerS7.2_A1.5_T2.js b/tests/baselines/reference/scannerS7.2_A1.5_T2.js index 0100584d7a2..7bf3c424528 100644 --- a/tests/baselines/reference/scannerS7.2_A1.5_T2.js +++ b/tests/baselines/reference/scannerS7.2_A1.5_T2.js @@ -25,6 +25,15 @@ if (x !== 1) { //// [scannerS7.2_A1.5_T2.js] +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/** + * NO-BREAK SPACE (U+00A0) between any two tokens is allowed + * + * @path ch07/7.2/S7.2_A1.5_T2.js + * @description Insert real NO-BREAK SPACE between tokens of var x=1 + */ +//CHECK#1 eval("\u00A0var x\u00A0= 1\u00A0"); if (x !== 1) { $ERROR('#1: eval("\\u00A0var x\\u00A0= 1\\u00A0"); x === 1. Actual: ' + (x)); diff --git a/tests/baselines/reference/scopeCheckInsidePublicMethod1.js b/tests/baselines/reference/scopeCheckInsidePublicMethod1.js index 1d6bdffe610..b554cb1a0de 100644 --- a/tests/baselines/reference/scopeCheckInsidePublicMethod1.js +++ b/tests/baselines/reference/scopeCheckInsidePublicMethod1.js @@ -11,7 +11,7 @@ var C = (function () { function C() { } C.prototype.a = function () { - s = 1; + s = 1; // ERR }; return C; })(); diff --git a/tests/baselines/reference/scopeCheckInsideStaticMethod1.js b/tests/baselines/reference/scopeCheckInsideStaticMethod1.js index 26039b42d45..0eb8349c740 100644 --- a/tests/baselines/reference/scopeCheckInsideStaticMethod1.js +++ b/tests/baselines/reference/scopeCheckInsideStaticMethod1.js @@ -15,9 +15,9 @@ var C = (function () { function C() { } C.b = function () { - v = 1; + v = 1; // ERR C.s = 1; - this.p = 1; + this.p = 1; // ERR }; return C; })(); diff --git a/tests/baselines/reference/specializedSignatureAsCallbackParameter1.js b/tests/baselines/reference/specializedSignatureAsCallbackParameter1.js index 3ea4e3ba9bb..1607f730e42 100644 --- a/tests/baselines/reference/specializedSignatureAsCallbackParameter1.js +++ b/tests/baselines/reference/specializedSignatureAsCallbackParameter1.js @@ -12,5 +12,6 @@ x3(1, (x: 'hm') => 1); function x3(a, cb) { cb(a); } +// both are errors x3(1, function (x) { return 1; }); x3(1, function (x) { return 1; }); diff --git a/tests/baselines/reference/staticInheritance.js b/tests/baselines/reference/staticInheritance.js index 5744dae52a2..dfe39119d32 100644 --- a/tests/baselines/reference/staticInheritance.js +++ b/tests/baselines/reference/staticInheritance.js @@ -35,4 +35,4 @@ var B = (function (_super) { } return B; })(A); -doThing(B); +doThing(B); //OK diff --git a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js index 7f06aa0b9f1..062e252b393 100644 --- a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js +++ b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js @@ -22,9 +22,9 @@ var C = (function () { }; C.bar = function (x) { C.bar = function () { - }; - C.bar = function (x) { return x; }; - C.bar = function (x) { return 1; }; + }; // error + C.bar = function (x) { return x; }; // ok + C.bar = function (x) { return 1; }; // ok return 1; }; return C; diff --git a/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js b/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js index c33ce796fe0..23e6fa9dd06 100644 --- a/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js +++ b/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js @@ -41,11 +41,11 @@ var C = (function () { return C; })(); var a = new B(); -a = new C(); -a = B; +a = new C(); // error name is missing +a = B; // error name is missing a = C; var b = new C(); // error name is missing -b = B; +b = B; // error name is missing b = C; b = a; var c = new B(); diff --git a/tests/baselines/reference/staticOffOfInstance2.js b/tests/baselines/reference/staticOffOfInstance2.js index 6f2fd280a46..ff139859bf7 100644 --- a/tests/baselines/reference/staticOffOfInstance2.js +++ b/tests/baselines/reference/staticOffOfInstance2.js @@ -13,7 +13,7 @@ var List = (function () { function List() { } List.prototype.Blah = function () { - this.Foo(); + this.Foo(); // no error List.Foo(); }; List.Foo = function () { diff --git a/tests/baselines/reference/strictModeInConstructor.js b/tests/baselines/reference/strictModeInConstructor.js index d26d26f6878..f7c5c3ecc5c 100644 --- a/tests/baselines/reference/strictModeInConstructor.js +++ b/tests/baselines/reference/strictModeInConstructor.js @@ -76,7 +76,7 @@ var B = (function (_super) { __extends(B, _super); function B() { this.s = 9; - "use strict"; + "use strict"; // No error _super.call(this); } return B; @@ -84,7 +84,7 @@ var B = (function (_super) { var C = (function (_super) { __extends(C, _super); function C() { - _super.call(this); + _super.call(this); // No error this.s = 9; "use strict"; } @@ -103,7 +103,7 @@ var D = (function (_super) { var Bs = (function (_super) { __extends(Bs, _super); function Bs() { - "use strict"; + "use strict"; // No error _super.call(this); } Bs.s = 9; @@ -112,7 +112,7 @@ var Bs = (function (_super) { var Cs = (function (_super) { __extends(Cs, _super); function Cs() { - _super.call(this); + _super.call(this); // No error "use strict"; } Cs.s = 9; diff --git a/tests/baselines/reference/stringIndexerAssignments1.js b/tests/baselines/reference/stringIndexerAssignments1.js index 20b76a0ede3..571c0a3555b 100644 --- a/tests/baselines/reference/stringIndexerAssignments1.js +++ b/tests/baselines/reference/stringIndexerAssignments1.js @@ -11,4 +11,4 @@ var x; var a; var b; x = a; -x = b; +x = b; // error diff --git a/tests/baselines/reference/subtypingTransitivity.js b/tests/baselines/reference/subtypingTransitivity.js index c2ccb124eac..828831c19bf 100644 --- a/tests/baselines/reference/subtypingTransitivity.js +++ b/tests/baselines/reference/subtypingTransitivity.js @@ -50,4 +50,4 @@ var d; var d2; d.x = ''; b = d; -b.x = 1; +b.x = 1; // assigned number to string diff --git a/tests/baselines/reference/subtypingWithOptionalProperties.js b/tests/baselines/reference/subtypingWithOptionalProperties.js index 1d60f0745b2..4908a92f2e5 100644 --- a/tests/baselines/reference/subtypingWithOptionalProperties.js +++ b/tests/baselines/reference/subtypingWithOptionalProperties.js @@ -18,4 +18,4 @@ function f(a) { return b; } var r = f({ s: new Object() }); // ok -r.s && r.s.toFixed(); +r.s && r.s.toFixed(); // would blow up at runtime diff --git a/tests/baselines/reference/superCallArgsMustMatch.js b/tests/baselines/reference/superCallArgsMustMatch.js index df2ac5734f5..0b772fd39d8 100644 --- a/tests/baselines/reference/superCallArgsMustMatch.js +++ b/tests/baselines/reference/superCallArgsMustMatch.js @@ -39,7 +39,7 @@ var T5 = (function () { var T6 = (function (_super) { __extends(T6, _super); function T6() { - _super.call(this, "hi"); + _super.call(this, "hi"); // Should error, base constructor has type T for first arg, which is fixed as number in the extends clause var x = this.foo; } return T6; diff --git a/tests/baselines/reference/superCallInConstructorWithNoBaseType.js b/tests/baselines/reference/superCallInConstructorWithNoBaseType.js index 222fc0dc4ff..8d24fc45c29 100644 --- a/tests/baselines/reference/superCallInConstructorWithNoBaseType.js +++ b/tests/baselines/reference/superCallInConstructorWithNoBaseType.js @@ -14,14 +14,14 @@ class D { //// [superCallInConstructorWithNoBaseType.js] var C = (function () { function C() { - _super.call(this); + _super.call(this); // error } return C; })(); var D = (function () { function D(x) { this.x = x; - _super.call(this); + _super.call(this); // error } return D; })(); diff --git a/tests/baselines/reference/superWithGenericSpecialization.js b/tests/baselines/reference/superWithGenericSpecialization.js index 90e6bf9195f..92d7a8156aa 100644 --- a/tests/baselines/reference/superWithGenericSpecialization.js +++ b/tests/baselines/reference/superWithGenericSpecialization.js @@ -29,7 +29,7 @@ var C = (function () { var D = (function (_super) { __extends(D, _super); function D() { - _super.call(this); + _super.call(this); // uses the type parameter type of the base class, ie string } return D; })(C); diff --git a/tests/baselines/reference/targetTypeBaseCalls.js b/tests/baselines/reference/targetTypeBaseCalls.js index b6114a8e686..d844354b154 100644 --- a/tests/baselines/reference/targetTypeBaseCalls.js +++ b/tests/baselines/reference/targetTypeBaseCalls.js @@ -34,10 +34,10 @@ var Foo = (function () { })(); foo(function (s) { s = 5; -}); +}); // Error, can’t assign number to string new Foo(function (s) { s = 5; -}); +}); // error, if types are applied correctly var Bar = (function (_super) { __extends(Bar, _super); function Bar() { diff --git a/tests/baselines/reference/targetTypeObjectLiteralToAny.js b/tests/baselines/reference/targetTypeObjectLiteralToAny.js index cfe839d9325..fced520e09e 100644 --- a/tests/baselines/reference/targetTypeObjectLiteralToAny.js +++ b/tests/baselines/reference/targetTypeObjectLiteralToAny.js @@ -15,6 +15,6 @@ function suggest() { var TypeScriptKeywords; var result; TypeScriptKeywords.forEach(function (keyword) { - result.push({ text: keyword, type: "keyword" }); + result.push({ text: keyword, type: "keyword" }); // this should not cause a crash - push should be typed to any }); } diff --git a/tests/baselines/reference/targetTypeTest1.js b/tests/baselines/reference/targetTypeTest1.js index e574f4f5bec..94af7579fbb 100644 --- a/tests/baselines/reference/targetTypeTest1.js +++ b/tests/baselines/reference/targetTypeTest1.js @@ -84,11 +84,18 @@ function EF1(a, b) { return a + b; } var x = EF1(1, 2); +// Point.origin declared as type Point Point.origin = new Point(0, 0); +// Point.prototype declared as type Point +// this inferred as Point because of obj.prop assignment +// dx, dy, and return type inferred using target typing Point.prototype.add = function (dx, dy) { return new Point(this.x + dx, this.y + dy); }; var f = 5; +// Object literal type inferred using target typing +// this in function add inferred to be type of object literal (i.e. Point) +// dx, dy, and return type of add inferred using target typing Point.prototype = { x: 0, y: 0, diff --git a/tests/baselines/reference/thisBinding.js b/tests/baselines/reference/thisBinding.js index 4163f407d8b..79a27b19fd8 100644 --- a/tests/baselines/reference/thisBinding.js +++ b/tests/baselines/reference/thisBinding.js @@ -30,8 +30,8 @@ var M; ({ z: 10, f: this.f }).f(({})); } C.prototype.f = function (x) { - x.e; - x.z; + x.e; // e not found + x.z; // ok }; return C; })(); diff --git a/tests/baselines/reference/thisInArrowFunctionInStaticInitializer1.js b/tests/baselines/reference/thisInArrowFunctionInStaticInitializer1.js index 692b2dc5bf0..fdfcc5d9522 100644 --- a/tests/baselines/reference/thisInArrowFunctionInStaticInitializer1.js +++ b/tests/baselines/reference/thisInArrowFunctionInStaticInitializer1.js @@ -16,6 +16,7 @@ var Vector = (function () { var _this = this; } Vector.foo = function () { + // 'this' should not be available in a static initializer. log(_this); }; return Vector; diff --git a/tests/baselines/reference/thisInInnerFunctions.js b/tests/baselines/reference/thisInInnerFunctions.js index 3675ce844d0..d9ba3adfdf3 100644 --- a/tests/baselines/reference/thisInInnerFunctions.js +++ b/tests/baselines/reference/thisInInnerFunctions.js @@ -25,7 +25,7 @@ var Foo = (function () { Foo.prototype.bar = function () { function inner() { var _this = this; - this.y = "hi"; + this.y = "hi"; // 'this' should be not type to 'Foo' either var f = function () { return _this.y; }; // 'this' should be not type to 'Foo' either } }; diff --git a/tests/baselines/reference/thisInLambda.js b/tests/baselines/reference/thisInLambda.js index 0880606baf6..515812b362c 100644 --- a/tests/baselines/reference/thisInLambda.js +++ b/tests/baselines/reference/thisInLambda.js @@ -25,7 +25,7 @@ var Foo = (function () { } Foo.prototype.bar = function () { var _this = this; - this.x; + this.x; // 'this' is type 'Foo' var f = function () { return _this.x; }; // 'this' should be type 'Foo' as well }; return Foo; diff --git a/tests/baselines/reference/thisInOuterClassBody.js b/tests/baselines/reference/thisInOuterClassBody.js index 37dfd6fc373..0dff441bb1e 100644 --- a/tests/baselines/reference/thisInOuterClassBody.js +++ b/tests/baselines/reference/thisInOuterClassBody.js @@ -27,7 +27,7 @@ var Foo = (function () { } Foo.prototype.bar = function () { var _this = this; - this.x; + this.x; // 'this' is type 'Foo' var f = function () { return _this.x; }; // 'this' should be type 'Foo' as well var p = this.y; return this; diff --git a/tests/baselines/reference/thisInSuperCall.js b/tests/baselines/reference/thisInSuperCall.js index fb22eaf5035..779d74daa58 100644 --- a/tests/baselines/reference/thisInSuperCall.js +++ b/tests/baselines/reference/thisInSuperCall.js @@ -37,14 +37,14 @@ var Base = (function () { var Foo = (function (_super) { __extends(Foo, _super); function Foo() { - _super.call(this, this); + _super.call(this, this); // no error } return Foo; })(Base); var Foo2 = (function (_super) { __extends(Foo2, _super); function Foo2() { - _super.call(this, this); + _super.call(this, this); // error this.p = 0; } return Foo2; @@ -52,7 +52,7 @@ var Foo2 = (function (_super) { var Foo3 = (function (_super) { __extends(Foo3, _super); function Foo3(p) { - _super.call(this, this); + _super.call(this, this); // error this.p = p; } return Foo3; diff --git a/tests/baselines/reference/thisInSuperCall2.js b/tests/baselines/reference/thisInSuperCall2.js index 397f06628dc..d21496a9834 100644 --- a/tests/baselines/reference/thisInSuperCall2.js +++ b/tests/baselines/reference/thisInSuperCall2.js @@ -34,14 +34,14 @@ var Base = (function () { var Foo = (function (_super) { __extends(Foo, _super); function Foo() { - _super.call(this, this); + _super.call(this, this); // no error } return Foo; })(Base); var Foo2 = (function (_super) { __extends(Foo2, _super); function Foo2() { - _super.call(this, this); + _super.call(this, this); // error this.x = 0; } return Foo2; diff --git a/tests/baselines/reference/trailingCommaInHeterogenousArrayLiteral1.js b/tests/baselines/reference/trailingCommaInHeterogenousArrayLiteral1.js index ec5c9365cd8..26dc61d189c 100644 --- a/tests/baselines/reference/trailingCommaInHeterogenousArrayLiteral1.js +++ b/tests/baselines/reference/trailingCommaInHeterogenousArrayLiteral1.js @@ -16,6 +16,7 @@ var arrTest = (function () { arrTest.prototype.test = function (arg1) { }; arrTest.prototype.callTest = function () { + // these two should give the same error this.test([1, 2, "hi", 5, ]); this.test([1, 2, "hi", 5]); }; diff --git a/tests/baselines/reference/typeArgInferenceWithNull.js b/tests/baselines/reference/typeArgInferenceWithNull.js index eb9fa5cf320..e54e1dc1630 100644 --- a/tests/baselines/reference/typeArgInferenceWithNull.js +++ b/tests/baselines/reference/typeArgInferenceWithNull.js @@ -22,4 +22,4 @@ fn5({ x: null }); function fn6(n, fun, n2) { } fn6({ x: null }, function (y) { -}, { x: "" }); +}, { x: "" }); // y has type { x: any }, but ideally would have type { x: string } diff --git a/tests/baselines/reference/typeArgumentConstraintResolution1.js b/tests/baselines/reference/typeArgumentConstraintResolution1.js index a94d151d8f7..b7476ad2abd 100644 --- a/tests/baselines/reference/typeArgumentConstraintResolution1.js +++ b/tests/baselines/reference/typeArgumentConstraintResolution1.js @@ -15,8 +15,8 @@ foo2(""); // Type Date does not satisfy the constraint 'Number' for type p //// [typeArgumentConstraintResolution1.js] function foo1(test) { } -foo1(""); +foo1(""); // should error function foo2(test) { return null; } -foo2(""); +foo2(""); // Type Date does not satisfy the constraint 'Number' for type parameter 'T extends Number' diff --git a/tests/baselines/reference/typeArgumentInferenceConstructSignatures.js b/tests/baselines/reference/typeArgumentInferenceConstructSignatures.js index 1ae93f6866b..148ec81c441 100644 --- a/tests/baselines/reference/typeArgumentInferenceConstructSignatures.js +++ b/tests/baselines/reference/typeArgumentInferenceConstructSignatures.js @@ -149,7 +149,7 @@ new noGenericParams(''); new noGenericParams(''); var someGenerics1; new someGenerics1(3, 4); -new someGenerics1(3, 4); +new someGenerics1(3, 4); // Error new someGenerics1(3, 4); var someGenerics2a; new someGenerics2a(function (n) { return n; }); @@ -166,17 +166,17 @@ new someGenerics3(function () { return 3; }); var someGenerics4; new someGenerics4(4, function () { return null; }); new someGenerics4('', function () { return 3; }); -new someGenerics4('', function (x) { return ''; }); +new someGenerics4('', function (x) { return ''; }); // Error new someGenerics4(null, null); var someGenerics5; new someGenerics5(4, function () { return null; }); new someGenerics5('', function () { return 3; }); -new someGenerics5('', function (x) { return ''; }); +new someGenerics5('', function (x) { return ''; }); // Error new someGenerics5(null, null); var someGenerics6; new someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); new someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); -new someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); +new someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Error new someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); var someGenerics7; new someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); diff --git a/tests/baselines/reference/typeArgumentInferenceErrors.js b/tests/baselines/reference/typeArgumentInferenceErrors.js index 3d5a25736dc..751190210f9 100644 --- a/tests/baselines/reference/typeArgumentInferenceErrors.js +++ b/tests/baselines/reference/typeArgumentInferenceErrors.js @@ -20,16 +20,16 @@ someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // // Generic call with multiple type parameters and only one used in parameter type annotation function someGenerics1(n, m) { } -someGenerics1(3, 4); +someGenerics1(3, 4); // Error // 2 parameter generic call with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type function someGenerics4(n, f) { } -someGenerics4('', function (x) { return ''; }); +someGenerics4('', function (x) { return ''; }); // Error // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type function someGenerics5(n, f) { } -someGenerics5('', function (x) { return ''; }); +someGenerics5('', function (x) { return ''; }); // Error // Generic call with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(a, b, c) { } -someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); +someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Error diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.js b/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.js index 8ab912a0b78..50d7767b5db 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.js +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.js @@ -13,4 +13,4 @@ function f(x, y) { } var g; var e; -f(g, e); +f(g, e); // valid because both Giraffe and Elephant satisfy the constraint. T is Animal diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraints.js b/tests/baselines/reference/typeArgumentInferenceWithConstraints.js index 80f168271d2..713bbf8bcd3 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraints.js +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraints.js @@ -115,15 +115,15 @@ noParams(); // Generic call with parameters but none use type parameter type function noGenericParams(n) { } +noGenericParams(''); // Valid noGenericParams(''); -noGenericParams(''); -noGenericParams(''); +noGenericParams(''); // Error // Generic call with multiple type parameters and only one used in parameter type annotation function someGenerics1(n, m) { } -someGenerics1(3, 4); -someGenerics1(3, 4); -someGenerics1(3, 4); +someGenerics1(3, 4); // Valid +someGenerics1(3, 4); // Error +someGenerics1(3, 4); // Error someGenerics1(3, 4); // Generic call with argument of function type whose parameter is of type parameter type function someGenerics2a(n) { @@ -139,34 +139,34 @@ someGenerics2b(function (n, t) { return n.substr(t * t); }); // Generic call with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter function someGenerics3(producer) { } -someGenerics3(function () { return ''; }); +someGenerics3(function () { return ''; }); // Error someGenerics3(function () { return undefined; }); -someGenerics3(function () { return 3; }); +someGenerics3(function () { return 3; }); // Error // 2 parameter generic call with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type function someGenerics4(n, f) { } -someGenerics4(4, function () { return null; }); +someGenerics4(4, function () { return null; }); // Valid someGenerics4('', function () { return 3; }); -someGenerics4('', function (x) { return ''; }); +someGenerics4('', function (x) { return ''; }); // Error someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type function someGenerics5(n, f) { } -someGenerics5(4, function () { return null; }); +someGenerics5(4, function () { return null; }); // Valid someGenerics5('', function () { return 3; }); -someGenerics5('', function (x) { return ''; }); -someGenerics5(null, null); +someGenerics5('', function (x) { return ''; }); // Error +someGenerics5(null, null); // Error // Generic call with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(a, b, c) { } +someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Valid someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); -someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); -someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); +someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Error someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Generic call with multiple arguments of function types that each have parameters of different generic type function someGenerics7(a, b, c) { } -someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); +someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Valid, types of n are respectively someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Generic call with argument of generic function type @@ -174,7 +174,7 @@ function someGenerics8(n) { return n; } var x = someGenerics8(someGenerics7); // Error -x(null, null, null); +x(null, null, null); // Error // Generic call with multiple parameters of generic type passed arguments with no best common type function someGenerics9(a, b, c) { return null; diff --git a/tests/baselines/reference/typeAssertionToGenericFunctionType.js b/tests/baselines/reference/typeAssertionToGenericFunctionType.js index 83ff9680d2a..1746cee3e85 100644 --- a/tests/baselines/reference/typeAssertionToGenericFunctionType.js +++ b/tests/baselines/reference/typeAssertionToGenericFunctionType.js @@ -13,5 +13,5 @@ var x = { x; } }; -x.a(1); -x.b(); +x.a(1); // bug was that this caused 'Could not find symbol T' on return type T in the type assertion on x.a's definition +x.b(); // error diff --git a/tests/baselines/reference/typeAssertions.js b/tests/baselines/reference/typeAssertions.js index 6970e61cd7f..c964ae94958 100644 --- a/tests/baselines/reference/typeAssertions.js +++ b/tests/baselines/reference/typeAssertions.js @@ -54,7 +54,7 @@ function fn1(t) { } function fn2(t) { } -fn1(fn2(4)); +fn1(fn2(4)); // Error var a; var s; // Type assertion of non - unary expression @@ -83,10 +83,10 @@ var someDerived = new SomeDerived(); var someOther = new SomeOther(); someBase = someDerived; someBase = someBase; -someBase = someOther; +someBase = someOther; // Error someDerived = someDerived; someDerived = someBase; -someDerived = someOther; -someOther = someDerived; -someOther = someBase; +someDerived = someOther; // Error +someOther = someDerived; // Error +someOther = someBase; // Error someOther = someOther; diff --git a/tests/baselines/reference/typeIdentityConsidersBrands.js b/tests/baselines/reference/typeIdentityConsidersBrands.js index f02c1cd05b2..002364a2e03 100644 --- a/tests/baselines/reference/typeIdentityConsidersBrands.js +++ b/tests/baselines/reference/typeIdentityConsidersBrands.js @@ -57,11 +57,11 @@ function foo(arg) { } var a = new Y(); var b = new X(); -a = b; -foo(a); +a = b; // ok +foo(a); // ok var a2 = new Y_1(); var b2 = new X_1(); function foo2(arg) { } -a2 = b2; -foo2(a2); +a2 = b2; // should error +foo2(a2); // should error diff --git a/tests/baselines/reference/typeLiteralCallback.js b/tests/baselines/reference/typeLiteralCallback.js index 2f9ea69b1da..82c8b37e454 100644 --- a/tests/baselines/reference/typeLiteralCallback.js +++ b/tests/baselines/reference/typeLiteralCallback.js @@ -18,4 +18,4 @@ test.fail2(arg => foo.reject(arg)); // Should be OK. Was: Error: Supplied para var foo; var test; test.fail(function (arg) { return foo.reject(arg); }); -test.fail2(function (arg) { return foo.reject(arg); }); +test.fail2(function (arg) { return foo.reject(arg); }); // Should be OK. Was: Error: Supplied parameters do not match any signature of call target diff --git a/tests/baselines/reference/typeMatch2.js b/tests/baselines/reference/typeMatch2.js index 3f39b58d82d..f262adb4e18 100644 --- a/tests/baselines/reference/typeMatch2.js +++ b/tests/baselines/reference/typeMatch2.js @@ -53,10 +53,10 @@ var __extends = this.__extends || function (d, b) { }; function f1() { var a = { x: 1, y: 2 }; - a = {}; - a = { x: 1 }; + a = {}; // error + a = { x: 1 }; // error a = { x: 1, y: 2, z: 3 }; - a = { x: 1, z: 3 }; + a = { x: 1, z: 3 }; // error } var Animal = (function () { function Animal() { @@ -76,11 +76,11 @@ function f2() { var aa = [a, a, a]; var gg = [g, g, g]; aa = gg; - gg = aa; + gg = aa; // error var xa = { f1: 5, f2: aa }; var xb = { f1: 5, f2: gg }; - xa = xb; - xb = xa; + xa = xb; // Should be ok + xb = xa; // Not ok } function f4() { var _any = 0; @@ -92,7 +92,7 @@ function f4() { a = { x: 1, y: undefined }; a = { x: 1, y: _any }; a = { x: 1, y: _any, z: 1 }; - a = { x: 1 }; + a = { x: 1 }; // error var mf = function m(n) { return false; }; diff --git a/tests/baselines/reference/typeOfPrototype.js b/tests/baselines/reference/typeOfPrototype.js index d82e20e4e7e..8ab4392438e 100644 --- a/tests/baselines/reference/typeOfPrototype.js +++ b/tests/baselines/reference/typeOfPrototype.js @@ -14,4 +14,4 @@ var Foo = (function () { Foo.bar = ''; return Foo; })(); -Foo.prototype.bar = undefined; +Foo.prototype.bar = undefined; // Should be OK diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence.js b/tests/baselines/reference/typeParameterArgumentEquivalence.js index 3f70b439f78..386b1de0aa2 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence.js +++ b/tests/baselines/reference/typeParameterArgumentEquivalence.js @@ -11,6 +11,6 @@ function foo() { function foo() { var x; var y; - x = y; - y = x; + x = y; // Should be an error + y = x; // Shound be an error } diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence2.js b/tests/baselines/reference/typeParameterArgumentEquivalence2.js index de3e0e23782..3f5ec8672e1 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence2.js +++ b/tests/baselines/reference/typeParameterArgumentEquivalence2.js @@ -11,6 +11,6 @@ function foo() { function foo() { var x; var y; - x = y; - y = x; + x = y; // Should be an error + y = x; // Shound be an error } diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence3.js b/tests/baselines/reference/typeParameterArgumentEquivalence3.js index f9222457225..bf80f5a4aa3 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence3.js +++ b/tests/baselines/reference/typeParameterArgumentEquivalence3.js @@ -11,6 +11,6 @@ function foo() { function foo() { var x; var y; - x = y; - y = x; + x = y; // Should be an error + y = x; // Shound be an error } diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence4.js b/tests/baselines/reference/typeParameterArgumentEquivalence4.js index 49d656e0ca0..0df7a37fd9a 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence4.js +++ b/tests/baselines/reference/typeParameterArgumentEquivalence4.js @@ -11,6 +11,6 @@ function foo() { function foo() { var x; var y; - x = y; - y = x; + x = y; // Should be an error + y = x; // Shound be an error } diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence5.js b/tests/baselines/reference/typeParameterArgumentEquivalence5.js index b84b30f5f6d..2134777b687 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence5.js +++ b/tests/baselines/reference/typeParameterArgumentEquivalence5.js @@ -11,6 +11,6 @@ function foo() { function foo() { var x; var y; - x = y; - y = x; + x = y; // Should be an error + y = x; // Shound be an error } diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.js b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.js index cc72219d452..73322ff4faf 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.js +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.js @@ -31,6 +31,7 @@ var c; function foo(x, y, z) { return z; } +//function foo(x: T, y: U, z: V): V { return z; } foo(1, 2, 3); foo({ x: 1 }, { x: 1, y: '' }, { x: 2, y: '', z: true }); foo(a, b, c); @@ -42,6 +43,7 @@ foo(function (x, y) { function foo2(x, y, z) { return z; } +//function foo2(x: T, y: U, z: V): V { return z; } foo(a, a, a); foo(a, b, c); foo(b, b, { foo: 1, bar: '', hm: '' }); diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.js b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.js index 6e0aba802d3..a8943a57e95 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.js +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.js @@ -30,6 +30,7 @@ var c; function foo(x, y, z) { return z; } +//function foo(x: T, y: U, z: V): V { return z; } foo(1, 2, ''); foo({ x: 1 }, { x: 1, y: '' }, { x: 2, y: 2, z: true }); foo(a, b, a); @@ -41,5 +42,6 @@ foo(function (x, y) { function foo2(x, y, z) { return z; } +//function foo2(x: T, y: U, z: V): V { return z; } foo(b, a, c); foo(c, c, a); diff --git a/tests/baselines/reference/typeParameterAssignability.js b/tests/baselines/reference/typeParameterAssignability.js index a6aff81b496..a25563f3e31 100644 --- a/tests/baselines/reference/typeParameterAssignability.js +++ b/tests/baselines/reference/typeParameterAssignability.js @@ -9,6 +9,6 @@ function foo(t: T, u: U) { //// [typeParameterAssignability.js] // type parameters are not assignable to one another unless directly or indirectly constrained to one another function foo(t, u) { - t = u; - u = t; + t = u; // error + u = t; // error } diff --git a/tests/baselines/reference/typeParameterAssignability2.js b/tests/baselines/reference/typeParameterAssignability2.js index 918beebb19c..32fe8ad424a 100644 --- a/tests/baselines/reference/typeParameterAssignability2.js +++ b/tests/baselines/reference/typeParameterAssignability2.js @@ -75,57 +75,57 @@ function foo6(t: T, u: U, v: V) { //// [typeParameterAssignability2.js] // type parameters are not assignable to one another unless directly or indirectly constrained to one another function foo(t, u) { - t = u; - u = t; + t = u; // error + u = t; // ok } function foo2(t, u) { - t = u; - u = t; + t = u; // error + u = t; // ok } function foo3(t, u, v) { - t = u; + t = u; // error u = t; - t = v; - v = t; - u = v; - v = u; + t = v; // error + v = t; // ok + u = v; // error + v = u; // ok } function foo4(t, u, v) { - t = u; - t = v; - t = new Date(); + t = u; // error + t = v; // error + t = new Date(); // error u = t; - u = v; - u = new Date(); + u = v; // error + u = new Date(); // error v = t; v = u; - v = new Date(); + v = new Date(); // ok var d; - d = t; - d = u; - d = v; + d = t; // ok + d = u; // ok + d = v; // ok } // same as foo4 with different type parameter ordering function foo5(t, u, v) { - t = u; - t = v; - t = new Date(); + t = u; // error + t = v; // error + t = new Date(); // error u = t; - u = v; - u = new Date(); + u = v; // error + u = new Date(); // error v = t; v = u; - v = new Date(); + v = new Date(); // ok var d; - d = t; - d = u; - d = v; + d = t; // ok + d = u; // ok + d = v; // ok } function foo6(t, u, v) { - t = u; - t = v; - u = t; - u = v; - v = t; - v = u; + t = u; // error + t = v; // error + u = t; // ok + u = v; // error + v = t; // error + v = u; // error } diff --git a/tests/baselines/reference/typeParameterAssignability3.js b/tests/baselines/reference/typeParameterAssignability3.js index 9f593118893..b488bcb5ad2 100644 --- a/tests/baselines/reference/typeParameterAssignability3.js +++ b/tests/baselines/reference/typeParameterAssignability3.js @@ -35,19 +35,19 @@ var Foo = (function () { function foo(t, u) { var a; var b; - t = a; - a = t; - b = u; - u = b; - t = u; - u = t; + t = a; // ok + a = t; // ok + b = u; // ok + u = b; // ok + t = u; // error + u = t; // error } var C = (function () { function C() { var _this = this; this.r = function () { - _this.t = _this.u; - _this.u = _this.t; + _this.t = _this.u; // error + _this.u = _this.t; // error }; } return C; diff --git a/tests/baselines/reference/typeParameterAssignmentCompat1.js b/tests/baselines/reference/typeParameterAssignmentCompat1.js index 78e14cfc6d5..995213d0807 100644 --- a/tests/baselines/reference/typeParameterAssignmentCompat1.js +++ b/tests/baselines/reference/typeParameterAssignmentCompat1.js @@ -23,7 +23,7 @@ class C { function f() { var x; var y; - x = y; + x = y; // should be an error return x; } var C = (function () { @@ -32,7 +32,7 @@ var C = (function () { C.prototype.f = function () { var x; var y; - x = y; + x = y; // should be an error return x; }; return C; diff --git a/tests/baselines/reference/typeParameterAssignmentWithConstraints.js b/tests/baselines/reference/typeParameterAssignmentWithConstraints.js index d7c5f6aaa04..1247b020c9c 100644 --- a/tests/baselines/reference/typeParameterAssignmentWithConstraints.js +++ b/tests/baselines/reference/typeParameterAssignmentWithConstraints.js @@ -9,5 +9,5 @@ function f() { function f() { var a; var b; - a = b; + a = b; // Error: Can't convert B to A } diff --git a/tests/baselines/reference/typeParameterCompatibilityAccrossDeclarations.js b/tests/baselines/reference/typeParameterCompatibilityAccrossDeclarations.js index bcd25ef616f..04fb7b1dc25 100644 --- a/tests/baselines/reference/typeParameterCompatibilityAccrossDeclarations.js +++ b/tests/baselines/reference/typeParameterCompatibilityAccrossDeclarations.js @@ -36,8 +36,8 @@ define(["require", "exports"], function (require, exports) { }; var i; var i2; - a = i; - i = a; - a2 = i2; - i2 = a2; + a = i; // error + i = a; // error + a2 = i2; // no error + i2 = a2; // no error }); diff --git a/tests/baselines/reference/typeParameterExplicitlyExtendsAny.js b/tests/baselines/reference/typeParameterExplicitlyExtendsAny.js index c62f7b649a1..5a1775d44ae 100644 --- a/tests/baselines/reference/typeParameterExplicitlyExtendsAny.js +++ b/tests/baselines/reference/typeParameterExplicitlyExtendsAny.js @@ -14,11 +14,11 @@ function fee2() { //// [typeParameterExplicitlyExtendsAny.js] function fee() { var t; - t.blah; - t.toString; + t.blah; // Error + t.toString; // ok } function fee2() { var t; - t.blah; - t.toString; + t.blah; // Error + t.toString; // ok } diff --git a/tests/baselines/reference/typeParameterOrderReversal.js b/tests/baselines/reference/typeParameterOrderReversal.js index d79ea733684..8c9185ba57c 100644 --- a/tests/baselines/reference/typeParameterOrderReversal.js +++ b/tests/baselines/reference/typeParameterOrderReversal.js @@ -20,5 +20,6 @@ function uFirst(x) { function tFirst(x) { } var z = null; +// Both of these should be allowed uFirst(z); tFirst(z); diff --git a/tests/baselines/reference/typeParametersShouldNotBeEqual.js b/tests/baselines/reference/typeParametersShouldNotBeEqual.js index 123b235f4b4..c27f5f6a6a2 100644 --- a/tests/baselines/reference/typeParametersShouldNotBeEqual.js +++ b/tests/baselines/reference/typeParametersShouldNotBeEqual.js @@ -11,8 +11,8 @@ function ff(x: T, y: U) { //// [typeParametersShouldNotBeEqual.js] function ff(x, y) { var z; - x = x; - x = y; - x = z; - z = x; + x = x; // Ok + x = y; // Error + x = z; // Error + z = x; // Ok } diff --git a/tests/baselines/reference/typeParametersShouldNotBeEqual2.js b/tests/baselines/reference/typeParametersShouldNotBeEqual2.js index 75219d6b6d6..cc8c66c8007 100644 --- a/tests/baselines/reference/typeParametersShouldNotBeEqual2.js +++ b/tests/baselines/reference/typeParametersShouldNotBeEqual2.js @@ -15,12 +15,12 @@ function ff(x: T, y: U, z: V) { //// [typeParametersShouldNotBeEqual2.js] function ff(x, y, z) { var zz; - x = x; - x = y; - x = z; - z = x; - y = z; - z = y; - x = zz; - zz = x; + x = x; // Ok + x = y; // Ok + x = z; // Error + z = x; // Error + y = z; // Error + z = y; // Error + x = zz; // Error + zz = x; // Ok } diff --git a/tests/baselines/reference/typeParametersShouldNotBeEqual3.js b/tests/baselines/reference/typeParametersShouldNotBeEqual3.js index 8b7c9090222..407fd13b20b 100644 --- a/tests/baselines/reference/typeParametersShouldNotBeEqual3.js +++ b/tests/baselines/reference/typeParametersShouldNotBeEqual3.js @@ -11,8 +11,8 @@ function ff(x: T, y: U) { //// [typeParametersShouldNotBeEqual3.js] function ff(x, y) { var z; - x = x; - x = y; - x = z; - z = x; + x = x; // Ok + x = y; // Ok + x = z; // Ok + z = x; // Ok } diff --git a/tests/baselines/reference/typedGenericPrototypeMember.js b/tests/baselines/reference/typedGenericPrototypeMember.js index dd73d367719..866bf500ded 100644 --- a/tests/baselines/reference/typedGenericPrototypeMember.js +++ b/tests/baselines/reference/typedGenericPrototypeMember.js @@ -14,4 +14,4 @@ var List = (function () { }; return List; })(); -List.prototype.add("abc"); +List.prototype.add("abc"); // Valid because T is instantiated to any diff --git a/tests/baselines/reference/typeofOperatorWithAnyOtherType.js b/tests/baselines/reference/typeofOperatorWithAnyOtherType.js index f13a9995327..a41ab42c9f5 100644 --- a/tests/baselines/reference/typeofOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/typeofOperatorWithAnyOtherType.js @@ -125,6 +125,7 @@ var ResultIsString19 = typeof (undefined + undefined); // multiple typeof operators var ResultIsString20 = typeof typeof ANY; var ResultIsString21 = typeof typeof typeof (ANY + ANY1); +// miss assignment operators typeof ANY; typeof ANY1; typeof ANY2[0]; diff --git a/tests/baselines/reference/typeofOperatorWithBooleanType.js b/tests/baselines/reference/typeofOperatorWithBooleanType.js index 086d20cc17c..d7c5a1a5edf 100644 --- a/tests/baselines/reference/typeofOperatorWithBooleanType.js +++ b/tests/baselines/reference/typeofOperatorWithBooleanType.js @@ -81,6 +81,7 @@ var ResultIsString6 = typeof foo(); var ResultIsString7 = typeof A.foo(); // multiple typeof operator var ResultIsString8 = typeof typeof BOOLEAN; +// miss assignment operators typeof true; typeof BOOLEAN; typeof foo(); diff --git a/tests/baselines/reference/typeofOperatorWithEnumType.js b/tests/baselines/reference/typeofOperatorWithEnumType.js index 745203b9d21..1ce2170659e 100644 --- a/tests/baselines/reference/typeofOperatorWithEnumType.js +++ b/tests/baselines/reference/typeofOperatorWithEnumType.js @@ -49,6 +49,7 @@ var ResultIsString4 = typeof (ENUM[0] + ENUM1[1]); // multiple typeof operators var ResultIsString5 = typeof typeof ENUM; var ResultIsString6 = typeof typeof typeof (ENUM[0] + ENUM1[1]); +// miss assignment operators typeof ENUM; typeof ENUM1; typeof ENUM1[1]; diff --git a/tests/baselines/reference/typeofOperatorWithNumberType.js b/tests/baselines/reference/typeofOperatorWithNumberType.js index 88dbb3224a7..d40f09ee604 100644 --- a/tests/baselines/reference/typeofOperatorWithNumberType.js +++ b/tests/baselines/reference/typeofOperatorWithNumberType.js @@ -96,6 +96,7 @@ var ResultIsString11 = typeof (NUMBER + NUMBER); // multiple typeof operators var ResultIsString12 = typeof typeof NUMBER; var ResultIsString13 = typeof typeof typeof (NUMBER + NUMBER); +// miss assignment operators typeof 1; typeof NUMBER; typeof NUMBER1; diff --git a/tests/baselines/reference/typeofOperatorWithStringType.js b/tests/baselines/reference/typeofOperatorWithStringType.js index 2b7b22dcb23..b3c3b748df6 100644 --- a/tests/baselines/reference/typeofOperatorWithStringType.js +++ b/tests/baselines/reference/typeofOperatorWithStringType.js @@ -97,6 +97,7 @@ var ResultIsString12 = typeof STRING.charAt(0); // multiple typeof operators var ResultIsString13 = typeof typeof STRING; var ResultIsString14 = typeof typeof typeof (STRING + STRING); +// miss assignment operators typeof ""; typeof STRING; typeof STRING1; diff --git a/tests/baselines/reference/undeclaredMethod.js b/tests/baselines/reference/undeclaredMethod.js index 378bebea9bb..b2795938632 100644 --- a/tests/baselines/reference/undeclaredMethod.js +++ b/tests/baselines/reference/undeclaredMethod.js @@ -26,5 +26,5 @@ var M; M.C = C; })(M || (M = {})); var c = new M.C(); -c.salt(); -c.saltbar(); +c.salt(); // cool +c.saltbar(); // crash diff --git a/tests/baselines/reference/underscoreTest1.js b/tests/baselines/reference/underscoreTest1.js index 909481286ea..7a3c35c1423 100644 --- a/tests/baselines/reference/underscoreTest1.js +++ b/tests/baselines/reference/underscoreTest1.js @@ -925,12 +925,15 @@ _.max(stooges, function (stooge) { return stooge.age; }); var numbers = [10, 5, 100, 2, 1000]; _.min(numbers); _.sortBy([1, 2, 3, 4, 5, 6], function (num) { return Math.sin(num); }); +// not sure how this is typechecking at all.. Math.floor(e) is number not string..? _([1.3, 2.1, 2.4]).groupBy(function (e, i, list) { return Math.floor(e); }); _.groupBy([1.3, 2.1, 2.4], function (num) { return Math.floor(num); }); _.groupBy(['one', 'two', 'three'], 'length'); _.countBy([1, 2, 3, 4, 5], function (num) { return num % 2 == 0 ? 'even' : 'odd'; }); _.shuffle([1, 2, 3, 4, 5, 6]); +// (function(){ return _.toArray(arguments).slice(1); })(1, 2, 3, 4); _.size({ one: 1, two: 2, three: 3 }); +/////////////////////////////////////////////////////////////////////////////////////// _.first([5, 4, 3, 2, 1]); _.initial([5, 4, 3, 2, 1]); _.last([5, 4, 3, 2, 1]); @@ -938,6 +941,7 @@ _.rest([5, 4, 3, 2, 1]); _.compact([0, 1, false, 2, '', 3]); _.flatten([1, 2, 3, 4]); _.flatten([1, [2]]); +// typescript doesn't like the elements being different _.flatten([1, [2], [3, [[4]]]]); _.flatten([1, [2], [3, [[4]]]], true); _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); @@ -1017,6 +1021,7 @@ var exclaim = function (statement) { }; var welcome = _.compose(exclaim, greet); welcome('moe'); +/////////////////////////////////////////////////////////////////////////////////////// _.keys({ one: 1, two: 2, three: 3 }); _.values({ one: 1, two: 2, three: 3 }); _.pairs({ one: 1, two: 2, three: 3 }); @@ -1047,6 +1052,7 @@ _.isElement($('body')[0]); _.isArray([1, 2, 3]); _.isObject({}); _.isObject(1); +// (() => { return _.isArguments(arguments); })(1, 2, 3); _.isArguments([1, 2, 3]); _.isFunction(alert); _.isString("moe"); diff --git a/tests/baselines/reference/unqualifiedCallToClassStatic1.js b/tests/baselines/reference/unqualifiedCallToClassStatic1.js index ab86c2f9ede..6de5634af9c 100644 --- a/tests/baselines/reference/unqualifiedCallToClassStatic1.js +++ b/tests/baselines/reference/unqualifiedCallToClassStatic1.js @@ -11,6 +11,7 @@ var Vector = (function () { function Vector() { } Vector.foo = function () { + // 'foo' cannot be called in an unqualified manner. foo(); }; return Vector; diff --git a/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.js b/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.js index 2a993269373..3bdce742fc3 100644 --- a/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.js +++ b/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.js @@ -85,4 +85,4 @@ var r6 = z(1); // error var c4; c4(1); var c5; -c5(1); +c5(1); // error diff --git a/tests/baselines/reference/validNullAssignments.js b/tests/baselines/reference/validNullAssignments.js index a3351a4e682..896e888b28f 100644 --- a/tests/baselines/reference/validNullAssignments.js +++ b/tests/baselines/reference/validNullAssignments.js @@ -36,30 +36,30 @@ var b = null; var c = null; var d = null; var e = null; -e = null; +e = null; // ok var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -0 /* A */ = null; +0 /* A */ = null; // error var C = (function () { function C() { } return C; })(); var f; -f = null; -C = null; +f = null; // ok +C = null; // error var g; -g = null; -I = null; +g = null; // ok +I = null; // error var M; (function (M) { M.x = 1; })(M || (M = {})); -M = null; +M = null; // error var h = null; function i(a) { a = null; } -i = null; +i = null; // error diff --git a/tests/baselines/reference/validUndefinedAssignments.js b/tests/baselines/reference/validUndefinedAssignments.js index 67cbc42371d..d91875da8a5 100644 --- a/tests/baselines/reference/validUndefinedAssignments.js +++ b/tests/baselines/reference/validUndefinedAssignments.js @@ -30,7 +30,7 @@ var b = x; var c = x; var d = x; var e = x; -e = x; +e = x; // should work var C = (function () { function C() { } diff --git a/tests/baselines/reference/validUseOfThisInSuper.js b/tests/baselines/reference/validUseOfThisInSuper.js index a57f2934439..d71548e02e8 100644 --- a/tests/baselines/reference/validUseOfThisInSuper.js +++ b/tests/baselines/reference/validUseOfThisInSuper.js @@ -26,7 +26,7 @@ var Super = (function (_super) { __extends(Super, _super); function Super() { var _this = this; - _super.call(this, (function () { return _this; })()); + _super.call(this, (function () { return _this; })()); // ok since this is not the case: The constructor declares parameter properties or the containing class declares instance member variables with initializers. } return Super; })(Base); diff --git a/tests/baselines/reference/vararg.js b/tests/baselines/reference/vararg.js index 3dde8cad321..038afb90cbc 100644 --- a/tests/baselines/reference/vararg.js +++ b/tests/baselines/reference/vararg.js @@ -79,11 +79,11 @@ var M; })(M || (M = {})); var x = new M.C(); var result = ""; -result += x.f(x, 3, 3); -result += x.f(3, "hello", 3); -result += x.f("hello", 3, 3, 3, 3, 3); -result += x.f("hello"); -result += x.fonly(3); -result += x.fonly(x); -result += x.fonly("a"); -result += x.fonly("a", "b", "c", "d"); +result += x.f(x, 3, 3); // bad first param +result += x.f(3, "hello", 3); // bad second param +result += x.f("hello", 3, 3, 3, 3, 3); // ok +result += x.f("hello"); // ok varargs length 0 +result += x.fonly(3); // ok conversion +result += x.fonly(x); // bad param +result += x.fonly("a"); // ok +result += x.fonly("a", "b", "c", "d"); //ok diff --git a/tests/baselines/reference/voidArrayLit.js b/tests/baselines/reference/voidArrayLit.js index 2e967e1c3f0..35a07480334 100644 --- a/tests/baselines/reference/voidArrayLit.js +++ b/tests/baselines/reference/voidArrayLit.js @@ -9,8 +9,8 @@ foo((()=>{})()); // error var va = [(function () { })()]; // ok (function () { -})(); +})(); // ok function foo(s) { } foo((function () { -})()); +})()); // error diff --git a/tests/baselines/reference/voidAsNonAmbiguousReturnType.js b/tests/baselines/reference/voidAsNonAmbiguousReturnType.js index 6b2cccba5a9..3ba67436b9f 100644 --- a/tests/baselines/reference/voidAsNonAmbiguousReturnType.js +++ b/tests/baselines/reference/voidAsNonAmbiguousReturnType.js @@ -21,5 +21,5 @@ exports.mkdirSync = mkdirSync; /// var fs = require("voidAsNonAmbiguousReturnType_0"); function main() { - fs.mkdirSync('test'); + fs.mkdirSync('test'); // should not error - return types are the same } diff --git a/tests/baselines/reference/voidFunctionAssignmentCompat.js b/tests/baselines/reference/voidFunctionAssignmentCompat.js index 4d77c2a18c1..f3a457075c0 100644 --- a/tests/baselines/reference/voidFunctionAssignmentCompat.js +++ b/tests/baselines/reference/voidFunctionAssignmentCompat.js @@ -24,23 +24,23 @@ var fa = function () { return 3; }; fa = function () { -}; +}; // should not work var fv = function () { }; fv = function () { return 0; -}; +}; // should work function execAny(callback) { return callback(0); } execAny(function () { -}); +}); // should work function execVoid(callback) { callback(0); } execVoid(function () { return 0; -}); +}); // should work var fra = function () { return function () { }; diff --git a/tests/baselines/reference/voidOperatorWithAnyOtherType.js b/tests/baselines/reference/voidOperatorWithAnyOtherType.js index 9e65525e5da..e06aae7fe46 100644 --- a/tests/baselines/reference/voidOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/voidOperatorWithAnyOtherType.js @@ -110,6 +110,7 @@ var ResultIsAny19 = void (undefined + undefined); // multiple void operators var ResultIsAny20 = void void ANY; var ResultIsAny21 = void void void (ANY + ANY1); +// miss assignment operators void ANY; void ANY1; void ANY2[0]; diff --git a/tests/baselines/reference/voidOperatorWithBooleanType.js b/tests/baselines/reference/voidOperatorWithBooleanType.js index 1b90f8522aa..64c09e2ea65 100644 --- a/tests/baselines/reference/voidOperatorWithBooleanType.js +++ b/tests/baselines/reference/voidOperatorWithBooleanType.js @@ -69,6 +69,7 @@ var ResultIsAny6 = void foo(); var ResultIsAny7 = void A.foo(); // multiple void operator var ResultIsAny8 = void void BOOLEAN; +// miss assignment operators void true; void BOOLEAN; void foo(); diff --git a/tests/baselines/reference/voidOperatorWithEnumType.js b/tests/baselines/reference/voidOperatorWithEnumType.js index 2ac8e99af0f..a168acaa1b6 100644 --- a/tests/baselines/reference/voidOperatorWithEnumType.js +++ b/tests/baselines/reference/voidOperatorWithEnumType.js @@ -44,6 +44,7 @@ var ResultIsAny4 = void (ENUM[0] + ENUM1[1]); // multiple void operators var ResultIsAny5 = void void ENUM; var ResultIsAny6 = void void void (ENUM[0] + ENUM1[1]); +// miss assignment operators void ENUM; void ENUM1; void ENUM1[1]; diff --git a/tests/baselines/reference/voidOperatorWithNumberType.js b/tests/baselines/reference/voidOperatorWithNumberType.js index 16a54786a75..e37e5a82577 100644 --- a/tests/baselines/reference/voidOperatorWithNumberType.js +++ b/tests/baselines/reference/voidOperatorWithNumberType.js @@ -84,6 +84,7 @@ var ResultIsAny11 = void (NUMBER + NUMBER); // multiple void operators var ResultIsAny12 = void void NUMBER; var ResultIsAny13 = void void void (NUMBER + NUMBER); +// miss assignment operators void 1; void NUMBER; void NUMBER1; diff --git a/tests/baselines/reference/voidOperatorWithStringType.js b/tests/baselines/reference/voidOperatorWithStringType.js index 16932eb0024..7954f50bf57 100644 --- a/tests/baselines/reference/voidOperatorWithStringType.js +++ b/tests/baselines/reference/voidOperatorWithStringType.js @@ -84,6 +84,7 @@ var ResultIsAny12 = void STRING.charAt(0); // multiple void operators var ResultIsAny13 = void void STRING; var ResultIsAny14 = void void void (STRING + STRING); +// miss assignment operators void ""; void STRING; void STRING1; diff --git a/tests/baselines/reference/widenedTypes.js b/tests/baselines/reference/widenedTypes.js index 937cfd37520..92dae28b6e4 100644 --- a/tests/baselines/reference/widenedTypes.js +++ b/tests/baselines/reference/widenedTypes.js @@ -27,7 +27,7 @@ var obj: { [x: string]: string; } = { x: 3, y: null }; // assignable because nul //// [widenedTypes.js] null instanceof (function () { }); -({}) instanceof null; +({}) instanceof null; // Ok because null is a subtype of function null in {}; "" in null; for (var a in null) { diff --git a/tests/baselines/reference/withStatement.js b/tests/baselines/reference/withStatement.js index 0a65af30276..579f1574bd0 100644 --- a/tests/baselines/reference/withStatement.js +++ b/tests/baselines/reference/withStatement.js @@ -14,8 +14,8 @@ with (ooo.eee.oo.ah_ah.ting.tang.walla.walla) { // error //// [withStatement.js] with (ooo.eee.oo.ah_ah.ting.tang.walla.walla) { - bing = true; - bang = true; + bing = true; // no error + bang = true; // no error function bar() { } bar(); diff --git a/tests/baselines/reference/wrappedRecursiveGenericType.js b/tests/baselines/reference/wrappedRecursiveGenericType.js index e046616ae52..95db9640bf0 100644 --- a/tests/baselines/reference/wrappedRecursiveGenericType.js +++ b/tests/baselines/reference/wrappedRecursiveGenericType.js @@ -16,7 +16,7 @@ x.a.b.a.val = 5; // val -> X (This should be an error) //// [wrappedRecursiveGenericType.js] var x; -x.val = 5; -x.a.val = 5; -x.a.b.val = 5; -x.a.b.a.val = 5; +x.val = 5; // val -> number +x.a.val = 5; // val -> number +x.a.b.val = 5; // val -> X (This should be an error) +x.a.b.a.val = 5; // val -> X (This should be an error) diff --git a/tests/cases/compiler/commentsFunction.ts b/tests/cases/compiler/commentsFunction.ts index aa16a505c68..8c8d7ae0841 100644 --- a/tests/cases/compiler/commentsFunction.ts +++ b/tests/cases/compiler/commentsFunction.ts @@ -37,4 +37,7 @@ function blah3(a: string // trailing commen single line ) { } -lambdaFoo = (a, b) => a * b; // This is trailing comment that will not get emitted since we are not emitting statement comments yet \ No newline at end of file +lambdaFoo = (a, b) => a * b; // This is trailing comment + +/*leading comment*/() => 0; // Needs to be wrapped in parens to be a valid expression (not declaration) +/*leading comment*/(() => 0); //trailing comment \ No newline at end of file