From 329796823623582455ea43ec63c100483e443dd7 Mon Sep 17 00:00:00 2001 From: zhangrengao Date: Sat, 15 Jan 2022 22:04:32 +0800 Subject: [PATCH] Ts system testing Signed-off-by: zhangrengao Change-Id: Iff1605322e3aef1a1b2031305ae8681b20094fd1 --- testTs/README.en.md | 19 + testTs/README.md | 21 + testTs/config.py | 32 + .../ambient/ambientDeclarationsExternal.txt | 0 .../ambientDeclarationsPatterns.txt | 4 + .../ambient/ambientInsideNonAmbient.txt | 0 .../ambientShorthand_merging.txt | 2 + .../ambientShorthand_reExport.txt | 3 + .../classAbstractAsIdentifier.txt | 3 + .../classBody/classWithEmptyBody.txt | 7 + ...derivedTypeDoesNotRequireExtendsClause.txt | 7 + .../classDeclarations/classInsideBlock.txt | 3 + .../classWithSemicolonClassElement1.txt | 2 + .../classWithSemicolonClassElement2.txt | 2 + .../classExpressions/classExpression1.txt | 1 + .../classExpressions/classExpression2.txt | 3 + .../classExpressions/classExpression3.txt | 3 + .../classExpressions/classExpression4.txt | 2 + ...ifierOnClassExpressionMemberInFunction.txt | 3 + .../classStaticBlock/classStaticBlock1.txt | 2 + .../classStaticBlock/classStaticBlock10.txt | 5 + .../classStaticBlock/classStaticBlock2.txt | 2 + .../classStaticBlock/classStaticBlock21.txt | 2 + ...assConstructorParametersAccessibility3.txt | 5 + .../declarationEmitReadonly.txt | 3 + .../quotedConstructors.txt | 12 + ...desIndexersWithAssignmentCompatibility.txt | 6 + .../typeOfThisInStaticMembers.txt | 8 + .../staticFactory1.txt | 6 + .../staticAndNonStaticPropertiesSameName.txt | 4 + .../staticPropertyAndFunctionWithSameName.txt | 5 + ...cPropertyNameConflictsInAmbientContext.txt | 29 + testTs/expect/constEnums/constEnum3.txt | 2 + .../controlFlowConditionalExpression.txt | 1 + .../controlFlowSuperPropertyAccess.txt | 5 + .../switchWithConstrainedTypeVariable.txt | 1 + .../controlFlow/typeGuardsTypeParameters.txt | 6 + .../declarationEmitWorkWithInlineComments.txt | 6 + .../exportDefaultNamespace.txt | 1 + .../declarationEmit/nullPropertyName.txt | 1 + .../typeReferenceRelatedFiles.txt | 2 + .../logicalAssignment/logicalAssignment5.txt | 6 + ...eArgumentInferenceWithClassExpression1.txt | 1 + ...eArgumentInferenceWithClassExpression3.txt | 1 + ...ringObjectBindingPatternAndAssignment5.txt | 1 + .../emptyArrayBindingPatternParameter01.txt | 1 + .../emptyArrayBindingPatternParameter02.txt | 1 + .../emptyArrayBindingPatternParameter03.txt | 1 + .../emptyObjectBindingPatternParameter01.txt | 1 + .../emptyObjectBindingPatternParameter02.txt | 1 + .../emptyObjectBindingPatternParameter03.txt | 1 + ...PlainCharactersThatArePartsOfEscapes01.txt | 2 + ...ggedTemplateStringsWithTagNamedDeclare.txt | 2 + .../expressions/asOperator/asOperatorASI.txt | 2 + ...onOperatorWithConstrainedTypeParameter.txt | 3 + ...isonOperatorWithIdenticalTypeParameter.txt | 1 + ...shipObjectsOnInstantiatedCallSignature.txt | 18 + ...ectsOnInstantiatedConstructorSignature.txt | 17 + ...eratorWithSubtypeObjectOnCallSignature.txt | 26 + ...ithSubtypeObjectOnConstructorSignature.txt | 21 + ...ratorWithSubtypeObjectOnIndexSignature.txt | 11 + ...btypeObjectOnInstantiatedCallSignature.txt | 18 + ...jectOnInstantiatedConstructorSignature.txt | 16 + ...nceofOperatorWithInvalidStaticToString.txt | 12 + .../logicalAndOperatorWithTypeParameters.txt | 1 + .../nullishCoalescingOperator6.txt | 1 + .../typeGuards/TypeGuardWithArrayUnion.txt | 5 + .../typeGuards/typeGuardFunctionGenerics.txt | 14 + .../typeGuards/typeGuardOfFormInstanceOf.txt | 14 + .../typeGuards/typeGuardOfFormIsType.txt | 12 + .../typeGuardOfFormTypeOfBoolean.txt | 11 + .../typeGuardOfFormTypeOfString.txt | 11 + .../es6/es6modulekindWithES5Target6.txt | 3 + .../importDefaultNamedType.txt | 2 + ...unctionOverloadCompatibilityWithVoid02.txt | 1 + ...unctionOverloadCompatibilityWithVoid03.txt | 1 + ...rameterInitializersBackwardReferencing.txt | 2 + ...ntFunctionWithTheSameNameAndCommonRoot.txt | 2 + testTs/expect/jsdoc/callbackTagNamespace.txt | 1 + testTs/expect/jsdoc/checkJsdocReturnTag1.txt | 3 + .../jsdoc/checkJsdocTypedefInParamTag1.txt | 3 + .../constructorTagOnClassConstructor.txt | 5 + .../jsdoc/constructorTagWithThisTag.txt | 1 + .../declarations/jsDeclarationsThisTypes.txt | 5 + .../jsdoc/enumTagImported/enumTagImported.txt | 1 + .../jsdocAugments_qualifiedName.txt | 2 + .../jsdocImplements_namespacedInterface.txt | 6 + testTs/expect/jsdoc/jsdocLiteral.txt | 1 + .../expect/jsdoc/jsdocNeverUndefinedNull.txt | 1 + .../jsdoc/jsdocParseMatchingBackticks.txt | 1 + testTs/expect/jsdoc/jsdocParseStarEquals.txt | 2 + testTs/expect/jsdoc/jsdocReturnTag1.txt | 3 + .../jsdoc/jsdocTypeReferenceUseBeforeDef.txt | 2 + testTs/expect/jsdoc/linkTagEmit1.txt | 1 + .../moduleExportsElementAccessAssignment2.txt | 1 + .../expect/jsdoc/paramTagTypeResolution2.txt | 1 + testTs/expect/jsdoc/parseLinkTag.txt | 1 + testTs/expect/jsdoc/seeTag3.txt | 1 + testTs/expect/jsdoc/thisTag1.txt | 1 + ...meterExtendsUnionConstraintDistributed.txt | 2 + .../jsdoc/typeTagWithGenericSignature.txt | 1 + .../scopedPackages/scopedPackages.txt | 3 + .../scopedPackagesClassic.txt | 1 + .../untypedModuleImport_allowJs.txt | 1 + .../untypedModuleImport_vsAmbient.txt | 1 + testTs/expect/override/override12.txt | 9 + testTs/expect/override/override17.txt | 9 + .../parserArrowFunctionExpression6.txt | 1 + .../parserClassDeclaration16.txt | 4 + .../parserClassDeclaration19.txt | 4 + .../parserClassDeclaration20.txt | 4 + .../parserClassDeclaration23.txt | 2 + .../parserClassDeclarationIndexSignature1.txt | 2 + .../parserConstructorDeclaration1.txt | 3 + .../parserAccessibilityAfterStatic11.txt | 3 + .../parserAccessibilityAfterStatic14.txt | 3 + .../parserAccessibilityAfterStatic4.txt | 2 + .../parserCommaInTypeMemberList1.txt | 1 + .../parserFunctionDeclaration5.txt | 1 + .../parserAmbiguityWithBinaryOperator1.txt | 1 + .../parserAmbiguityWithBinaryOperator2.txt | 1 + .../parserAmbiguityWithBinaryOperator3.txt | 1 + .../Generics/parserGenericClass1.txt | 2 + .../Generics/parserGenericClass2.txt | 2 + .../Generics/parserGenericConstraint1.txt | 2 + .../parserIndexMemberDeclaration1.txt | 2 + .../parserIndexMemberDeclaration2.txt | 2 + .../parserIndexMemberDeclaration3.txt | 2 + .../parserIndexMemberDeclaration4.txt | 2 + .../parserIndexMemberDeclaration6.txt | 2 + .../ObjectTypes/parserObjectType2.txt | 1 + .../ObjectTypes/parserObjectType3.txt | 1 + .../ObjectTypes/parserObjectType4.txt | 1 + .../ParameterLists/parserParameterList12.txt | 1 + .../ecmascript5/Protected/Protected5.txt | 3 + .../RegressionTests/parser509677.txt | 1 + .../RegressionTests/parser645484.txt | 1 + .../parser_duplicateLabel3.txt | 1 + .../parserReturnStatement3.txt | 1 + .../parser/ecmascript5/parserUnicode3.txt | 2 + .../parserUnicodeWhitespaceCharacter1.txt | 1 + testTs/expect/salsa/constructorFunctions3.txt | 3 + .../inferringClassMembersFromAssignments2.txt | 1 + .../inferringClassMembersFromAssignments6.txt | 1 + testTs/expect/salsa/methodsReturningThis.txt | 1 + .../salsa/privateConstructorFunction.txt | 1 + ...ropertiesOfGenericConstructorFunctions.txt | 2 + .../propertyAssignmentUseParentType3.txt | 5 + ...typePropertyAssignmentMergeAcrossFiles.txt | 1 + .../salsa/thisTypeOfConstructorFunctions.txt | 2 + .../expect/salsa/typeFromJSInitializer2.txt | 2 + .../expect/salsa/typeFromJSInitializer3.txt | 2 + .../salsa/typeFromPropertyAssignment27.txt | 1 + .../salsa/typeFromPropertyAssignment40.txt | 1 + .../salsa/typeFromPrototypeAssignment4.txt | 1 + .../for-ofStatements/ES5For-of10.txt | 1 + .../for-ofStatements/ES5For-of19.txt | 1 + .../for-ofStatements/ES5For-of9.txt | 1 + .../tryStatements/tryStatements.txt | 1 + .../types/import/importTypeGenericTypes.txt | 0 testTs/expect/types/keyof/keyofAndForIn.txt | 3 + .../stringLiteralsWithTypeAssertions01.txt | 1 + .../expect/types/localTypes/localTypes5.txt | 4 + .../types/mapped/mappedTypeConstraints.txt | 5 + testTs/expect/types/mapped/mappedTypes4.txt | 3 + .../nonPrimitiveRhsSideOfInExpression.txt | 1 + .../stringLiteral/stringLiteralType.txt | 1 + .../expect/types/rest/genericObjectRest.txt | 4 + .../typeofThisWithImplicitThis.txt | 1 + .../spread/objectSpreadComputedProperty.txt | 1 + .../spread/objectSpreadRepeatedComplexity.txt | 1 + .../types/spread/spreadNonPrimitive.txt | 1 + .../stringLiteralCheckedInIf01.txt | 1 + .../stringLiteralCheckedInIf02.txt | 2 + ...iteralTypesAsTypeParameterConstraint01.txt | 2 + ...iteralTypesAsTypeParameterConstraint02.txt | 1 + .../stringLiteralTypesInUnionTypes01.txt | 2 + .../stringLiteralTypesInUnionTypes02.txt | 2 + .../stringLiteralTypesInUnionTypes03.txt | 2 + ...ingLiteralTypesOverloadAssignability03.txt | 2 + ...ingLiteralTypesOverloadAssignability04.txt | 2 + ...ingLiteralTypesOverloadAssignability05.txt | 2 + .../stringLiteralTypesTypePredicates01.txt | 1 + ...ringLiteralTypesWithVariousOperators01.txt | 2 + .../expect/types/thisType/fluentClasses.txt | 8 + .../types/thisType/thisTypeOptionalCall.txt | 3 + .../thisType/thisTypeSyntacticContext.txt | 3 + .../classDoesNotDependOnBaseTypes.txt | 3 + .../innerTypeParameterShadowingOuterOne.txt | 4 + .../innerTypeParameterShadowingOuterOne2.txt | 8 + .../typeParametersAvailableInNestedScope2.txt | 3 + ...llSignatureAssignabilityInInheritance2.txt | 7 + ...llSignatureAssignabilityInInheritance4.txt | 7 + ...llSignatureAssignabilityInInheritance5.txt | 7 + ...ctSignatureAssignabilityInInheritance2.txt | 7 + ...ctSignatureAssignabilityInInheritance5.txt | 7 + ...estCommonTypeOfConditionalExpressions2.txt | 9 + .../functionWithMultipleReturnStatements.txt | 7 + .../functionWithMultipleReturnStatements2.txt | 11 + ...ubtypesOfTypeParameterWithConstraints3.txt | 1 + .../subtypingWithObjectMembers4.txt | 13 + .../subtypingWithOptionalProperties.txt | 2 + ...nericCallWithGenericSignatureArguments.txt | 7 + .../genericCallWithNonSymmetricSubtypes.txt | 5 + testTs/import_tests.json | 11 + testTs/run_testTs.py | 256 + testTs/skip_tests.json | 5238 ++++++ testTs/test-case.patch | 13245 ++++++++++++++++ testTs/utils.py | 123 + ts2panda/BUILD.gn | 2 +- ts2panda/src/base/literal.ts | 7 + ts2panda/src/cmdOptions.ts | 10 +- ts2panda/src/compilerDriver.ts | 4 + ts2panda/src/ts2panda.ts | 14 + 214 files changed, 19713 insertions(+), 2 deletions(-) create mode 100644 testTs/README.en.md create mode 100644 testTs/README.md create mode 100644 testTs/config.py create mode 100644 testTs/expect/ambient/ambientDeclarationsExternal.txt create mode 100644 testTs/expect/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.txt create mode 100644 testTs/expect/ambient/ambientInsideNonAmbient.txt create mode 100644 testTs/expect/ambient/ambientShorthand_merging/ambientShorthand_merging.txt create mode 100644 testTs/expect/ambient/ambientShorthand_reExport/ambientShorthand_reExport.txt create mode 100644 testTs/expect/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.txt create mode 100644 testTs/expect/classes/classDeclarations/classBody/classWithEmptyBody.txt create mode 100644 testTs/expect/classes/classDeclarations/classHeritageSpecification/derivedTypeDoesNotRequireExtendsClause.txt create mode 100644 testTs/expect/classes/classDeclarations/classInsideBlock.txt create mode 100644 testTs/expect/classes/classDeclarations/classWithSemicolonClassElement1.txt create mode 100644 testTs/expect/classes/classDeclarations/classWithSemicolonClassElement2.txt create mode 100644 testTs/expect/classes/classExpressions/classExpression1.txt create mode 100644 testTs/expect/classes/classExpressions/classExpression2.txt create mode 100644 testTs/expect/classes/classExpressions/classExpression3.txt create mode 100644 testTs/expect/classes/classExpressions/classExpression4.txt create mode 100644 testTs/expect/classes/classExpressions/modifierOnClassExpressionMemberInFunction.txt create mode 100644 testTs/expect/classes/classStaticBlock/classStaticBlock1.txt create mode 100644 testTs/expect/classes/classStaticBlock/classStaticBlock10.txt create mode 100644 testTs/expect/classes/classStaticBlock/classStaticBlock2.txt create mode 100644 testTs/expect/classes/classStaticBlock/classStaticBlock21.txt create mode 100644 testTs/expect/classes/constructorDeclarations/classConstructorParametersAccessibility3.txt create mode 100644 testTs/expect/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.txt create mode 100644 testTs/expect/classes/constructorDeclarations/quotedConstructors.txt create mode 100644 testTs/expect/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.txt create mode 100644 testTs/expect/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.txt create mode 100644 testTs/expect/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.txt create mode 100644 testTs/expect/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.txt create mode 100644 testTs/expect/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.txt create mode 100644 testTs/expect/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.txt create mode 100644 testTs/expect/constEnums/constEnum3.txt create mode 100644 testTs/expect/controlFlow/controlFlowConditionalExpression.txt create mode 100644 testTs/expect/controlFlow/controlFlowSuperPropertyAccess.txt create mode 100644 testTs/expect/controlFlow/switchWithConstrainedTypeVariable.txt create mode 100644 testTs/expect/controlFlow/typeGuardsTypeParameters.txt create mode 100644 testTs/expect/declarationEmit/declarationEmitWorkWithInlineComments.txt create mode 100644 testTs/expect/declarationEmit/exportDefaultNamespace.txt create mode 100644 testTs/expect/declarationEmit/nullPropertyName.txt create mode 100644 testTs/expect/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.txt create mode 100644 testTs/expect/es2021/logicalAssignment/logicalAssignment5.txt create mode 100644 testTs/expect/es6/classExpressions/typeArgumentInferenceWithClassExpression1.txt create mode 100644 testTs/expect/es6/classExpressions/typeArgumentInferenceWithClassExpression3.txt create mode 100644 testTs/expect/es6/destructuring/destructuringObjectBindingPatternAndAssignment5.txt create mode 100644 testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter01.txt create mode 100644 testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter02.txt create mode 100644 testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter03.txt create mode 100644 testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter01.txt create mode 100644 testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter02.txt create mode 100644 testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter03.txt create mode 100644 testTs/expect/es6/templates/taggedTemplateStringsPlainCharactersThatArePartsOfEscapes01.txt create mode 100644 testTs/expect/es6/templates/taggedTemplateStringsWithTagNamedDeclare.txt create mode 100644 testTs/expect/expressions/asOperator/asOperatorASI.txt create mode 100644 testTs/expect/expressions/binaryOperators/additionOperator/additionOperatorWithConstrainedTypeParameter.txt create mode 100644 testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalTypeParameter.txt create mode 100644 testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.txt create mode 100644 testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.txt create mode 100644 testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.txt create mode 100644 testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.txt create mode 100644 testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.txt create mode 100644 testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.txt create mode 100644 testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.txt create mode 100644 testTs/expect/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.txt create mode 100644 testTs/expect/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithTypeParameters.txt create mode 100644 testTs/expect/expressions/nullishCoalescingOperator/nullishCoalescingOperator6.txt create mode 100644 testTs/expect/expressions/typeGuards/TypeGuardWithArrayUnion.txt create mode 100644 testTs/expect/expressions/typeGuards/typeGuardFunctionGenerics.txt create mode 100644 testTs/expect/expressions/typeGuards/typeGuardOfFormInstanceOf.txt create mode 100644 testTs/expect/expressions/typeGuards/typeGuardOfFormIsType.txt create mode 100644 testTs/expect/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.txt create mode 100644 testTs/expect/expressions/typeGuards/typeGuardOfFormTypeOfString.txt create mode 100644 testTs/expect/externalModules/es6/es6modulekindWithES5Target6.txt create mode 100644 testTs/expect/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.txt create mode 100644 testTs/expect/functions/functionOverloadCompatibilityWithVoid02.txt create mode 100644 testTs/expect/functions/functionOverloadCompatibilityWithVoid03.txt create mode 100644 testTs/expect/functions/parameterInitializersBackwardReferencing.txt create mode 100644 testTs/expect/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.txt create mode 100644 testTs/expect/jsdoc/callbackTagNamespace.txt create mode 100644 testTs/expect/jsdoc/checkJsdocReturnTag1.txt create mode 100644 testTs/expect/jsdoc/checkJsdocTypedefInParamTag1.txt create mode 100644 testTs/expect/jsdoc/constructorTagOnClassConstructor.txt create mode 100644 testTs/expect/jsdoc/constructorTagWithThisTag.txt create mode 100644 testTs/expect/jsdoc/declarations/jsDeclarationsThisTypes.txt create mode 100644 testTs/expect/jsdoc/enumTagImported/enumTagImported.txt create mode 100644 testTs/expect/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.txt create mode 100644 testTs/expect/jsdoc/jsdocImplements_namespacedInterface.txt create mode 100644 testTs/expect/jsdoc/jsdocLiteral.txt create mode 100644 testTs/expect/jsdoc/jsdocNeverUndefinedNull.txt create mode 100644 testTs/expect/jsdoc/jsdocParseMatchingBackticks.txt create mode 100644 testTs/expect/jsdoc/jsdocParseStarEquals.txt create mode 100644 testTs/expect/jsdoc/jsdocReturnTag1.txt create mode 100644 testTs/expect/jsdoc/jsdocTypeReferenceUseBeforeDef.txt create mode 100644 testTs/expect/jsdoc/linkTagEmit1.txt create mode 100644 testTs/expect/jsdoc/moduleExportsElementAccessAssignment2.txt create mode 100644 testTs/expect/jsdoc/paramTagTypeResolution2.txt create mode 100644 testTs/expect/jsdoc/parseLinkTag.txt create mode 100644 testTs/expect/jsdoc/seeTag3.txt create mode 100644 testTs/expect/jsdoc/thisTag1.txt create mode 100644 testTs/expect/jsdoc/typeParameterExtendsUnionConstraintDistributed.txt create mode 100644 testTs/expect/jsdoc/typeTagWithGenericSignature.txt create mode 100644 testTs/expect/moduleResolution/scopedPackages/scopedPackages.txt create mode 100644 testTs/expect/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.txt create mode 100644 testTs/expect/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.txt create mode 100644 testTs/expect/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.txt create mode 100644 testTs/expect/override/override12.txt create mode 100644 testTs/expect/override/override17.txt create mode 100644 testTs/expect/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression6.txt create mode 100644 testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.txt create mode 100644 testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.txt create mode 100644 testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.txt create mode 100644 testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.txt create mode 100644 testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.txt create mode 100644 testTs/expect/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.txt create mode 100644 testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.txt create mode 100644 testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.txt create mode 100644 testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.txt create mode 100644 testTs/expect/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList1.txt create mode 100644 testTs/expect/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration5.txt create mode 100644 testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator1.txt create mode 100644 testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator2.txt create mode 100644 testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator3.txt create mode 100644 testTs/expect/parser/ecmascript5/Generics/parserGenericClass1.txt create mode 100644 testTs/expect/parser/ecmascript5/Generics/parserGenericClass2.txt create mode 100644 testTs/expect/parser/ecmascript5/Generics/parserGenericConstraint1.txt create mode 100644 testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.txt create mode 100644 testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.txt create mode 100644 testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.txt create mode 100644 testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.txt create mode 100644 testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.txt create mode 100644 testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType2.txt create mode 100644 testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType3.txt create mode 100644 testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType4.txt create mode 100644 testTs/expect/parser/ecmascript5/ParameterLists/parserParameterList12.txt create mode 100644 testTs/expect/parser/ecmascript5/Protected/Protected5.txt create mode 100644 testTs/expect/parser/ecmascript5/RegressionTests/parser509677.txt create mode 100644 testTs/expect/parser/ecmascript5/RegressionTests/parser645484.txt create mode 100644 testTs/expect/parser/ecmascript5/Statements/LabeledStatements/parser_duplicateLabel3.txt create mode 100644 testTs/expect/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement3.txt create mode 100644 testTs/expect/parser/ecmascript5/parserUnicode3.txt create mode 100644 testTs/expect/parser/ecmascript5/parserUnicodeWhitespaceCharacter1.txt create mode 100644 testTs/expect/salsa/constructorFunctions3.txt create mode 100644 testTs/expect/salsa/inferringClassMembersFromAssignments2.txt create mode 100644 testTs/expect/salsa/inferringClassMembersFromAssignments6.txt create mode 100644 testTs/expect/salsa/methodsReturningThis.txt create mode 100644 testTs/expect/salsa/privateConstructorFunction.txt create mode 100644 testTs/expect/salsa/propertiesOfGenericConstructorFunctions.txt create mode 100644 testTs/expect/salsa/propertyAssignmentUseParentType3.txt create mode 100644 testTs/expect/salsa/prototypePropertyAssignmentMergeAcrossFiles.txt create mode 100644 testTs/expect/salsa/thisTypeOfConstructorFunctions.txt create mode 100644 testTs/expect/salsa/typeFromJSInitializer2.txt create mode 100644 testTs/expect/salsa/typeFromJSInitializer3.txt create mode 100644 testTs/expect/salsa/typeFromPropertyAssignment27.txt create mode 100644 testTs/expect/salsa/typeFromPropertyAssignment40.txt create mode 100644 testTs/expect/salsa/typeFromPrototypeAssignment4.txt create mode 100644 testTs/expect/statements/for-ofStatements/ES5For-of10.txt create mode 100644 testTs/expect/statements/for-ofStatements/ES5For-of19.txt create mode 100644 testTs/expect/statements/for-ofStatements/ES5For-of9.txt create mode 100644 testTs/expect/statements/tryStatements/tryStatements.txt create mode 100644 testTs/expect/types/import/importTypeGenericTypes.txt create mode 100644 testTs/expect/types/keyof/keyofAndForIn.txt create mode 100644 testTs/expect/types/literal/stringLiteralsWithTypeAssertions01.txt create mode 100644 testTs/expect/types/localTypes/localTypes5.txt create mode 100644 testTs/expect/types/mapped/mappedTypeConstraints.txt create mode 100644 testTs/expect/types/mapped/mappedTypes4.txt create mode 100644 testTs/expect/types/nonPrimitive/nonPrimitiveRhsSideOfInExpression.txt create mode 100644 testTs/expect/types/primitives/stringLiteral/stringLiteralType.txt create mode 100644 testTs/expect/types/rest/genericObjectRest.txt create mode 100644 testTs/expect/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.txt create mode 100644 testTs/expect/types/spread/objectSpreadComputedProperty.txt create mode 100644 testTs/expect/types/spread/objectSpreadRepeatedComplexity.txt create mode 100644 testTs/expect/types/spread/spreadNonPrimitive.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralCheckedInIf01.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralCheckedInIf02.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint01.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes01.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes02.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes03.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability03.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability04.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability05.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesTypePredicates01.txt create mode 100644 testTs/expect/types/stringLiteral/stringLiteralTypesWithVariousOperators01.txt create mode 100644 testTs/expect/types/thisType/fluentClasses.txt create mode 100644 testTs/expect/types/thisType/thisTypeOptionalCall.txt create mode 100644 testTs/expect/types/thisType/thisTypeSyntacticContext.txt create mode 100644 testTs/expect/types/typeAliases/classDoesNotDependOnBaseTypes.txt create mode 100644 testTs/expect/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne.txt create mode 100644 testTs/expect/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.txt create mode 100644 testTs/expect/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope2.txt create mode 100644 testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.txt create mode 100644 testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.txt create mode 100644 testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.txt create mode 100644 testTs/expect/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.txt create mode 100644 testTs/expect/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.txt create mode 100644 testTs/expect/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.txt create mode 100644 testTs/expect/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.txt create mode 100644 testTs/expect/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements2.txt create mode 100644 testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints3.txt create mode 100644 testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.txt create mode 100644 testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypingWithOptionalProperties.txt create mode 100644 testTs/expect/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.txt create mode 100644 testTs/expect/types/typeRelationships/typeInference/genericCallWithNonSymmetricSubtypes.txt create mode 100644 testTs/import_tests.json create mode 100644 testTs/run_testTs.py create mode 100644 testTs/skip_tests.json create mode 100644 testTs/test-case.patch create mode 100644 testTs/utils.py diff --git a/testTs/README.en.md b/testTs/README.en.md new file mode 100644 index 0000000000..5a6262ab07 --- /dev/null +++ b/testTs/README.en.md @@ -0,0 +1,19 @@ +# testTs + +### File info +1. skip_tests.json:avoids code files and does not perform operations on TS files stored in the file. +2. import_tests.json:Is the path to the TS code file where import files are stored to add import files. + +### Environment to prepare +1. Compile TS2ABC warehouse in hongmeng system code root directory. Delete the out directory and run the './build.sh --product-name Hi3516DV300 --build-target ark_ts2abc' command. +2. Go to the tool build directory 'cd out/hi3516DV300/clang_x64/ark/ark/build' in the out file and run the 'npm install' command to set up the environment +3. After setting up the environment, enter the ark/ts2abc directory of Hongmeng system + +### Execute test framework +1. Execute options
+1.1 Performing a Full Test
+python3 ./testTs/run_testTs.py
+1.2 Performing directory Tests
+python3 ./testTs/run_testTs.py --dir File directory, for example(./testTs/test/ambient)
+1.3 Performing a Single file Test
+python3 ./testTs/run_testTs.py --file File path, for example (./testTs/test/ambient/1.ts)
diff --git a/testTs/README.md b/testTs/README.md new file mode 100644 index 0000000000..7c8eadc4fb --- /dev/null +++ b/testTs/README.md @@ -0,0 +1,21 @@ +# testTs + +### 文件简介 +1.skip_tests.json:进行代码文件的规避执行,能对文件中存放的ts文件进行不执行操作。
+2.import_tests.json:存放import的ts代码文件路径,对import类型文件进行添加。
+ +### 环境准备 +1.在鸿蒙系统代码根目录下编译ts2abc仓。先删除out目录,然后执行./build.sh --product-name Hi3516DV300 --build-target ark_ts2abc命令进行编译。
+2.进入out文件中的工具build目录 cd out/hi3516dv300/clang_x64/ark/ark/build,使用npm install命令进行环境搭建
+3.搭建完环境,进入到鸿蒙系统ark/ts2abc目录下
+ + +### 执行测试框架 +1.执行选项
+1.1 执行全量测试
+python3 ./testTs/run_testTs.py
+1.2 执行目录测试
+python3 ./testTs/run_testTs.py --dir 文件目录,例如(./testTs/test/ambient)
+1.3 执行单个文件测试
+python3 ./testTs/run_testTs.py --file 文件路径,例如(./testTs/test/ambient/1.ts)
+ diff --git a/testTs/config.py b/testTs/config.py new file mode 100644 index 0000000000..d159700839 --- /dev/null +++ b/testTs/config.py @@ -0,0 +1,32 @@ +import os +import json +TS_GIT_PATH = 'https://gitee.com/zhangrengao1/TypeScript.git' +TS_TAG = "v4.3.5" + +EXPECT_DIR = os.path.join("testTs", "expect") +OUT_DIR = os.path.join("out") +OUT_TEST_DIR = os.path.join("out", "testTs") +OUT_RESULT_FILE = os.path.join("out", "testTs", "result.txt") +TEST_DIR = os.path.join("testTs") +TS_CASES_DIR = os.path.join(".","testTs", "test") +SKIP_FILE_PATH = os.path.join("testTs", "skip_tests.json") +IMPORT_FILE_PATH = os.path.join("testTs", "import_tests.json") +CUR_FILE_DIR = os.path.dirname(__file__) +CODE_ROOT = os.path.abspath(os.path.join(CUR_FILE_DIR, "../../..")) +ARK_DIR = f"{CODE_ROOT}/out/hi3516dv300/clang_x64/ark/ark" +# ARK_DIR = f"{CODE_ROOT}/out/ohos-arm-release/clang_x64/obj/ark" +WORK_PATH = f'{CODE_ROOT}/ark/ts2abc' + +DEFAULT_ARK_FRONTEND_TOOL = os.path.join(ARK_DIR, "build", "src", "index.js") +# DEFAULT_ARK_FRONTEND_TOOL = os.path.join(ARK_DIR, "ts2abc", "ts2panda", "build", "src", "index.js") + +TEST_PATH = os.sep.join([".", "testTs", "test"]) +OUT_PATH = os.sep.join([".", "out", "testTs"]) +EXPECT_PATH = os.sep.join([".", "testTs", "expect"]) +TS_EXT = ".ts" +TXT_EXT = ".txt" +ABC_EXT = ".abc" +f = open(IMPORT_FILE_PATH,'r') +content = f.read() +f.close() +IMPORT_TEST = json.loads(content) \ No newline at end of file diff --git a/testTs/expect/ambient/ambientDeclarationsExternal.txt b/testTs/expect/ambient/ambientDeclarationsExternal.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/testTs/expect/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.txt b/testTs/expect/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.txt new file mode 100644 index 0000000000..c784a0c9ff --- /dev/null +++ b/testTs/expect/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.txt @@ -0,0 +1,4 @@ +{'literalBuffer': [{'tag': 2, 'value': 7}, {'tag': 5, 'value': '#foo#foobarbaz'}]} +{'literalBuffer': [{'tag': 2, 'value': 7}, {'tag': 5, 'value': '#baz#foobarbaz'}]} +{'literalBuffer': [{'tag': 2, 'value': 7}, {'tag': 5, 'value': '#foos#foosball'}]} +{'literalBuffer': [{'tag': 2, 'value': 7}, {'tag': 5, 'value': '#fileText#./file!text'}]} diff --git a/testTs/expect/ambient/ambientInsideNonAmbient.txt b/testTs/expect/ambient/ambientInsideNonAmbient.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/testTs/expect/ambient/ambientShorthand_merging/ambientShorthand_merging.txt b/testTs/expect/ambient/ambientShorthand_merging/ambientShorthand_merging.txt new file mode 100644 index 0000000000..b411356170 --- /dev/null +++ b/testTs/expect/ambient/ambientShorthand_merging/ambientShorthand_merging.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 7}, {'tag': 5, 'value': '#foo#foo'}]} +{'literalBuffer': [{'tag': 2, 'value': 7}, {'tag': 5, 'value': '#bar#foo'}]} diff --git a/testTs/expect/ambient/ambientShorthand_reExport/ambientShorthand_reExport.txt b/testTs/expect/ambient/ambientShorthand_reExport/ambientShorthand_reExport.txt new file mode 100644 index 0000000000..89bf62f5f8 --- /dev/null +++ b/testTs/expect/ambient/ambientShorthand_reExport/ambientShorthand_reExport.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2,'value': 7},{'tag': 5,'value': '#x#./reExportX'}]} +{'literalBuffer': [{'tag': 2,'value':7},{'tag': 5,'value': '#*#$'}]} +{'literalBuffer': [{'tag': 2,'value': 7},{'tag': 5, 'value': '#x#jquery'}]} \ No newline at end of file diff --git a/testTs/expect/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.txt b/testTs/expect/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.txt new file mode 100644 index 0000000000..9faa2aa127 --- /dev/null +++ b/testTs/expect/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/classDeclarations/classBody/classWithEmptyBody.txt b/testTs/expect/classes/classDeclarations/classBody/classWithEmptyBody.txt new file mode 100644 index 0000000000..e8bea7e53e --- /dev/null +++ b/testTs/expect/classes/classDeclarations/classBody/classWithEmptyBody.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/classes/classDeclarations/classHeritageSpecification/derivedTypeDoesNotRequireExtendsClause.txt b/testTs/expect/classes/classDeclarations/classHeritageSpecification/derivedTypeDoesNotRequireExtendsClause.txt new file mode 100644 index 0000000000..be246d20d5 --- /dev/null +++ b/testTs/expect/classes/classDeclarations/classHeritageSpecification/derivedTypeDoesNotRequireExtendsClause.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 51}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 55}]} +{'literalBuffer': [{'tag': 2, 'value': 5}, {'tag': 2, 'value': 52}]} diff --git a/testTs/expect/classes/classDeclarations/classInsideBlock.txt b/testTs/expect/classes/classDeclarations/classInsideBlock.txt new file mode 100644 index 0000000000..fafcbe0037 --- /dev/null +++ b/testTs/expect/classes/classDeclarations/classInsideBlock.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} diff --git a/testTs/expect/classes/classDeclarations/classWithSemicolonClassElement1.txt b/testTs/expect/classes/classDeclarations/classWithSemicolonClassElement1.txt new file mode 100644 index 0000000000..3db8749b2d --- /dev/null +++ b/testTs/expect/classes/classDeclarations/classWithSemicolonClassElement1.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/classDeclarations/classWithSemicolonClassElement2.txt b/testTs/expect/classes/classDeclarations/classWithSemicolonClassElement2.txt new file mode 100644 index 0000000000..3db8749b2d --- /dev/null +++ b/testTs/expect/classes/classDeclarations/classWithSemicolonClassElement2.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/classExpressions/classExpression1.txt b/testTs/expect/classes/classExpressions/classExpression1.txt new file mode 100644 index 0000000000..0fc2cd081a --- /dev/null +++ b/testTs/expect/classes/classExpressions/classExpression1.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/classes/classExpressions/classExpression2.txt b/testTs/expect/classes/classExpressions/classExpression2.txt new file mode 100644 index 0000000000..5948291899 --- /dev/null +++ b/testTs/expect/classes/classExpressions/classExpression2.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} \ No newline at end of file diff --git a/testTs/expect/classes/classExpressions/classExpression3.txt b/testTs/expect/classes/classExpressions/classExpression3.txt new file mode 100644 index 0000000000..d47d3211d0 --- /dev/null +++ b/testTs/expect/classes/classExpressions/classExpression3.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'c'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'b'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/classes/classExpressions/classExpression4.txt b/testTs/expect/classes/classExpressions/classExpression4.txt new file mode 100644 index 0000000000..cb484ef9c3 --- /dev/null +++ b/testTs/expect/classes/classExpressions/classExpression4.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/classes/classExpressions/modifierOnClassExpressionMemberInFunction.txt b/testTs/expect/classes/classExpressions/modifierOnClassExpressionMemberInFunction.txt new file mode 100644 index 0000000000..453db53f71 --- /dev/null +++ b/testTs/expect/classes/classExpressions/modifierOnClassExpressionMemberInFunction.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'prop1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'prop2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/classes/classStaticBlock/classStaticBlock1.txt b/testTs/expect/classes/classStaticBlock/classStaticBlock1.txt new file mode 100644 index 0000000000..3db8749b2d --- /dev/null +++ b/testTs/expect/classes/classStaticBlock/classStaticBlock1.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/classStaticBlock/classStaticBlock10.txt b/testTs/expect/classes/classStaticBlock/classStaticBlock10.txt new file mode 100644 index 0000000000..40a222fb6b --- /dev/null +++ b/testTs/expect/classes/classStaticBlock/classStaticBlock10.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} diff --git a/testTs/expect/classes/classStaticBlock/classStaticBlock2.txt b/testTs/expect/classes/classStaticBlock/classStaticBlock2.txt new file mode 100644 index 0000000000..627922bace --- /dev/null +++ b/testTs/expect/classes/classStaticBlock/classStaticBlock2.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/classes/classStaticBlock/classStaticBlock21.txt b/testTs/expect/classes/classStaticBlock/classStaticBlock21.txt new file mode 100644 index 0000000000..3db8749b2d --- /dev/null +++ b/testTs/expect/classes/classStaticBlock/classStaticBlock21.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/constructorDeclarations/classConstructorParametersAccessibility3.txt b/testTs/expect/classes/constructorDeclarations/classConstructorParametersAccessibility3.txt new file mode 100644 index 0000000000..b701403201 --- /dev/null +++ b/testTs/expect/classes/constructorDeclarations/classConstructorParametersAccessibility3.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.txt b/testTs/expect/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.txt new file mode 100644 index 0000000000..032708fb1b --- /dev/null +++ b/testTs/expect/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/constructorDeclarations/quotedConstructors.txt b/testTs/expect/classes/constructorDeclarations/quotedConstructors.txt new file mode 100644 index 0000000000..482f3a8fcd --- /dev/null +++ b/testTs/expect/classes/constructorDeclarations/quotedConstructors.txt @@ -0,0 +1,12 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5}, {'tag': 2, 'value': 58}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 61}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 60}]} diff --git a/testTs/expect/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.txt b/testTs/expect/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.txt new file mode 100644 index 0000000000..1de15e6e53 --- /dev/null +++ b/testTs/expect/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.txt @@ -0,0 +1,6 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} diff --git a/testTs/expect/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.txt b/testTs/expect/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.txt new file mode 100644 index 0000000000..648bcad70c --- /dev/null +++ b/testTs/expect/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.txt @@ -0,0 +1,8 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 56}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'test'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 55}]} diff --git a/testTs/expect/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.txt b/testTs/expect/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.txt new file mode 100644 index 0000000000..fe26f60751 --- /dev/null +++ b/testTs/expect/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.txt @@ -0,0 +1,6 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'create'}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'create'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.txt b/testTs/expect/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.txt new file mode 100644 index 0000000000..2ae6b94b62 --- /dev/null +++ b/testTs/expect/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.txt @@ -0,0 +1,4 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.txt b/testTs/expect/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.txt new file mode 100644 index 0000000000..d76df63585 --- /dev/null +++ b/testTs/expect/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 53}]} diff --git a/testTs/expect/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.txt b/testTs/expect/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.txt new file mode 100644 index 0000000000..95234de5dd --- /dev/null +++ b/testTs/expect/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.txt @@ -0,0 +1,29 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'name'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'name'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'name'}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'name'}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'name'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'name'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'length'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'length'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'length'}, {'tag': 2, 'value': 61}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'length'}, {'tag': 2, 'value': 60}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'length'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'length'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 59}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'prototype'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'prototype'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 63}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'prototype'}, {'tag': 2, 'value': 66}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'prototype'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'prototype'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 65}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'caller'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'caller'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 68}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'caller'}, {'tag': 2, 'value': 72}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'caller'}, {'tag': 2, 'value': 71}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'caller'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'caller'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 70}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'arguments'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'arguments'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 74}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'arguments'}, {'tag': 2, 'value': 78}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'arguments'}, {'tag': 2, 'value': 77}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'arguments'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'arguments'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 76}]} diff --git a/testTs/expect/constEnums/constEnum3.txt b/testTs/expect/constEnums/constEnum3.txt new file mode 100644 index 0000000000..aa89f04ef4 --- /dev/null +++ b/testTs/expect/constEnums/constEnum3.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/controlFlow/controlFlowConditionalExpression.txt b/testTs/expect/controlFlow/controlFlowConditionalExpression.txt new file mode 100644 index 0000000000..31fff99046 --- /dev/null +++ b/testTs/expect/controlFlow/controlFlowConditionalExpression.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 2}]} diff --git a/testTs/expect/controlFlow/controlFlowSuperPropertyAccess.txt b/testTs/expect/controlFlow/controlFlowSuperPropertyAccess.txt new file mode 100644 index 0000000000..b51351d0bf --- /dev/null +++ b/testTs/expect/controlFlow/controlFlowSuperPropertyAccess.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'body'}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'm'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'body'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/controlFlow/switchWithConstrainedTypeVariable.txt b/testTs/expect/controlFlow/switchWithConstrainedTypeVariable.txt new file mode 100644 index 0000000000..895aabdd2b --- /dev/null +++ b/testTs/expect/controlFlow/switchWithConstrainedTypeVariable.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'function1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/controlFlow/typeGuardsTypeParameters.txt b/testTs/expect/controlFlow/typeGuardsTypeParameters.txt new file mode 100644 index 0000000000..09cd677883 --- /dev/null +++ b/testTs/expect/controlFlow/typeGuardsTypeParameters.txt @@ -0,0 +1,6 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'prop'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'fun'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 5}, {'tag': 2, 'value': 4}]} diff --git a/testTs/expect/declarationEmit/declarationEmitWorkWithInlineComments.txt b/testTs/expect/declarationEmit/declarationEmitWorkWithInlineComments.txt new file mode 100644 index 0000000000..8687a5ec63 --- /dev/null +++ b/testTs/expect/declarationEmit/declarationEmitWorkWithInlineComments.txt @@ -0,0 +1,6 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 10}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 56}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/declarationEmit/exportDefaultNamespace.txt b/testTs/expect/declarationEmit/exportDefaultNamespace.txt new file mode 100644 index 0000000000..0d6ce24e7c --- /dev/null +++ b/testTs/expect/declarationEmit/exportDefaultNamespace.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'someFunc'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/declarationEmit/nullPropertyName.txt b/testTs/expect/declarationEmit/nullPropertyName.txt new file mode 100644 index 0000000000..4409a504b1 --- /dev/null +++ b/testTs/expect/declarationEmit/nullPropertyName.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.txt b/testTs/expect/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.txt new file mode 100644 index 0000000000..807c6f85f6 --- /dev/null +++ b/testTs/expect/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2,'value': 7},{'tag': 5,'value': '#FSWatcher#fs'}]} +{'literalBuffer': [{ 'tag': 2, 'value': 3},{ 'tag': 2, 'value': 0},{ 'tag': 2, 'value': 0},{ 'tag': 5, 'value': 'f'},{ 'tag': 2, 'value': 0},{ 'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/es2021/logicalAssignment/logicalAssignment5.txt b/testTs/expect/es2021/logicalAssignment/logicalAssignment5.txt new file mode 100644 index 0000000000..32eaff815e --- /dev/null +++ b/testTs/expect/es2021/logicalAssignment/logicalAssignment5.txt @@ -0,0 +1,6 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo3'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'bar1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'bar2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'bar3'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/classExpressions/typeArgumentInferenceWithClassExpression1.txt b/testTs/expect/es6/classExpressions/typeArgumentInferenceWithClassExpression1.txt new file mode 100644 index 0000000000..cf1009fe89 --- /dev/null +++ b/testTs/expect/es6/classExpressions/typeArgumentInferenceWithClassExpression1.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/classExpressions/typeArgumentInferenceWithClassExpression3.txt b/testTs/expect/es6/classExpressions/typeArgumentInferenceWithClassExpression3.txt new file mode 100644 index 0000000000..cf1009fe89 --- /dev/null +++ b/testTs/expect/es6/classExpressions/typeArgumentInferenceWithClassExpression3.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/destructuring/destructuringObjectBindingPatternAndAssignment5.txt b/testTs/expect/es6/destructuring/destructuringObjectBindingPatternAndAssignment5.txt new file mode 100644 index 0000000000..939ce37720 --- /dev/null +++ b/testTs/expect/es6/destructuring/destructuringObjectBindingPatternAndAssignment5.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter01.txt b/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter01.txt new file mode 100644 index 0000000000..a2d3e42bcd --- /dev/null +++ b/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter01.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter02.txt b/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter02.txt new file mode 100644 index 0000000000..cb53e8fad3 --- /dev/null +++ b/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter02.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter03.txt b/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter03.txt new file mode 100644 index 0000000000..cb53e8fad3 --- /dev/null +++ b/testTs/expect/es6/destructuring/emptyArrayBindingPatternParameter03.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter01.txt b/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter01.txt new file mode 100644 index 0000000000..a2d3e42bcd --- /dev/null +++ b/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter01.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter02.txt b/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter02.txt new file mode 100644 index 0000000000..cb53e8fad3 --- /dev/null +++ b/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter02.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter03.txt b/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter03.txt new file mode 100644 index 0000000000..cb53e8fad3 --- /dev/null +++ b/testTs/expect/es6/destructuring/emptyObjectBindingPatternParameter03.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/templates/taggedTemplateStringsPlainCharactersThatArePartsOfEscapes01.txt b/testTs/expect/es6/templates/taggedTemplateStringsPlainCharactersThatArePartsOfEscapes01.txt new file mode 100644 index 0000000000..ceb3fd98eb --- /dev/null +++ b/testTs/expect/es6/templates/taggedTemplateStringsPlainCharactersThatArePartsOfEscapes01.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 5}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/es6/templates/taggedTemplateStringsWithTagNamedDeclare.txt b/testTs/expect/es6/templates/taggedTemplateStringsWithTagNamedDeclare.txt new file mode 100644 index 0000000000..f3777fd396 --- /dev/null +++ b/testTs/expect/es6/templates/taggedTemplateStringsWithTagNamedDeclare.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'declare'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 5}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/expressions/asOperator/asOperatorASI.txt b/testTs/expect/expressions/asOperator/asOperatorASI.txt new file mode 100644 index 0000000000..3db8749b2d --- /dev/null +++ b/testTs/expect/expressions/asOperator/asOperatorASI.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/expressions/binaryOperators/additionOperator/additionOperatorWithConstrainedTypeParameter.txt b/testTs/expect/expressions/binaryOperators/additionOperator/additionOperatorWithConstrainedTypeParameter.txt new file mode 100644 index 0000000000..f890c2663a --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/additionOperator/additionOperatorWithConstrainedTypeParameter.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'sum'}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'realSum'}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 5}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalTypeParameter.txt b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalTypeParameter.txt new file mode 100644 index 0000000000..cf1009fe89 --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalTypeParameter.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.txt b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.txt new file mode 100644 index 0000000000..5d543d0bb8 --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.txt @@ -0,0 +1,18 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 64}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 63}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 63}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'b'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 65}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'c'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 67}]} diff --git a/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.txt b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.txt new file mode 100644 index 0000000000..fab0d77219 --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.txt @@ -0,0 +1,17 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 64}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 63}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 63}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'b'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 65}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'c'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.txt b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.txt new file mode 100644 index 0000000000..5e04d184e6 --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.txt @@ -0,0 +1,26 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 66}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 65}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 66}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 66}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 66}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 72}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 65}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'b'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 71}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.txt b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.txt new file mode 100644 index 0000000000..cf19b9433e --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.txt @@ -0,0 +1,21 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 68}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'b'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 67}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 53}]} diff --git a/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.txt b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.txt new file mode 100644 index 0000000000..49ede8416e --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.txt @@ -0,0 +1,11 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 55}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 58}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'b'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 55}]} diff --git a/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.txt b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.txt new file mode 100644 index 0000000000..8516d632ce --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.txt @@ -0,0 +1,18 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 63}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 66}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 65}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 65}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'b'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 67}]} diff --git a/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.txt b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.txt new file mode 100644 index 0000000000..51320ce0b0 --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.txt @@ -0,0 +1,16 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 63}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '#undefined'}, {'tag': 2, 'value': 66}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'a'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 65}]} diff --git a/testTs/expect/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.txt b/testTs/expect/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.txt new file mode 100644 index 0000000000..e6d97f2a0b --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.txt @@ -0,0 +1,12 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'toString'}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'toString'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 58}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'toNumber'}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'toNumber'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 62}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'toString'}, {'tag': 2, 'value': 61}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'toString'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 60}]} diff --git a/testTs/expect/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithTypeParameters.txt b/testTs/expect/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithTypeParameters.txt new file mode 100644 index 0000000000..ee651cfb40 --- /dev/null +++ b/testTs/expect/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithTypeParameters.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/expressions/nullishCoalescingOperator/nullishCoalescingOperator6.txt b/testTs/expect/expressions/nullishCoalescingOperator/nullishCoalescingOperator6.txt new file mode 100644 index 0000000000..0efabd81df --- /dev/null +++ b/testTs/expect/expressions/nullishCoalescingOperator/nullishCoalescingOperator6.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/expressions/typeGuards/TypeGuardWithArrayUnion.txt b/testTs/expect/expressions/typeGuards/TypeGuardWithArrayUnion.txt new file mode 100644 index 0000000000..55d20944c0 --- /dev/null +++ b/testTs/expect/expressions/typeGuards/TypeGuardWithArrayUnion.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'saySize'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 55}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'value'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 5}, {'tag': 2, 'value': 54}]} diff --git a/testTs/expect/expressions/typeGuards/typeGuardFunctionGenerics.txt b/testTs/expect/expressions/typeGuards/typeGuardFunctionGenerics.txt new file mode 100644 index 0000000000..5748c40e73 --- /dev/null +++ b/testTs/expect/expressions/typeGuards/typeGuardFunctionGenerics.txt @@ -0,0 +1,14 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 56}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p1'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 55}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}, {'tag': 2, 'value': 59}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p3'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 58}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 59}, {'tag': 2, 'value': 56}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 56}, {'tag': 2, 'value': 63}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p4'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 62}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 59}, {'tag': 2, 'value': 56}]} diff --git a/testTs/expect/expressions/typeGuards/typeGuardOfFormInstanceOf.txt b/testTs/expect/expressions/typeGuards/typeGuardOfFormInstanceOf.txt new file mode 100644 index 0000000000..5748c40e73 --- /dev/null +++ b/testTs/expect/expressions/typeGuards/typeGuardOfFormInstanceOf.txt @@ -0,0 +1,14 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 56}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p1'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 55}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}, {'tag': 2, 'value': 59}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p3'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 58}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 59}, {'tag': 2, 'value': 56}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 56}, {'tag': 2, 'value': 63}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p4'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 62}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 59}, {'tag': 2, 'value': 56}]} diff --git a/testTs/expect/expressions/typeGuards/typeGuardOfFormIsType.txt b/testTs/expect/expressions/typeGuards/typeGuardOfFormIsType.txt new file mode 100644 index 0000000000..2343878872 --- /dev/null +++ b/testTs/expect/expressions/typeGuards/typeGuardOfFormIsType.txt @@ -0,0 +1,12 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'isC1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'isC2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'isD1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 57}, {'tag': 2, 'value': 59}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p1'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 58}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 59}, {'tag': 2, 'value': 62}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 56}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p3'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 61}]} diff --git a/testTs/expect/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.txt b/testTs/expect/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.txt new file mode 100644 index 0000000000..49f5674d0f --- /dev/null +++ b/testTs/expect/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.txt @@ -0,0 +1,11 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 2}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 2}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/expressions/typeGuards/typeGuardOfFormTypeOfString.txt b/testTs/expect/expressions/typeGuards/typeGuardOfFormTypeOfString.txt new file mode 100644 index 0000000000..49f5674d0f --- /dev/null +++ b/testTs/expect/expressions/typeGuards/typeGuardOfFormTypeOfString.txt @@ -0,0 +1,11 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 2}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 2}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'p'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 57}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/externalModules/es6/es6modulekindWithES5Target6.txt b/testTs/expect/externalModules/es6/es6modulekindWithES5Target6.txt new file mode 100644 index 0000000000..e7d925b300 --- /dev/null +++ b/testTs/expect/externalModules/es6/es6modulekindWithES5Target6.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f3'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.txt b/testTs/expect/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.txt new file mode 100644 index 0000000000..ea8caa4f25 --- /dev/null +++ b/testTs/expect/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2,'value': 7 }, {'tag': 5,'value': '#type#./a'}]} +{'literalBuffer': [{'tag': 2,'value': 1 }, {'tag': 2, 'value': 0 }, {'tag': 2, 'value': 0 }, {'tag': 2, 'value': 0 }, { 'tag': 2, 'value': 0 }, { 'tag': 2, 'value': 0 }, { 'tag': 2, 'value': 0 }, { 'tag': 2, 'value': 0 }]} diff --git a/testTs/expect/functions/functionOverloadCompatibilityWithVoid02.txt b/testTs/expect/functions/functionOverloadCompatibilityWithVoid02.txt new file mode 100644 index 0000000000..548e7af9bb --- /dev/null +++ b/testTs/expect/functions/functionOverloadCompatibilityWithVoid02.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} diff --git a/testTs/expect/functions/functionOverloadCompatibilityWithVoid03.txt b/testTs/expect/functions/functionOverloadCompatibilityWithVoid03.txt new file mode 100644 index 0000000000..e4524ba21d --- /dev/null +++ b/testTs/expect/functions/functionOverloadCompatibilityWithVoid03.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}]} diff --git a/testTs/expect/functions/parameterInitializersBackwardReferencing.txt b/testTs/expect/functions/parameterInitializersBackwardReferencing.txt new file mode 100644 index 0000000000..bd5359cf50 --- /dev/null +++ b/testTs/expect/functions/parameterInitializersBackwardReferencing.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'test0'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'test1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.txt b/testTs/expect/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.txt new file mode 100644 index 0000000000..1cbc2142ae --- /dev/null +++ b/testTs/expect/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Point'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'y'}, {'tag': 2, 'value': 1}]} \ No newline at end of file diff --git a/testTs/expect/jsdoc/callbackTagNamespace.txt b/testTs/expect/jsdoc/callbackTagNamespace.txt new file mode 100644 index 0000000000..cb53e8fad3 --- /dev/null +++ b/testTs/expect/jsdoc/callbackTagNamespace.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/checkJsdocReturnTag1.txt b/testTs/expect/jsdoc/checkJsdocReturnTag1.txt new file mode 100644 index 0000000000..e348ff1102 --- /dev/null +++ b/testTs/expect/jsdoc/checkJsdocReturnTag1.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/checkJsdocTypedefInParamTag1.txt b/testTs/expect/jsdoc/checkJsdocTypedefInParamTag1.txt new file mode 100644 index 0000000000..ef55a0f230 --- /dev/null +++ b/testTs/expect/jsdoc/checkJsdocTypedefInParamTag1.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/constructorTagOnClassConstructor.txt b/testTs/expect/jsdoc/constructorTagOnClassConstructor.txt new file mode 100644 index 0000000000..583abfc71b --- /dev/null +++ b/testTs/expect/jsdoc/constructorTagOnClassConstructor.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} diff --git a/testTs/expect/jsdoc/constructorTagWithThisTag.txt b/testTs/expect/jsdoc/constructorTagWithThisTag.txt new file mode 100644 index 0000000000..22d639cec3 --- /dev/null +++ b/testTs/expect/jsdoc/constructorTagWithThisTag.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'C'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/declarations/jsDeclarationsThisTypes.txt b/testTs/expect/jsdoc/declarations/jsDeclarationsThisTypes.txt new file mode 100644 index 0000000000..d047bc662a --- /dev/null +++ b/testTs/expect/jsdoc/declarations/jsDeclarationsThisTypes.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'method'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'method'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 51}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'verify'}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'verify'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 53}]} diff --git a/testTs/expect/jsdoc/enumTagImported/enumTagImported.txt b/testTs/expect/jsdoc/enumTagImported/enumTagImported.txt new file mode 100644 index 0000000000..411611fcce --- /dev/null +++ b/testTs/expect/jsdoc/enumTagImported/enumTagImported.txt @@ -0,0 +1 @@ +{"literalBuffer": [{"tag": 2,"value": 7},{"tag": 5,"value": "#TestEnum#./mod1"}]} \ No newline at end of file diff --git a/testTs/expect/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.txt b/testTs/expect/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.txt new file mode 100644 index 0000000000..7027fd0f79 --- /dev/null +++ b/testTs/expect/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2,'value': 7},{'tag': 5,'value': '#*#a'}]} +{'literalBuffer': [{'tag': 2,'value': 7},{'tag': 5,'value': '#A#./a'}]} \ No newline at end of file diff --git a/testTs/expect/jsdoc/jsdocImplements_namespacedInterface.txt b/testTs/expect/jsdoc/jsdocImplements_namespacedInterface.txt new file mode 100644 index 0000000000..1d0bab7251 --- /dev/null +++ b/testTs/expect/jsdoc/jsdocImplements_namespacedInterface.txt @@ -0,0 +1,6 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'mNumber'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'mNumber'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'gen'}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'gen'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} diff --git a/testTs/expect/jsdoc/jsdocLiteral.txt b/testTs/expect/jsdoc/jsdocLiteral.txt new file mode 100644 index 0000000000..b6fea843ac --- /dev/null +++ b/testTs/expect/jsdoc/jsdocLiteral.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 5}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/jsdocNeverUndefinedNull.txt b/testTs/expect/jsdoc/jsdocNeverUndefinedNull.txt new file mode 100644 index 0000000000..632276b69a --- /dev/null +++ b/testTs/expect/jsdoc/jsdocNeverUndefinedNull.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/jsdocParseMatchingBackticks.txt b/testTs/expect/jsdoc/jsdocParseMatchingBackticks.txt new file mode 100644 index 0000000000..e39b3f953f --- /dev/null +++ b/testTs/expect/jsdoc/jsdocParseMatchingBackticks.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 6}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/jsdocParseStarEquals.txt b/testTs/expect/jsdoc/jsdocParseStarEquals.txt new file mode 100644 index 0000000000..1bd634df1d --- /dev/null +++ b/testTs/expect/jsdoc/jsdocParseStarEquals.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'cbf'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/jsdocReturnTag1.txt b/testTs/expect/jsdoc/jsdocReturnTag1.txt new file mode 100644 index 0000000000..e348ff1102 --- /dev/null +++ b/testTs/expect/jsdoc/jsdocReturnTag1.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/jsdocTypeReferenceUseBeforeDef.txt b/testTs/expect/jsdoc/jsdocTypeReferenceUseBeforeDef.txt new file mode 100644 index 0000000000..3db8749b2d --- /dev/null +++ b/testTs/expect/jsdoc/jsdocTypeReferenceUseBeforeDef.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/jsdoc/linkTagEmit1.txt b/testTs/expect/jsdoc/linkTagEmit1.txt new file mode 100644 index 0000000000..3c6661b22e --- /dev/null +++ b/testTs/expect/jsdoc/linkTagEmit1.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'computeCommonSourceDirectoryOfFilenames'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/moduleExportsElementAccessAssignment2.txt b/testTs/expect/jsdoc/moduleExportsElementAccessAssignment2.txt new file mode 100644 index 0000000000..632276b69a --- /dev/null +++ b/testTs/expect/jsdoc/moduleExportsElementAccessAssignment2.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/paramTagTypeResolution2.txt b/testTs/expect/jsdoc/paramTagTypeResolution2.txt new file mode 100644 index 0000000000..cb53e8fad3 --- /dev/null +++ b/testTs/expect/jsdoc/paramTagTypeResolution2.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/parseLinkTag.txt b/testTs/expect/jsdoc/parseLinkTag.txt new file mode 100644 index 0000000000..b807a4aa58 --- /dev/null +++ b/testTs/expect/jsdoc/parseLinkTag.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/seeTag3.txt b/testTs/expect/jsdoc/seeTag3.txt new file mode 100644 index 0000000000..1f5808deea --- /dev/null +++ b/testTs/expect/jsdoc/seeTag3.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'theWholeThing'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/thisTag1.txt b/testTs/expect/jsdoc/thisTag1.txt new file mode 100644 index 0000000000..a2d3e42bcd --- /dev/null +++ b/testTs/expect/jsdoc/thisTag1.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/typeParameterExtendsUnionConstraintDistributed.txt b/testTs/expect/jsdoc/typeParameterExtendsUnionConstraintDistributed.txt new file mode 100644 index 0000000000..b6133c101e --- /dev/null +++ b/testTs/expect/jsdoc/typeParameterExtendsUnionConstraintDistributed.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/jsdoc/typeTagWithGenericSignature.txt b/testTs/expect/jsdoc/typeTagWithGenericSignature.txt new file mode 100644 index 0000000000..08ca22f7ec --- /dev/null +++ b/testTs/expect/jsdoc/typeTagWithGenericSignature.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'typed'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/moduleResolution/scopedPackages/scopedPackages.txt b/testTs/expect/moduleResolution/scopedPackages/scopedPackages.txt new file mode 100644 index 0000000000..99606d62c1 --- /dev/null +++ b/testTs/expect/moduleResolution/scopedPackages/scopedPackages.txt @@ -0,0 +1,3 @@ +{"literalBuffer": [ { "tag": 2, "value": 7 }, { "tag": 5, "value": "#x#./index" }]} +{"literalBuffer": [ { "tag": 2, "value": 7 }, { "tag": 5, "value": "#y#./index" }]} +{"literalBuffer": [ { "tag": 2, "value": 7 }, { "tag": 5, "value": "#z#./z" }]} diff --git a/testTs/expect/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.txt b/testTs/expect/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.txt new file mode 100644 index 0000000000..386ef2c9f7 --- /dev/null +++ b/testTs/expect/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.txt @@ -0,0 +1 @@ +{"literalBuffer": [ { "tag": 2, "value": 7 }, { "tag": 5, "value": "#x#./index" }]} diff --git a/testTs/expect/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.txt b/testTs/expect/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.txt new file mode 100644 index 0000000000..b04f90c259 --- /dev/null +++ b/testTs/expect/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.txt @@ -0,0 +1 @@ +{"literalBuffer": [{"tag": 2,"value": 7 }, {"tag": 5,"value": "#foo#foo"}]} diff --git a/testTs/expect/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.txt b/testTs/expect/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.txt new file mode 100644 index 0000000000..147dfebeb7 --- /dev/null +++ b/testTs/expect/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.txt @@ -0,0 +1 @@ +{ "literalBuffer": [ { "tag": 2,"value": 7},{ "tag": 5,"value": "#x#foo"}]} \ No newline at end of file diff --git a/testTs/expect/override/override12.txt b/testTs/expect/override/override12.txt new file mode 100644 index 0000000000..d3791fb612 --- /dev/null +++ b/testTs/expect/override/override12.txt @@ -0,0 +1,9 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}, {'tag': 5, 'value': 'm1'}, {'tag': 2, 'value': 56}, {'tag': 5, 'value': 'm2'}, {'tag': 2, 'value': 57}, {'tag': 5, 'value': 'm3'}, {'tag': 2, 'value': 58}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}, {'tag': 5, 'value': 'm1'}, {'tag': 2, 'value': 53}, {'tag': 5, 'value': 'm2'}, {'tag': 2, 'value': 54}, {'tag': 5, 'value': 'm3'}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm3'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm3'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/override/override17.txt b/testTs/expect/override/override17.txt new file mode 100644 index 0000000000..d3791fb612 --- /dev/null +++ b/testTs/expect/override/override17.txt @@ -0,0 +1,9 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}, {'tag': 5, 'value': 'm1'}, {'tag': 2, 'value': 56}, {'tag': 5, 'value': 'm2'}, {'tag': 2, 'value': 57}, {'tag': 5, 'value': 'm3'}, {'tag': 2, 'value': 58}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}, {'tag': 5, 'value': 'm1'}, {'tag': 2, 'value': 53}, {'tag': 5, 'value': 'm2'}, {'tag': 2, 'value': 54}, {'tag': 5, 'value': 'm3'}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm3'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm3'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 3}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression6.txt b/testTs/expect/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression6.txt new file mode 100644 index 0000000000..b22a5cc5bf --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression6.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.txt b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.txt new file mode 100644 index 0000000000..e1bbe4c62f --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.txt @@ -0,0 +1,4 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.txt b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.txt new file mode 100644 index 0000000000..e1bbe4c62f --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.txt @@ -0,0 +1,4 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.txt b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.txt new file mode 100644 index 0000000000..0406025b31 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.txt @@ -0,0 +1,4 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': '0'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': '0'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': '0'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.txt b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.txt new file mode 100644 index 0000000000..3db8749b2d --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.txt b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.txt new file mode 100644 index 0000000000..f0f27bd5a2 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0},{'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.txt b/testTs/expect/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.txt new file mode 100644 index 0000000000..6a8f188392 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'constructor'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.txt b/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.txt new file mode 100644 index 0000000000..fb6167bb45 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'public'}, {'tag': 2, 'value': 52}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'public'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.txt b/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.txt new file mode 100644 index 0000000000..fb6167bb45 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'public'}, {'tag': 2, 'value': 52}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'public'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.txt b/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.txt new file mode 100644 index 0000000000..d1405aae79 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'public'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList1.txt b/testTs/expect/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList1.txt new file mode 100644 index 0000000000..8c07bd597b --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList1.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2},{'tag': 5, 'value': 'workItem'},{'tag': 2, 'value': 0},{'tag': 5, 'value': 'width'},{'tag': 2, 'value': 4}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration5.txt b/testTs/expect/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration5.txt new file mode 100644 index 0000000000..4409a504b1 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration5.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator1.txt b/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator1.txt new file mode 100644 index 0000000000..6baa1e4da0 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator1.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator2.txt b/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator2.txt new file mode 100644 index 0000000000..b807a4aa58 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator2.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator3.txt b/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator3.txt new file mode 100644 index 0000000000..b807a4aa58 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator3.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/parser/ecmascript5/Generics/parserGenericClass1.txt b/testTs/expect/parser/ecmascript5/Generics/parserGenericClass1.txt new file mode 100644 index 0000000000..627922bace --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Generics/parserGenericClass1.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/Generics/parserGenericClass2.txt b/testTs/expect/parser/ecmascript5/Generics/parserGenericClass2.txt new file mode 100644 index 0000000000..627922bace --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Generics/parserGenericClass2.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/Generics/parserGenericConstraint1.txt b/testTs/expect/parser/ecmascript5/Generics/parserGenericConstraint1.txt new file mode 100644 index 0000000000..627922bace --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Generics/parserGenericConstraint1.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.txt b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.txt new file mode 100644 index 0000000000..cfccd20a29 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0},{'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.txt b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.txt new file mode 100644 index 0000000000..4ec3c76365 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'v'},{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.txt b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.txt new file mode 100644 index 0000000000..4ec3c76365 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'v'},{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.txt b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.txt new file mode 100644 index 0000000000..4ec3c76365 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'v'},{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.txt b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.txt new file mode 100644 index 0000000000..cfccd20a29 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0},{'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType2.txt b/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType2.txt new file mode 100644 index 0000000000..dcd242a6a6 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType2.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType3.txt b/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType3.txt new file mode 100644 index 0000000000..6024b7c27f --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType3.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x' }, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'y' }, {'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType4.txt b/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType4.txt new file mode 100644 index 0000000000..9405a75227 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ObjectTypes/parserObjectType4.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'y'}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/parser/ecmascript5/ParameterLists/parserParameterList12.txt b/testTs/expect/parser/ecmascript5/ParameterLists/parserParameterList12.txt new file mode 100644 index 0000000000..98d00a6c71 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/ParameterLists/parserParameterList12.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'F'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/parser/ecmascript5/Protected/Protected5.txt b/testTs/expect/parser/ecmascript5/Protected/Protected5.txt new file mode 100644 index 0000000000..9981f69d33 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Protected/Protected5.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'm'}, {'tag': 2, 'value': 52}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'm'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/RegressionTests/parser509677.txt b/testTs/expect/parser/ecmascript5/RegressionTests/parser509677.txt new file mode 100644 index 0000000000..7dbd91bec5 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/RegressionTests/parser509677.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'y'}, {'tag': 2, 'value': 4}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/RegressionTests/parser645484.txt b/testTs/expect/parser/ecmascript5/RegressionTests/parser645484.txt new file mode 100644 index 0000000000..bf80007f2e --- /dev/null +++ b/testTs/expect/parser/ecmascript5/RegressionTests/parser645484.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'new'}, {'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/Statements/LabeledStatements/parser_duplicateLabel3.txt b/testTs/expect/parser/ecmascript5/Statements/LabeledStatements/parser_duplicateLabel3.txt new file mode 100644 index 0000000000..969b092473 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Statements/LabeledStatements/parser_duplicateLabel3.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement3.txt b/testTs/expect/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement3.txt new file mode 100644 index 0000000000..b807a4aa58 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement3.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/parser/ecmascript5/parserUnicode3.txt b/testTs/expect/parser/ecmascript5/parserUnicode3.txt new file mode 100644 index 0000000000..3db8749b2d --- /dev/null +++ b/testTs/expect/parser/ecmascript5/parserUnicode3.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/parser/ecmascript5/parserUnicodeWhitespaceCharacter1.txt b/testTs/expect/parser/ecmascript5/parserUnicodeWhitespaceCharacter1.txt new file mode 100644 index 0000000000..4409a504b1 --- /dev/null +++ b/testTs/expect/parser/ecmascript5/parserUnicodeWhitespaceCharacter1.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/constructorFunctions3.txt b/testTs/expect/salsa/constructorFunctions3.txt new file mode 100644 index 0000000000..3854d2389e --- /dev/null +++ b/testTs/expect/salsa/constructorFunctions3.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Instance'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'StaticToo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'A'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/inferringClassMembersFromAssignments2.txt b/testTs/expect/salsa/inferringClassMembersFromAssignments2.txt new file mode 100644 index 0000000000..a1e19545d0 --- /dev/null +++ b/testTs/expect/salsa/inferringClassMembersFromAssignments2.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'OOOrder'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/inferringClassMembersFromAssignments6.txt b/testTs/expect/salsa/inferringClassMembersFromAssignments6.txt new file mode 100644 index 0000000000..2a983e2ffb --- /dev/null +++ b/testTs/expect/salsa/inferringClassMembersFromAssignments6.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Foonly'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/methodsReturningThis.txt b/testTs/expect/salsa/methodsReturningThis.txt new file mode 100644 index 0000000000..76cce9b4de --- /dev/null +++ b/testTs/expect/salsa/methodsReturningThis.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Class'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/privateConstructorFunction.txt b/testTs/expect/salsa/privateConstructorFunction.txt new file mode 100644 index 0000000000..ae9e474fc5 --- /dev/null +++ b/testTs/expect/salsa/privateConstructorFunction.txt @@ -0,0 +1 @@ +{'literalBuffer': [{ 'tag': 2, 'value': 3 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 5, 'value': 'C' },{ 'tag': 2, 'value': 0 }, {'tag': 2, 'value': 0 }]} \ No newline at end of file diff --git a/testTs/expect/salsa/propertiesOfGenericConstructorFunctions.txt b/testTs/expect/salsa/propertiesOfGenericConstructorFunctions.txt new file mode 100644 index 0000000000..31948b49d2 --- /dev/null +++ b/testTs/expect/salsa/propertiesOfGenericConstructorFunctions.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Multimap'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Cp'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/propertyAssignmentUseParentType3.txt b/testTs/expect/salsa/propertyAssignmentUseParentType3.txt new file mode 100644 index 0000000000..40f16443b4 --- /dev/null +++ b/testTs/expect/salsa/propertyAssignmentUseParentType3.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 5}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo3'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo4'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/prototypePropertyAssignmentMergeAcrossFiles.txt b/testTs/expect/salsa/prototypePropertyAssignmentMergeAcrossFiles.txt new file mode 100644 index 0000000000..22d639cec3 --- /dev/null +++ b/testTs/expect/salsa/prototypePropertyAssignmentMergeAcrossFiles.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'C'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/thisTypeOfConstructorFunctions.txt b/testTs/expect/salsa/thisTypeOfConstructorFunctions.txt new file mode 100644 index 0000000000..5248288c73 --- /dev/null +++ b/testTs/expect/salsa/thisTypeOfConstructorFunctions.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Cp'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Cpp'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/typeFromJSInitializer2.txt b/testTs/expect/salsa/typeFromJSInitializer2.txt new file mode 100644 index 0000000000..79f6a87b2a --- /dev/null +++ b/testTs/expect/salsa/typeFromJSInitializer2.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/typeFromJSInitializer3.txt b/testTs/expect/salsa/typeFromJSInitializer3.txt new file mode 100644 index 0000000000..79f6a87b2a --- /dev/null +++ b/testTs/expect/salsa/typeFromJSInitializer3.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/typeFromPropertyAssignment27.txt b/testTs/expect/salsa/typeFromPropertyAssignment27.txt new file mode 100644 index 0000000000..22d639cec3 --- /dev/null +++ b/testTs/expect/salsa/typeFromPropertyAssignment27.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'C'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/typeFromPropertyAssignment40.txt b/testTs/expect/salsa/typeFromPropertyAssignment40.txt new file mode 100644 index 0000000000..1f72c3a590 --- /dev/null +++ b/testTs/expect/salsa/typeFromPropertyAssignment40.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Outer'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/salsa/typeFromPrototypeAssignment4.txt b/testTs/expect/salsa/typeFromPrototypeAssignment4.txt new file mode 100644 index 0000000000..178662394d --- /dev/null +++ b/testTs/expect/salsa/typeFromPrototypeAssignment4.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Multimap4'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/statements/for-ofStatements/ES5For-of10.txt b/testTs/expect/statements/for-ofStatements/ES5For-of10.txt new file mode 100644 index 0000000000..4409a504b1 --- /dev/null +++ b/testTs/expect/statements/for-ofStatements/ES5For-of10.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/statements/for-ofStatements/ES5For-of19.txt b/testTs/expect/statements/for-ofStatements/ES5For-of19.txt new file mode 100644 index 0000000000..2f6928971d --- /dev/null +++ b/testTs/expect/statements/for-ofStatements/ES5For-of19.txt @@ -0,0 +1 @@ +{'literalBuffer': [{ 'tag': 2, 'value': 3 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 5, 'value': 'foo' },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} \ No newline at end of file diff --git a/testTs/expect/statements/for-ofStatements/ES5For-of9.txt b/testTs/expect/statements/for-ofStatements/ES5For-of9.txt new file mode 100644 index 0000000000..4409a504b1 --- /dev/null +++ b/testTs/expect/statements/for-ofStatements/ES5For-of9.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/statements/tryStatements/tryStatements.txt b/testTs/expect/statements/tryStatements/tryStatements.txt new file mode 100644 index 0000000000..e88826bced --- /dev/null +++ b/testTs/expect/statements/tryStatements/tryStatements.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'fn'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/import/importTypeGenericTypes.txt b/testTs/expect/types/import/importTypeGenericTypes.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/testTs/expect/types/keyof/keyofAndForIn.txt b/testTs/expect/types/keyof/keyofAndForIn.txt new file mode 100644 index 0000000000..551422f4b8 --- /dev/null +++ b/testTs/expect/types/keyof/keyofAndForIn.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f3'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/literal/stringLiteralsWithTypeAssertions01.txt b/testTs/expect/types/literal/stringLiteralsWithTypeAssertions01.txt new file mode 100644 index 0000000000..4e1b5332de --- /dev/null +++ b/testTs/expect/types/literal/stringLiteralsWithTypeAssertions01.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/types/localTypes/localTypes5.txt b/testTs/expect/types/localTypes/localTypes5.txt new file mode 100644 index 0000000000..4817c9004b --- /dev/null +++ b/testTs/expect/types/localTypes/localTypes5.txt @@ -0,0 +1,4 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'm'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'm'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} diff --git a/testTs/expect/types/mapped/mappedTypeConstraints.txt b/testTs/expect/types/mapped/mappedTypeConstraints.txt new file mode 100644 index 0000000000..09c61537db --- /dev/null +++ b/testTs/expect/types/mapped/mappedTypeConstraints.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f0'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f3'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f4'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/mapped/mappedTypes4.txt b/testTs/expect/types/mapped/mappedTypes4.txt new file mode 100644 index 0000000000..b42373995e --- /dev/null +++ b/testTs/expect/types/mapped/mappedTypes4.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'boxify'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 7}]} \ No newline at end of file diff --git a/testTs/expect/types/nonPrimitive/nonPrimitiveRhsSideOfInExpression.txt b/testTs/expect/types/nonPrimitive/nonPrimitiveRhsSideOfInExpression.txt new file mode 100644 index 0000000000..b807a4aa58 --- /dev/null +++ b/testTs/expect/types/nonPrimitive/nonPrimitiveRhsSideOfInExpression.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/primitives/stringLiteral/stringLiteralType.txt b/testTs/expect/types/primitives/stringLiteral/stringLiteralType.txt new file mode 100644 index 0000000000..a2d3e42bcd --- /dev/null +++ b/testTs/expect/types/primitives/stringLiteral/stringLiteralType.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/rest/genericObjectRest.txt b/testTs/expect/types/rest/genericObjectRest.txt new file mode 100644 index 0000000000..84313d7105 --- /dev/null +++ b/testTs/expect/types/rest/genericObjectRest.txt @@ -0,0 +1,4 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f3'}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f4'}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.txt b/testTs/expect/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.txt new file mode 100644 index 0000000000..8788895ea2 --- /dev/null +++ b/testTs/expect/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'Test1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/spread/objectSpreadComputedProperty.txt b/testTs/expect/types/spread/objectSpreadComputedProperty.txt new file mode 100644 index 0000000000..b807a4aa58 --- /dev/null +++ b/testTs/expect/types/spread/objectSpreadComputedProperty.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/spread/objectSpreadRepeatedComplexity.txt b/testTs/expect/types/spread/objectSpreadRepeatedComplexity.txt new file mode 100644 index 0000000000..a2d3e42bcd --- /dev/null +++ b/testTs/expect/types/spread/objectSpreadRepeatedComplexity.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/spread/spreadNonPrimitive.txt b/testTs/expect/types/spread/spreadNonPrimitive.txt new file mode 100644 index 0000000000..2129867838 --- /dev/null +++ b/testTs/expect/types/spread/spreadNonPrimitive.txt @@ -0,0 +1 @@ +{'literalBuffer': [{ 'tag': 2, 'value': 6 },{ 'tag': 2, 'value': 2 },{ 'tag': 5, 'value': 'a' },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': 'b' },{ 'tag': 2, 'value': 1 }]} \ No newline at end of file diff --git a/testTs/expect/types/stringLiteral/stringLiteralCheckedInIf01.txt b/testTs/expect/types/stringLiteral/stringLiteralCheckedInIf01.txt new file mode 100644 index 0000000000..a2d3e42bcd --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralCheckedInIf01.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/stringLiteral/stringLiteralCheckedInIf02.txt b/testTs/expect/types/stringLiteral/stringLiteralCheckedInIf02.txt new file mode 100644 index 0000000000..4b0702c276 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralCheckedInIf02.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'isS'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint01.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint01.txt new file mode 100644 index 0000000000..a06e5bf318 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint01.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.txt new file mode 100644 index 0000000000..cf1009fe89 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes01.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes01.txt new file mode 100644 index 0000000000..d44c889408 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes01.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes02.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes02.txt new file mode 100644 index 0000000000..253e720063 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes02.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0},{'tag': 2, 'value': 4}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes03.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes03.txt new file mode 100644 index 0000000000..45406de850 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesInUnionTypes03.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability03.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability03.txt new file mode 100644 index 0000000000..730d815aae --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability03.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability04.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability04.txt new file mode 100644 index 0000000000..342a10de84 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability04.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability05.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability05.txt new file mode 100644 index 0000000000..730d815aae --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesOverloadAssignability05.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 1}]} diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesTypePredicates01.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesTypePredicates01.txt new file mode 100644 index 0000000000..ade0943f56 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesTypePredicates01.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'kindIs'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 2}]} diff --git a/testTs/expect/types/stringLiteral/stringLiteralTypesWithVariousOperators01.txt b/testTs/expect/types/stringLiteral/stringLiteralTypesWithVariousOperators01.txt new file mode 100644 index 0000000000..ab2de2cae2 --- /dev/null +++ b/testTs/expect/types/stringLiteral/stringLiteralTypesWithVariousOperators01.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}]} diff --git a/testTs/expect/types/thisType/fluentClasses.txt b/testTs/expect/types/thisType/fluentClasses.txt new file mode 100644 index 0000000000..cd26fcf608 --- /dev/null +++ b/testTs/expect/types/thisType/fluentClasses.txt @@ -0,0 +1,8 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 56}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 55}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 54}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 52}]} diff --git a/testTs/expect/types/thisType/thisTypeOptionalCall.txt b/testTs/expect/types/thisType/thisTypeOptionalCall.txt new file mode 100644 index 0000000000..660612c42a --- /dev/null +++ b/testTs/expect/types/thisType/thisTypeOptionalCall.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'maybeBind'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2},{'tag': 2, 'value': 0},{'tag': 2, 'value': 7}]} +{'literalBuffer': [{'tag': 2, 'value': 4}, {'tag': 2, 'value': 2},{'tag': 2, 'value': 0},{'tag': 2, 'value': 7}]} \ No newline at end of file diff --git a/testTs/expect/types/thisType/thisTypeSyntacticContext.txt b/testTs/expect/types/thisType/thisTypeSyntacticContext.txt new file mode 100644 index 0000000000..f8b0aa6dc2 --- /dev/null +++ b/testTs/expect/types/thisType/thisTypeSyntacticContext.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1},{'tag': 5, 'value': 'n'},{'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2},{'tag': 5, 'value': 'n'},{'tag': 2, 'value': 1},{'tag': 5, 'value': 'test'},{'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/types/typeAliases/classDoesNotDependOnBaseTypes.txt b/testTs/expect/types/typeAliases/classDoesNotDependOnBaseTypes.txt new file mode 100644 index 0000000000..60132b5025 --- /dev/null +++ b/testTs/expect/types/typeAliases/classDoesNotDependOnBaseTypes.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} diff --git a/testTs/expect/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne.txt b/testTs/expect/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne.txt new file mode 100644 index 0000000000..c2fc17e9e7 --- /dev/null +++ b/testTs/expect/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne.txt @@ -0,0 +1,4 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.txt b/testTs/expect/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.txt new file mode 100644 index 0000000000..1f06216504 --- /dev/null +++ b/testTs/expect/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.txt @@ -0,0 +1,8 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 52}, {'tag': 5, 'value': 'h'}, {'tag': 2, 'value': 53}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0},{'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0},{'tag': 5, 'value': 'h'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 56}, {'tag': 5, 'value': 'h'}, {'tag': 2, 'value': 57}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0},{'tag': 5, 'value': 'g'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0},{'tag': 5, 'value': 'h'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 55}]} diff --git a/testTs/expect/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope2.txt b/testTs/expect/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope2.txt new file mode 100644 index 0000000000..dcb212d549 --- /dev/null +++ b/testTs/expect/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope2.txt @@ -0,0 +1,3 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.txt b/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.txt new file mode 100644 index 0000000000..657ce94970 --- /dev/null +++ b/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 51}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bing'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.txt b/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.txt new file mode 100644 index 0000000000..657ce94970 --- /dev/null +++ b/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 51}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bing'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.txt b/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.txt new file mode 100644 index 0000000000..657ce94970 --- /dev/null +++ b/testTs/expect/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 51}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bing'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.txt b/testTs/expect/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.txt new file mode 100644 index 0000000000..657ce94970 --- /dev/null +++ b/testTs/expect/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 51}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bing'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.txt b/testTs/expect/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.txt new file mode 100644 index 0000000000..657ce94970 --- /dev/null +++ b/testTs/expect/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bar'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 51}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'baz'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 54}]} +{'literalBuffer': [{'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 52}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'bing'}, {'tag': 2, 'value': 4}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 56}]} \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.txt b/testTs/expect/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.txt new file mode 100644 index 0000000000..4ecbd87c7c --- /dev/null +++ b/testTs/expect/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.txt @@ -0,0 +1,9 @@ +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': 'foo' },{ 'tag': 2, 'value': 4 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 51}]} +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 51 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': 'bar' },{ 'tag': 2, 'value': 4 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 53}]} +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 51 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': 'baz' },{ 'tag': 2, 'value': 4 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{'tag': 2, 'value': 2}, {'tag': 2, 'value': 55}]} +{'literalBuffer': [{ 'tag': 2, 'value': 3 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 5, 'value': 'foo' },{ 'tag': 2, 'value': 2 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{ 'tag': 2, 'value': 3 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 5, 'value': 'foo2' },{ 'tag': 2, 'value': 2 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{ 'tag': 2, 'value': 3 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 5, 'value': 'foo3' },{ 'tag': 2, 'value': 2 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.txt b/testTs/expect/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.txt new file mode 100644 index 0000000000..c26b040444 --- /dev/null +++ b/testTs/expect/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f3'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f4'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f5'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f6'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f8'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements2.txt b/testTs/expect/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements2.txt new file mode 100644 index 0000000000..a0443461b4 --- /dev/null +++ b/testTs/expect/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements2.txt @@ -0,0 +1,11 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f1'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f2'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f4'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f5'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f6'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'y'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'z'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f9'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f10'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f11'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f12'}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints3.txt b/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints3.txt new file mode 100644 index 0000000000..632276b69a --- /dev/null +++ b/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints3.txt @@ -0,0 +1 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} diff --git a/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.txt b/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.txt new file mode 100644 index 0000000000..eaf990f35e --- /dev/null +++ b/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.txt @@ -0,0 +1,13 @@ +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 52 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': 'bar' },{ 'tag': 2, 'value': 4 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': 'foo' },{ 'tag': 2, 'value': 4 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{ 'tag': 2, 'value': 2 },{ 'tag': 2, 'value': 51 }]} +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 55 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': 'fooo' },{ 'tag': 2, 'value': 53 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': 'foo' },{ 'tag': 2, 'value': 56 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{ 'literalBuffer': [ { 'tag': 2, 'value': 2 }, { 'tag': 2, 'value': 52 } ] } +{ 'literalBuffer': [ { 'tag': 2, 'value': 2 }, { 'tag': 2, 'value': 54 } ] } +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 59 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': '1.1' },{ 'tag': 2, 'value': 53 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': '1' },{ 'tag': 2, 'value': 56 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{ 'literalBuffer': [ { 'tag': 2, 'value': 2 }, { 'tag': 2, 'value': 58 } ] } +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 62 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': '1.1' },{ 'tag': 2, 'value': 53 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{'literalBuffer': [{ 'tag': 2, 'value': 1 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 1 },{ 'tag': 5, 'value': '1' },{ 'tag': 2, 'value': 56 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 },{ 'tag': 2, 'value': 0 }]} +{ 'literalBuffer': [ { 'tag': 2, 'value': 2 }, { 'tag': 2, 'value': 61 } ] } \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypingWithOptionalProperties.txt b/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypingWithOptionalProperties.txt new file mode 100644 index 0000000000..36290151ea --- /dev/null +++ b/testTs/expect/types/typeRelationships/subtypesAndSuperTypes/subtypingWithOptionalProperties.txt @@ -0,0 +1,2 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'f'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 's'}, {'tag': 2, 'value': 1}]} \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.txt b/testTs/expect/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.txt new file mode 100644 index 0000000000..097a33e4c3 --- /dev/null +++ b/testTs/expect/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.txt @@ -0,0 +1,7 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'y'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'z'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'other'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'other2'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo2'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'other3'}, {'tag': 2, 'value': 1}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} \ No newline at end of file diff --git a/testTs/expect/types/typeRelationships/typeInference/genericCallWithNonSymmetricSubtypes.txt b/testTs/expect/types/typeRelationships/typeInference/genericCallWithNonSymmetricSubtypes.txt new file mode 100644 index 0000000000..28595f4c77 --- /dev/null +++ b/testTs/expect/types/typeRelationships/typeInference/genericCallWithNonSymmetricSubtypes.txt @@ -0,0 +1,5 @@ +{'literalBuffer': [{'tag': 2, 'value': 3}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 5, 'value': 'foo'}, {'tag': 2, 'value': 2}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}, {'tag': 2, 'value': 0}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'y'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 2}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'z'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}]} +{'literalBuffer': [{'tag': 2, 'value': 6}, {'tag': 2, 'value': 1}, {'tag': 5, 'value': 'x'}, {'tag': 2, 'value': 1}]} \ No newline at end of file diff --git a/testTs/import_tests.json b/testTs/import_tests.json new file mode 100644 index 0000000000..c41307e61c --- /dev/null +++ b/testTs/import_tests.json @@ -0,0 +1,11 @@ +{ + "import" : [ + "./testTs/test/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts", + "./testTs/test/ambient/ambientShorthand_merging/ambientShorthand_merging.ts", + "./testTs/test/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts", + "./testTs/test/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts", + "./testTs/test/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts", + "./testTs/test/moduleResolution/scopedPackages/scopedPackages.ts", + "./testTs/test/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts" + ] +} \ No newline at end of file diff --git a/testTs/run_testTs.py b/testTs/run_testTs.py new file mode 100644 index 0000000000..1e21b9ed5b --- /dev/null +++ b/testTs/run_testTs.py @@ -0,0 +1,256 @@ +import os +import subprocess +import argparse +import datetime +import sys +import shutil +import json +from utils import * +from config import * + +class MyException(Exception): # 继承异常类 + def __init__(self, name): + self.name = name + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument('--dir', metavar='DIR', help="Directory to test") + parser.add_argument('--file', metavar='FILE', help="File to test") + parser.add_argument('--ark_frontend_tool', help="ark frontend conversion tool") + arguments = parser.parse_args() + return arguments + + +def skip(filepath,flag = False): + f = open(SKIP_FILE_PATH,'r') + content = f.read() + f.close() + test_list = [] + import_list =[] + skip_test = json.loads(content) + skip_test_list = skip_test['error.txt'] + skip_test['no2015'] + skip_test['tsc_error'] + skip_test['import_skip'] + skip_test['code_rule'] + skip_test['no_case'] + if os.path.isfile(filepath): + if '.ts' in filepath: + if filepath not in skip_test_list: + return True + else: + if flag: + print(f'This file is outside the scope of validation : {filepath}\n') + return False + +def abc_judge(filepath): + if not os.path.getsize(filepath): + print(f'Error : {filepath} 文件为空') + +#使用机器转换(path:ts文件路径,out_file:输出内容写入文件路径,tools:工具选择,默认为'ohos-arm-release/clang_x64/ark/ark/build/src/index.js') +def run_test(file, tool,flag = False): + path_list = file.split(os.sep) + if path_list[0] != '.': + file = "." + os.sep + file + out_file_path = file.replace(TEST_PATH,OUT_PATH).replace(TS_EXT,TXT_EXT) + temp_out_file_path = file.replace(TS_EXT,TXT_EXT) + temp_abc_file_path = file.replace(TS_EXT,ABC_EXT) + ts_list = temp_out_file_path.split(os.sep) + ts_list.pop(-1) + ts_dir_path = os.sep.join(ts_list) + path_list = out_file_path.split(os.sep) + path_list.pop(-1) + out_dir_path = os.sep.join(path_list) + if not os.path.exists(out_dir_path): + os.makedirs(out_dir_path) + try: + command_os(f'node --expose-gc {tool} -m {file} --output-type') + except: + e = str(e) + if flag: + for root,dirs,files in os.walk(ts_dir_path): + for fi in files: + ts_file = f'{root}/{fi}' + if ABC_EXT in ts_file: + remove_file(ts_file) + elif TXT_EXT in ts_file: + sj_path =ts_file.replace(TEST_PATH,OUT_PATH) + move_file(ts_file,sj_path) + else: + if os.path.exists(temp_abc_file_path): + abc_judge(temp_abc_file_path) + remove_file(temp_abc_file_path) + if os.path.exists(temp_out_file_path): + move_file(temp_out_file_path, out_file_path) + + +def run_test_machine(args): + ark_frontend_tool = DEFAULT_ARK_FRONTEND_TOOL + result_path = [] + if args.ark_frontend_tool: + ark_frontend_tool = args.ark_frontend_tool + + + if args.file: + if skip(args.file,True): + if args.file in IMPORT_TEST['import']: + run_test(args.file, ark_frontend_tool,True) + result = compare(args.file,True) + result_path.append(result) + else: + run_test(args.file, ark_frontend_tool) + result = compare(args.file) + result_path.append(result) + + elif args.dir: + for root,dirs,files in os.walk(args.dir): + for file in files: + test_path = f'{root}/{file}' + if skip(test_path,True): + if test_path in IMPORT_TEST['import']: + run_test(test_path, ark_frontend_tool,True) + result = compare(test_path,True) + result_path.append(result) + else: + run_test(test_path, ark_frontend_tool) + result = compare(test_path) + result_path.append(result) + + elif args.file == None and args.dir == None: + for root,dirs,files in os.walk(TS_CASES_DIR): + for file in files: + test_path = f'{root}/{file}' + if skip(test_path): + if test_path in IMPORT_TEST['import']: + run_test(test_path, ark_frontend_tool,True) + result = compare(test_path,True) + result_path.append(result) + else: + run_test(test_path, ark_frontend_tool) + result = compare(test_path) + result_path.append(result) + f = open(OUT_RESULT_FILE,'w') + f.writelines(result_path) + f.close() + +def read_out_file(file_path): + f = open(file_path,'r') + content = f.read() + f.close() + if content: + if '}\n{' in content: + out_list = content.split('}\n{') + else: + out_list =[] + out_list.append(''.join(content.split('\n'))) + else: + out_list = [] + out_text_list = [] + if len(out_list) > 1: + for i in range(len(out_list)): + if i == 0: + out_do = ''.join(out_list[i].split('\n')).strip(' ') + '}' + elif i == (len(out_list)-1): + out_do = '{' + ''.join(out_list[i].split('\n')).strip(' ') + else: + out_do = ('{' + ''.join(out_list[i].split('\n')).strip(' ') + '}') + out_txt = json.loads(out_do) + out_text_list.append(out_txt) + else: + for i in range(len(out_list)): + c = json.loads(out_list[i]) + out_text_list.append(c) + return out_text_list + +def compare(file,flag = False): + result = "" + path_list = file.split(os.sep) + if path_list[0] != '.': + file = "." + os.sep + file + out_path = file.replace(TEST_PATH, OUT_PATH).replace(TS_EXT,TXT_EXT) + expect_path = file.replace(TEST_PATH, EXPECT_PATH).replace(TS_EXT,TXT_EXT) + if flag: + path_list = out_path.split(os.sep) + del path_list[-1] + out_dir_path = os.sep.join(path_list) + for root,dirs,files in os.walk(out_dir_path): + for fi in files: + fi = f'{root}/{fi}' + if fi != out_path: + f = open(fi,'r') + el_file_txt = f.read() + f.close() + write_append(out_path,el_file_txt) + remove_file(fi) + if (not os.path.exists(out_path) or not os.path.exists(expect_path)): + print("There are no expected files or validation file generation: %s", file) + result = f'FAIL {file}\n' + else: + outcont = read_out_file(out_path) + expectcont = read_file(expect_path) + expectcontlist = [] + for i in expectcont: + i = json.loads(i.replace("'",'"').replace('\n','')) + expectcontlist.append(i) + if outcont == expectcontlist: + result = f'PASS {file}\n' + else: + result = f'FAIL {file}\n' + print(result) + return result + + +def summary(): + if not os.path.exists(OUT_RESULT_FILE): + return + count = -1 + fail_count = 0 + for count, line in enumerate(open(OUT_RESULT_FILE, 'r')): + if line.startswith("FAIL"): + fail_count += 1 + pass + count += 1 + + print("\n Regression summary") + print("===============================") + print(" Total %5d " %(count)) + print("-------------------------------") + print(" Passed tests: %5d " %(count-fail_count)) + print(" Failed tests: %5d " %(fail_count)) + print("===============================") + + +def init_path(): + remove_dir(OUT_TEST_DIR) + mk_dir(OUT_TEST_DIR) + +#拉取用例和ts测试文件 +def prepare_ts_code(): + if (os.path.exists(TS_CASES_DIR)): + return + try: + mk_dir(TS_CASES_DIR) + os.chdir('./testTs/test') + command_os('git init') + command_os(f'git remote add origin {TS_GIT_PATH}') + command_os('git config core.sparsecheckout true') + command_os('echo "tests/cases/conformance/" >> .git/info/sparse-checkout') + command_os(f'git pull --depth 1 origin {TS_TAG}') + if not os.path.exists("./tests/cases/conformance/"): + remove_dir(TS_CASES_DIR) + raise MyException("Pull TypeScript Code Fail, Please Check The Network Request") + command_os(f'git apply ../test-case.patch') + command_os(f'cp -r tests/cases/conformance/* ./') + command_os(f'rm -rf ./tests') + command_os('rm -rf .git') + os.chdir('../../') + except: + print("pull test code fail") + +def main(args): + try: + init_path() + excuting_npm_install(args) + prepare_ts_code() + run_test_machine(args) + summary() + except: + print("Run Python Script Fail") + +if __name__ == "__main__": + sys.exit(main(parse_args())) \ No newline at end of file diff --git a/testTs/skip_tests.json b/testTs/skip_tests.json new file mode 100644 index 0000000000..7c0018b1a7 --- /dev/null +++ b/testTs/skip_tests.json @@ -0,0 +1,5238 @@ +{ + "error.txt":[ + "./testTs/test/fixSignatureCaching.ts", + "./testTs/test/scanner/ecmascript3/scannerES3NumericLiteral6.ts", + "./testTs/test/scanner/ecmascript3/scannerES3NumericLiteral4.ts", + "./testTs/test/scanner/ecmascript3/scannerES3NumericLiteral3.ts", + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral6.ts", + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral4.ts", + "./testTs/test/scanner/ecmascript5/scannerUnicodeEscapeInKeyword1.ts", + "./testTs/test/scanner/ecmascript5/scannertest1.ts", + "./testTs/test/scanner/ecmascript5/scannerS7.8.3_A6.1_T1.ts", + "./testTs/test/scanner/ecmascript5/scannerS7.4_A2_T2.ts", + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral3.ts", + "./testTs/test/scanner/ecmascript5/scannerStringLiterals.ts", + "./testTs/test/scanner/ecmascript5/scannerS7.3_A1.1_T2.ts", + "./testTs/test/scanner/ecmascript5/scannerImportDeclaration1.ts", + "./testTs/test/scanner/ecmascript5/scanner10.1.1-8gs.ts", + "./testTs/test/scanner/ecmascript5/scannerS7.2_A1.5_T2.ts", + "./testTs/test/scanner/ecmascript5/scannerUnicodeEscapeInKeyword2.ts", + "./testTs/test/scanner/ecmascript5/scannerClass2.ts", + "./testTs/test/scanner/ecmascript5/scannerUnexpectedNullCharacter1.ts", + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral9.ts", + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral2.ts", + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral8.ts", + "./testTs/test/scanner/ecmascript5/scannerAdditiveExpression1.ts", + "./testTs/test/scanner/ecmascript5/scannerS7.6_A4.2_T1.ts", + "./testTs/test/scanner/ecmascript5/scannerS7.8.4_A7.1_T4.ts", + "./testTs/test/generators/generatorReturnTypeInference.ts", + "./testTs/test/generators/generatorImplicitAny.ts", + "./testTs/test/generators/generatorReturnTypeFallback.2.ts", + "./testTs/test/generators/generatorAssignability.ts", + "./testTs/test/generators/generatorReturnTypeFallback.3.ts", + "./testTs/test/generators/generatorExplicitReturnType.ts", + "./testTs/test/generators/generatorReturnContextualType.ts", + "./testTs/test/generators/generatorReturnTypeInferenceNonStrict.ts", + "./testTs/test/statements/labeledStatements/labeledStatementWithLabel_es2015.ts", + "./testTs/test/statements/labeledStatements/labeledStatementWithLabel.ts", + "./testTs/test/statements/labeledStatements/labeledStatementWithLabel_strict.ts", + "./testTs/test/statements/returnStatements/invalidReturnStatements.ts", + "./testTs/test/statements/for-inStatements/for-inStatementsInvalid.ts", + "./testTs/test/statements/for-inStatements/for-inStatements.ts", + "./testTs/test/statements/for-inStatements/for-inStatementsDestructuring3.ts", + "./testTs/test/statements/for-inStatements/for-inStatementsArrayErrors.ts", + "./testTs/test/statements/for-inStatements/for-inStatementsDestructuring4.ts", + "./testTs/test/statements/for-inStatements/for-inStatementsDestructuring.ts", + "./testTs/test/statements/for-inStatements/for-inStatementsDestructuring2.ts", + "./testTs/test/statements/switchStatements/switchStatements.ts", + "./testTs/test/statements/continueStatements/invalidWhileContinueStatements.ts", + "./testTs/test/statements/continueStatements/invalidForContinueStatements.ts", + "./testTs/test/statements/continueStatements/invalidDoWhileContinueStatements.ts", + "./testTs/test/statements/continueStatements/invalidForInContinueStatements.ts", + "./testTs/test/statements/continueStatements/invalidSwitchContinueStatement.ts", + "./testTs/test/statements/breakStatements/switchBreakStatements.ts", + "./testTs/test/statements/breakStatements/invalidDoWhileBreakStatements.ts", + "./testTs/test/statements/breakStatements/invalidWhileBreakStatements.ts", + "./testTs/test/statements/breakStatements/invalidSwitchBreakStatement.ts", + "./testTs/test/statements/breakStatements/invalidForBreakStatements.ts", + "./testTs/test/statements/breakStatements/invalidForInBreakStatements.ts", + "./testTs/test/statements/forStatements/forStatementsMultipleInvalidDecl.ts", + "./testTs/test/statements/throwStatements/invalidThrowStatement.ts", + "./testTs/test/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts", + "./testTs/test/statements/VariableStatements/invalidMultipleVariableDeclarations.ts", + "./testTs/test/statements/for-ofStatements/ES3For-ofTypeCheck1.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of28.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck11.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck8.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of35.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck9.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck14.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of30.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of20.ts", + "./testTs/test/statements/for-ofStatements/ES3For-ofTypeCheck4.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck7.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of8.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of34.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of27.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of31.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of36.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of29.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of26.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of17.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of12.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck12.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of7.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck10.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck13.ts", + "./testTs/test/statements/tryStatements/catchClauseWithTypeAnnotation.ts", + "./testTs/test/statements/tryStatements/invalidTryStatements.ts", + "./testTs/test/statements/withStatements/withStatements.ts", + "./testTs/test/controlFlow/controlFlowAliasing.ts", + "./testTs/test/controlFlow/exhaustiveSwitchStatements1.ts", + "./testTs/test/controlFlow/controlFlowGenericTypes.ts", + "./testTs/test/controlFlow/definiteAssignmentAssertions.ts", + "./testTs/test/controlFlow/assertionTypePredicates1.ts", + "./testTs/test/controlFlow/controlFlowIterationErrors.ts", + "./testTs/test/controlFlow/controlFlowNullishCoalesce.ts", + "./testTs/test/controlFlow/controlFlowOptionalChain.ts", + "./testTs/test/controlFlow/controlFlowTypeofObject.ts", + "./testTs/test/controlFlow/controlFlowIIFE.ts", + "./testTs/test/controlFlow/definiteAssignmentAssertionsWithObjectShortHand.ts", + "./testTs/test/controlFlow/neverReturningFunctions1.ts", + "./testTs/test/controlFlow/controlFlowDeleteOperator.ts", + "./testTs/test/types/import/importTypeLocalMissing.ts", + "./testTs/test/types/import/importTypeNestedNoRef.ts", + "./testTs/test/types/import/importTypeGeneric.ts", + "./testTs/test/types/import/importTypeNonString.ts", + "./testTs/test/types/import/importTypeAmbientMissing.ts", + "./testTs/test/types/import/importTypeNested.ts", + "./testTs/test/types/never/neverTypeErrors2.ts", + "./testTs/test/types/never/neverTypeErrors1.ts", + "./testTs/test/types/never/neverIntersectionNotCallable.ts", + "./testTs/test/types/objectTypeLiteral/objectTypeLiteralSyntax2.ts", + "./testTs/test/types/objectTypeLiteral/indexSignatures/multipleNumericIndexers.ts", + "./testTs/test/types/objectTypeLiteral/indexSignatures/stringIndexerConstrainsPropertyDeclarations.ts", + "./testTs/test/types/objectTypeLiteral/indexSignatures/numericIndexerConstrainsPropertyDeclarations2.ts", + "./testTs/test/types/objectTypeLiteral/indexSignatures/numericIndexerConstrainsPropertyDeclarations.ts", + "./testTs/test/types/objectTypeLiteral/indexSignatures/multipleStringIndexers.ts", + "./testTs/test/types/objectTypeLiteral/indexSignatures/stringIndexerConstrainsPropertyDeclarations2.ts", + "./testTs/test/types/objectTypeLiteral/propertySignatures/numericStringNamedPropertyEquivalence.ts", + "./testTs/test/types/objectTypeLiteral/propertySignatures/stringNamedPropertyDuplicates.ts", + "./testTs/test/types/objectTypeLiteral/propertySignatures/numericNamedPropertyDuplicates.ts", + "./testTs/test/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloads2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesWithParameterInitializers2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/restParameterWithoutAnnotationIsAnyArray.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignatureWithOptionalParameterAndInitializer.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesWithParameterInitializers.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesWithAccessibilityModifiersOnParameters.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/constructSignatureWithAccessibilityModifiersOnParameters2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/constructSignatureWithAccessibilityModifiersOnParameters.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesThatDifferOnlyByReturnType2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/typeParameterUsedAsTypeParameterConstraint4.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts", + "./testTs/test/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties2.ts", + "./testTs/test/types/objectTypeLiteral/methodSignatures/methodSignaturesWithOverloads.ts", + "./testTs/test/types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts", + "./testTs/test/types/literal/templateLiteralTypesPatterns.ts", + "./testTs/test/types/literal/templateLiteralTypes3.ts", + "./testTs/test/types/literal/enumLiteralTypes3.ts", + "./testTs/test/types/literal/stringLiteralsWithSwitchStatements02.ts", + "./testTs/test/types/literal/templateLiteralTypes2.ts", + "./testTs/test/types/literal/stringLiteralsWithEqualityChecks04.ts", + "./testTs/test/types/literal/stringLiteralsWithSwitchStatements01.ts", + "./testTs/test/types/literal/stringLiteralsAssertionsInEqualityComparisons02.ts", + "./testTs/test/types/literal/stringLiteralsWithEqualityChecks02.ts", + "./testTs/test/types/literal/templateLiteralTypesPatternsPrefixSuffixAssignability.ts", + "./testTs/test/types/literal/numericLiteralTypes3.ts", + "./testTs/test/types/literal/stringLiteralsWithSwitchStatements04.ts", + "./testTs/test/types/literal/stringLiteralsWithSwitchStatements03.ts", + "./testTs/test/types/literal/templateLiteralTypes1.ts", + "./testTs/test/types/literal/literalTypesWidenInParameterPosition.ts", + "./testTs/test/types/literal/stringLiteralsWithEqualityChecks01.ts", + "./testTs/test/types/literal/stringEnumLiteralTypes3.ts", + "./testTs/test/types/literal/stringLiteralsWithEqualityChecks03.ts", + "./testTs/test/types/specifyingTypes/typeQueries/circularTypeofWithVarOrFunc.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeQueryOnClass.ts", + "./testTs/test/types/specifyingTypes/typeQueries/invalidTypeOfTarget.ts", + "./testTs/test/types/specifyingTypes/typeQueries/recursiveTypesWithTypeof.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeofThis.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeofAnExportedType.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeofTypeParameter.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeofANonExportedType.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeofClassWithPrivates.ts", + "./testTs/test/types/specifyingTypes/typeReferences/nonGenericTypeReferenceWithTypeArguments.ts", + "./testTs/test/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument3.ts", + "./testTs/test/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument.d.ts", + "./testTs/test/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument2.ts", + "./testTs/test/types/specifyingTypes/typeReferences/genericTypeReferenceWithoutTypeArgument.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/arrayTypeOfFunctionTypes.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/unionTypeLiterals.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/arrayTypeOfFunctionTypes2.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts", + "./testTs/test/types/specifyingTypes/predefinedTypes/objectTypesWithPredefinedTypesAsName.ts", + "./testTs/test/types/specifyingTypes/predefinedTypes/objectTypesWithPredefinedTypesAsName2.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveIndexingWithForInNoImplicitAny.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveConstraintOfIndexAccessType.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveAssignError.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveInGeneric.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveAsProperty.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveAndTypeVariables.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveStrictNull.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveNarrow.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveUnionIntersection.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveInFunction.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveAccessProperty.ts", + "./testTs/test/types/thisType/thisTypeErrors2.ts", + "./testTs/test/types/thisType/typeRelationships.ts", + "./testTs/test/types/thisType/thisTypeErrors.ts", + "./testTs/test/types/thisType/thisTypeInFunctions.ts", + "./testTs/test/types/thisType/thisTypeAccessibility.ts", + "./testTs/test/types/thisType/thisTypeInAccessorsNegative.ts", + "./testTs/test/types/thisType/unionThisTypeInFunctions.ts", + "./testTs/test/types/thisType/thisTypeInAccessors.ts", + "./testTs/test/types/thisType/thisTypeInFunctions2.ts", + "./testTs/test/types/thisType/looseThisTypeInFunctions.ts", + "./testTs/test/types/thisType/declarationFiles.ts", + "./testTs/test/types/thisType/thisTypeInFunctionsNegative.ts", + "./testTs/test/types/members/typesWithProtectedConstructor.ts", + "./testTs/test/types/members/objectTypeWithConstructSignatureAppearsToBeFunctionType.ts", + "./testTs/test/types/members/objectTypeWithStringIndexerHidingObjectIndexer.ts", + "./testTs/test/types/members/duplicatePropertyNames.ts", + "./testTs/test/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts", + "./testTs/test/types/members/typesWithPublicConstructor.ts", + "./testTs/test/types/members/typesWithPrivateConstructor.ts", + "./testTs/test/types/members/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.ts", + "./testTs/test/types/members/indexSignatures1.ts", + "./testTs/test/types/members/duplicateStringIndexers.ts", + "./testTs/test/types/members/augmentedTypeAssignmentCompatIndexSignature.ts", + "./testTs/test/types/members/classWithPrivateProperty.ts", + "./testTs/test/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts", + "./testTs/test/types/members/objectTypeWithStringAndNumberIndexSignatureToAny.ts", + "./testTs/test/types/members/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.ts", + "./testTs/test/types/members/objectTypeWithDuplicateNumericProperty.ts", + "./testTs/test/types/members/objectTypeHidingMembersOfExtendedObject.ts", + "./testTs/test/types/members/duplicateNumericIndexers.ts", + "./testTs/test/types/localTypes/localTypes4.ts", + "./testTs/test/types/typeAliases/directDependenceBetweenTypeAliases.ts", + "./testTs/test/types/typeAliases/intrinsicKeyword.ts", + "./testTs/test/types/typeAliases/typeAliasesForObjectTypes.ts", + "./testTs/test/types/typeAliases/intrinsicTypes.ts", + "./testTs/test/types/typeAliases/reservedNamesInAliases.ts", + "./testTs/test/types/typeAliases/typeAliasesDoNotMerge.ts", + "./testTs/test/types/witness/witness.ts", + "./testTs/test/types/mapped/mappedTypeErrors2.ts", + "./testTs/test/types/mapped/mappedTypeErrors.ts", + "./testTs/test/types/mapped/mappedTypes5.ts", + "./testTs/test/types/mapped/recursiveMappedTypes.ts", + "./testTs/test/types/mapped/mappedTypeWithAny.ts", + "./testTs/test/types/mapped/mappedTypeAsClauseRelationships.ts", + "./testTs/test/types/mapped/mappedTypeAsClauses.ts", + "./testTs/test/types/mapped/mappedTypeProperties.ts", + "./testTs/test/types/mapped/mappedTypeRelationships.ts", + "./testTs/test/types/mapped/mappedTypeInferenceErrors.ts", + "./testTs/test/types/mapped/mappedTypes6.ts", + "./testTs/test/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceError.ts", + "./testTs/test/types/contextualTypes/commaOperator/contextuallyTypeCommaOperator03.ts", + "./testTs/test/types/contextualTypes/commaOperator/contextuallyTypeCommaOperator02.ts", + "./testTs/test/types/contextualTypes/methodDeclarations/contextuallyTypedClassExpressionMethodDeclaration01.ts", + "./testTs/test/types/contextualTypes/methodDeclarations/contextuallyTypedBindingInitializerNegative.ts", + "./testTs/test/types/contextualTypes/methodDeclarations/contextuallyTypedClassExpressionMethodDeclaration02.ts", + "./testTs/test/types/contextualTypes/logicalAnd/contextuallyTypeLogicalAnd03.ts", + "./testTs/test/types/contextualTypes/logicalAnd/contextuallyTypeLogicalAnd02.ts", + "./testTs/test/types/conditional/conditionalTypes1.ts", + "./testTs/test/types/conditional/inferTypes1.ts", + "./testTs/test/types/conditional/conditionalTypesExcessProperties.ts", + "./testTs/test/types/conditional/conditionalTypes2.ts", + "./testTs/test/types/namedTypes/interfaceWithPrivateMember.ts", + "./testTs/test/types/primitives/string/invalidStringAssignments.ts", + "./testTs/test/types/primitives/string/assignFromStringInterface.ts", + "./testTs/test/types/primitives/string/assignFromStringInterface2.ts", + "./testTs/test/types/primitives/string/stringPropertyAccessWithError.ts", + "./testTs/test/types/primitives/number/assignFromNumberInterface2.ts", + "./testTs/test/types/primitives/number/assignFromNumberInterface.ts", + "./testTs/test/types/primitives/number/invalidNumberAssignments.ts", + "./testTs/test/types/primitives/undefined/invalidUndefinedAssignments.ts", + "./testTs/test/types/primitives/undefined/directReferenceToUndefined.ts", + "./testTs/test/types/primitives/void/invalidVoidAssignments.ts", + "./testTs/test/types/primitives/void/invalidAssignmentsToVoid.ts", + "./testTs/test/types/primitives/void/invalidVoidValues.ts", + "./testTs/test/types/primitives/boolean/boolInsteadOfBoolean.ts", + "./testTs/test/types/primitives/boolean/assignFromBooleanInterface2.ts", + "./testTs/test/types/primitives/boolean/assignFromBooleanInterface.ts", + "./testTs/test/types/primitives/boolean/invalidBooleanAssignments.ts", + "./testTs/test/types/primitives/null/validNullAssignments.ts", + "./testTs/test/types/primitives/null/directReferenceToNull.ts", + "./testTs/test/types/primitives/enum/invalidEnumAssignments.ts", + "./testTs/test/types/union/unionTypeMembers.ts", + "./testTs/test/types/union/unionTypeCallSignatures5.ts", + "./testTs/test/types/union/unionTypeReduction2.ts", + "./testTs/test/types/union/unionTypeCallSignatures4.ts", + "./testTs/test/types/union/unionTypeWithIndexSignature.ts", + "./testTs/test/types/union/unionTypeCallSignatures.ts", + "./testTs/test/types/union/unionTypePropertyAccessibility.ts", + "./testTs/test/types/union/unionTypeFromArrayLiteral.ts", + "./testTs/test/types/union/unionTypeEquivalence.ts", + "./testTs/test/types/union/unionTypeReadonly.ts", + "./testTs/test/types/union/unionTypeCallSignatures6.ts", + "./testTs/test/types/union/unionTypeConstructSignatures.ts", + "./testTs/test/types/union/discriminatedUnionTypes1.ts", + "./testTs/test/types/union/discriminatedUnionTypes2.ts", + "./testTs/test/types/union/contextualTypeWithUnionTypeObjectLiteral.ts", + "./testTs/test/types/tuple/strictTupleLength.ts", + "./testTs/test/types/tuple/variadicTuples2.ts", + "./testTs/test/types/tuple/wideningTuples7.ts", + "./testTs/test/types/tuple/unionsOfTupleTypes1.ts", + "./testTs/test/types/tuple/indexerWithTuple.ts", + "./testTs/test/types/tuple/castingTuple.ts", + "./testTs/test/types/tuple/wideningTuples4.ts", + "./testTs/test/types/tuple/readonlyArraysAndTuples.ts", + "./testTs/test/types/tuple/wideningTuples5.ts", + "./testTs/test/types/tuple/optionalTupleElements1.ts", + "./testTs/test/types/tuple/wideningTuples3.ts", + "./testTs/test/types/tuple/arityAndOrderCompatibility01.ts", + "./testTs/test/types/tuple/restTupleElements1.ts", + "./testTs/test/types/tuple/tupleLengthCheck.ts", + "./testTs/test/types/tuple/contextualTypeWithTuple.ts", + "./testTs/test/types/tuple/variadicTuples1.ts", + "./testTs/test/types/tuple/named/namedTupleMembersErrors.ts", + "./testTs/test/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts", + "./testTs/test/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts", + "./testTs/test/types/keyof/keyofAndIndexedAccess2.ts", + "./testTs/test/types/keyof/circularIndexedAccessErrors.ts", + "./testTs/test/types/keyof/keyofAndIndexedAccessErrors.ts", + "./testTs/test/types/any/anyAsConstructor.ts", + "./testTs/test/types/any/narrowExceptionVariableInCatchClause.ts", + "./testTs/test/types/any/assignAnyToEveryType.ts", + "./testTs/test/types/any/anyAsGenericFunctionCall.ts", + "./testTs/test/types/any/narrowFromAnyWithInstanceof.ts", + "./testTs/test/types/any/narrowFromAnyWithTypePredicate.ts", + "./testTs/test/types/forAwait/types.forAwait.es2018.2.ts", + "./testTs/test/types/forAwait/types.forAwait.es2018.3.ts", + "./testTs/test/types/typeParameters/typeParameterAsBaseType.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/instantiateGenericClassWithWrongNumberOfTypeArguments.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/callGenericFunctionWithIncorrectNumberOfTypeArguments.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/wrappedAndRecursiveConstraints4.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/callNonGenericFunctionWithTypeArguments.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/instantiateNonGenericTypeWithTypeArguments.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/typeParameterAsTypeParameterConstraint2.ts", + "./testTs/test/types/typeParameters/typeParameterLists/typeParameterDirectlyConstrainedToItself.ts", + "./testTs/test/types/typeParameters/typeParameterLists/typeParameterIndirectlyConstrainedToItself.ts", + "./testTs/test/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints5.ts", + "./testTs/test/types/typeParameters/typeParameterLists/staticMembersUsingClassTypeParameter.ts", + "./testTs/test/types/typeParameters/typeParameterLists/typesWithDuplicateTypeParameters.ts", + "./testTs/test/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints4.ts", + "./testTs/test/types/asyncGenerators/types.asyncGenerators.es2018.2.ts", + "./testTs/test/types/spread/objectSpreadSetonlyAccessor.ts", + "./testTs/test/types/spread/spreadDuplicateExact.ts", + "./testTs/test/types/spread/spreadDuplicate.ts", + "./testTs/test/types/spread/objectSpreadIndexSignature.ts", + "./testTs/test/types/spread/objectSpreadNegative.ts", + "./testTs/test/types/spread/spreadUnion3.ts", + "./testTs/test/types/spread/objectSpreadStrictNull.ts", + "./testTs/test/types/spread/spreadMethods.ts", + "./testTs/test/types/spread/spreadTypeVariable.ts", + "./testTs/test/types/spread/objectSpreadNegativeParse.ts", + "./testTs/test/types/spread/spreadOverwritesPropertyStrict.ts", + "./testTs/test/types/spread/spreadUnion2.ts", + "./testTs/test/types/unknown/unknownType2.ts", + "./testTs/test/types/unknown/unknownType1.ts", + "./testTs/test/types/uniqueSymbol/uniqueSymbolsDeclarationsInJsErrors.ts", + "./testTs/test/types/uniqueSymbol/uniqueSymbolsErrors.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/recursiveTypeReferences1.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/recursiveTypeReferences2.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/objectTypeWithRecursiveWrappedProperty.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/objectTypeWithRecursiveWrappedPropertyCheckedNominally.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/objectTypeWithRecursiveWrappedProperty2.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/infiniteExpansionThroughInstantiation.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithStringIndexer2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithOptionalParameters.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithSpecializedSignatures.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithStringIndexer.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers3.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithStringIndexer4.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameter.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithNumericIndexer4.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithNumericIndexer.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithOptionalParameters.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures6.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers5.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembersAccessibility2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembersOptionality2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithRecursiveConstraints.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypesOfUnion.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithNumericIndexer3.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/unionSubtypeIfEveryConstituentTypeIsSubtype.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembersAccessibility.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/enumIsNotASubtypeOfAnythingButNumber.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithNumericIndexer5.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithNumericIndexer2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithStringIndexer3.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesA.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithSpecializedSignatures.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints4.ts", + "./testTs/test/types/typeRelationships/comparable/switchCaseWithUnionTypes01.ts", + "./testTs/test/types/typeRelationships/comparable/equalityWithEnumTypes.ts", + "./testTs/test/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts", + "./testTs/test/types/typeRelationships/comparable/typeAssertionsWithUnionTypes01.ts", + "./testTs/test/types/typeRelationships/comparable/equalityStrictNulls.ts", + "./testTs/test/types/typeRelationships/comparable/typeAssertionsWithIntersectionTypes01.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures3.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/unionTypeIdentity.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates3.ts", + "./testTs/test/types/typeRelationships/bestCommonType/bestCommonTypeOfTuple2.ts", + "./testTs/test/types/typeRelationships/bestCommonType/bestCommonTypeOfTuple.ts", + "./testTs/test/types/typeRelationships/instanceOf/narrowingGenericTypeFromInstanceof01.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints4.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference2.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts", + "./testTs/test/types/typeRelationships/typeInference/genericClassWithFunctionTypedMemberArguments.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithTupleType.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints3.ts", + "./testTs/test/types/typeRelationships/typeInference/indexSignatureTypeInference.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments2.ts", + "./testTs/test/types/typeRelationships/typeInference/contextualSignatureInstantiation.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithOverloadedFunctionTypedArguments2.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments5.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithOverloadedConstructorTypedArguments2.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectLiteralArgs.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints5.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs.ts", + "./testTs/test/types/typeRelationships/typeInference/unionTypeInference.ts", + "./testTs/test/types/typeRelationships/apparentType/apparentTypeSubtyping.ts", + "./testTs/test/types/typeRelationships/apparentType/apparentTypeSupertype.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersStringNumericNames.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/typeParameterAssignability2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersAccessibility.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures5.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignatures2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersOptionality2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatBetweenTupleAndArray.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance3.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithStringIndexer3.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/genericCallWithObjectTypeArgsAndInitializers.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithStringIndexer2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers5.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance6.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/typeParameterAssignability3.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/nullAssignedToUndefined.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithNumericIndexer3.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/enumAssignabilityInInheritance.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures6.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/optionalPropertyAssignableToStringIndexSignature.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/covariantCallbacks.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures3.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithNumericIndexer2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers4.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance6.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/typeParameterAssignability.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance3.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithNumericIndexer.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithDiscriminatedUnion.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures5.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersOptionality.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignatures4.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures6.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithStringIndexer.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/enumAssignability.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures3.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesOverloadAssignability02.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesWithTemplateStrings02.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesAndLogicalOrExpressions01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts", + "./testTs/test/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesInVariableDeclarations01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesOverloads05.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesOverloadAssignability01.ts", + "./testTs/test/types/intersection/intersectionReduction.ts", + "./testTs/test/types/intersection/intersectionAsWeakTypeSource.ts", + "./testTs/test/types/intersection/intersectionWithIndexSignatures.ts", + "./testTs/test/types/intersection/intersectionTypeReadonly.ts", + "./testTs/test/types/intersection/intersectionReductionStrict.ts", + "./testTs/test/types/intersection/intersectionTypeInference.ts", + "./testTs/test/types/intersection/intersectionWithUnionConstraint.ts", + "./testTs/test/types/intersection/intersectionAndUnionTypes.ts", + "./testTs/test/types/intersection/intersectionNarrowing.ts", + "./testTs/test/types/intersection/commonTypeIntersection.ts", + "./testTs/test/types/intersection/recursiveIntersectionTypes.ts", + "./testTs/test/types/intersection/intersectionTypeAssignment.ts", + "./testTs/test/types/rest/genericRestArity.ts", + "./testTs/test/types/rest/genericRestArityStrict.ts", + "./testTs/test/types/rest/genericRestParameters1.ts", + "./testTs/test/types/rest/objectRest.ts", + "./testTs/test/types/rest/restTuplesFromContextualTypes.ts", + "./testTs/test/types/rest/objectRestPropertyMustBeLast.ts", + "./testTs/test/types/rest/restElementMustBeLast.ts", + "./testTs/test/types/rest/objectRestNegative.ts", + "./testTs/test/types/rest/genericRestParameters3.ts", + "./testTs/test/pedantic/noUncheckedIndexedAccess.ts", + "./testTs/test/pedantic/noUncheckedIndexedAccessDestructuring.ts", + "./testTs/test/internalModules/codeGeneration/importStatementsInterfaces.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithModuleMemberThatUsesClassTypeParameter.ts", + "./testTs/test/internalModules/DeclarationMerging/ModuleAndFunctionWithSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticVariableAndExportedVarThatShareAName.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleWithSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedClassesOfTheSameName.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.ts", + "./testTs/test/internalModules/DeclarationMerging/FunctionAndModuleWithSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithModulesExportedStaticFunctionUsingClassPrivateStatics.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndExportedFunctionThatShareAName.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleWithSameNameAndCommonRootES6.ts", + "./testTs/test/internalModules/DeclarationMerging/ModuleAndClassWithSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.ts", + "./testTs/test/internalModules/importDeclarations/shadowedInternalModule.ts", + "./testTs/test/internalModules/importDeclarations/invalidImportAliasIdentifiers.ts", + "./testTs/test/internalModules/importDeclarations/circularImportAlias.ts", + "./testTs/test/internalModules/exportDeclarations/ModuleWithExportedAndNonExportedVariables.ts", + "./testTs/test/internalModules/exportDeclarations/ModuleWithExportedAndNonExportedClasses.ts", + "./testTs/test/internalModules/exportDeclarations/NonInitializedExportInInternalModule.ts", + "./testTs/test/internalModules/exportDeclarations/ModuleWithExportedAndNonExportedEnums.ts", + "./testTs/test/internalModules/exportDeclarations/ModuleWithExportedAndNonExportedImportAlias.ts", + "./testTs/test/internalModules/exportDeclarations/ModuleWithExportedAndNonExportedFunctions.ts", + "./testTs/test/internalModules/moduleDeclarations/invalidInstantiatedModule.ts", + "./testTs/test/internalModules/moduleDeclarations/invalidNestedModules.ts", + "./testTs/test/internalModules/moduleDeclarations/InvalidNonInstantiatedModule.ts", + "./testTs/test/internalModules/moduleBody/invalidModuleWithVarStatements.ts", + "./testTs/test/internalModules/moduleBody/invalidModuleWithStatementsOfEveryKind.ts", + "./testTs/test/classes/mixinAccessModifiers.ts", + "./testTs/test/classes/awaitAndYieldInProperty.ts", + "./testTs/test/classes/mixinAbstractClasses.2.ts", + "./testTs/test/classes/nestedClassDeclaration.ts", + "./testTs/test/classes/indexMemberDeclarations/privateIndexer.ts", + "./testTs/test/classes/indexMemberDeclarations/publicIndexer.ts", + "./testTs/test/classes/indexMemberDeclarations/privateIndexer2.ts", + "./testTs/test/classes/indexMemberDeclarations/staticIndexers.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock7.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock16.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock6.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock3.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock20.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock8.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock19.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock4.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock26.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock23.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock22.ts", + "./testTs/test/classes/propertyMemberDeclarations/assignParameterPropertyToPropertyDeclarationESNext.ts", + "./testTs/test/classes/propertyMemberDeclarations/definePropertyOutputES3.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessorsOverrideProperty6.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessorsOverrideProperty3.ts", + "./testTs/test/classes/propertyMemberDeclarations/constructorParameterShadowsOuterScopes.ts", + "./testTs/test/classes/propertyMemberDeclarations/initializerReferencingConstructorLocals.ts", + "./testTs/test/classes/propertyMemberDeclarations/redefinedPararameterProperty.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyOverridesAccessors.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessorsOverrideProperty4.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyAndFunctionWithSameName.ts", + "./testTs/test/classes/propertyMemberDeclarations/initializerReferencingConstructorParameters.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyOverridesAccessors5.ts", + "./testTs/test/classes/propertyMemberDeclarations/constructorParameterShadowsOuterScopes2.ts", + "./testTs/test/classes/propertyMemberDeclarations/strictPropertyInitialization.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyAndAccessorWithSameName.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyOverridesAccessors3.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyOverridesAccessors2.ts", + "./testTs/test/classes/propertyMemberDeclarations/redeclaredProperty.ts", + "./testTs/test/classes/propertyMemberDeclarations/twoAccessorsWithSameName2.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyNamedPrototype.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessorsOverrideProperty.ts", + "./testTs/test/classes/propertyMemberDeclarations/staticPropertyNameConflicts.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessorsOverrideProperty7.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessorsOverrideProperty2.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessorsOverrideMethod.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyOverridesAccessors4.ts", + "./testTs/test/classes/propertyMemberDeclarations/derivedUninitializedPropertyDeclaration.ts", + "./testTs/test/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts", + "./testTs/test/classes/propertyMemberDeclarations/twoAccessorsWithSameName.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyNamedConstructor.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessibilityModifiers.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberFunctionDeclarations/instanceMemberAssignsToClassPrototype.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticMemberAssignsToConstructorFunctionMembers.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberFunctionDeclarations/memberFunctionOverloadMixingStaticAndInstance.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberFunctionDeclarations/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberFunctionDeclarations/memberFunctionsWithPrivateOverloads.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberFunctionDeclarations/memberFunctionsWithPublicPrivateOverloads.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberAccessorDeclarations/accessorWithES3.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberAccessorDeclarations/typeOfThisInAccessor.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberAccessorDeclarations/accessorsAreNotContextuallyTyped.ts", + "./testTs/test/classes/members/constructorFunctionTypes/classWithStaticMembers.ts", + "./testTs/test/classes/members/constructorFunctionTypes/classWithBaseClassButNoConstructor.ts", + "./testTs/test/classes/members/constructorFunctionTypes/classWithConstructors.ts", + "./testTs/test/classes/members/accessibility/privateProtectedMembersAreNotAccessibleDestructuring.ts", + "./testTs/test/classes/members/accessibility/protectedStaticNotAccessibleInClodule.ts", + "./testTs/test/classes/members/accessibility/privateStaticNotAccessibleInClodule2.ts", + "./testTs/test/classes/members/accessibility/privateStaticNotAccessibleInClodule.ts", + "./testTs/test/classes/members/accessibility/protectedClassPropertyAccessibleWithinNestedSubclass1.ts", + "./testTs/test/classes/members/accessibility/privateClassPropertyAccessibleWithinClass.ts", + "./testTs/test/classes/members/accessibility/protectedClassPropertyAccessibleWithinSubclass2.ts", + "./testTs/test/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass2.ts", + "./testTs/test/classes/members/accessibility/privateInstanceMemberAccessibility.ts", + "./testTs/test/classes/members/accessibility/protectedInstanceMemberAccessibility.ts", + "./testTs/test/classes/members/accessibility/classPropertyAsPrivate.ts", + "./testTs/test/classes/members/accessibility/classPropertyIsPublicByDefault.ts", + "./testTs/test/classes/members/accessibility/privateStaticMemberAccessibility.ts", + "./testTs/test/classes/members/accessibility/protectedClassPropertyAccessibleWithinNestedSubclass.ts", + "./testTs/test/classes/members/accessibility/classPropertyAsProtected.ts", + "./testTs/test/classes/members/accessibility/protectedClassPropertyAccessibleWithinSubclass3.ts", + "./testTs/test/classes/members/accessibility/protectedStaticClassPropertyAccessibleWithinSubclass.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInInstanceMember2.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInInstanceMember.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInstanceMemberNarrowedWithLoopAntecedent.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassTransitivity3.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassTransitivity.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassWithPrivateStaticShadowingPublicStatic.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers4.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers3.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedGenericClassWithAny.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassOverridesPublicMembers.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassWithPrivateInstanceShadowingPublicInstance.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassFunctionOverridesBaseClassAccessor.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassWithPrivateStaticShadowingProtectedStatic.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassWithAny.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassOverridesPrivates.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassIncludesInheritedMembers.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassWithPrivateInstanceShadowingProtectedInstance.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassTransitivity4.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassTransitivity2.ts", + "./testTs/test/classes/members/classTypes/staticPropertyNotInClassType.ts", + "./testTs/test/classes/members/classTypes/instancePropertyInClassType.ts", + "./testTs/test/classes/members/classTypes/instancePropertiesInheritedIntoClassType.ts", + "./testTs/test/classes/members/privateNames/privateNameInObjectLiteral-2.ts", + "./testTs/test/classes/members/privateNames/privateNameMethodsDerivedClasses.ts", + "./testTs/test/classes/members/privateNames/privateNamesNotAllowedInVariableDeclarations.ts", + "./testTs/test/classes/members/privateNames/privateNameJsBadDeclaration.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldDerivedClasses.ts", + "./testTs/test/classes/members/privateNames/privateNameInInExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameAndAny.ts", + "./testTs/test/classes/members/privateNames/privateNameConstructorReserved.ts", + "./testTs/test/classes/members/privateNames/privateNameUnused.ts", + "./testTs/test/classes/members/privateNames/privateNamesNoDelete.ts", + "./testTs/test/classes/members/privateNames/privateNamesAndGenericClasses-2.ts", + "./testTs/test/classes/members/privateNames/privateNamesUnique-5.ts", + "./testTs/test/classes/members/privateNames/privateNamesAndDecorators.ts", + "./testTs/test/classes/members/privateNames/privateNameMethodClassExpression.ts", + "./testTs/test/classes/members/privateNames/privateNamesUnique-1.ts", + "./testTs/test/classes/members/privateNames/privateNameMethodAccess.ts", + "./testTs/test/classes/members/privateNames/privateNamesUnique-2.ts", + "./testTs/test/classes/members/privateNames/privateNameImplicitDeclaration.ts", + "./testTs/test/classes/members/privateNames/privateNameEnum.ts", + "./testTs/test/classes/members/privateNames/privateNameMethodAssignment.ts", + "./testTs/test/classes/members/privateNames/privateNamesUnique-4.ts", + "./testTs/test/classes/members/privateNames/privateNamesUnique-3.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticAccessorssDerivedClasses.ts", + "./testTs/test/classes/members/privateNames/privateNamesUseBeforeDef.ts", + "./testTs/test/classes/members/privateNames/privateNamesConstructorChain-2.ts", + "./testTs/test/classes/members/privateNames/privateNameNestedClassFieldShadowing.ts", + "./testTs/test/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts", + "./testTs/test/classes/members/privateNames/privateNameSetterNoGetter.ts", + "./testTs/test/classes/members/privateNames/privateNamesInNestedClasses-1.ts", + "./testTs/test/classes/members/privateNames/privateNameNotAllowedOutsideClass.ts", + "./testTs/test/classes/members/privateNames/privateNamesAndStaticFields.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticMethodAsync.ts", + "./testTs/test/classes/members/privateNames/privateNameMethod.ts", + "./testTs/test/classes/members/privateNames/privateNamesInNestedClasses-2.ts", + "./testTs/test/classes/members/privateNames/privateNamesAndIndexedAccess.ts", + "./testTs/test/classes/members/privateNames/privateNamesNotAllowedAsParameters.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldDerivedClasses.ts", + "./testTs/test/classes/members/privateNames/privateNameCircularReference.ts", + "./testTs/test/classes/members/privateNames/privateNameNestedClassAccessorsShadowing.ts", + "./testTs/test/classes/members/privateNames/privateNameAndPropertySignature.ts", + "./testTs/test/classes/members/privateNames/privateNameAccessorsAccess.ts", + "./testTs/test/classes/members/privateNames/privateNameNotAccessibleOutsideDefiningClass.ts", + "./testTs/test/classes/members/privateNames/privateNameAccessorssDerivedClasses.ts", + "./testTs/test/classes/members/privateNames/privateNameNestedClassMethodShadowing.ts", + "./testTs/test/classes/members/privateNames/privateWriteOnlyAccessorRead.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticMethod.ts", + "./testTs/test/classes/members/privateNames/privateNameUncheckedJsOptionalChain.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticAccessors.ts", + "./testTs/test/classes/members/privateNames/privateNameNestedMethodAccess.ts", + "./testTs/test/classes/members/privateNames/privateNameAmbientNoImplicitAny.ts", + "./testTs/test/classes/members/privateNames/privateNameHashCharName.ts", + "./testTs/test/classes/members/privateNames/privateNameAccessors.ts", + "./testTs/test/classes/members/privateNames/privateNameBadAssignment.ts", + "./testTs/test/classes/members/privateNames/privateNameJsBadAssignment.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldsESNext.ts", + "./testTs/test/classes/members/privateNames/privateNamesIncompatibleModifiers.ts", + "./testTs/test/classes/members/privateNames/privateNameReadonly.ts", + "./testTs/test/classes/members/privateNames/privateNamesInterfaceExtendingClass.ts", + "./testTs/test/classes/members/privateNames/privateNameBadDeclaration.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticAccessorsAccess.ts", + "./testTs/test/classes/members/privateNames/privateNameInObjectLiteral-3.ts", + "./testTs/test/classes/members/privateNames/privateNamesInGenericClasses.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticMethodAssignment.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticMethodClassExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameBadSuper.ts", + "./testTs/test/classes/members/privateNames/privateNameAndIndexSignature.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldAccess.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticEmitHelpers.ts", + "./testTs/test/classes/members/privateNames/privateNameAndObjectRestSpread.ts", + "./testTs/test/classes/members/privateNames/privateNameDeclarationMerging.ts", + "./testTs/test/classes/members/privateNames/privateNameInInExpressionUnused.ts", + "./testTs/test/classes/members/privateNames/privateNameInObjectLiteral-1.ts", + "./testTs/test/classes/members/privateNames/privateNameEmitHelpers.ts", + "./testTs/test/classes/members/privateNames/privateNamesAndkeyof.ts", + "./testTs/test/classes/members/privateNames/privateNameDuplicateField.ts", + "./testTs/test/classes/members/privateNames/privateNamesConstructorChain-1.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorAccessibility3.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorOverloadsAccessibility.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorParametersAccessibility2.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorAccessibility5.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorAccessibility.ts", + "./testTs/test/classes/constructorDeclarations/constructorWithAssignableReturnExpression.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorAccessibility2.ts", + "./testTs/test/classes/constructorDeclarations/classWithTwoConstructorDefinitions.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorParametersAccessibility.ts", + "./testTs/test/classes/constructorDeclarations/automaticConstructors/derivedClassWithoutExplicitConstructor3.ts", + "./testTs/test/classes/constructorDeclarations/automaticConstructors/derivedClassWithoutExplicitConstructor.ts", + "./testTs/test/classes/constructorDeclarations/automaticConstructors/derivedClassWithoutExplicitConstructor2.ts", + "./testTs/test/classes/constructorDeclarations/automaticConstructors/classWithoutExplicitConstructor.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/constructorParameterProperties2.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues2.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/constructorParameterProperties.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/constructorDefaultValuesReferencingThis.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/readonlyReadonly.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/readonlyConstructorAssignment.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/constructorOverloadsWithDefaultValues.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/readonlyInAmbientClass.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/readonlyInConstructorParameters.ts", + "./testTs/test/classes/constructorDeclarations/superCalls/derivedClassSuperCallsInNonConstructorMembers.ts", + "./testTs/test/classes/constructorDeclarations/superCalls/superCallInConstructorWithNoBaseType.ts", + "./testTs/test/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts", + "./testTs/test/classes/constructorDeclarations/superCalls/derivedClassConstructorWithoutSuperCall.ts", + "./testTs/test/classes/constructorDeclarations/superCalls/superPropertyInConstructorBeforeSuperCall.ts", + "./testTs/test/classes/constructorDeclarations/superCalls/derivedClassSuperCallsWithThisArg.ts", + "./testTs/test/classes/staticIndexSignature/staticIndexSignature7.ts", + "./testTs/test/classes/staticIndexSignature/staticIndexSignature4.ts", + "./testTs/test/classes/staticIndexSignature/staticIndexSignature3.ts", + "./testTs/test/classes/staticIndexSignature/staticIndexSignature5.ts", + "./testTs/test/classes/staticIndexSignature/staticIndexSignature2.ts", + "./testTs/test/classes/staticIndexSignature/staticIndexSignature1.ts", + "./testTs/test/classes/classDeclarations/declaredClassMergedwithSelf.ts", + "./testTs/test/classes/classDeclarations/classExtendingNonConstructor.ts", + "./testTs/test/classes/classDeclarations/classAndVariableWithSameName.ts", + "./testTs/test/classes/classDeclarations/classAndInterfaceMergeConflictingMembers.ts", + "./testTs/test/classes/classDeclarations/classWithPredefinedTypesAsNames.ts", + "./testTs/test/classes/classDeclarations/classExtendingClassLikeType.ts", + "./testTs/test/classes/classDeclarations/classWithPredefinedTypesAsNames2.ts", + "./testTs/test/classes/classDeclarations/classImplementsMergedClassInterface.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractInstantiations2.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractMixedWithModifiers.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractUsingAbstractMethod1.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractManyKeywords.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractSingleLineDecl.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractConstructor.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractMergedDeclaration.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractMethodWithImplementation.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractInstantiations1.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractOverrideWithAbstract.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractClinterfaceAssignability.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractSuperCalls.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractExtends.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractOverloads.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractFactoryFunction.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractProperties.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractInheritance.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractImportInstantiation.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractUsingAbstractMethods2.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractInAModule.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractMethodInNonAbstractClass.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractGeneric.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractCrashedOnce.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractAccessor.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractWithInterface.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractDeclarations.d.ts", + "./testTs/test/classes/classDeclarations/classAbstractKeyword/classAbstractConstructorAssignability.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendsValidConstructorFunction.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendingOptionalChain.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendsItselfIndirectly.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType2.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendsShadowedConstructorFunction.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classIsSubtypeOfBaseType.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendsItselfIndirectly2.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendsItselfIndirectly3.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendsItself.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendingPrimitive2.ts", + "./testTs/test/classes/classDeclarations/classBody/classBodyWithStatements.ts", + "./testTs/test/jsx/jsxUnclosedParserRecovery.ts", + "./testTs/test/references/library-reference-15.ts", + "./testTs/test/references/library-reference-5.ts", + "./testTs/test/es7/trailingCommasInBindingPatterns.ts", + "./testTs/test/es7/trailingCommasInGetter.ts", + "./testTs/test/es7/trailingCommasInFunctionParametersAndArguments.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorInTemplateStringWithSyntaxError3.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithNullValueAndValidOperands.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithNew.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithNullValueAndInvalidOperands.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorSyntaxError1.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithInvalidOperands.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorInTemplateStringWithSyntaxError1.ts", + "./testTs/test/es7/exponentiationOperator/compoundExponentiationAssignmentLHSIsValue.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithTemplateStringInvalidES6.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithUndefinedValueAndValidOperands.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithUndefinedValueAndInvalidOperands.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithInvalidSimpleUnaryExpressionOperands.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithTypeParameter.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperator4.ts", + "./testTs/test/es7/exponentiationOperator/compoundExponentiationAssignmentLHSCanBeAssigned1.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithTemplateStringInvalid.ts", + "./testTs/test/es7/exponentiationOperator/compoundExponentiationAssignmentLHSCannotBeAssigned.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithOnlyNullValueOrUndefinedValue.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorInTemplateStringWithSyntaxError2.ts", + "./testTs/test/ambient/ambientDeclarationsPatterns_merging2.ts", + "./testTs/test/ambient/ambientExternalModuleInsideNonAmbientExternalModule.ts", + "./testTs/test/ambient/ambientDeclarationsPatterns_tooManyAsterisks.ts", + "./testTs/test/ambient/ambientExternalModuleInsideNonAmbient.ts", + "./testTs/test/ambient/ambientDeclarationsPatterns_merging3.ts", + "./testTs/test/ambient/ambientErrors.ts", + "./testTs/test/ambient/ambientDeclarationsPatterns_merging1.ts", + "./testTs/test/externalModules/moduleResolutionWithoutExtension7.ts", + "./testTs/test/externalModules/moduleResolutionWithoutExtension2.ts", + "./testTs/test/externalModules/exportNonInitializedVariablesES6.ts", + "./testTs/test/externalModules/multipleExportDefault2.ts", + "./testTs/test/externalModules/importNonExternalModule.ts", + "./testTs/test/externalModules/topLevelFileModuleMissing.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.11.ts", + "./testTs/test/externalModules/umd-errors.ts", + "./testTs/test/externalModules/umd8.ts", + "./testTs/test/externalModules/multipleExportDefault1.ts", + "./testTs/test/externalModules/exportClassNameWithObjectAMD.ts", + "./testTs/test/externalModules/moduleResolutionWithoutExtension3.ts", + "./testTs/test/externalModules/exportNonLocalDeclarations.ts", + "./testTs/test/externalModules/circularReference.ts", + "./testTs/test/externalModules/moduleResolutionWithoutExtension4.ts", + "./testTs/test/externalModules/multipleExportDefault6.ts", + "./testTs/test/externalModules/exportNonInitializedVariablesUMD.ts", + "./testTs/test/externalModules/initializersInDeclarations.ts", + "./testTs/test/externalModules/umd5.ts", + "./testTs/test/externalModules/exportAssignmentConstrainedGenericType.ts", + "./testTs/test/externalModules/exportClassNameWithObjectUMD.ts", + "./testTs/test/externalModules/multipleExportDefault5.ts", + "./testTs/test/externalModules/topLevelModuleDeclarationAndFile.ts", + "./testTs/test/externalModules/exportNonInitializedVariablesSystem.ts", + "./testTs/test/externalModules/moduleResolutionWithoutExtension6.ts", + "./testTs/test/externalModules/duplicateExportAssignments.ts", + "./testTs/test/externalModules/multipleExportDefault3.ts", + "./testTs/test/externalModules/importsImplicitlyReadonly.ts", + "./testTs/test/externalModules/moduleResolutionWithoutExtension8.ts", + "./testTs/test/externalModules/importTsBeforeDTs.ts", + "./testTs/test/externalModules/invalidSyntaxNamespaceImportWithCommonjs.ts", + "./testTs/test/externalModules/exportAssignmentAndDeclaration.ts", + "./testTs/test/externalModules/invalidSyntaxNamespaceImportWithAMD.ts", + "./testTs/test/externalModules/relativePathMustResolve.ts", + "./testTs/test/externalModules/moduleResolutionWithoutExtension1.ts", + "./testTs/test/externalModules/exportClassNameWithObjectCommonJS.ts", + "./testTs/test/externalModules/invalidSyntaxNamespaceImportWithSystem.ts", + "./testTs/test/externalModules/exportAssignNonIdentifier.ts", + "./testTs/test/externalModules/typesOnlyExternalModuleStillHasInstance.ts", + "./testTs/test/externalModules/multipleExportDefault4.ts", + "./testTs/test/externalModules/umd2.ts", + "./testTs/test/externalModules/exportNonInitializedVariablesCommonJS.ts", + "./testTs/test/externalModules/importNonStringLiteral.ts", + "./testTs/test/externalModules/exportDefaultClassNameWithObject.ts", + "./testTs/test/externalModules/exportClassNameWithObjectSystem.ts", + "./testTs/test/externalModules/moduleResolutionWithoutExtension5.ts", + "./testTs/test/externalModules/exportNonInitializedVariablesAMD.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target10.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target9.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target10.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target9.ts", + "./testTs/test/externalModules/typeOnly/filterNamespace_import.ts", + "./testTs/test/externalModules/typeOnly/importEqualsDeclaration.ts", + "./testTs/test/externalModules/typeOnly/grammarErrors.ts", + "./testTs/test/externalModules/typeOnly/chained.ts", + "./testTs/test/externalModules/typeOnly/enums.ts", + "./testTs/test/externalModules/typeOnly/exportDefault.ts", + "./testTs/test/externalModules/typeOnly/exportDeclaration_missingBraces.ts", + "./testTs/test/externalModules/typeOnly/importEquals1.ts", + "./testTs/test/externalModules/typeOnly/exportDeclaration.ts", + "./testTs/test/externalModules/typeOnly/importClause_default.ts", + "./testTs/test/externalModules/typeOnly/importEquals3.ts", + "./testTs/test/externalModules/typeOnly/importsNotUsedAsValues_error.ts", + "./testTs/test/externalModules/typeOnly/exportDeclaration_moduleSpecifier.ts", + "./testTs/test/externalModules/typeOnly/chained2.ts", + "./testTs/test/externalModules/typeOnly/importClause_namedImports.ts", + "./testTs/test/externalModules/typeOnly/generic.ts", + "./testTs/test/externalModules/typeOnly/namespaceMemberAccess.ts", + "./testTs/test/externalModules/typeOnly/importSpecifiers1.ts", + "./testTs/test/externalModules/typeOnly/circular3.ts", + "./testTs/test/externalModules/typeOnly/circular4.ts", + "./testTs/test/externalModules/typeOnly/importEquals2.ts", + "./testTs/test/externalModules/typeOnly/computedPropertyName.ts", + "./testTs/test/externalModules/typeOnly/circular2.ts", + "./testTs/test/externalModules/typeOnly/exportNamespace4.ts", + "./testTs/test/externalModules/typeOnly/preserveValueImports_mixedImports.ts", + "./testTs/test/externalModules/typeOnly/exportSpecifiers.ts", + "./testTs/test/externalModules/typeOnly/importClause_namespaceImport.ts", + "./testTs/test/externalModules/typeOnly/namespaceImportTypeQuery.ts", + "./testTs/test/externalModules/typeOnly/circular1.ts", + "./testTs/test/externalModules/typeOnly/exportNamespace2.ts", + "./testTs/test/externalModules/typeOnly/extendsClause.ts", + "./testTs/test/externalModules/typeOnly/exportNamespace1.ts", + "./testTs/test/externalModules/typeOnly/exportNamespace3.ts", + "./testTs/test/externalModules/typeOnly/renamed.ts", + "./testTs/test/es2017/useObjectValuesAndEntries3.ts", + "./testTs/test/es2017/useSharedArrayBuffer6.ts", + "./testTs/test/es2017/useSharedArrayBuffer3.ts", + "./testTs/test/es2017/useObjectValuesAndEntries2.ts", + "./testTs/test/es2017/useSharedArrayBuffer2.ts", + "./testTs/test/async/es2017/await_unaryExpression_es2017_1.ts", + "./testTs/test/async/es2017/await_unaryExpression_es2017_3.ts", + "./testTs/test/async/es2017/asyncAwaitIsolatedModules_es2017.ts", + "./testTs/test/async/es2017/await_unaryExpression_es2017_2.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration7_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration5_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration10_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration3_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration6_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration8_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration12_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration9_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration13_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction9_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction10_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction8_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction6_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction7_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction_allowJs.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction5_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction3_es2017.ts", + "./testTs/test/async/es5/asyncSetter_es5.ts", + "./testTs/test/async/es5/asyncDeclare_es5.ts", + "./testTs/test/async/es5/asyncAliasReturnType_es5.ts", + "./testTs/test/async/es5/asyncInterface_es5.ts", + "./testTs/test/async/es5/asyncConstructor_es5.ts", + "./testTs/test/async/es5/asyncModule_es5.ts", + "./testTs/test/async/es5/asyncEnum_es5.ts", + "./testTs/test/async/es5/asyncClass_es5.ts", + "./testTs/test/async/es5/asyncGetter_es5.ts", + "./testTs/test/async/es5/asyncAwaitIsolatedModules_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration10_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration6_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclarationCapturesArguments_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration13_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration12_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration9_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration5_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration8_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration3_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration7_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration15_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction5_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction8_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction10_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction6_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction9_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunctionCapturesArguments_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction7_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction3_es5.ts", + "./testTs/test/async/es6/asyncClass_es6.ts", + "./testTs/test/async/es6/asyncGetter_es6.ts", + "./testTs/test/async/es6/asyncInterface_es6.ts", + "./testTs/test/async/es6/asyncAwaitIsolatedModules_es6.ts", + "./testTs/test/async/es6/await_unaryExpression_es6_1.ts", + "./testTs/test/async/es6/asyncSetter_es6.ts", + "./testTs/test/async/es6/asyncImportedPromise_es6.ts", + "./testTs/test/async/es6/asyncConstructor_es6.ts", + "./testTs/test/async/es6/asyncDeclare_es6.ts", + "./testTs/test/async/es6/asyncEnum_es6.ts", + "./testTs/test/async/es6/await_unaryExpression_es6_3.ts", + "./testTs/test/async/es6/asyncQualifiedReturnType_es6.ts", + "./testTs/test/async/es6/asyncModule_es6.ts", + "./testTs/test/async/es6/await_unaryExpression_es6_2.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration7_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration3_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration12_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration5_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration10_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration6_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration8_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration9_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration13_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction10_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction7_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction6_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction8_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction9_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction3_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction5_es6.ts", + "./testTs/test/additionalChecks/noPropertyAccessFromIndexSignature1.ts", + "./testTs/test/typings/typingsSuggestion2.ts", + "./testTs/test/typings/typingsSuggestion1.ts", + "./testTs/test/dynamicImport/importCallExpression5ES2020.ts", + "./testTs/test/dynamicImport/importCallExpressionCheckReturntype1.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedES2015.ts", + "./testTs/test/dynamicImport/importCallExpressionNoModuleKindSpecified.ts", + "./testTs/test/dynamicImport/importCallExpressionIncorrect1.ts", + "./testTs/test/dynamicImport/importCallExpressionWithTypeArgument.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedES20152.ts", + "./testTs/test/dynamicImport/importCallExpressionInScriptContext2.ts", + "./testTs/test/dynamicImport/importCallExpressionGrammarError.ts", + "./testTs/test/dynamicImport/importCallExpression6ES2020.ts", + "./testTs/test/dynamicImport/importCallExpressionErrorInES2015.ts", + "./testTs/test/dynamicImport/importCallExpressionSpecifierNotStringTypeError.ts", + "./testTs/test/dynamicImport/importCallExpressionIncorrect2.ts", + "./testTs/test/jsdoc/jsdocReadonly.ts", + "./testTs/test/jsdoc/jsdocOverrideTag1.ts", + "./testTs/test/jsdoc/jsdocOuterTypeParameters3.ts", + "./testTs/test/jsdoc/jsdocPrivateName1.ts", + "./testTs/test/jsdoc/jsdocImplements_class.ts", + "./testTs/test/jsdoc/assertionsAndNonReturningFunctions.ts", + "./testTs/test/jsdoc/jsdocTemplateClass.ts", + "./testTs/test/jsdoc/paramTagWrapping.ts", + "./testTs/test/jsdoc/typeTagPrototypeAssignment.ts", + "./testTs/test/jsdoc/typedefOnStatements.ts", + "./testTs/test/jsdoc/paramTagNestedWithoutTopLevelObject.ts", + "./testTs/test/jsdoc/checkJsdocTypeTag6.ts", + "./testTs/test/jsdoc/checkJsdocReturnTag2.ts", + "./testTs/test/jsdoc/jsdocDisallowedInTypescript.ts", + "./testTs/test/jsdoc/callOfPropertylessConstructorFunction.ts", + "./testTs/test/jsdoc/checkJsdocTypedefOnlySourceFile.ts", + "./testTs/test/jsdoc/jsdocImplements_missingType.ts", + "./testTs/test/jsdoc/jsdocTypeTagParameterType.ts", + "./testTs/test/jsdoc/typedefTagWrapping.ts", + "./testTs/test/jsdoc/jsdocFunction_missingReturn.ts", + "./testTs/test/jsdoc/paramTagNestedWithoutTopLevelObject2.ts", + "./testTs/test/jsdoc/jsdocAugments_nameMismatch.ts", + "./testTs/test/jsdoc/extendsTag2.ts", + "./testTs/test/jsdoc/jsdocPrototypePropertyAccessWithType.ts", + "./testTs/test/jsdoc/extendsTagEmit.ts", + "./testTs/test/jsdoc/errorOnFunctionReturnType.ts", + "./testTs/test/jsdoc/jsdocTypeTagRequiredParameters.ts", + "./testTs/test/jsdoc/jsdocCatchClauseWithTypeAnnotation.ts", + "./testTs/test/jsdoc/typedefScope1.ts", + "./testTs/test/jsdoc/jsdocTemplateTag3.ts", + "./testTs/test/jsdoc/jsdocOuterTypeParameters2.ts", + "./testTs/test/jsdoc/jsdocAugments_errorInExtendsExpression.ts", + "./testTs/test/jsdoc/callbackTag2.ts", + "./testTs/test/jsdoc/syntaxErrors.ts", + "./testTs/test/jsdoc/typedefMultipleTypeParameters.ts", + "./testTs/test/jsdoc/checkExportsObjectAssignProperty.ts", + "./testTs/test/jsdoc/checkJsdocTypeTagOnObjectProperty2.ts", + "./testTs/test/jsdoc/jsdocIndexSignature.ts", + "./testTs/test/jsdoc/jsdocTemplateTagDefault.ts", + "./testTs/test/jsdoc/typeTagNoErasure.ts", + "./testTs/test/jsdoc/checkOtherObjectAssignProperty.ts", + "./testTs/test/jsdoc/checkObjectDefineProperty.ts", + "./testTs/test/jsdoc/typedefTagTypeResolution.ts", + "./testTs/test/jsdoc/jsdocParseErrorsInTypescript.ts", + "./testTs/test/jsdoc/jsdocAugments_notAClass.ts", + "./testTs/test/jsdoc/paramTagNestedWithoutTopLevelObject3.ts", + "./testTs/test/jsdoc/jsdocTemplateConstructorFunction2.ts", + "./testTs/test/jsdoc/constructorTagOnObjectLiteralMethod.ts", + "./testTs/test/jsdoc/checkJsdocOptionalParamOrder.ts", + "./testTs/test/jsdoc/checkJsdocOnEndOfFile.ts", + "./testTs/test/jsdoc/jsdocImplements_properties.ts", + "./testTs/test/jsdoc/typedefCrossModule5.ts", + "./testTs/test/jsdoc/jsdocOuterTypeParameters1.ts", + "./testTs/test/jsdoc/paramTagNestedWithoutTopLevelObject4.ts", + "./testTs/test/jsdoc/jsdocParseDotDotDotInJSDocFunction.ts", + "./testTs/test/jsdoc/noAssertForUnparseableTypedefs.ts", + "./testTs/test/jsdoc/checkJsdocTypeTag1.ts", + "./testTs/test/jsdoc/jsdocTemplateTag.ts", + "./testTs/test/jsdoc/checkJsdocTypeTag5.ts", + "./testTs/test/jsdoc/jsdocPostfixEqualsAddsOptionality.ts", + "./testTs/test/jsdoc/jsdocPrivateName2.ts", + "./testTs/test/jsdoc/jsdocParamTag2.ts", + "./testTs/test/jsdoc/jsdocTypeFromChainedAssignment2.ts", + "./testTs/test/jsdoc/enumTag.ts", + "./testTs/test/jsdoc/jsdocTypeFromChainedAssignment.ts", + "./testTs/test/jsdoc/typedefDuplicateTypeDeclaration.ts", + "./testTs/test/jsdoc/checkJsdocTypeTag2.ts", + "./testTs/test/jsdoc/typedefCrossModule3.ts", + "./testTs/test/jsdoc/typedefCrossModule2.ts", + "./testTs/test/jsdoc/jsdocImplements_interface.ts", + "./testTs/test/jsdoc/jsdocParseBackquotedParamName.ts", + "./testTs/test/jsdoc/noDuplicateJsdoc1.ts", + "./testTs/test/jsdoc/typedefInnerNamepaths.ts", + "./testTs/test/jsdoc/enumTagCircularReference.ts", + "./testTs/test/jsdoc/checkJsdocTypeTag4.ts", + "./testTs/test/jsdoc/jsdocAccessibilityTags.ts", + "./testTs/test/jsdoc/typeTagCircularReferenceOnConstructorFunction.ts", + "./testTs/test/jsdoc/jsdocImplements_signatures.ts", + "./testTs/test/jsdoc/checkExportsObjectAssignPrototypeProperty.ts", + "./testTs/test/jsdoc/extendsTag4.ts", + "./testTs/test/jsdoc/jsdocPrefixPostfixParsing.ts", + "./testTs/test/jsdoc/jsdocTypeTagCast.ts", + "./testTs/test/jsdoc/jsdocTemplateTagNameResolution.ts", + "./testTs/test/jsdoc/jsdocImplements_interface_multiple.ts", + "./testTs/test/jsdoc/typeTagModuleExports.ts", + "./testTs/test/jsdoc/typedefCrossModule4.ts", + "./testTs/test/jsdoc/paramTagOnFunctionUsingArguments.ts", + "./testTs/test/jsdoc/jsdocParamTagTypeLiteral.ts", + "./testTs/test/jsdoc/jsdocFunctionType.ts", + "./testTs/test/jsdoc/jsdocAugmentsMissingType.ts", + "./testTs/test/jsdoc/jsdocTemplateConstructorFunction.ts", + "./testTs/test/jsdoc/jsdocAugments_noExtends.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsCrossfileMerge.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsInterfaces.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedConstructorFunctionWithSub.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypeReferences4.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypeReassignmentFromDeclaration2.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsParameterTagReusesInputNodeInEmit1.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsDefaultsErr.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassLikeHeuristic.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportFormsErr.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassesErr.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsEnums.ts", + "./testTs/test/override/override15.ts", + "./testTs/test/override/override_js2.ts", + "./testTs/test/override/overrideWithoutNoImplicitOverride1.ts", + "./testTs/test/override/override11.ts", + "./testTs/test/override/override_js4.ts", + "./testTs/test/override/overrideKeywordOrder.ts", + "./testTs/test/override/override4.ts", + "./testTs/test/override/override1.ts", + "./testTs/test/override/override20.ts", + "./testTs/test/override/override7.ts", + "./testTs/test/override/override3.ts", + "./testTs/test/override/overrideParameterProperty.ts", + "./testTs/test/override/override13.ts", + "./testTs/test/override/override6.ts", + "./testTs/test/override/override8.ts", + "./testTs/test/override/override9.ts", + "./testTs/test/override/override19.ts", + "./testTs/test/override/override_js3.ts", + "./testTs/test/override/override2.ts", + "./testTs/test/override/override5.ts", + "./testTs/test/es2019/globalThisPropertyAssignment.ts", + "./testTs/test/es2019/globalThisCollision.ts", + "./testTs/test/es2019/globalThisBlockscopedProperties.ts", + "./testTs/test/es2019/globalThisGlobalExportAsGlobal.ts", + "./testTs/test/es2019/globalThisVarDeclaration.ts", + "./testTs/test/es2019/globalThisReadonlyProperties.ts", + "./testTs/test/es2019/globalThisUnknownNoImplicitAny.ts", + "./testTs/test/es2019/globalThisUnknown.ts", + "./testTs/test/directives/ts-expect-error.ts", + "./testTs/test/directives/ts-expect-error-js.ts", + "./testTs/test/directives/ts-ignore.ts", + "./testTs/test/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts", + "./testTs/test/expressions/conditonalOperator/conditionalOperatorConditionIsObjectType.ts", + "./testTs/test/expressions/objectLiterals/objectLiteralGettersAndSetters.ts", + "./testTs/test/expressions/objectLiterals/objectLiteralErrorsES3.ts", + "./testTs/test/expressions/objectLiterals/objectLiteralNormalization.ts", + "./testTs/test/expressions/objectLiterals/objectLiteralErrors.ts", + "./testTs/test/expressions/typeGuards/typeGuardsWithInstanceOfByConstructorSignature.ts", + "./testTs/test/expressions/typeGuards/typeGuardInClass.ts", + "./testTs/test/expressions/typeGuards/typePredicateOnVariableDeclaration02.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormThisMemberErrors.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfEqualEqualHasNoEffect.ts", + "./testTs/test/expressions/typeGuards/typeGuardsWithInstanceOf.ts", + "./testTs/test/expressions/typeGuards/typeGuardsWithAny.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfNotEqualHasNoEffect.ts", + "./testTs/test/expressions/typeGuards/typeGuardFunctionErrors.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormThisMember.ts", + "./testTs/test/expressions/typeGuards/typeGuardFunctionOfFormThisErrors.ts", + "./testTs/test/expressions/typeGuards/typeGuardsDefeat.ts", + "./testTs/test/expressions/typeGuards/typePredicateOnVariableDeclaration01.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInIfStatement.ts", + "./testTs/test/expressions/commaOperator/commaOperatorOtherInvalidOperation.ts", + "./testTs/test/expressions/commaOperator/commaOperatorWithoutOperand.ts", + "./testTs/test/expressions/commaOperator/commaOperatorInvalidAssignmentType.ts", + "./testTs/test/expressions/valuesAndReferences/assignments.ts", + "./testTs/test/expressions/valuesAndReferences/assignmentToParenthesizedIdentifiers.ts", + "./testTs/test/expressions/thisKeyword/typeOfThisGeneral.ts", + "./testTs/test/expressions/thisKeyword/thisInInvalidContexts.ts", + "./testTs/test/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts", + "./testTs/test/expressions/thisKeyword/thisInObjectLiterals.ts", + "./testTs/test/expressions/thisKeyword/typeOfThisInConstructorParamList.ts", + "./testTs/test/expressions/asOperator/asOperatorAmbiguity.ts", + "./testTs/test/expressions/asOperator/asOperator2.ts", + "./testTs/test/expressions/asOperator/asOperatorContextualType.ts", + "./testTs/test/expressions/asOperator/asOperatorNames.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator4.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator5.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator11.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithInvalidOperands.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithNullValueAndValidOperator.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithTypeParameter.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithNullValueAndInvalidOperator.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithOnlyNullValueOrUndefinedValue.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithUndefinedValueAndInvalidOperands.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithUndefinedValueAndValidOperator.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalPrimitiveType.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsNull.ts", + "./testTs/test/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidOperands.ts", + "./testTs/test/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithEveryType.ts", + "./testTs/test/expressions/binaryOperators/logicalOrOperator/logicalOrExpressionIsContextuallyTyped.ts", + "./testTs/test/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithEveryType.ts", + "./testTs/test/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorStrictMode.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithUndefinedValueAndInvalidOperands.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithOnlyNullValueOrUndefinedValue.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithUndefinedValueAndValidOperands.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithTypeParameter.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithInvalidOperands.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithNullValueAndInvalidOperands.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithNullValueAndValidOperands.ts", + "./testTs/test/expressions/binaryOperators/inOperator/inOperatorWithInvalidOperands.ts", + "./testTs/test/expressions/arrayLiterals/arrayLiterals3.ts", + "./testTs/test/expressions/arrayLiterals/arrayLiterals.ts", + "./testTs/test/expressions/assignmentOperator/compoundAssignmentLHSIsValue.ts", + "./testTs/test/expressions/assignmentOperator/compoundAdditionAssignmentLHSCannotBeAssigned.ts", + "./testTs/test/expressions/assignmentOperator/assignmentLHSIsValue.ts", + "./testTs/test/expressions/assignmentOperator/compoundAdditionAssignmentWithInvalidOperands.ts", + "./testTs/test/expressions/assignmentOperator/compoundArithmeticAssignmentWithInvalidOperands.ts", + "./testTs/test/expressions/assignmentOperator/compoundAdditionAssignmentLHSCanBeAssigned.ts", + "./testTs/test/expressions/assignmentOperator/compoundArithmeticAssignmentLHSCanBeAssigned.ts", + "./testTs/test/expressions/unaryOperators/decrementOperator/decrementOperatorWithUnsupportedBooleanType.ts", + "./testTs/test/expressions/unaryOperators/decrementOperator/decrementOperatorWithAnyOtherTypeInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/decrementOperator/decrementOperatorWithEnumTypeInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/decrementOperator/decrementOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/decrementOperator/decrementOperatorWithUnsupportedStringType.ts", + "./testTs/test/expressions/unaryOperators/decrementOperator/decrementOperatorWithNumberTypeInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/plusOperator/plusOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/unaryOperators/plusOperator/plusOperatorInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/plusOperator/plusOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/plusOperator/plusOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/plusOperator/plusOperatorWithStringType.ts", + "./testTs/test/expressions/unaryOperators/plusOperator/plusOperatorWithBooleanType.ts", + "./testTs/test/expressions/unaryOperators/deleteOperator/deleteOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/deleteOperator/deleteOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/deleteOperator/deleteOperatorWithBooleanType.ts", + "./testTs/test/expressions/unaryOperators/deleteOperator/deleteOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/unaryOperators/deleteOperator/deleteOperatorInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/deleteOperator/deleteOperatorWithStringType.ts", + "./testTs/test/expressions/unaryOperators/incrementOperator/incrementOperatorWithUnsupportedStringType.ts", + "./testTs/test/expressions/unaryOperators/incrementOperator/incrementOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/incrementOperator/incrementOperatorWithEnumTypeInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/incrementOperator/incrementOperatorWithUnsupportedBooleanType.ts", + "./testTs/test/expressions/unaryOperators/incrementOperator/incrementOperatorWithAnyOtherTypeInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/incrementOperator/incrementOperatorWithNumberTypeInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/typeofOperator/typeofOperatorWithBooleanType.ts", + "./testTs/test/expressions/unaryOperators/typeofOperator/typeofOperatorWithStringType.ts", + "./testTs/test/expressions/unaryOperators/typeofOperator/typeofOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/typeofOperator/typeofOperatorInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/unaryOperators/typeofOperator/typeofOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithStringType.ts", + "./testTs/test/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithBooleanType.ts", + "./testTs/test/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/voidOperator/voidOperatorInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/voidOperator/voidOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/unaryOperators/negateOperator/negateOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/negateOperator/negateOperatorWithStringType.ts", + "./testTs/test/expressions/unaryOperators/negateOperator/negateOperatorWithBooleanType.ts", + "./testTs/test/expressions/unaryOperators/negateOperator/negateOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/negateOperator/negateOperatorInvalidOperations.ts", + "./testTs/test/expressions/unaryOperators/negateOperator/negateOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/identifiers/scopeResolutionIdentifiers.ts", + "./testTs/test/expressions/optionalChaining/propertyAccessChain/propertyAccessChain.3.ts", + "./testTs/test/expressions/optionalChaining/delete/deleteChain.ts", + "./testTs/test/expressions/optionalChaining/privateIdentifierChain/privateIdentifierChain.1.ts", + "./testTs/test/expressions/optionalChaining/callChain/callChain.3.ts", + "./testTs/test/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts", + "./testTs/test/expressions/optionalChaining/taggedTemplateChain/taggedTemplateChain.ts", + "./testTs/test/expressions/functionCalls/forgottenNew.ts", + "./testTs/test/expressions/functionCalls/grammarAmbiguities.ts", + "./testTs/test/expressions/functionCalls/callWithSpread2.ts", + "./testTs/test/expressions/functionCalls/callOverload.ts", + "./testTs/test/expressions/functionCalls/typeArgumentInference.ts", + "./testTs/test/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts", + "./testTs/test/expressions/functionCalls/overloadResolutionConstructors.ts", + "./testTs/test/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts", + "./testTs/test/expressions/functionCalls/callWithSpread4.ts", + "./testTs/test/expressions/functionCalls/functionCalls.ts", + "./testTs/test/expressions/functionCalls/newWithSpread.ts", + "./testTs/test/expressions/functionCalls/callWithSpread5.ts", + "./testTs/test/expressions/functionCalls/typeArgumentInferenceWithObjectLiteral.ts", + "./testTs/test/expressions/functionCalls/overloadResolution.ts", + "./testTs/test/expressions/functionCalls/callWithSpread3.ts", + "./testTs/test/expressions/functionCalls/callWithMissingVoid.ts", + "./testTs/test/expressions/functionCalls/typeArgumentInferenceErrors.ts", + "./testTs/test/expressions/functionCalls/overloadResolutionClassConstructors.ts", + "./testTs/test/expressions/superPropertyAccess/errorSuperPropertyAccess.ts", + "./testTs/test/expressions/superPropertyAccess/superSymbolIndexedAccess4.ts", + "./testTs/test/expressions/superPropertyAccess/superSymbolIndexedAccess3.ts", + "./testTs/test/expressions/propertyAccess/propertyAccessWidening.ts", + "./testTs/test/expressions/propertyAccess/propertyAccess.ts", + "./testTs/test/expressions/propertyAccess/propertyAccessStringIndexSignature.ts", + "./testTs/test/expressions/propertyAccess/propertyAccessStringIndexSignatureNoImplicitAny.ts", + "./testTs/test/expressions/functions/contextuallyTypedIifeStrict.ts", + "./testTs/test/expressions/functions/arrowFunctionContexts.ts", + "./testTs/test/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts", + "./testTs/test/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts", + "./testTs/test/expressions/typeAssertions/constAssertions.ts", + "./testTs/test/expressions/typeAssertions/typeAssertions.ts", + "./testTs/test/expressions/superCalls/errorSuperCalls.ts", + "./testTs/test/expressions/literals/literals.ts", + "./testTs/test/expressions/newOperator/newOperatorErrorCases_noImplicitAny.ts", + "./testTs/test/expressions/newOperator/newOperatorErrorCases.ts", + "./testTs/test/expressions/contextualTyping/arrayLiteralExpressionContextualTyping.ts", + "./testTs/test/expressions/contextualTyping/functionExpressionContextualTyping2.ts", + "./testTs/test/expressions/contextualTyping/superCallParameterContextualTyping2.ts", + "./testTs/test/expressions/contextualTyping/getSetAccessorContextualTyping.ts", + "./testTs/test/expressions/contextualTyping/objectLiteralContextualTyping.ts", + "./testTs/test/expressions/contextualTyping/parenthesizedContexualTyping1.ts", + "./testTs/test/expressions/contextualTyping/argumentExpressionContextualTyping.ts", + "./testTs/test/expressions/contextualTyping/parenthesizedContexualTyping2.ts", + "./testTs/test/expressions/operators/incrementAndDecrement.ts", + "./testTs/test/declarationEmit/typesVersionsDeclarationEmit.multiFileBackReferenceToSelf.ts", + "./testTs/test/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName02.ts", + "./testTs/test/declarationEmit/typePredicates/declarationEmitThisPredicates02.ts", + "./testTs/test/decorators/decoratorCallGeneric.ts", + "./testTs/test/decorators/decoratorMetadata-jsdoc.ts", + "./testTs/test/decorators/missingDecoratorType.ts", + "./testTs/test/decorators/class/decoratorChecksFunctionBodies.ts", + "./testTs/test/decorators/class/decoratorOnClass3.ts", + "./testTs/test/decorators/class/decoratorOnClass8.ts", + "./testTs/test/decorators/class/constructableDecoratorOnClass01.ts", + "./testTs/test/decorators/class/constructor/decoratorOnClassConstructor1.ts", + "./testTs/test/decorators/class/constructor/decoratorOnClassConstructor2.ts", + "./testTs/test/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter4.ts", + "./testTs/test/decorators/class/accessor/decoratorOnClassAccessor3.ts", + "./testTs/test/decorators/class/accessor/decoratorOnClassAccessor6.ts", + "./testTs/test/decorators/class/accessor/decoratorOnClassAccessor7.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethodOverload1.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod8.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod12.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod10.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod11.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod6.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod17.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod3.ts", + "./testTs/test/decorators/class/method/parameter/decoratorOnClassMethodThisParameter.ts", + "./testTs/test/decorators/class/property/decoratorOnClassProperty11.ts", + "./testTs/test/decorators/class/property/decoratorOnClassProperty6.ts", + "./testTs/test/decorators/class/property/decoratorOnClassProperty7.ts", + "./testTs/test/decorators/class/property/decoratorOnClassProperty3.ts", + "./testTs/test/decorators/invalid/decoratorOnImportEquals1.ts", + "./testTs/test/decorators/invalid/decoratorOnFunctionParameter.ts", + "./testTs/test/decorators/invalid/decoratorOnImportEquals2.ts", + "./testTs/test/decorators/invalid/decoratorOnFunctionExpression.ts", + "./testTs/test/decorators/invalid/decoratorOnVar.ts", + "./testTs/test/decorators/invalid/decoratorOnEnum2.ts", + "./testTs/test/decorators/invalid/decoratorOnArrowFunction.ts", + "./testTs/test/decorators/invalid/decoratorOnFunctionDeclaration.ts", + "./testTs/test/decorators/invalid/decoratorOnEnum.ts", + "./testTs/test/decorators/invalid/decoratorOnInterface.ts", + "./testTs/test/decorators/invalid/decoratorOnTypeAlias.ts", + "./testTs/test/decorators/invalid/decoratorOnInternalModule.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithIndexers2.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithInheritedPrivates3.ts", + "./testTs/test/interfaces/declarationMerging/twoGenericInterfacesDifferingByTypeParameterName.ts", + "./testTs/test/interfaces/declarationMerging/twoGenericInterfacesWithTheSameNameButDifferentArity.ts", + "./testTs/test/interfaces/declarationMerging/genericAndNonGenericInterfaceWithTheSameName.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithInheritedPrivates.ts", + "./testTs/test/interfaces/declarationMerging/mergedInheritedMembersSatisfyAbstractBase.ts", + "./testTs/test/interfaces/declarationMerging/twoGenericInterfacesDifferingByTypeParameterName2.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames.ts", + "./testTs/test/interfaces/declarationMerging/twoInterfacesDifferentRootModule.ts", + "./testTs/test/interfaces/declarationMerging/twoInterfacesDifferentRootModule2.ts", + "./testTs/test/interfaces/declarationMerging/twoGenericInterfacesWithDifferentConstraints.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithInheritedPrivates2.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithMultipleBases4.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/implementingAnInterfaceExtendingClassWithPrivates.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/interfaceExtendingClassWithPrivates2.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/implementingAnInterfaceExtendingClassWithPrivates2.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/interfaceExtendingClassWithPrivates.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/interfaceExtendingClass2.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/interfaceExtendingClassWithProtecteds2.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/interfaceExtendingClassWithProtecteds.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/implementingAnInterfaceExtendingClassWithProtecteds.ts", + "./testTs/test/interfaces/interfacesExtendingClasses/interfaceExtendingClass.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceThatIndirectlyInheritsFromItself.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithPropertyThatIsPrivateInBaseType.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceExtendingOptionalChain.ts", + "./testTs/test/interfaces/interfaceDeclarations/derivedInterfaceIncompatibleWithBaseIndexer.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithStringIndexerHidingBaseTypeIndexer.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithAccessibilityModifiers.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceThatHidesBaseProperty2.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersectionErrors.ts", + "./testTs/test/interfaces/interfaceDeclarations/asiPreventsParsingAsInterface05.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithPropertyThatIsPrivateInBaseType2.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithMultipleBaseTypes.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithStringIndexerHidingBaseTypeIndexer3.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithStringIndexerHidingBaseTypeIndexer2.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfacesWithPredefinedTypesAsNames.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithMultipleBaseTypes2.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceThatInheritsFromItself.ts", + "./testTs/test/moduleResolution/declarationNotFoundPackageBundlesTypes.ts", + "./testTs/test/moduleResolution/untypedModuleImport_noImplicitAny.ts", + "./testTs/test/moduleResolution/untypedModuleImport_noImplicitAny_relativePath.ts", + "./testTs/test/moduleResolution/untypedModuleImport_withAugmentation.ts", + "./testTs/test/moduleResolution/packageJsonMain_isNonRecursive.ts", + "./testTs/test/moduleResolution/untypedModuleImport_noImplicitAny_scoped.ts", + "./testTs/test/moduleResolution/untypedModuleImport_noImplicitAny_typesForPackageExist.ts", + "./testTs/test/parser/ecmascript2018/forAwait/parser.forAwait.es2018.ts", + "./testTs/test/parser/ecmascript2018/asyncGenerators/parser.asyncGenerators.functionExpressions.es2018.ts", + "./testTs/test/parser/ecmascript2018/asyncGenerators/parser.asyncGenerators.classMethods.es2018.ts", + "./testTs/test/parser/ecmascript2018/asyncGenerators/parser.asyncGenerators.functionDeclarations.es2018.ts", + "./testTs/test/parser/ecmascript2018/asyncGenerators/parser.asyncGenerators.objectLiteralMethods.es2018.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.decmialNegative.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.unicodeEscape.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.octalNegative.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.binaryNegative.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.hexNegative.ts", + "./testTs/test/parser/ecmascript3/Accessors/parserES3Accessors2.ts", + "./testTs/test/parser/ecmascript3/Accessors/parserES3Accessors4.ts", + "./testTs/test/parser/ecmascript3/Accessors/parserES3Accessors1.ts", + "./testTs/test/parser/ecmascript3/Accessors/parserES3Accessors3.ts", + "./testTs/test/parser/ecmascript5/parserUnicode1.ts", + "./testTs/test/parser/ecmascript5/parserS7.2_A1.5_T2.ts", + "./testTs/test/parser/ecmascript5/parser10.1.1-8gs.ts", + "./testTs/test/parser/ecmascript5/parserRealSource13.ts", + "./testTs/test/parser/ecmascript5/parserRealSource10.ts", + "./testTs/test/parser/ecmascript5/parserS12.11_A3_T4.ts", + "./testTs/test/parser/ecmascript5/parserUsingConstructorAsIdentifier.ts", + "./testTs/test/parser/ecmascript5/parserObjectCreationArrayLiteral1.ts", + "./testTs/test/parser/ecmascript5/parserS7.9_A5.7_T1.ts", + "./testTs/test/parser/ecmascript5/parserRealSource7.ts", + "./testTs/test/parser/ecmascript5/parserNotRegex1.ts", + "./testTs/test/parser/ecmascript5/parserObjectCreationArrayLiteral2.ts", + "./testTs/test/parser/ecmascript5/parservoidInQualifiedName1.ts", + "./testTs/test/parser/ecmascript5/parserRealSource4.ts", + "./testTs/test/parser/ecmascript5/parservoidInQualifiedName2.ts", + "./testTs/test/parser/ecmascript5/parserRealSource2.ts", + "./testTs/test/parser/ecmascript5/parserRealSource8.ts", + "./testTs/test/parser/ecmascript5/parserImportDeclaration1.ts", + "./testTs/test/parser/ecmascript5/parserRealSource12.ts", + "./testTs/test/parser/ecmascript5/parserArgumentList1.ts", + "./testTs/test/parser/ecmascript5/parserObjectCreationArrayLiteral3.ts", + "./testTs/test/parser/ecmascript5/parserKeywordsAsIdentifierName2.ts", + "./testTs/test/parser/ecmascript5/parserRealSource6.ts", + "./testTs/test/parser/ecmascript5/parserNoASIOnCallAfterFunctionExpression1.ts", + "./testTs/test/parser/ecmascript5/parserRealSource5.ts", + "./testTs/test/parser/ecmascript5/parser15.4.4.14-9-2.ts", + "./testTs/test/parser/ecmascript5/parserRealSource9.ts", + "./testTs/test/parser/ecmascript5/parserRealSource1.ts", + "./testTs/test/parser/ecmascript5/parserAdditiveExpression1.ts", + "./testTs/test/parser/ecmascript5/parserObjectCreationArrayLiteral4.ts", + "./testTs/test/parser/ecmascript5/parserRealSource11.ts", + "./testTs/test/parser/ecmascript5/parserRealSource3.ts", + "./testTs/test/parser/ecmascript5/parserRealSource14.ts", + "./testTs/test/parser/ecmascript5/parserAstSpans1.ts", + "./testTs/test/parser/ecmascript5/parserS7.6_A4.2_T1.ts", + "./testTs/test/parser/ecmascript5/parserS7.3_A1.1_T2.ts", + "./testTs/test/parser/ecmascript5/TupleTypes/TupleType6.ts", + "./testTs/test/parser/ecmascript5/TupleTypes/TupleType4.ts", + "./testTs/test/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration3.ts", + "./testTs/test/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration4.ts", + "./testTs/test/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration2.ts", + "./testTs/test/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration1.ts", + "./testTs/test/parser/ecmascript5/ObjectTypes/parserObjectType5.ts", + "./testTs/test/parser/ecmascript5/ObjectTypes/parserObjectType6.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserErrantAccessibilityModifierInModule1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserUnterminatedGeneric2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserPublicBreak1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserUnfinishedTypeNameBeforeKeyword1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserModifierOnStatementInBlock3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserModifierOnPropertySignature1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserMissingLambdaOpenBrace1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserUnterminatedGeneric1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserModifierOnStatementInBlock2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserModifierOnStatementInBlock1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserStatementIsNotAMemberVariableDeclaration1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserModifierOnStatementInBlock4.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserErrantEqualsGreaterThanAfterFunction1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserEqualsGreaterThanAfterFunction2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserEmptyParenthesizedExpression1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserEqualsGreaterThanAfterFunction1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserErrantSemicolonInClass1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserFuzz1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause4.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause6.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/SourceUnits/parserErrorRecovery_SourceUnit1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/SwitchStatements/parserErrorRecovery_SwitchStatement2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/SwitchStatements/parserErrorRecovery_SwitchStatement1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic10.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic7.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic6.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArgumentLists/parserErrorRecovery_ArgumentList4.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArgumentLists/parserErrorRecovery_ArgumentList2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArgumentLists/parserErrorRecovery_ArgumentList3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArgumentLists/parserErrorRecovery_ArgumentList7.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArgumentLists/parserErrorRecovery_ArgumentList1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArgumentLists/parserErrorRecovery_ArgumentList6.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ClassElements/parserErrorRecovery_ClassElement3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ClassElements/parserErrorRecovery_ClassElement1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ClassElements/parserErrorRecovery_ClassElement2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement6.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement4.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement5.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/Blocks/parserErrorRecovery_Block1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/Blocks/parserErrorRecovery_Block3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/Blocks/parserErrorRecovery_Block2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/IncompleteMemberVariables/parserErrorRecovery_IncompleteMemberVariable2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ParameterLists/parserErrorRecovery_ParameterList5.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ParameterLists/parserErrorRecovery_ParameterList2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ParameterLists/parserErrorRecovery_ParameterList4.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ParameterLists/parserErrorRecovery_ParameterList1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ParameterLists/parserErrorRecovery_ParameterList6.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/VariableLists/parserInvalidIdentifiersInVariableStatements1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/VariableLists/parserErrorRecovery_VariableList1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral4.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral5.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrowFunctions/ArrowFunction1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrowFunctions/parserX_ArrowFunction1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrowFunctions/ArrowFunction3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrowFunctions/parserX_ArrowFunction3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/LeftShifts/parserErrorRecovery_LeftShift1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ModuleElements/parserErrorRecovery_ModuleElement2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ModuleElements/parserErrorRecovery_ModuleElement1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/Expressions/parserErrorRecovery_Expression1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/TypeArgumentLists/parserX_TypeArgumentList1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/TypeArgumentLists/TypeArgumentList1.ts", + "./testTs/test/parser/ecmascript5/MissingTokens/parserMissingToken1.ts", + "./testTs/test/parser/ecmascript5/MissingTokens/parserMissingToken2.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration4.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration6.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClass2.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration2.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration10.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration18.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration7.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration13.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration1.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration25.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration15.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration24.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration14.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration21.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration11.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClass1.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration12.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration8.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration3.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration22.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration9.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration5.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode9.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode13.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode15.ts", + "./testTs/test/parser/ecmascript5/StrictMode/octalLiteralInStrictModeES3.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode4.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode16.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode10.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode6-negative.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode14.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode12.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode2.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode15-negative.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode7.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode3-negative.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode11.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode8.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode5.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode3.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode1.ts", + "./testTs/test/parser/ecmascript5/StrictMode/parserStrictMode6.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration3.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration4.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration8.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration6.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration7.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration11.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration9.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration10.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration2.ts", + "./testTs/test/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration9.ts", + "./testTs/test/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration7.ts", + "./testTs/test/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration5.ts", + "./testTs/test/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration8.ts", + "./testTs/test/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration10.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature8.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature7.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature1.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature10.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature4.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature3.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature11.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature2.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature9.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature6.ts", + "./testTs/test/parser/ecmascript5/IndexSignatures/parserIndexSignature5.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration3.d.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnum7.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnum4.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnum5.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration2.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration4.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity2.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity3.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity5.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpression5.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity1.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpression3.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpression2.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity4.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpression4.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity7.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpression1.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parseRegularExpressionMixedWithComments.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens2.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens14.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens10.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens16.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens9.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens1.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens17.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens12.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens19.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens18.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens6.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens11.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens5.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens20.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens13.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens7.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens8.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens3.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens4.ts", + "./testTs/test/parser/ecmascript5/SkippedTokens/parserSkippedTokens15.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName8.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName1.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName5.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName7.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName9.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName6.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName10.ts", + "./testTs/test/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName11.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509669.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509630.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser566700.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser512325.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509693.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509667.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser642331_1.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser645086_1.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser618973.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509618.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser553699.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser521128.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser512097.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509668.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser536727.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser642331.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509534.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser645086_2.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser519458.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509698.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser512084.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser585151.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parserTernaryAndCommaOperators1.ts", + "./testTs/test/parser/ecmascript5/Protected/Protected1.ts", + "./testTs/test/parser/ecmascript5/Protected/Protected7.ts", + "./testTs/test/parser/ecmascript5/Protected/Protected4.ts", + "./testTs/test/parser/ecmascript5/Protected/Protected2.ts", + "./testTs/test/parser/ecmascript5/Protected/Protected6.ts", + "./testTs/test/parser/ecmascript5/MemberFunctionDeclarations/parserMemberFunctionDeclaration2.ts", + "./testTs/test/parser/ecmascript5/MemberFunctionDeclarations/parserMemberFunctionDeclaration1.ts", + "./testTs/test/parser/ecmascript5/MemberFunctionDeclarations/parserMemberFunctionDeclaration3.ts", + "./testTs/test/parser/ecmascript5/MemberFunctionDeclarations/parserMemberFunctionDeclarationAmbiguities1.ts", + "./testTs/test/parser/ecmascript5/MemberFunctionDeclarations/parserMemberFunctionDeclaration5.ts", + "./testTs/test/parser/ecmascript5/MemberFunctionDeclarations/parserMemberFunctionDeclaration4.ts", + "./testTs/test/parser/ecmascript5/Fuzz/parser0_004152.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration6.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration1.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration8.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration5.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration3.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration2.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration10.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration4.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors9.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserSetAccessorWithTypeParameters1.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors5.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors1.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors6.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors7.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserGetAccessorWithTypeParameters1.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors10.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserSetAccessorWithTypeAnnotation1.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors8.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors3.ts", + "./testTs/test/parser/ecmascript5/RealWorld/parserharness.ts", + "./testTs/test/parser/ecmascript5/RealWorld/parserindenter.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration15.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration14.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration9.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration16.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration13.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration3.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration10.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration12.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration7.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration18.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration2.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration1.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration17.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration8.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessor1.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration11.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration4.d.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration2.d.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration5.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration1.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration3.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration10.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration1.d.ts", + "./testTs/test/parser/ecmascript5/SuperExpressions/parserSuperExpression1.ts", + "./testTs/test/parser/ecmascript5/SuperExpressions/parserSuperExpression2.ts", + "./testTs/test/parser/ecmascript5/SuperExpressions/parserSuperExpression3.ts", + "./testTs/test/parser/ecmascript5/SuperExpressions/parserSuperExpression4.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList1.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList5.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList2.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList7.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList8.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList17.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList13.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList10.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList9.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList11.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList16.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList14.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList3.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList4.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList15.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList6.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration7.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration2.d.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration6.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration1.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration3.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration4.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration2.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery3.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery2.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery7.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery1.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery6.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery8.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery5.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery9.ts", + "./testTs/test/parser/ecmascript5/Types/parserTypeQuery4.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty2.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty6.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty3.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty8.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty5.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty7.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty1.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty9.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolProperty4.ts", + "./testTs/test/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression5.ts", + "./testTs/test/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression4.ts", + "./testTs/test/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression1.ts", + "./testTs/test/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression2.ts", + "./testTs/test/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression3.ts", + "./testTs/test/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration8.ts", + "./testTs/test/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration3.ts", + "./testTs/test/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration1.ts", + "./testTs/test/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration2.ts", + "./testTs/test/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration6.ts", + "./testTs/test/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration4.ts", + "./testTs/test/parser/ecmascript5/CatchClauses/parserCatchClauseWithTypeAnnotation1.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment7.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment5.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment8.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment3.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment6.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment9.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment1.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment2.ts", + "./testTs/test/parser/ecmascript5/ExportAssignments/parserExportAssignment4.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericsInTypeContexts2.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericConstraint4.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity7.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericConstraint5.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericConstraint6.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity8.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity14.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericsInTypeContexts1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserConstructorAmbiguity1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericConstraint2.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity4.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity16.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity20.ts", + "./testTs/test/parser/ecmascript5/Generics/parserConstructorAmbiguity2.ts", + "./testTs/test/parser/ecmascript5/Generics/parserCastVersusArrowFunction1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity11.ts", + "./testTs/test/parser/ecmascript5/Generics/parserAmbiguity1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity3.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericConstraint3.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity15.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity19.ts", + "./testTs/test/parser/ecmascript5/Generics/parserConstructorAmbiguity3.ts", + "./testTs/test/parser/ecmascript5/Generics/parserMemberAccessOffOfGenericType1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity2.ts", + "./testTs/test/parser/ecmascript5/Generics/parserConstructorAmbiguity4.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericConstraint7.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity9.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericsInInterfaceDeclaration1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity12.ts", + "./testTs/test/parser/ecmascript5/Generics/parserAmbiguity2.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity17.ts", + "./testTs/test/parser/ecmascript5/Generics/parserAmbiguity3.ts", + "./testTs/test/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator4.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity18.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGenericsInVariableDeclaration1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity13.ts", + "./testTs/test/parser/ecmascript5/Generics/parserObjectCreation1.ts", + "./testTs/test/parser/ecmascript5/AutomaticSemicolonInsertion/parserAutomaticSemicolonInsertion1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserPostfixUnaryExpression1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserObjectCreation2.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserUnaryExpression2.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserUnaryExpression1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserAssignmentExpression1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserMemberAccessAfterPostfixExpression1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parseIncompleteBinaryExpression1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserTypeAssertionInObjectCreationExpression1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserUnaryExpression4.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserUnaryExpression3.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserUnaryExpression5.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserUnaryExpression7.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserPostfixPostfixExpression1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserConditionalExpression1.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserInvocationOfMemberAccessOffOfObjectCreationExpression1.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForInStatement6.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForInStatement7.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement21.ts", + "./testTs/test/parser/ecmascript5/Statements/parserDoStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForInStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement10.ts", + "./testTs/test/parser/ecmascript5/Statements/parserIfStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement5.ts", + "./testTs/test/parser/ecmascript5/Statements/parserBreakStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForInStatement4.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement20.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForInStatement3.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement9.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement4.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement7.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement15.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForInStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/parserVariableStatement2.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement11.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForStatement7.ts", + "./testTs/test/parser/ecmascript5/Statements/parserWithStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement13.ts", + "./testTs/test/parser/ecmascript5/Statements/parserIfStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForStatement4.ts", + "./testTs/test/parser/ecmascript5/Statements/parserWithStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement3.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement6.ts", + "./testTs/test/parser/ecmascript5/Statements/parserTryStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement12.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForStatement8.ts", + "./testTs/test/parser/ecmascript5/Statements/parserReturnStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserWhileStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForInStatement5.ts", + "./testTs/test/parser/ecmascript5/Statements/parserSwitchStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserEmptyStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForStatement5.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForStatement3.ts", + "./testTs/test/parser/ecmascript5/Statements/parserBlockStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserDebuggerStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserForStatement6.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement14.ts", + "./testTs/test/parser/ecmascript5/Statements/parserThrowStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserExpressionStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement8.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement16.ts", + "./testTs/test/parser/ecmascript5/Statements/parserContinueStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserLabeledStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/parserVariableStatement1.d.ts", + "./testTs/test/parser/ecmascript5/Statements/LabeledStatements/parser_duplicateLabel1.ts", + "./testTs/test/parser/ecmascript5/Statements/LabeledStatements/parser_duplicateLabel2.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueNotInIterationStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueTarget1.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueInIterationStatement4.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueTarget5.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueNotInIterationStatement1.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueNotInIterationStatement3.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueNotInIterationStatement4.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueTarget6.ts", + "./testTs/test/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement4.ts", + "./testTs/test/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement1.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakNotInIterationOrSwitchStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakTarget5.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakInIterationOrSwitchStatement4.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakTarget6.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakNotInIterationOrSwitchStatement1.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName38.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName11.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName12.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName25.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName28.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName7.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName21.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName15.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName41.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName10.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName36.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName20.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName14.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName22.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName16.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName8.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName13.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName30.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName19.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName18.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName24.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName35.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName9.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName29.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName26.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName40.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName27.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName31.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName23.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName34.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName39.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName32.ts", + "./testTs/test/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName33.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement12.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement16.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement20.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement2.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement7.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement5.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement13.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement4.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement6.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement21.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement22.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement1.d.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement15.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement11.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement8.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement14.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement9.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement3.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement10.ts", + "./testTs/test/parser/ecmascript6/ShorthandPropertyAssignment/parserShorthandPropertyAssignment4.ts", + "./testTs/test/parser/ecmascript6/ShorthandPropertyAssignment/parserShorthandPropertyAssignment1.ts", + "./testTs/test/parser/ecmascript6/ShorthandPropertyAssignment/parserShorthandPropertyAssignment5.ts", + "./testTs/test/parser/ecmascript6/ShorthandPropertyAssignment/parserShorthandPropertyAssignment3.ts", + "./testTs/test/parser/ecmascript6/ShorthandPropertyAssignment/parserShorthandPropertyAssignment2.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolIndexer5.ts", + "./testTs/test/salsa/plainJSRedeclare2.ts", + "./testTs/test/salsa/checkSpecialPropertyAssignments.ts", + "./testTs/test/salsa/inferringClassMembersFromAssignments.ts", + "./testTs/test/salsa/lateBoundAssignmentDeclarationSupport5.ts", + "./testTs/test/salsa/typeFromPropertyAssignment36.ts", + "./testTs/test/salsa/typeFromPrototypeAssignment3.ts", + "./testTs/test/salsa/conflictingCommonJSES2015Exports.ts", + "./testTs/test/salsa/moduleExportWithExportPropertyAssignment4.ts", + "./testTs/test/salsa/typeFromPropertyAssignment22.ts", + "./testTs/test/salsa/typeFromPropertyAssignment33.ts", + "./testTs/test/salsa/moduleExportsAliasLoop1.ts", + "./testTs/test/salsa/typeFromPropertyAssignment26.ts", + "./testTs/test/salsa/typeFromPrototypeAssignment2.ts", + "./testTs/test/salsa/plainJSBinderErrors.ts", + "./testTs/test/salsa/typeFromPropertyAssignment28.ts", + "./testTs/test/salsa/typeFromPropertyAssignment31.ts", + "./testTs/test/salsa/nestedDestructuringOfRequire.ts", + "./testTs/test/salsa/typeFromPropertyAssignment32.ts", + "./testTs/test/salsa/enumMergeWithExpando.ts", + "./testTs/test/salsa/jsContainerMergeTsDeclaration2.ts", + "./testTs/test/salsa/typeFromPropertyAssignment29.ts", + "./testTs/test/salsa/typeLookupInIIFE.ts", + "./testTs/test/salsa/requireOfESWithPropertyAccess.ts", + "./testTs/test/salsa/lateBoundAssignmentDeclarationSupport3.ts", + "./testTs/test/salsa/plainJSRedeclare.ts", + "./testTs/test/salsa/prototypePropertyAssignmentMergeWithInterfaceMethod.ts", + "./testTs/test/salsa/jsContainerMergeTsDeclaration3.ts", + "./testTs/test/salsa/plainJSReservedStrict.ts", + "./testTs/test/salsa/thisPropertyAssignmentComputed.ts", + "./testTs/test/salsa/typeFromJSInitializer4.ts", + "./testTs/test/salsa/moduleExportWithExportPropertyAssignment3.ts", + "./testTs/test/salsa/typeFromPropertyAssignment21.ts", + "./testTs/test/salsa/moduleExportsAliasLoop2.ts", + "./testTs/test/salsa/chainedPrototypeAssignment.ts", + "./testTs/test/salsa/typeFromJSConstructor.ts", + "./testTs/test/salsa/typeFromJSInitializer.ts", + "./testTs/test/salsa/typeFromPrototypeAssignment.ts", + "./testTs/test/salsa/exportDefaultInJsFile02.ts", + "./testTs/test/salsa/moduleExportDuplicateAlias.ts", + "./testTs/test/salsa/assignmentToVoidZero2.ts", + "./testTs/test/salsa/thisPropertyAssignment.ts", + "./testTs/test/salsa/propertyAssignmentUseParentType2.ts", + "./testTs/test/salsa/lateBoundAssignmentDeclarationSupport2.ts", + "./testTs/test/salsa/constructorFunctions.ts", + "./testTs/test/salsa/exportPropertyAssignmentNameResolution.ts", + "./testTs/test/salsa/exportDefaultInJsFile01.ts", + "./testTs/test/salsa/propertyAssignmentOnUnresolvedImportedSymbol.ts", + "./testTs/test/salsa/expandoOnAlias.ts", + "./testTs/test/salsa/importAliasModuleExports.ts", + "./testTs/test/salsa/constructorFunctionsStrict.ts", + "./testTs/test/salsa/lateBoundAssignmentDeclarationSupport4.ts", + "./testTs/test/salsa/lateBoundAssignmentDeclarationSupport1.ts", + "./testTs/test/salsa/namespaceAssignmentToRequireAlias.ts", + "./testTs/test/salsa/moduleExportWithExportPropertyAssignment.ts", + "./testTs/test/salsa/globalMergeWithCommonJSAssignmentDeclaration.ts", + "./testTs/test/salsa/exportNestedNamespaces2.ts", + "./testTs/test/salsa/prototypePropertyAssignmentMergeAcrossFiles2.ts", + "./testTs/test/salsa/moduleExportWithExportPropertyAssignment2.ts", + "./testTs/test/salsa/moduleExportAliasUnknown.ts", + "./testTs/test/salsa/classCanExtendConstructorFunction.ts", + "./testTs/test/salsa/lateBoundAssignmentDeclarationSupport6.ts", + "./testTs/test/functions/parameterInitializersForwardReferencing.ts", + "./testTs/test/functions/functionOverloadCompatibilityWithVoid01.ts", + "./testTs/test/functions/functionOverloadErrorsSyntax.ts", + "./testTs/test/functions/parameterInitializersForwardReferencing1_es6.ts", + "./testTs/test/functions/functionImplementationErrors.ts", + "./testTs/test/functions/strictBindCallApply1.ts", + "./testTs/test/functions/parameterInitializersForwardReferencing1.ts", + "./testTs/test/functions/functionNameConflicts.ts", + "./testTs/test/functions/functionOverloadErrors.ts", + "./testTs/test/functions/functionWithUseStrictAndSimpleParameterList_es2016.ts", + "./testTs/test/importAssertion/importAssertion4.ts", + "./testTs/test/importAssertion/importAssertion5.ts", + "./testTs/test/Symbols/ES5SymbolProperty2.ts", + "./testTs/test/Symbols/ES5SymbolProperty6.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesErrorFromNotUsingIdentifier.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesFunctionArgument2.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesErrorWithModule.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesErrorFromNoneExistingIdentifier.ts", + "./testTs/test/es6/newTarget/invalidNewTarget.es6.ts", + "./testTs/test/es6/newTarget/invalidNewTarget.es5.ts", + "./testTs/test/es6/memberFunctionDeclarations/MemberFunctionDeclaration4_es6.ts", + "./testTs/test/es6/memberFunctionDeclarations/MemberFunctionDeclaration8_es6.ts", + "./testTs/test/es6/memberFunctionDeclarations/MemberFunctionDeclaration5_es6.ts", + "./testTs/test/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts", + "./testTs/test/es6/memberFunctionDeclarations/MemberFunctionDeclaration6_es6.ts", + "./testTs/test/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts", + "./testTs/test/es6/functionPropertyAssignments/FunctionPropertyAssignments6_es6.ts", + "./testTs/test/es6/functionPropertyAssignments/FunctionPropertyAssignments4_es6.ts", + "./testTs/test/es6/functionPropertyAssignments/FunctionPropertyAssignments3_es6.ts", + "./testTs/test/es6/functionPropertyAssignments/FunctionPropertyAssignments2_es6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionThisCapturing.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments14.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments19.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments12.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments09.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments04.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments10.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments01_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments03.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments17.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments02_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments06.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments05.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments11.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments16.ts", + "./testTs/test/es6/arrowFunction/disallowLineTerminatorBeforeArrow.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments18.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments07.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments12_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments01.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments15.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments02.ts", + "./testTs/test/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralError.ts", + "./testTs/test/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralError.ts", + "./testTs/test/es6/binaryAndOctalIntegerLiteral/invalidBinaryIntegerLiteralAndOctalIntegerLiteral.ts", + "./testTs/test/es6/classExpressions/typeArgumentInferenceWithClassExpression2.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit4_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames26_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames3_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames43_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames40_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames34_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames49_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames45_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit4_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames30_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames21_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames51_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames32_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames17_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames36_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames44_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames49_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames35_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames9_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames34_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames40_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames39_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames32_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesOnOverloads_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames39_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames19_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames19_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesWithStaticProperty.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames12_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames12_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames43_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames38_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames15_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames50_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames8_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames30_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames9_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames15_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames5_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit3_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType8_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames2_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType10_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesOnOverloads_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames6_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames26_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames50_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames3_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames35_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames27_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames8_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType9_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType9_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames23_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames14_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames24_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames5_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames2_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames24_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames27_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames14_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType8_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames36_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType10_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames42_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit3_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames45_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames42_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames51_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames6_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames17_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames44_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames21_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames38_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames23_ES6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration2_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration1_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration6_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration4_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration13_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration11_es6.ts", + "./testTs/test/es6/templates/templateStringInModulo.ts", + "./testTs/test/es6/templates/templateStringUnterminated2_ES6.ts", + "./testTs/test/es6/templates/templateStringUnterminated4.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithIncompatibleTypedTags.ts", + "./testTs/test/es6/templates/templateStringUnterminated1_ES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithOverloadResolution1_ES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithIncompatibleTypedTagsES6.ts", + "./testTs/test/es6/templates/templateStringInModuleNameES6.ts", + "./testTs/test/es6/templates/templateStringBinaryOperationsInvalid.ts", + "./testTs/test/es6/templates/templateStringInNewExpression.ts", + "./testTs/test/es6/templates/templateStringBinaryOperationsES6Invalid.ts", + "./testTs/test/es6/templates/templateStringInModuleName.ts", + "./testTs/test/es6/templates/taggedTemplateStringsTypeArgumentInferenceES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedInstanceOf.ts", + "./testTs/test/es6/templates/templateStringInFunctionParameterTypeES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithOverloadResolution1.ts", + "./testTs/test/es6/templates/templateStringInDeleteExpressionES6.ts", + "./testTs/test/es6/templates/taggedTemplateWithConstructableTag02.ts", + "./testTs/test/es6/templates/TemplateExpression1.ts", + "./testTs/test/es6/templates/templateStringsWithTypeErrorInFunctionExpressionsInSubstitutionExpression.ts", + "./testTs/test/es6/templates/templateStringInInstanceOfES6.ts", + "./testTs/test/es6/templates/templateStringInMultiplicationES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithTypeErrorInFunctionExpressionsInSubstitutionExpression.ts", + "./testTs/test/es6/templates/templateStringUnterminated1.ts", + "./testTs/test/es6/templates/templateStringInInstanceOf.ts", + "./testTs/test/es6/templates/templateStringInCallExpression.ts", + "./testTs/test/es6/templates/templateStringInNewOperatorES6.ts", + "./testTs/test/es6/templates/taggedTemplateWithConstructableTag01.ts", + "./testTs/test/es6/templates/templateStringInPropertyNameES6_1.ts", + "./testTs/test/es6/templates/templateStringInNewExpressionES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedYieldKeyword.ts", + "./testTs/test/es6/templates/templateStringUnterminated3_ES6.ts", + "./testTs/test/es6/templates/templateStringInPropertyName1.ts", + "./testTs/test/es6/templates/templateStringUnterminated5.ts", + "./testTs/test/es6/templates/taggedTemplatesWithTypeArguments2.ts", + "./testTs/test/es6/templates/templateStringInObjectLiteralES6.ts", + "./testTs/test/es6/templates/templateStringsWithTypeErrorInFunctionExpressionsInSubstitutionExpressionES6.ts", + "./testTs/test/es6/templates/templateStringInMultiplication.ts", + "./testTs/test/es6/templates/templateStringUnterminated5_ES6.ts", + "./testTs/test/es6/templates/templateStringInCallExpressionES6.ts", + "./testTs/test/es6/templates/templateStringUnterminated3.ts", + "./testTs/test/es6/templates/templateStringInPropertyName2.ts", + "./testTs/test/es6/templates/templateStringUnterminated2.ts", + "./testTs/test/es6/templates/templateStringInDeleteExpression.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithOverloadResolution3.ts", + "./testTs/test/es6/templates/templateStringInNewOperator.ts", + "./testTs/test/es6/templates/templateStringInDivision.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedInstanceOfES6.ts", + "./testTs/test/es6/templates/templateStringInTaggedTemplateES6.ts", + "./testTs/test/es6/templates/templateStringUnterminated4_ES6.ts", + "./testTs/test/es6/templates/templateStringInTaggedTemplate.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithTypeErrorInFunctionExpressionsInSubstitutionExpressionES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithOverloadResolution3_ES6.ts", + "./testTs/test/es6/templates/templateStringInObjectLiteral.ts", + "./testTs/test/es6/templates/templateStringInPropertyNameES6_2.ts", + "./testTs/test/es6/templates/templateStringInModuloES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsTypeArgumentInference.ts", + "./testTs/test/es6/templates/templateStringInFunctionParameterType.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration13_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration10_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration6_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration7_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration8_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration12_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration3_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration5_es6.ts", + "./testTs/test/es6/classDeclaration/superCallFromClassThatHasNoBaseTypeButWithSameSymbolInterface.ts", + "./testTs/test/es6/classDeclaration/superCallBeforeThisAccessing4.ts", + "./testTs/test/es6/classDeclaration/superCallBeforeThisAccessing7.ts", + "./testTs/test/es6/classDeclaration/superCallBeforeThisAccessing3.ts", + "./testTs/test/es6/classDeclaration/parseClassDeclarationInStrictModeByDefaultInES6.ts", + "./testTs/test/es6/classDeclaration/superCallBeforeThisAccessing6.ts", + "./testTs/test/es6/restParameters/readonlyRestParameters.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings24_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates17_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates17_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings17_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates14_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates19_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings14_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates07_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates19_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates12_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings25_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings22_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings14_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings07_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings24_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings21_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates12_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings07_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings21_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings12_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings19_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings17_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates14_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates07_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings20_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings12_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings19_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings25_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings20_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings22_ES6.ts", + "./testTs/test/es6/for-ofStatements/for-of55.ts", + "./testTs/test/es6/for-ofStatements/for-of3.ts", + "./testTs/test/es6/for-ofStatements/for-of30.ts", + "./testTs/test/es6/for-ofStatements/for-of7.ts", + "./testTs/test/es6/for-ofStatements/for-of11.ts", + "./testTs/test/es6/for-ofStatements/for-of33.ts", + "./testTs/test/es6/for-ofStatements/for-of48.ts", + "./testTs/test/es6/for-ofStatements/for-of34.ts", + "./testTs/test/es6/for-ofStatements/for-of29.ts", + "./testTs/test/es6/for-ofStatements/for-of15.ts", + "./testTs/test/es6/for-ofStatements/for-of46.ts", + "./testTs/test/es6/for-ofStatements/for-of52.ts", + "./testTs/test/es6/for-ofStatements/for-of14.ts", + "./testTs/test/es6/for-ofStatements/for-of54.ts", + "./testTs/test/es6/for-ofStatements/for-of12.ts", + "./testTs/test/es6/for-ofStatements/for-of16.ts", + "./testTs/test/es6/for-ofStatements/for-of51.ts", + "./testTs/test/es6/for-ofStatements/for-of6.ts", + "./testTs/test/es6/for-ofStatements/for-of47.ts", + "./testTs/test/es6/for-ofStatements/for-of32.ts", + "./testTs/test/es6/for-ofStatements/for-of2.ts", + "./testTs/test/es6/for-ofStatements/for-of35.ts", + "./testTs/test/es6/for-ofStatements/for-of17.ts", + "./testTs/test/es6/for-ofStatements/for-of10.ts", + "./testTs/test/es6/for-ofStatements/for-of39.ts", + "./testTs/test/es6/Symbols/symbolProperty12.ts", + "./testTs/test/es6/Symbols/symbolType10.ts", + "./testTs/test/es6/Symbols/symbolProperty17.ts", + "./testTs/test/es6/Symbols/symbolProperty32.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit12.ts", + "./testTs/test/es6/Symbols/symbolProperty42.ts", + "./testTs/test/es6/Symbols/symbolProperty52.ts", + "./testTs/test/es6/Symbols/symbolProperty54.ts", + "./testTs/test/es6/Symbols/symbolType3.ts", + "./testTs/test/es6/Symbols/symbolType6.ts", + "./testTs/test/es6/Symbols/symbolType9.ts", + "./testTs/test/es6/Symbols/symbolProperty30.ts", + "./testTs/test/es6/Symbols/symbolType20.ts", + "./testTs/test/es6/Symbols/symbolType8.ts", + "./testTs/test/es6/Symbols/symbolType12.ts", + "./testTs/test/es6/Symbols/symbolProperty44.ts", + "./testTs/test/es6/Symbols/symbolProperty10.ts", + "./testTs/test/es6/Symbols/symbolProperty34.ts", + "./testTs/test/es6/Symbols/symbolType7.ts", + "./testTs/test/es6/Symbols/symbolProperty39.ts", + "./testTs/test/es6/Symbols/symbolProperty53.ts", + "./testTs/test/es6/Symbols/symbolProperty9.ts", + "./testTs/test/es6/Symbols/symbolProperty33.ts", + "./testTs/test/es6/Symbols/symbolProperty7.ts", + "./testTs/test/es6/Symbols/symbolType4.ts", + "./testTs/test/es6/Symbols/symbolProperty35.ts", + "./testTs/test/es6/Symbols/symbolType1.ts", + "./testTs/test/es6/Symbols/symbolProperty25.ts", + "./testTs/test/es6/Symbols/symbolProperty43.ts", + "./testTs/test/es6/Symbols/symbolType5.ts", + "./testTs/test/es6/Symbols/symbolProperty46.ts", + "./testTs/test/es6/Symbols/symbolProperty47.ts", + "./testTs/test/es6/Symbols/symbolType13.ts", + "./testTs/test/es6/Symbols/symbolProperty24.ts", + "./testTs/test/es6/Symbols/symbolProperty3.ts", + "./testTs/test/es6/Symbols/symbolType2.ts", + "./testTs/test/es6/Symbols/symbolType14.ts", + "./testTs/test/es6/Symbols/symbolType15.ts", + "./testTs/test/es6/Symbols/symbolProperty59.ts", + "./testTs/test/es6/Symbols/symbolProperty21.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall10.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray6.ts", + "./testTs/test/es6/spread/arraySpreadImportHelpers.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray8.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall2.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray10.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall4.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray5.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall6.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall7.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall8.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall9.ts", + "./testTs/test/es6/destructuring/destructuringParameterProperties3.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern13.ts", + "./testTs/test/es6/destructuring/declarationsAndAssignments.ts", + "./testTs/test/es6/destructuring/restElementWithInitializer1.ts", + "./testTs/test/es6/destructuring/objectBindingPatternKeywordIdentifiers01.ts", + "./testTs/test/es6/destructuring/destructuringArrayBindingPatternAndAssignment1ES5iterable.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration8.ts", + "./testTs/test/es6/destructuring/destructuringWithLiteralInitializers2.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration1ES6.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern26.ts", + "./testTs/test/es6/destructuring/destructuringVariableDeclaration2.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern24.ts", + "./testTs/test/es6/destructuring/destructuringTypeAssertionsES5_1.ts", + "./testTs/test/es6/destructuring/optionalBindingParametersInOverloads2.ts", + "./testTs/test/es6/destructuring/restElementWithBindingPattern2.ts", + "./testTs/test/es6/destructuring/restElementWithAssignmentPattern4.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration1ES5.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration6.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration3ES6.ts", + "./testTs/test/es6/destructuring/destructuringVoidStrictNullChecks.ts", + "./testTs/test/es6/destructuring/declarationWithNoInitializer.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern19.ts", + "./testTs/test/es6/destructuring/restElementWithAssignmentPattern2.ts", + "./testTs/test/es6/destructuring/destructuringTypeAssertionsES5_4.ts", + "./testTs/test/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts", + "./testTs/test/es6/destructuring/optionalBindingParameters1.ts", + "./testTs/test/es6/destructuring/destructuringTypeAssertionsES5_3.ts", + "./testTs/test/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern18.ts", + "./testTs/test/es6/destructuring/restElementWithInitializer2.ts", + "./testTs/test/es6/destructuring/destructuringArrayBindingPatternAndAssignment4.ts", + "./testTs/test/es6/destructuring/missingAndExcessProperties.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern7.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration3ES5.ts", + "./testTs/test/es6/destructuring/optionalBindingParametersInOverloads1.ts", + "./testTs/test/es6/destructuring/destructuringParameterProperties4.ts", + "./testTs/test/es6/destructuring/nonIterableRestElement3.ts", + "./testTs/test/es6/destructuring/restElementWithNullInitializer.ts", + "./testTs/test/es6/destructuring/destructuringArrayBindingPatternAndAssignment1ES6.ts", + "./testTs/test/es6/destructuring/destructuringArrayBindingPatternAndAssignment2.ts", + "./testTs/test/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5.ts", + "./testTs/test/es6/destructuring/restPropertyWithBindingPattern.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern10.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern6.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern22.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration4.ts", + "./testTs/test/es6/destructuring/emptyObjectBindingPatternParameter04.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern25.ts", + "./testTs/test/es6/destructuring/destructuringAssignabilityCheck.ts", + "./testTs/test/es6/destructuring/destructuringControlFlow.ts", + "./testTs/test/es6/destructuring/destructuringTypeAssertionsES5_6.ts", + "./testTs/test/es6/destructuring/objectBindingPatternKeywordIdentifiers04.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration3ES5iterable.ts", + "./testTs/test/es6/destructuring/destructuringTypeAssertionsES5_7.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern21.ts", + "./testTs/test/es6/destructuring/destructuringParameterProperties1.ts", + "./testTs/test/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES6.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern17.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration5.ts", + "./testTs/test/es6/destructuring/destructuringObjectBindingPatternAndAssignment4.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern16.ts", + "./testTs/test/es6/destructuring/optionalBindingParameters2.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration1ES5iterable.ts", + "./testTs/test/es6/destructuring/objectBindingPatternKeywordIdentifiers02.ts", + "./testTs/test/es6/destructuring/destructuringParameterProperties2.ts", + "./testTs/test/es6/destructuring/destructuringTypeAssertionsES5_2.ts", + "./testTs/test/es6/destructuring/destructuringParameterProperties5.ts", + "./testTs/test/es6/destructuring/destructuringSpread.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern5.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern28.ts", + "./testTs/test/es6/destructuring/destructuringSameNames.ts", + "./testTs/test/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5iterable.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern23.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration2.ts", + "./testTs/test/es6/destructuring/objectBindingPatternKeywordIdentifiers03.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern8.ts", + "./testTs/test/es6/destructuring/destructuringArrayBindingPatternAndAssignment1ES5.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern29.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck9.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck21.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression18_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck48.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck50.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression14_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression1_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck7.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck8.ts", + "./testTs/test/es6/yieldExpressions/YieldStarExpression2_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorInAmbientContext3.d.ts", + "./testTs/test/es6/yieldExpressions/generatorInAmbientContext1.ts", + "./testTs/test/es6/yieldExpressions/generatorInAmbientContext2.ts", + "./testTs/test/es6/yieldExpressions/generatorOverloads1.ts", + "./testTs/test/es6/yieldExpressions/generatorOverloads3.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression8_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck31.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression12_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck63.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression6_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck25.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck57.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck59.ts", + "./testTs/test/es6/yieldExpressions/yieldExpressionInControlFlow.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck39.ts", + "./testTs/test/es6/yieldExpressions/YieldStarExpression1_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck32.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck20.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck61.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression9_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression17_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression11_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression16_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression5_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression2_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression10_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorOverloads2.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck18.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression15_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldStarExpression3_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorInAmbientContext4.d.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck58.ts", + "./testTs/test/es6/modules/defaultExportsCannotMerge01.ts", + "./testTs/test/es6/modules/exportStar-amd.ts", + "./testTs/test/es6/modules/multipleDefaultExports05.ts", + "./testTs/test/es6/modules/defaultExportsCannotMerge03.ts", + "./testTs/test/es6/modules/exportsAndImportsWithUnderscores1.ts", + "./testTs/test/es6/modules/importEmptyFromModuleNotExisted.ts", + "./testTs/test/es6/modules/defaultExportsCannotMerge02.ts", + "./testTs/test/es6/modules/exportStar.ts", + "./testTs/test/es6/modules/multipleDefaultExports03.ts", + "./testTs/test/es6/modules/exportBinding.ts", + "./testTs/test/es6/modules/exportSpellingSuggestion.ts", + "./testTs/test/es6/modules/multipleDefaultExports01.ts", + "./testTs/test/es6/modules/defaultExportsCannotMerge04.ts", + "./testTs/test/es6/modules/exportsAndImportsWithContextualKeywordNames01.ts", + "./testTs/test/es6/modules/multipleDefaultExports04.ts", + "./testTs/test/es6/modules/multipleDefaultExports02.ts", + "./testTs/test/es2020/bigintMissingES2020.ts", + "./testTs/test/es2020/constructBigint.ts", + "./testTs/test/es2020/bigintMissingESNext.ts", + "./testTs/test/es2020/modules/exportAsNamespace_missingEmitHelpers.ts", + "./testTs/test/es2020/modules/exportAsNamespace_exportAssignment.ts", + "./testTs/test/es2020/modules/exportAsNamespace_nonExistent.ts", + "./testTs/test/enums/enumErrors.ts", + "./testTs/test/enums/awaitAndYield.ts", + "./testTs/test/enums/enumConstantMembers.ts", + "./testTs/test/enums/enumMergingErrors.ts", + "./testTs/test/enums/enumConstantMemberWithTemplateLiterals.ts", + "./testTs/test/enums/enumConstantMemberWithString.ts", + "./testTs/test/constEnums/constEnum2.ts", + "./testTs/test/constEnums/constEnumPropertyAccess2.ts" + ], + "no2015":[ + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral5.ts", + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral7.ts", + "./testTs/test/scanner/ecmascript5/scannerNumericLiteral1.ts", + "./testTs/test/generators/generatorReturnTypeIndirectReferenceToGlobalType.ts", + "./testTs/test/generators/generatorReturnTypeFallback.4.ts", + "./testTs/test/generators/generatorYieldContextualType.ts", + "./testTs/test/generators/generatorReturnTypeFallback.1.ts", + "./testTs/test/generators/restParameterInDownlevelGenerator.ts", + "./testTs/test/generators/generatorReturnTypeFallback.5.ts", + "./testTs/test/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck5.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck2.ts", + "./testTs/test/statements/for-ofStatements/ES3For-ofTypeCheck6.ts", + "./testTs/test/statements/for-ofStatements/ES3For-ofTypeCheck2.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck4.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck1.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck3.ts", + "./testTs/test/statements/for-ofStatements/ES5for-of32.ts", + "./testTs/test/statements/for-ofStatements/ES5For-ofTypeCheck6.ts", + "./testTs/test/controlFlow/controlFlowBindingPatternOrder.ts", + "./testTs/test/controlFlow/controlFlowAssignmentPatternOrder.ts", + "./testTs/test/types/import/importTypeInJSDoc.ts", + "./testTs/test/types/import/importTypeAmdBundleRewrite.ts", + "./testTs/test/types/thisType/thisTypeInTaggedTemplateCall.ts", + "./testTs/test/types/thisType/thisTypeInObjectLiterals2.ts", + "./testTs/test/types/members/objectTypeWithStringNamedNumericProperty.ts", + "./testTs/test/types/localTypes/localTypes1.ts", + "./testTs/test/types/contextualTypes/asyncFunctions/contextuallyTypeAsyncFunctionReturnType.ts", + "./testTs/test/types/contextualTypes/asyncFunctions/contextuallyTypeAsyncFunctionAwaitOperand.ts", + "./testTs/test/types/contextualTypes/jsxAttributes/contextuallyTypedStringLiteralsInJsxAttributes02.tsx", + "./testTs/test/types/contextualTypes/jsdoc/contextualTypeFromJSDoc.ts", + "./testTs/test/types/namedTypes/classWithOnlyPublicMembersEquivalentToInterface2.ts", + "./testTs/test/types/namedTypes/classWithOnlyPublicMembersEquivalentToInterface.ts", + "./testTs/test/types/forAwait/types.forAwait.es2018.1.ts", + "./testTs/test/types/asyncGenerators/types.asyncGenerators.es2018.1.ts", + "./testTs/test/types/spread/objectSpread.ts", + "./testTs/test/types/spread/objectSpreadNoTransform.ts", + "./testTs/test/types/uniqueSymbol/uniqueSymbols.ts", + "./testTs/test/types/uniqueSymbol/uniqueSymbolsDeclarations.ts", + "./testTs/test/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts", + "./testTs/test/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts", + "./testTs/test/types/typeRelationships/typeInference/unionAndIntersectionInference3.ts", + "./testTs/test/types/rest/objectRestParameterES5.ts", + "./testTs/test/es2018/useRegexpGroups.ts", + "./testTs/test/es2018/usePromiseFinally.ts", + "./testTs/test/es2018/es2018IntlAPIs.ts", + "./testTs/test/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts", + "./testTs/test/node/nodeModulesImportHelpersCollisions.ts", + "./testTs/test/node/nodeModulesExportAssignments.ts", + "./testTs/test/node/nodeModulesDeclarationEmitWithPackageExports.ts", + "./testTs/test/node/nodePackageSelfNameScoped.ts", + "./testTs/test/node/nodeModulesTypesVersionPackageExports.ts", + "./testTs/test/node/nodeModulesImportAssertions.ts", + "./testTs/test/node/nodeModulesSynchronousCallErrors.ts", + "./testTs/test/node/nodeModulesImportMeta.ts", + "./testTs/test/node/nodePackageSelfName.ts", + "./testTs/test/node/nodeModulesPackageExports.ts", + "./testTs/test/node/nodeModulesImportResolutionNoCycle.ts", + "./testTs/test/node/nodeModulesImportResolutionIntoExport.ts", + "./testTs/test/node/nodeModulesTopLevelAwait.ts", + "./testTs/test/node/nodeModulesGeneratedNameCollisions.ts", + "./testTs/test/node/nodeModulesExportsSpecifierGenerationConditions.ts", + "./testTs/test/node/nodeModulesExportsBlocksSpecifierResolution.ts", + "./testTs/test/node/nodeModulesExportsSpecifierGenerationDirectory.ts", + "./testTs/test/node/nodeModulesImportHelpersCollisions3.ts", + "./testTs/test/node/nodeModulesForbidenSyntax.ts", + "./testTs/test/node/nodeModulesExportsSpecifierGenerationPattern.ts", + "./testTs/test/node/nodeModulesResolveJsonModule.ts", + "./testTs/test/node/nodeModulesPackagePatternExportsTrailers.ts", + "./testTs/test/node/nodeModulesDynamicImport.ts", + "./testTs/test/node/nodeModulesConditionalPackageExports.ts", + "./testTs/test/node/nodeModules1.ts", + "./testTs/test/node/nodeModulesImportHelpersCollisions2.ts", + "./testTs/test/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts", + "./testTs/test/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts", + "./testTs/test/node/nodeModulesPackageImports.ts", + "./testTs/test/node/nodeModulesPackagePatternExports.ts", + "./testTs/test/node/nodeModulesImportAssignments.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsImportAssignment.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsCjsFromJs.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsDynamicImport.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsPackageExports.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts", + "./testTs/test/node/allowJs/nodeAllowJsPackageSelfName.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsExportAssignment.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsImportMeta.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsPackageImports.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJs1.ts", + "./testTs/test/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts", + "./testTs/test/classes/mixinAbstractClassesReturnTypeInference.ts", + "./testTs/test/classes/mixinAbstractClasses.ts", + "./testTs/test/classes/classExpressions/classWithStaticFieldInParameterBindingPattern.3.ts", + "./testTs/test/classes/classExpressions/classWithStaticFieldInParameterInitializer.3.ts", + "./testTs/test/classes/classExpressions/extendClassExpressionFromModule.ts", + "./testTs/test/classes/methodDeclarations/optionalMethodDeclarations.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock25.ts", + "./testTs/test/classes/propertyMemberDeclarations/optionalMethod.ts", + "./testTs/test/classes/propertyMemberDeclarations/accessorsOverrideProperty5.ts", + "./testTs/test/classes/propertyMemberDeclarations/propertyOverridesMethod.ts", + "./testTs/test/classes/propertyMemberDeclarations/thisPropertyOverridesAccessors.ts", + "./testTs/test/classes/propertyMemberDeclarations/optionalProperty.ts", + "./testTs/test/classes/propertyMemberDeclarations/defineProperty.ts", + "./testTs/test/classes/propertyMemberDeclarations/overrideInterfaceProperty.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberAccessorDeclarations/accessorWithES5.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberAccessorDeclarations/ambientAccessors.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberAccessorDeclarations/accessorWithMismatchedAccessibilityModifiers.ts", + "./testTs/test/classes/members/accessibility/privateClassPropertyAccessibleWithinNestedClass.ts", + "./testTs/test/classes/members/accessibility/protectedClassPropertyAccessibleWithinNestedClass.ts", + "./testTs/test/classes/members/accessibility/protectedClassPropertyAccessibleWithinSubclass.ts", + "./testTs/test/classes/members/accessibility/protectedClassPropertyAccessibleWithinClass.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers2.ts", + "./testTs/test/classes/members/classTypes/genericSetterInClassType.ts", + "./testTs/test/classes/members/classTypes/genericSetterInClassTypeJsDoc.ts", + "./testTs/test/classes/members/privateNames/privateNameField.ts", + "./testTs/test/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts", + "./testTs/test/classes/members/privateNames/privateNamesAndStaticMethods.ts", + "./testTs/test/classes/members/privateNames/privateNameES5Ban.ts", + "./testTs/test/classes/members/privateNames/privateNameSetterExprReturnValue.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticsAndStaticMethods.ts", + "./testTs/test/classes/members/privateNames/privateNamesAndMethods.ts", + "./testTs/test/classes/members/privateNames/privateNamesAssertion.ts", + "./testTs/test/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts", + "./testTs/test/classes/members/privateNames/privateNamesAndFields.ts", + "./testTs/test/classes/members/privateNames/privateNameInInExpressionTransform.ts", + "./testTs/test/classes/members/privateNames/privateNameMethodAsync.ts", + "./testTs/test/jsx/tsxPreserveEmit2.tsx", + "./testTs/test/jsx/tsxReactEmit6.tsx", + "./testTs/test/jsx/tsxAttributeResolution14.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentOverload3.tsx", + "./testTs/test/jsx/tsxSfcReturnNull.tsx", + "./testTs/test/jsx/tsxAttributeResolution11.tsx", + "./testTs/test/jsx/tsxExternalModuleEmit1.tsx", + "./testTs/test/jsx/correctlyMarkAliasAsReferences3.tsx", + "./testTs/test/jsx/tsxAttributeResolution10.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentsWithTypeArguments2.tsx", + "./testTs/test/jsx/tsxSfcReturnNullStrictNullChecks.tsx", + "./testTs/test/jsx/tsxSfcReturnUndefinedStrictNullChecks.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentsWithTypeArguments4.tsx", + "./testTs/test/jsx/tsxExternalModuleEmit2.tsx", + "./testTs/test/jsx/correctlyMarkAliasAsReferences2.tsx", + "./testTs/test/jsx/tsxReactEmit7.tsx", + "./testTs/test/jsx/correctlyMarkAliasAsReferences1.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentOverload6.tsx", + "./testTs/test/jsx/tsxPreserveEmit1.tsx", + "./testTs/test/jsx/tsxReactEmit5.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter2.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentsWithTypeArguments5.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentOverload2.tsx", + "./testTs/test/jsx/tsxPreserveEmit3.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentOverload4.tsx", + "./testTs/test/jsx/tsxElementResolution19.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter1.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentsWithTypeArguments3.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentOverload5.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentOverload1.tsx", + "./testTs/test/jsx/tsxElementResolution17.tsx", + "./testTs/test/jsx/correctlyMarkAliasAsReferences4.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponentsWithTypeArguments1.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponents3.tsx", + "./testTs/test/jsx/tsxAttributeResolution9.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformCustomImportPragma.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformSubstitutesNamesFragment.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformKeyPropCustomImportPragma.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformKeyProp.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformSubstitutesNames.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformNestedSelfClosingChild.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformChildren.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformCustomImport.tsx", + "./testTs/test/jsx/jsxs/jsxJsxsCjsTransformKeyPropCustomImport.tsx", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString1.ts", + "./testTs/test/es7/exponentiationOperator/emitCompoundExponentiationOperator1.ts", + "./testTs/test/es7/exponentiationOperator/emitCompoundExponentiationOperator2.ts", + "./testTs/test/es7/exponentiationOperator/emitCompoundExponentiationAssignmentWithIndexingOnLHS2.ts", + "./testTs/test/es7/exponentiationOperator/emitCompoundExponentiationAssignmentWithIndexingOnLHS1.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperator3.ts", + "./testTs/test/es7/exponentiationOperator/emitCompoundExponentiationAssignmentWithIndexingOnLHS3.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString3.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString3ES6.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperator2.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperatorInTempalteString4.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString1ES6.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString2.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperatorInTemplateString2ES6.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperator1.ts", + "./testTs/test/es7/exponentiationOperator/emitExponentiationOperatorInTempalteString4ES6.ts", + "./testTs/test/es7/exponentiationOperator/emitCompoundExponentiationAssignmentWithPropertyAccessingOnLHS1.ts", + "./testTs/test/es7/exponentiationOperator/emitCompoundExponentiationAssignmentWithIndexingOnLHS4.ts", + "./testTs/test/ambient/ambientInsideNonAmbientExternalModule.ts", + "./testTs/test/ambient/ambientExternalModuleMerging.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.9.ts", + "./testTs/test/externalModules/exportAssignmentTopLevelEnumdule.ts", + "./testTs/test/externalModules/amdImportNotAsPrimaryExpression.ts", + "./testTs/test/externalModules/exportAmbientClassNameWithObject.ts", + "./testTs/test/externalModules/exportAssignmentOfExportNamespaceWithDefault.ts", + "./testTs/test/externalModules/commonJSImportAsPrimaryExpression.ts", + "./testTs/test/externalModules/topLevelAwaitNonModule.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.10.ts", + "./testTs/test/externalModules/umd7.ts", + "./testTs/test/externalModules/exportAssignmentTopLevelClodule.ts", + "./testTs/test/externalModules/umd-augmentation-4.ts", + "./testTs/test/externalModules/umd6.ts", + "./testTs/test/externalModules/umd-augmentation-2.ts", + "./testTs/test/externalModules/umd1.ts", + "./testTs/test/externalModules/umd3.ts", + "./testTs/test/externalModules/exportAssignmentTopLevelIdentifier.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.7.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.12.ts", + "./testTs/test/externalModules/reexportClassDefinition.ts", + "./testTs/test/externalModules/exportAssignmentTopLevelFundule.ts", + "./testTs/test/externalModules/exportAssignmentGenericType.ts", + "./testTs/test/externalModules/exportAssignmentMergedInterface.ts", + "./testTs/test/externalModules/nameWithRelativePaths.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.1.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.2.ts", + "./testTs/test/externalModules/umd-augmentation-3.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.4.ts", + "./testTs/test/externalModules/umd-augmentation-1.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.3.ts", + "./testTs/test/externalModules/exportAssignmentMergedModule.ts", + "./testTs/test/externalModules/umd4.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.6.ts", + "./testTs/test/externalModules/importImportOnlyModule.ts", + "./testTs/test/externalModules/nameDelimitedBySlashes.ts", + "./testTs/test/externalModules/topLevelAwait.2.ts", + "./testTs/test/externalModules/commonJSImportNotAsPrimaryExpression.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.8.ts", + "./testTs/test/externalModules/topLevelAwait.3.ts", + "./testTs/test/externalModules/exportAssignmentCircularModules.ts", + "./testTs/test/externalModules/umd9.ts", + "./testTs/test/externalModules/nameWithFileExtension.ts", + "./testTs/test/externalModules/topLevelFileModule.ts", + "./testTs/test/externalModules/topLevelAmbientModule.ts", + "./testTs/test/externalModules/amdImportAsPrimaryExpression.ts", + "./testTs/test/externalModules/topLevelAwaitErrors.5.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target4.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target8.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target5.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target7.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target2.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target6.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target11.ts", + "./testTs/test/externalModules/esnext/esnextmodulekind.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target12.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES5Target3.ts", + "./testTs/test/externalModules/esnext/exnextmodulekindExportClassNameWithObject.ts", + "./testTs/test/externalModules/es6/es6modulekind.ts", + "./testTs/test/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts", + "./testTs/test/externalModules/typeOnly/preserveValueImports.ts", + "./testTs/test/externalModules/typeOnly/preserveValueImports_errors.ts", + "./testTs/test/es2017/useObjectValuesAndEntries4.ts", + "./testTs/test/es2017/useSharedArrayBuffer5.ts", + "./testTs/test/es2017/useSharedArrayBuffer4.ts", + "./testTs/test/es2017/useSharedArrayBuffer1.ts", + "./testTs/test/es2017/useObjectValuesAndEntries1.ts", + "./testTs/test/async/es2017/asyncMethodWithSuper_es2017.ts", + "./testTs/test/async/es2017/awaitInheritedPromise_es2017.ts", + "./testTs/test/async/es2017/await_unaryExpression_es2017.ts", + "./testTs/test/async/es2017/awaitClassExpression_es2017.ts", + "./testTs/test/async/es2017/asyncUseStrict_es2017.ts", + "./testTs/test/async/es2017/asyncMethodWithSuperConflict_es6.ts", + "./testTs/test/async/es2017/asyncAwait_es2017.ts", + "./testTs/test/async/es2017/awaitCallExpression/awaitCallExpression5_es2017.ts", + "./testTs/test/async/es2017/awaitCallExpression/awaitCallExpression6_es2017.ts", + "./testTs/test/async/es2017/awaitCallExpression/awaitCallExpression2_es2017.ts", + "./testTs/test/async/es2017/awaitCallExpression/awaitCallExpression1_es2017.ts", + "./testTs/test/async/es2017/awaitCallExpression/awaitCallExpression3_es2017.ts", + "./testTs/test/async/es2017/awaitCallExpression/awaitCallExpression8_es2017.ts", + "./testTs/test/async/es2017/awaitCallExpression/awaitCallExpression4_es2017.ts", + "./testTs/test/async/es2017/awaitCallExpression/awaitCallExpression7_es2017.ts", + "./testTs/test/async/es2017/awaitBinaryExpression/awaitBinaryExpression1_es2017.ts", + "./testTs/test/async/es2017/awaitBinaryExpression/awaitBinaryExpression3_es2017.ts", + "./testTs/test/async/es2017/awaitBinaryExpression/awaitBinaryExpression4_es2017.ts", + "./testTs/test/async/es2017/awaitBinaryExpression/awaitBinaryExpression2_es2017.ts", + "./testTs/test/async/es2017/awaitBinaryExpression/awaitBinaryExpression5_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration4_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration2_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration14_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration1_es2017.ts", + "./testTs/test/async/es2017/functionDeclarations/asyncFunctionDeclaration11_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction4_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/arrowFunctionWithParameterNameAsync_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncUnParenthesizedArrowFunction_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction1_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunctionCapturesThis_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunction2_es2017.ts", + "./testTs/test/async/es2017/asyncArrowFunction/asyncArrowFunctionCapturesArguments_es2017.ts", + "./testTs/test/async/es5/asyncMethodWithSuper_es5.ts", + "./testTs/test/async/es5/awaitUnion_es5.ts", + "./testTs/test/async/es5/asyncQualifiedReturnType_es5.ts", + "./testTs/test/async/es5/awaitClassExpression_es5.ts", + "./testTs/test/async/es5/asyncUseStrict_es5.ts", + "./testTs/test/async/es5/asyncImportedPromise_es5.ts", + "./testTs/test/async/es5/asyncAwait_es5.ts", + "./testTs/test/async/es5/asyncMultiFile_es5.ts", + "./testTs/test/async/es5/asyncAwaitNestedClasses_es5.ts", + "./testTs/test/async/es5/awaitCallExpression/awaitCallExpression1_es5.ts", + "./testTs/test/async/es5/awaitCallExpression/awaitCallExpression2_es5.ts", + "./testTs/test/async/es5/awaitCallExpression/awaitCallExpression5_es5.ts", + "./testTs/test/async/es5/awaitCallExpression/awaitCallExpression6_es5.ts", + "./testTs/test/async/es5/awaitCallExpression/awaitCallExpression7_es5.ts", + "./testTs/test/async/es5/awaitCallExpression/awaitCallExpression3_es5.ts", + "./testTs/test/async/es5/awaitCallExpression/awaitCallExpression4_es5.ts", + "./testTs/test/async/es5/awaitCallExpression/awaitCallExpression8_es5.ts", + "./testTs/test/async/es5/awaitBinaryExpression/awaitBinaryExpression4_es5.ts", + "./testTs/test/async/es5/awaitBinaryExpression/awaitBinaryExpression3_es5.ts", + "./testTs/test/async/es5/awaitBinaryExpression/awaitBinaryExpression5_es5.ts", + "./testTs/test/async/es5/awaitBinaryExpression/awaitBinaryExpression1_es5.ts", + "./testTs/test/async/es5/awaitBinaryExpression/awaitBinaryExpression2_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration2_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration14_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration4_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration1_es5.ts", + "./testTs/test/async/es5/functionDeclarations/asyncFunctionDeclaration11_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction2_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction4_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunctionCapturesThis_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction11_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncUnParenthesizedArrowFunction_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/arrowFunctionWithParameterNameAsync_es5.ts", + "./testTs/test/async/es5/asyncArrowFunction/asyncArrowFunction1_es5.ts", + "./testTs/test/async/es6/asyncMultiFile_es6.ts", + "./testTs/test/async/es6/asyncUseStrict_es6.ts", + "./testTs/test/async/es6/asyncAliasReturnType_es6.ts", + "./testTs/test/async/es6/asyncMethodWithSuper_es6.ts", + "./testTs/test/async/es6/awaitUnion_es6.ts", + "./testTs/test/async/es6/await_unaryExpression_es6.ts", + "./testTs/test/async/es6/asyncAwait_es6.ts", + "./testTs/test/async/es6/awaitClassExpression_es6.ts", + "./testTs/test/async/es6/awaitCallExpression/awaitCallExpression5_es6.ts", + "./testTs/test/async/es6/awaitCallExpression/awaitCallExpression6_es6.ts", + "./testTs/test/async/es6/awaitCallExpression/awaitCallExpression3_es6.ts", + "./testTs/test/async/es6/awaitCallExpression/awaitCallExpression2_es6.ts", + "./testTs/test/async/es6/awaitCallExpression/awaitCallExpression1_es6.ts", + "./testTs/test/async/es6/awaitCallExpression/awaitCallExpression7_es6.ts", + "./testTs/test/async/es6/awaitCallExpression/awaitCallExpression8_es6.ts", + "./testTs/test/async/es6/awaitCallExpression/awaitCallExpression4_es6.ts", + "./testTs/test/async/es6/awaitBinaryExpression/awaitBinaryExpression5_es6.ts", + "./testTs/test/async/es6/awaitBinaryExpression/awaitBinaryExpression1_es6.ts", + "./testTs/test/async/es6/awaitBinaryExpression/awaitBinaryExpression4_es6.ts", + "./testTs/test/async/es6/awaitBinaryExpression/awaitBinaryExpression3_es6.ts", + "./testTs/test/async/es6/awaitBinaryExpression/awaitBinaryExpression2_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration11_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration1_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration2_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration14_es6.ts", + "./testTs/test/async/es6/functionDeclarations/asyncFunctionDeclaration4_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncUnParenthesizedArrowFunction_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction2_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunctionCapturesThis_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction4_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunctionCapturesArguments_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/asyncArrowFunction1_es6.ts", + "./testTs/test/async/es6/asyncArrowFunction/arrowFunctionWithParameterNameAsync_es6.ts", + "./testTs/test/typings/typingsLookupAmd.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES6System.ts", + "./testTs/test/dynamicImport/importCallExpressionInAMD2.ts", + "./testTs/test/dynamicImport/importCallExpressionInCJS2.ts", + "./testTs/test/dynamicImport/importCallExpression2ES2020.ts", + "./testTs/test/dynamicImport/importCallExpressionES6CJS.ts", + "./testTs/test/dynamicImport/importCallExpressionInSystem1.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES3UMD.ts", + "./testTs/test/dynamicImport/importCallExpressionInExportEqualsAMD.ts", + "./testTs/test/dynamicImport/importCallExpressionInSystem2.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES3CJS.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES2020.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedSystem2.ts", + "./testTs/test/dynamicImport/importCallExpressionInAMD4.ts", + "./testTs/test/dynamicImport/importCallExpressionES5CJS.ts", + "./testTs/test/dynamicImport/importCallExpressionDeclarationEmit2.ts", + "./testTs/test/dynamicImport/importCallExpressionInAMD1.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES6UMD.ts", + "./testTs/test/dynamicImport/importCallExpressionInCJS3.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedCJS2.ts", + "./testTs/test/dynamicImport/importCallExpressionInUMD3.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedES20202.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedUMD2.ts", + "./testTs/test/dynamicImport/importCallExpressionES6System.ts", + "./testTs/test/dynamicImport/importCallExpressionInSystem4.ts", + "./testTs/test/dynamicImport/importCallExpressionInUMD4.ts", + "./testTs/test/dynamicImport/importCallExpressionReturnPromiseOfAny.ts", + "./testTs/test/dynamicImport/importCallExpression1ES2020.ts", + "./testTs/test/dynamicImport/importCallExpressionES6AMD.ts", + "./testTs/test/dynamicImport/importCallExpressionES5UMD.ts", + "./testTs/test/dynamicImport/importCallExpressionShouldNotGetParen.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedES2020.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES3AMD.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedAMD2.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES3System.ts", + "./testTs/test/dynamicImport/importCallExpressionInCJS5.ts", + "./testTs/test/dynamicImport/importCallExpression4ES2020.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES5CJS.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedAMD.ts", + "./testTs/test/dynamicImport/importCallExpressionInExportEqualsUMD.ts", + "./testTs/test/dynamicImport/importCallExpressionInExportEqualsCJS.ts", + "./testTs/test/dynamicImport/importCallExpressionInCJS1.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedCJS.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES5AMD.ts", + "./testTs/test/dynamicImport/importCallExpressionInSystem3.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES6CJS.ts", + "./testTs/test/dynamicImport/importCallExpressionInUMD2.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES6AMD.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES5System.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedSystem.ts", + "./testTs/test/dynamicImport/importCallExpressionInUMD1.ts", + "./testTs/test/dynamicImport/importCallExpressionES5System.ts", + "./testTs/test/dynamicImport/importCallExpressionInAMD3.ts", + "./testTs/test/dynamicImport/importCallExpressionDeclarationEmit3.ts", + "./testTs/test/dynamicImport/importCallExpressionNestedUMD.ts", + "./testTs/test/dynamicImport/importCallExpressionInCJS4.ts", + "./testTs/test/dynamicImport/importCallExpression3ES2020.ts", + "./testTs/test/dynamicImport/importCallExpressionDeclarationEmit1.ts", + "./testTs/test/dynamicImport/importCallExpressionInScriptContext1.ts", + "./testTs/test/dynamicImport/importCallExpressionAsyncES5UMD.ts", + "./testTs/test/dynamicImport/importCallExpressionES6UMD.ts", + "./testTs/test/dynamicImport/importCallExpressionES5AMD.ts", + "./testTs/test/jsdoc/thisTag2.ts", + "./testTs/test/jsdoc/jsdocAccessibilityTagsDeclarations.ts", + "./testTs/test/jsdoc/extendsTag3.ts", + "./testTs/test/jsdoc/jsdocVariableDeclarationWithTypeAnnotation.ts", + "./testTs/test/jsdoc/jsdocReadonlyDeclarations.ts", + "./testTs/test/jsdoc/jsdocSignatureOnReturnedFunction.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedClassExpressionAnonymous.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedClassInstance3.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassLeadingOptional.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportSubAssignments.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsMissingGenerics.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsReusesExistingTypeAnnotations.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsReexportAliases.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsModuleReferenceHasEmit.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsMultipleExportFromMerge.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsOptionalTypeLiteralProps2.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassMethod.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassAccessor.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsJSDocRedirectedLookups.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsGetterSetter.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionKeywordPropExhaustive.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionLikeClasses.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassStaticMethodAugmentation.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsImportAliasExposedWithinNamespace.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionPrototypeStatic.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportSpecifierNonlocal.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedClassExpression.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportForms.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedClassInstance2.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedClassExpressionShadowing.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsImportTypeBundled.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassStatic.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignmentExpressionPlusSecondary.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsReexportedCjsAlias.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsConstsAsNamespacesWithReferences.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsMissingTypeParameters.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassImplementsGenericsSerialization.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionClassesCjsExportAssignment.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionKeywordProp.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsReferenceToClassInstanceCrossFile.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsCommonjsRelativePath.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypeReferences3.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsReexportAliasesEsModuleInterop.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsNestedParams.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypeReferences.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsNonIdentifierInferredNames.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsPrivateFields01.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypeReferences2.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsImportAliasExposedWithinNamespaceCjs.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClasses.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsDefault.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsEnumTag.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsClassExtendsVisibility.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsDocCommentsOnConsts.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsComputedNames.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsOptionalTypeLiteralProps1.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsJson.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsReactComponents.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignmentWithKeywordName.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedVisibility.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedClassInstance1.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsPackageJson.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsParameterTagReusesInputNodeInEmit2.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionJSDoc.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportAssignedConstructorFunction.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionLikeClasses2.ts", + "./testTs/test/override/override14.ts", + "./testTs/test/es2019/importMeta/importMeta.ts", + "./testTs/test/es2019/importMeta/importMetaNarrowing.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInClassAccessors.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInProperties.ts", + "./testTs/test/expressions/typeGuards/typeGuardsObjectMethods.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInExternalModule.ts", + "./testTs/test/expressions/thisKeyword/typeOfThis.ts", + "./testTs/test/expressions/asOperator/asOperator4.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator_es2020.ts", + "./testTs/test/expressions/arrayLiterals/arrayLiterals2ES6.ts", + "./testTs/test/expressions/optionalChaining/optionalChainingInLoop.ts", + "./testTs/test/expressions/optionalChaining/optionalChainingInArrow.ts", + "./testTs/test/expressions/optionalChaining/callChain/thisMethodCall.ts", + "./testTs/test/expressions/optionalChaining/callChain/superMethodCall.ts", + "./testTs/test/expressions/optionalChaining/callChain/callChainWithSuper.ts", + "./testTs/test/expressions/functionCalls/newWithSpreadES6.ts", + "./testTs/test/expressions/functionCalls/newWithSpreadES5.ts", + "./testTs/test/expressions/functionCalls/callWithSpreadES6.ts", + "./testTs/test/expressions/superPropertyAccess/superSymbolIndexedAccess6.ts", + "./testTs/test/expressions/superPropertyAccess/superSymbolIndexedAccess1.ts", + "./testTs/test/expressions/superPropertyAccess/superSymbolIndexedAccess5.ts", + "./testTs/test/expressions/superPropertyAccess/superPropertyAccessNoError.ts", + "./testTs/test/expressions/superPropertyAccess/superSymbolIndexedAccess2.ts", + "./testTs/test/expressions/propertyAccess/propertyAccessNumericLiterals.ts", + "./testTs/test/expressions/typeAssertions/constAssertionOnEnum.ts", + "./testTs/test/expressions/contextualTyping/iterableContextualTyping1.ts", + "./testTs/test/expressions/contextualTyping/taggedTemplateContextualTyping1.ts", + "./testTs/test/expressions/contextualTyping/taggedTemplateContextualTyping2.ts", + "./testTs/test/expressions/contextualTyping/parenthesizedContexualTyping3.ts", + "./testTs/test/emitter/es2018/asyncGenerators/emitter.asyncGenerators.classMethods.es2018.ts", + "./testTs/test/emitter/es2018/asyncGenerators/emitter.asyncGenerators.functionExpressions.es2018.ts", + "./testTs/test/emitter/es2018/asyncGenerators/emitter.asyncGenerators.objectLiteralMethods.es2018.ts", + "./testTs/test/emitter/es2018/asyncGenerators/emitter.asyncGenerators.functionDeclarations.es2018.ts", + "./testTs/test/emitter/es2019/noCatchBinding/emitter.noCatchBinding.es2019.ts", + "./testTs/test/emitter/es5/asyncGenerators/emitter.asyncGenerators.objectLiteralMethods.es5.ts", + "./testTs/test/emitter/es5/asyncGenerators/emitter.asyncGenerators.functionDeclarations.es5.ts", + "./testTs/test/emitter/es5/asyncGenerators/emitter.asyncGenerators.functionExpressions.es5.ts", + "./testTs/test/emitter/es5/asyncGenerators/emitter.asyncGenerators.classMethods.es5.ts", + "./testTs/test/declarationEmit/libReferenceDeclarationEmit.ts", + "./testTs/test/declarationEmit/typesVersionsDeclarationEmit.multiFileBackReferenceToUnmapped.ts", + "./testTs/test/declarationEmit/libReferenceNoLibBundle.ts", + "./testTs/test/declarationEmit/typesVersionsDeclarationEmit.multiFile.ts", + "./testTs/test/declarationEmit/typesVersionsDeclarationEmit.ambient.ts", + "./testTs/test/declarationEmit/libReferenceDeclarationEmitBundle.ts", + "./testTs/test/declarationEmit/libReferenceNoLib.ts", + "./testTs/test/declarationEmit/typePredicates/declarationEmitIdentifierPredicates01.ts", + "./testTs/test/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts", + "./testTs/test/declarationEmit/typePredicates/declarationEmitIdentifierPredicatesWithPrivateName01.ts", + "./testTs/test/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts", + "./testTs/test/decorators/decoratorMetadataWithTypeOnlyImport.ts", + "./testTs/test/decorators/1.0lib-noErrors.ts", + "./testTs/test/decorators/decoratorMetadata.ts", + "./testTs/test/decorators/class/decoratorOnClass2.ts", + "./testTs/test/decorators/class/decoratedClassExportsCommonJS2.ts", + "./testTs/test/decorators/class/decoratorInstantiateModulesInFunctionBodies.ts", + "./testTs/test/decorators/class/decoratorOnClass1.ts", + "./testTs/test/decorators/class/decoratorOnClass4.ts", + "./testTs/test/decorators/class/decoratedClassExportsCommonJS1.ts", + "./testTs/test/decorators/class/decoratedBlockScopedClass3.ts", + "./testTs/test/decorators/class/decoratedClassFromExternalModule.ts", + "./testTs/test/decorators/class/decoratedBlockScopedClass1.ts", + "./testTs/test/decorators/class/decoratedBlockScopedClass2.ts", + "./testTs/test/decorators/class/decoratorOnClass9.ts", + "./testTs/test/decorators/class/decoratedClassExportsSystem2.ts", + "./testTs/test/decorators/class/decoratedClassExportsSystem1.ts", + "./testTs/test/decorators/class/decoratorOnClass5.ts", + "./testTs/test/decorators/class/constructor/decoratorOnClassConstructor4.ts", + "./testTs/test/decorators/class/constructor/decoratorOnClassConstructor3.ts", + "./testTs/test/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter1.ts", + "./testTs/test/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts", + "./testTs/test/decorators/class/accessor/decoratorOnClassAccessor4.ts", + "./testTs/test/decorators/class/accessor/decoratorOnClassAccessor5.ts", + "./testTs/test/decorators/class/accessor/decoratorOnClassAccessor1.ts", + "./testTs/test/decorators/class/accessor/decoratorOnClassAccessor8.ts", + "./testTs/test/decorators/class/accessor/decoratorOnClassAccessor2.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod14.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod15.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod5.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod2.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethodOverload2.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod16.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod18.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod13.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod7.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod1.ts", + "./testTs/test/decorators/class/method/decoratorOnClassMethod4.ts", + "./testTs/test/decorators/class/method/parameter/decoratorOnClassMethodParameter1.ts", + "./testTs/test/decorators/class/method/parameter/decoratorOnClassMethodParameter2.ts", + "./testTs/test/decorators/class/property/decoratorOnClassProperty2.ts", + "./testTs/test/decorators/class/property/decoratorOnClassProperty10.ts", + "./testTs/test/decorators/class/property/decoratorOnClassProperty1.ts", + "./testTs/test/moduleResolution/typesVersions.emptyTypes.ts", + "./testTs/test/moduleResolution/scopedPackagesClassic.ts", + "./testTs/test/moduleResolution/typesVersions.ambientModules.ts", + "./testTs/test/moduleResolution/typesVersions.multiFile.ts", + "./testTs/test/moduleResolution/typesVersions.justIndex.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors4.ts", + "./testTs/test/parser/ecmascript5/Accessors/parserAccessors2.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration4.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration5.ts", + "./testTs/test/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration6.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolIndexer3.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolIndexer1.ts", + "./testTs/test/parser/ecmascript5/Symbols/parserES5SymbolIndexer2.ts", + "./testTs/test/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression7.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement17.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement19.ts", + "./testTs/test/parser/ecmascript5/Statements/parserES5ForOfStatement18.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement24.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement18.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement19.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement17.ts", + "./testTs/test/parser/ecmascript6/Iterators/parserForOfStatement23.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty9.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolIndexer2.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty1.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty8.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty3.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolIndexer3.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty6.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty4.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolIndexer1.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty7.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty2.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolProperty5.ts", + "./testTs/test/parser/ecmascript6/Symbols/parserSymbolIndexer4.ts", + "./testTs/test/salsa/typeFromPropertyAssignmentOutOfOrder.ts", + "./testTs/test/salsa/typeFromPropertyAssignment9_1.ts", + "./testTs/test/salsa/typeFromPropertyAssignment12.ts", + "./testTs/test/salsa/typeFromParamTagForFunction.ts", + "./testTs/test/salsa/typeFromPropertyAssignment10_1.ts", + "./testTs/test/salsa/typeFromPropertyAssignment8.ts", + "./testTs/test/salsa/lateBoundClassMemberAssignmentJS.ts", + "./testTs/test/salsa/constructorFunctions2.ts", + "./testTs/test/salsa/typeFromPropertyAssignment13.ts", + "./testTs/test/salsa/typeFromPropertyAssignment8_1.ts", + "./testTs/test/salsa/lateBoundAssignmentDeclarationSupport7.ts", + "./testTs/test/salsa/moduleExportAliasImported.ts", + "./testTs/test/salsa/typeFromPropertyAssignment9.ts", + "./testTs/test/salsa/typeFromPropertyAssignment6.ts", + "./testTs/test/salsa/typeFromPropertyAssignment7.ts", + "./testTs/test/salsa/typeFromPropertyAssignment10.ts", + "./testTs/test/salsa/typeFromPropertyAssignment5.ts", + "./testTs/test/salsa/assignmentToVoidZero1.ts", + "./testTs/test/salsa/lateBoundClassMemberAssignmentJS2.ts", + "./testTs/test/salsa/typeFromPropertyAssignment11.ts", + "./testTs/test/salsa/lateBoundClassMemberAssignmentJS3.ts", + "./testTs/test/Symbols/ES5SymbolProperty1.ts", + "./testTs/test/Symbols/ES5SymbolType1.ts", + "./testTs/test/Symbols/ES5SymbolProperty3.ts", + "./testTs/test/Symbols/ES5SymbolProperty7.ts", + "./testTs/test/Symbols/ES5SymbolProperty5.ts", + "./testTs/test/Symbols/ES5SymbolProperty4.ts", + "./testTs/test/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts", + "./testTs/test/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts", + "./testTs/test/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts", + "./testTs/test/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentES6.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesES6.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesWithModuleES6.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandProperties.ts", + "./testTs/test/es6/newTarget/newTarget.es5.ts", + "./testTs/test/es6/newTarget/newTargetNarrowing.ts", + "./testTs/test/es6/newTarget/newTarget.es6.ts", + "./testTs/test/es6/memberFunctionDeclarations/MemberFunctionDeclaration7_es6.ts", + "./testTs/test/es6/memberFunctionDeclarations/MemberFunctionDeclaration1_es6.ts", + "./testTs/test/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts", + "./testTs/test/es6/functionPropertyAssignments/FunctionPropertyAssignments1_es6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments08.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments09_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments11_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments05_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments14_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments07_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionAsIsES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments16_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunction.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments13_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments18_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments17_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments19_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionsAsIsES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments08_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments03_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionAsIs.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments10_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments06_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments04_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments15_ES6.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionWhenUsingArguments13.ts", + "./testTs/test/es6/arrowFunction/emitArrowFunctionsAsIs.ts", + "./testTs/test/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts", + "./testTs/test/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts", + "./testTs/test/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts", + "./testTs/test/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts", + "./testTs/test/es6/classExpressions/classExpressionES63.ts", + "./testTs/test/es6/classExpressions/classExpressionES62.ts", + "./testTs/test/es6/classExpressions/classExpressionES61.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames25_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames4_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames41_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType1_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames29_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames7_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames46_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType7_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames41_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames33_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesSourceMap2_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames16_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames33_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames29_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType7_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames25_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames11_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames46_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit5_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType3_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames18_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames22_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType4_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames28_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames47_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames7_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames48_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames1_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType5_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames31_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames16_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType6_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit2_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames47_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit5_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType5_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames48_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit2_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames1_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit1_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesDeclarationEmit1_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames20_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesSourceMap2_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames18_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames22_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType2_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames31_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames37_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames10_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames11_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType6_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames28_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesSourceMap1_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames13_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames10_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames4_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames20_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType3_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames37_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType4_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesSourceMap1_ES6.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames13_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType2_ES5.ts", + "./testTs/test/es6/computedProperties/computedPropertyNamesContextualType1_ES5.ts", + "./testTs/test/es6/defaultParameters/emitDefaultParametersFunctionES6.ts", + "./testTs/test/es6/defaultParameters/emitDefaultParametersMethod.ts", + "./testTs/test/es6/defaultParameters/emitDefaultParametersFunctionProperty.ts", + "./testTs/test/es6/defaultParameters/emitDefaultParametersFunction.ts", + "./testTs/test/es6/defaultParameters/emitDefaultParametersMethodES6.ts", + "./testTs/test/es6/defaultParameters/emitDefaultParametersFunctionPropertyES6.ts", + "./testTs/test/es6/defaultParameters/emitDefaultParametersFunctionExpression.ts", + "./testTs/test/es6/defaultParameters/emitDefaultParametersFunctionExpressionES6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration8_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration7_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration10_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration9_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration12_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration3_es6.ts", + "./testTs/test/es6/variableDeclarations/VariableDeclaration5_es6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithTypedTagsES6.ts", + "./testTs/test/es6/templates/templateStringInPropertyAssignmentES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedTemplateStringES6.ts", + "./testTs/test/es6/templates/templateStringInTypeAssertionES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedArrowFunctionES6.ts", + "./testTs/test/es6/templates/templateStringWhitespaceEscapes2_ES6.ts", + "./testTs/test/es6/templates/templateStringWithEmptyLiteralPortionsES6.ts", + "./testTs/test/es6/templates/templateStringControlCharacterEscapes03_ES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedFunctionExpressionES6.ts", + "./testTs/test/es6/templates/templateStringWithBackslashEscapes01_ES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedTypeAssertionOnAdditionES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsPlainCharactersThatArePartsOfEscapes02_ES6.ts", + "./testTs/test/es6/templates/templateStringWithOpenCommentInStringPortionES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedInOperatorES6.ts", + "./testTs/test/es6/templates/templateStringInArrowFunctionES6.ts", + "./testTs/test/es6/templates/templateStringWithPropertyAccessES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedAdditionES6.ts", + "./testTs/test/es6/templates/templateStringControlCharacterEscapes01_ES6.ts", + "./testTs/test/es6/templates/templateStringInInOperatorES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedConditionalES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedObjectLiteralES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedNewOperatorES6.ts", + "./testTs/test/es6/templates/templateStringTermination2_ES6.ts", + "./testTs/test/es6/templates/templateStringPlainCharactersThatArePartsOfEscapes01_ES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedModuloES6.ts", + "./testTs/test/es6/templates/templateStringInTypeOfES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithTagNamedDeclareES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsPlainCharactersThatArePartsOfEscapes01_ES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithManyCallAndMemberExpressionsES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedDivisionES6.ts", + "./testTs/test/es6/templates/templateStringTermination5_ES6.ts", + "./testTs/test/es6/templates/templateStringInSwitchAndCaseES6.ts", + "./testTs/test/es6/templates/templateStringInWhileES6.ts", + "./testTs/test/es6/templates/templateStringBinaryOperationsES6.ts", + "./testTs/test/es6/templates/taggedTemplatesWithTypeArguments1.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedTypeOfOperatorES6.ts", + "./testTs/test/es6/templates/templateStringInYieldKeyword.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedCommentsES6.ts", + "./testTs/test/es6/templates/templateStringTermination3_ES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedYieldKeywordES6.ts", + "./testTs/test/es6/templates/templateStringInParenthesesES6.ts", + "./testTs/test/es6/templates/templateStringMultiline1_ES6.ts", + "./testTs/test/es6/templates/templateStringInIndexExpressionES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithTagsTypedAsAnyES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedMultiplicationES6.ts", + "./testTs/test/es6/templates/templateStringWhitespaceEscapes1_ES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedArrayES6.ts", + "./testTs/test/es6/templates/templateStringControlCharacterEscapes02_ES6.ts", + "./testTs/test/es6/templates/templateStringMultiline2_ES6.ts", + "./testTs/test/es6/templates/templateStringInConditionalES6.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithOverloadResolution2_ES6.ts", + "./testTs/test/es6/templates/templateStringInFunctionExpressionES6.ts", + "./testTs/test/es6/templates/templateStringInEqualityChecksES6.ts", + "./testTs/test/es6/templates/templateStringControlCharacterEscapes04_ES6.ts", + "./testTs/test/es6/templates/templateStringMultiline3_ES6.ts", + "./testTs/test/es6/templates/templateStringTermination4_ES6.ts", + "./testTs/test/es6/templates/templateStringPlainCharactersThatArePartsOfEscapes02_ES6.ts", + "./testTs/test/es6/templates/templateStringInUnaryPlusES6.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedUnaryPlusES6.ts", + "./testTs/test/es6/templates/templateStringTermination1_ES6.ts", + "./testTs/test/es6/moduleExportsCommonjs/decoratedDefaultExportsGetExportedCommonjs.ts", + "./testTs/test/es6/moduleExportsCommonjs/defaultExportsGetExportedCommonjs.ts", + "./testTs/test/es6/moduleExportsCommonjs/anonymousDefaultExportsCommonjs.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration4_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration9_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration2_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration1_es6.ts", + "./testTs/test/es6/functionDeclarations/FunctionDeclaration11_es6.ts", + "./testTs/test/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts", + "./testTs/test/es6/moduleExportsSystem/decoratedDefaultExportsGetExportedSystem.ts", + "./testTs/test/es6/moduleExportsSystem/anonymousDefaultExportsSystem.ts", + "./testTs/test/es6/moduleExportsSystem/defaultExportsGetExportedSystem.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithExtensionInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithPropertyAssignmentInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithThisKeywordInES6.ts", + "./testTs/test/es6/classDeclaration/exportDefaultClassWithStaticPropertyAssignmentsInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithStaticPropertyAssignmentInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithSuperMethodCall01.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithMethodInES6.ts", + "./testTs/test/es6/classDeclaration/classWithSemicolonClassElementES61.ts", + "./testTs/test/es6/classDeclaration/classWithSemicolonClassElementES62.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithGetterSetterInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationOverloadInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithConstructorInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithLiteralPropertyNameInES6.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithTypeArgumentInES6.ts", + "./testTs/test/es6/restParameters/emitRestParametersFunctionES6.ts", + "./testTs/test/es6/restParameters/emitRestParametersFunctionExpression.ts", + "./testTs/test/es6/restParameters/emitRestParametersFunctionExpressionES6.ts", + "./testTs/test/es6/restParameters/emitRestParametersFunction.ts", + "./testTs/test/es6/restParameters/emitRestParametersFunctionPropertyES6.ts", + "./testTs/test/es6/restParameters/emitRestParametersMethod.ts", + "./testTs/test/es6/restParameters/emitRestParametersFunctionProperty.ts", + "./testTs/test/es6/restParameters/emitRestParametersMethodES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions01_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings06_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions07_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions12_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings13_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions05_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates18_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings15_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings13_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions17_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings18_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions02_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions19_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions09_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates03_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions01_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions07_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates15_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates20_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions15_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings18_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates10_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings05_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions03_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates15_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions06_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions02_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings06_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates10_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions14_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions05_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions18_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions11_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates11_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates02_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings10_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates08_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates01_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings05_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions16_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings01_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions04_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings23_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions04_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings08_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates18_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates09_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings02_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates11_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions03_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates16_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions10_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions19_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates03_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings16_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions08_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates13_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions15_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings09_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings04_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates04_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings01_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions16_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates08_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings03_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates05_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions17_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings11_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates01_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions10_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings09_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates16_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions06_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates09_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates06_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings11_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates04_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates02_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions12_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings02_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions14_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions08_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates20_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings23_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions13_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates05_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates06_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings04_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings16_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions18_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions13_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings08_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings10_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings15_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions09_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInRegularExpressions11_ES5.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInTemplates13_ES6.ts", + "./testTs/test/es6/unicodeExtendedEscapes/unicodeExtendedEscapesInStrings03_ES6.ts", + "./testTs/test/es6/decorators/class/decoratorOnClass5.es6.ts", + "./testTs/test/es6/decorators/class/decoratorOnClass8.es6.ts", + "./testTs/test/es6/decorators/class/decoratorOnClass7.es6.ts", + "./testTs/test/es6/decorators/class/decoratorOnClass4.es6.ts", + "./testTs/test/es6/decorators/class/decoratorOnClass3.es6.ts", + "./testTs/test/es6/decorators/class/decoratorOnClass6.es6.ts", + "./testTs/test/es6/decorators/class/decoratorOnClass1.es6.ts", + "./testTs/test/es6/decorators/class/decoratorOnClass2.es6.ts", + "./testTs/test/es6/for-ofStatements/for-of8.ts", + "./testTs/test/es6/for-ofStatements/for-of18.ts", + "./testTs/test/es6/for-ofStatements/for-of9.ts", + "./testTs/test/es6/for-ofStatements/for-of25.ts", + "./testTs/test/es6/for-ofStatements/for-of58.ts", + "./testTs/test/es6/for-ofStatements/for-of27.ts", + "./testTs/test/es6/for-ofStatements/for-of53.ts", + "./testTs/test/es6/for-ofStatements/for-of5.ts", + "./testTs/test/es6/for-ofStatements/for-of24.ts", + "./testTs/test/es6/for-ofStatements/for-of38.ts", + "./testTs/test/es6/for-ofStatements/for-of45.ts", + "./testTs/test/es6/for-ofStatements/for-of44.ts", + "./testTs/test/es6/for-ofStatements/for-of36.ts", + "./testTs/test/es6/for-ofStatements/for-of19.ts", + "./testTs/test/es6/for-ofStatements/for-of42.ts", + "./testTs/test/es6/for-ofStatements/for-of28.ts", + "./testTs/test/es6/for-ofStatements/for-of23.ts", + "./testTs/test/es6/for-ofStatements/for-of41.ts", + "./testTs/test/es6/for-ofStatements/for-of40.ts", + "./testTs/test/es6/for-ofStatements/for-of4.ts", + "./testTs/test/es6/for-ofStatements/for-of26.ts", + "./testTs/test/es6/for-ofStatements/for-of22.ts", + "./testTs/test/es6/for-ofStatements/for-of20.ts", + "./testTs/test/es6/for-ofStatements/for-of21.ts", + "./testTs/test/es6/for-ofStatements/for-of56.ts", + "./testTs/test/es6/for-ofStatements/for-of1.ts", + "./testTs/test/es6/for-ofStatements/for-of31.ts", + "./testTs/test/es6/for-ofStatements/for-of57.ts", + "./testTs/test/es6/for-ofStatements/for-of43.ts", + "./testTs/test/es6/for-ofStatements/for-of50.ts", + "./testTs/test/es6/for-ofStatements/for-of37.ts", + "./testTs/test/es6/for-ofStatements/for-of49.ts", + "./testTs/test/es6/for-ofStatements/for-of13.ts", + "./testTs/test/es6/propertyAccess/propertyAccessNumericLiterals.es6.ts", + "./testTs/test/es6/functionExpressions/FunctionExpression2_es6.ts", + "./testTs/test/es6/functionExpressions/FunctionExpression1_es6.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit8.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit5.ts", + "./testTs/test/es6/Symbols/symbolProperty40.ts", + "./testTs/test/es6/Symbols/symbolType11.ts", + "./testTs/test/es6/Symbols/symbolProperty20.ts", + "./testTs/test/es6/Symbols/symbolProperty58.ts", + "./testTs/test/es6/Symbols/symbolProperty48.ts", + "./testTs/test/es6/Symbols/symbolProperty11.ts", + "./testTs/test/es6/Symbols/symbolProperty23.ts", + "./testTs/test/es6/Symbols/symbolProperty14.ts", + "./testTs/test/es6/Symbols/symbolProperty4.ts", + "./testTs/test/es6/Symbols/symbolProperty50.ts", + "./testTs/test/es6/Symbols/symbolType18.ts", + "./testTs/test/es6/Symbols/symbolProperty49.ts", + "./testTs/test/es6/Symbols/symbolProperty26.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit1.ts", + "./testTs/test/es6/Symbols/symbolProperty8.ts", + "./testTs/test/es6/Symbols/symbolProperty28.ts", + "./testTs/test/es6/Symbols/symbolProperty38.ts", + "./testTs/test/es6/Symbols/symbolProperty15.ts", + "./testTs/test/es6/Symbols/symbolProperty31.ts", + "./testTs/test/es6/Symbols/symbolType17.ts", + "./testTs/test/es6/Symbols/symbolProperty57.ts", + "./testTs/test/es6/Symbols/symbolProperty18.ts", + "./testTs/test/es6/Symbols/symbolProperty27.ts", + "./testTs/test/es6/Symbols/symbolProperty2.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit13.ts", + "./testTs/test/es6/Symbols/symbolProperty22.ts", + "./testTs/test/es6/Symbols/symbolProperty6.ts", + "./testTs/test/es6/Symbols/symbolProperty29.ts", + "./testTs/test/es6/Symbols/symbolProperty13.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit2.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit3.ts", + "./testTs/test/es6/Symbols/symbolProperty41.ts", + "./testTs/test/es6/Symbols/symbolProperty37.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit10.ts", + "./testTs/test/es6/Symbols/symbolProperty45.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit4.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit6.ts", + "./testTs/test/es6/Symbols/symbolType16.ts", + "./testTs/test/es6/Symbols/symbolProperty56.ts", + "./testTs/test/es6/Symbols/symbolProperty16.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit9.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit11.ts", + "./testTs/test/es6/Symbols/symbolProperty5.ts", + "./testTs/test/es6/Symbols/symbolProperty55.ts", + "./testTs/test/es6/Symbols/symbolProperty19.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit14.ts", + "./testTs/test/es6/Symbols/symbolDeclarationEmit7.ts", + "./testTs/test/es6/Symbols/symbolProperty51.ts", + "./testTs/test/es6/Symbols/symbolProperty36.ts", + "./testTs/test/es6/Symbols/symbolProperty1.ts", + "./testTs/test/es6/Symbols/symbolType19.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall11.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray2.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall5.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray4.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall3.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray11.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray7.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray3.ts", + "./testTs/test/es6/spread/iteratorSpreadInArray9.ts", + "./testTs/test/es6/spread/iteratorSpreadInCall12.ts", + "./testTs/test/es6/destructuring/emptyVariableDeclarationBindingPatterns01_ES5iterable.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern11.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern4.ts", + "./testTs/test/es6/destructuring/emptyVariableDeclarationBindingPatterns01_ES6.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern15.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns04_ES5iterable.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns01_ES5iterable.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns01_ES5.ts", + "./testTs/test/es6/destructuring/destructuringObjectBindingPatternAndAssignment8.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern9.ts", + "./testTs/test/es6/destructuring/destructuringObjectBindingPatternAndAssignment1ES6.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns02_ES6.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern2.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern30.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern1.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration7ES5.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns03_ES6.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern20.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns01_ES6.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern12.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns02_ES5iterable.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern3.ts", + "./testTs/test/es6/destructuring/destructuringTypeAssertionsES5_5.ts", + "./testTs/test/es6/destructuring/destructuringVariableDeclaration1ES6.ts", + "./testTs/test/es6/destructuring/destructuringReassignsRightHandSide.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern14.ts", + "./testTs/test/es6/destructuring/iterableArrayPattern27.ts", + "./testTs/test/es6/destructuring/destructuringObjectBindingPatternAndAssignment7.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns04_ES6.ts", + "./testTs/test/es6/destructuring/emptyVariableDeclarationBindingPatterns01_ES5.ts", + "./testTs/test/es6/destructuring/restElementWithAssignmentPattern1.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns04_ES5.ts", + "./testTs/test/es6/destructuring/nonIterableRestElement2.ts", + "./testTs/test/es6/destructuring/destructuringParameterDeclaration7ES5iterable.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns03_ES5iterable.ts", + "./testTs/test/es6/destructuring/destructuringObjectBindingPatternAndAssignment6.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns03_ES5.ts", + "./testTs/test/es6/destructuring/emptyAssignmentPatterns02_ES5.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck30.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck33.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck40.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck1.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck24.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression7_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck13.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck44.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck28.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck41.ts", + "./testTs/test/es6/yieldExpressions/generatorInAmbientContext5.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck27.ts", + "./testTs/test/es6/yieldExpressions/YieldStarExpression4_es6.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression4_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck62.ts", + "./testTs/test/es6/yieldExpressions/generatorOverloads5.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck29.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck49.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck43.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck54.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck4.ts", + "./testTs/test/es6/yieldExpressions/generatorNoImplicitReturns.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression13_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck37.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck16.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck3.ts", + "./testTs/test/es6/yieldExpressions/generatorOverloads4.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck36.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck17.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck53.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck56.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck52.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck10.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck45.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck55.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck38.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck46.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck5.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck35.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck19.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck11.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck15.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck51.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck12.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck47.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck23.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck14.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck34.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck42.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck26.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression3_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck60.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck22.ts", + "./testTs/test/es6/yieldExpressions/generatorTypeCheck2.ts", + "./testTs/test/es6/yieldExpressions/YieldExpression19_es6.ts", + "./testTs/test/es6/yieldExpressions/generatorInAmbientContext6.ts", + "./testTs/test/es6/modules/exportsAndImportsWithContextualKeywordNames02.ts", + "./testTs/test/es6/modules/exportsAndImports3-es6.ts", + "./testTs/test/es6/modules/exportsAndImports4-amd.ts", + "./testTs/test/es6/modules/exportsAndImportsWithUnderscores4.ts", + "./testTs/test/es6/modules/exportAndImport-es5-amd.ts", + "./testTs/test/es6/modules/exportsAndImports1-es6.ts", + "./testTs/test/es6/modules/exportsAndImportsWithUnderscores3.ts", + "./testTs/test/es6/modules/exportsAndImports2.ts", + "./testTs/test/es6/modules/exportsAndImports2-amd.ts", + "./testTs/test/es6/modules/defaultExportWithOverloads01.ts", + "./testTs/test/es6/modules/exportsAndImports4-es6.ts", + "./testTs/test/es6/modules/exportsAndImports1.ts", + "./testTs/test/es6/modules/exportsAndImportsWithUnderscores2.ts", + "./testTs/test/es6/modules/exportsAndImports3.ts", + "./testTs/test/es6/modules/exportAndImport-es3-amd.ts", + "./testTs/test/es6/modules/exportsAndImports1-amd.ts", + "./testTs/test/es6/modules/exportAndImport-es3.ts", + "./testTs/test/es6/modules/exportAndImport-es5.ts", + "./testTs/test/es6/modules/exportsAndImports4.ts", + "./testTs/test/es6/modules/defaultExportInAwaitExpression01.ts", + "./testTs/test/es6/modules/defaultExportInAwaitExpression02.ts", + "./testTs/test/es6/modules/reExportDefaultExport.ts", + "./testTs/test/es6/modules/exportsAndImports2-es6.ts", + "./testTs/test/es6/modules/exportsAndImports3-amd.ts", + "./testTs/test/es6/moduleExportsUmd/defaultExportsGetExportedUmd.ts", + "./testTs/test/es6/moduleExportsUmd/decoratedDefaultExportsGetExportedUmd.ts", + "./testTs/test/es6/moduleExportsUmd/anonymousDefaultExportsUmd.ts", + "./testTs/test/es2020/bigintMissingES2019.ts", + "./testTs/test/es2020/es2020IntlAPIs.ts", + "./testTs/test/enums/enumExportMergingES6.ts", + "./testTs/test/constEnums/constEnumPropertyAccess1.ts" + ], + "tsc_error":[ + "./testTs/test//fixSignatureCaching.ts", + "./testTs/test/ambient/ambientDeclarationsExternal.ts", + "./testTs/test/ambient/ambientDeclarationsPatterns.ts", + "./testTs/test/ambient/ambientShorthand.ts", + "./testTs/test/ambient/ambientShorthand_duplicate.ts", + "./testTs/test/ambient/ambientShorthand_merging.ts", + "./testTs/test/ambient/ambientShorthand_reExport.ts", + "./testTs/test/class/classStaticBlock/classStaticBlock11.ts", + "./testTs/test/classes/classExpressions/classWithStaticFieldInParameterBindingPattern.2.ts", + "./testTs/test/classes/classExpressions/classWithStaticFieldInParameterInitializer.2.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock9.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts", + "./testTs/test/controlFlow/controlFlowIfStatement.ts", + "./testTs/test/controlFlow/dependentDestructuredVariables.ts", + "./testTs/test/declarationEmit/typeReferenceRelatedFiles.ts", + "./testTs/test/decorators/decoratorMetadataWithTypeOnlyImport2.ts", + "./testTs/test/directives/ts-expect-error-nocheck-js.ts", + "./testTs/test/dynamicImport/importCallExpressionInUMD5.ts", + "./testTs/test/es2018/invalidTaggedTemplateEscapeSequences.ts", + "./testTs/test/es2020/modules/exportAsNamespace1.ts", + "./testTs/test/es2020/modules/exportAsNamespace2.ts", + "./testTs/test/es2020/modules/exportAsNamespace3.ts", + "./testTs/test/es2020/modules/exportAsNamespace4.ts", + "./testTs/test/es6/computedProperties/computedPropertyNames52.ts", + "./testTs/test/es6/decorators/class/accessor/decoratorOnClassAccessor1.es6.ts", + "./testTs/test/es6/decorators/class/method/decoratorOnClassMethod1.es6.ts", + "./testTs/test/es6/decorators/class/method/parameter/decoratorOnClassMethodParameter1.es6.ts", + "./testTs/test/es6/decorators/class/property/decoratorOnClassProperty1.es6.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignment.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesFunctionArgument.ts", + "./testTs/test/expressions/commaOperator/commaOperatorOtherValidOperation.ts", + "./testTs/test/expressions/commaOperator/commaOperatorsMultipleOperators.ts", + "./testTs/test/expressions/commaOperator/commaOperatorWithSecondOperandAnyType.ts", + "./testTs/test/expressions/commaOperator/commaOperatorWithSecondOperandBooleanType.ts", + "./testTs/test/expressions/commaOperator/commaOperatorWithSecondOperandNumberType.ts", + "./testTs/test/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts", + "./testTs/test/expressions/commaOperator/commaOperatorWithSecondOperandStringType.ts", + "./testTs/test/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts", + "./testTs/test/expressions/functionCalls/callWithMissingVoidUndefinedUnknownAnyInJs.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperatorInParameterBindingPattern.2.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperatorInParameterInitializer.2.ts", + "./testTs/test/expressions/optionalChaining/optionalChainingInParameterBindingPattern.2.ts", + "./testTs/test/expressions/optionalChaining/optionalChainingInParameterInitializer.2.ts", + "./testTs/test/expressions/typeGuards/nullOrUndefinedTypeGuardIsOrderIndependent.ts", + "./testTs/test/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithBooleanType.ts", + "./testTs/test/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts", + "./testTs/test/externalModules/asiPreventsParsingAsAmbientExternalModule01.ts", + "./testTs/test/externalModules/asiPreventsParsingAsAmbientExternalModule02.ts", + "./testTs/test/externalModules/commonJsImportBindingElementNarrowType.ts", + "./testTs/test/externalModules/exportAssignDottedName.ts", + "./testTs/test/externalModules/exportAssignImportedIdentifier.ts", + "./testTs/test/externalModules/exportAssignTypes.ts", + "./testTs/test/externalModules/exportDeclaredModule.ts", + "./testTs/test/externalModules/exportNonVisibleType.ts", + "./testTs/test/externalModules/moduleResolutionWithExtensions.ts", + "./testTs/test/externalModules/moduleScoping.ts", + "./testTs/test/externalModules/relativePathToDeclarationFile.ts", + "./testTs/test/externalModules/topLevelAwait.1.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target11.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target3.ts", + "./testTs/test/externalModules/typeOnly/ambient.ts", + "./testTs/test/externalModules/typeOnly/cjsImportInES2015.ts", + "./testTs/test/externalModules/typeOnly/exportDeclaration_moduleSpecifier-isolatedModules.ts", + "./testTs/test/externalModules/typeOnly/exportDeclaration_value.ts", + "./testTs/test/externalModules/typeOnly/implementsClause.ts", + "./testTs/test/externalModules/typeOnly/importDefaultNamedType.ts", + "./testTs/test/externalModules/typeOnly/nestedNamespace.ts", + "./testTs/test/externalModules/typeOnly/typeQuery.ts", + "./testTs/test/functions/parameterInitializersForwardReferencing.2.ts", + "./testTs/test/importAssertion/importAssertion1.ts", + "./testTs/test/importAssertion/importAssertion2.ts", + "./testTs/test/importAssertion/importAssertion3.ts", + "./testTs/test/internalModules/moduleDeclarations/asiPreventsParsingAsNamespace02.ts", + "./testTs/test/internalModules/moduleDeclarations/asiPreventsParsingAsNamespace04.ts", + "./testTs/test/jsdoc/callbackTagVariadicType.ts", + "./testTs/test/jsdoc/checkJsdocParamTag1.ts", + "./testTs/test/jsdoc/constructorTagOnNestedBinaryExpression.ts", + "./testTs/test/jsdoc/enumTagImported.ts", + "./testTs/test/jsdoc/exportedAliasedEnumTag.ts", + "./testTs/test/jsdoc/exportedEnumTypeAndValue.ts", + "./testTs/test/jsdoc/jsdocAugments_qualifiedName.ts", + "./testTs/test/jsdoc/jsdocAugments_withTypeParameter.ts", + "./testTs/test/jsdoc/jsdocImportType.ts", + "./testTs/test/jsdoc/jsdocImportType2.ts", + "./testTs/test/jsdoc/jsdocImportTypeReferenceToCommonjsModule.ts", + "./testTs/test/jsdoc/jsdocTemplateTag4.ts", + "./testTs/test/jsdoc/jsdocTemplateTag5.ts", + "./testTs/test/jsdoc/jsdocTypeReferenceToImport.ts", + "./testTs/test/jsdoc/jsdocTypeReferenceToImportOfClassExpression.ts", + "./testTs/test/jsdoc/jsdocTypeReferenceToImportOfFunctionExpression.ts", + "./testTs/test/jsdoc/jsdocTypeReferenceToMergedClass.ts", + "./testTs/test/jsdoc/jsdocTypeReferenceToValue.ts", + "./testTs/test/jsdoc/jsdocTypeTag.ts", + "./testTs/test/jsdoc/paramTagBracketsAddOptionalUndefined.ts", + "./testTs/test/jsdoc/returnTagTypeGuard.ts", + "./testTs/test/jsdoc/typedefCrossModule.ts", + "./testTs/test/jsdoc/typedefTagExtraneousProperty.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsImportNamespacedType.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypedefAndImportTypes.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypedefPropertyAndExportAssignment.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypeReassignmentFromDeclaration.ts", + "./testTs/test/jsx/tsxEmitSpreadAttribute.ts", + "./testTs/test/jsx/tsxReactEmitSpreadAttribute.ts", + "./testTs/test/moduleResolution/packageJsonMain.ts", + "./testTs/test/moduleResolution/scopedPackages.ts", + "./testTs/test/moduleResolution/untypedModuleImport.ts", + "./testTs/test/moduleResolution/untypedModuleImport_allowJs.ts", + "./testTs/test/moduleResolution/untypedModuleImport_vsAmbient.ts", + "./testTs/test/override/override10.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts", + "./testTs/test/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts", + "./testTs/test/parser/ecmascript5/Protected/Protected3.ts", + "./testTs/test/references/library-reference-10.ts", + "./testTs/test/references/library-reference-11.ts", + "./testTs/test/references/library-reference-12.ts", + "./testTs/test/references/library-reference-13.ts", + "./testTs/test/references/library-reference-2.ts", + "./testTs/test/references/library-reference-4.ts", + "./testTs/test/references/library-reference-8.ts", + "./testTs/test/salsa/annotatedThisPropertyInitializerDoesntNarrow.ts", + "./testTs/test/salsa/circularMultipleAssignmentDeclaration.ts", + "./testTs/test/salsa/commonJSAliasedExport.ts", + "./testTs/test/salsa/commonJSImportClassTypeReference.ts", + "./testTs/test/salsa/commonJSImportNestedClassTypeReference.ts", + "./testTs/test/salsa/commonJSReexport.ts", + "./testTs/test/salsa/constructorFunctionMergeWithClass.ts", + "./testTs/test/salsa/contextualTypedSpecialAssignment.ts", + "./testTs/test/salsa/defaultPropertyAssignedClassWithPrototype.ts", + "./testTs/test/salsa/exportNestedNamespaces.ts", + "./testTs/test/salsa/inferingFromAny.ts", + "./testTs/test/salsa/inferringClassMembersFromAssignments3.ts", + "./testTs/test/salsa/inferringClassMembersFromAssignments4.ts", + "./testTs/test/salsa/inferringClassMembersFromAssignments5.ts", + "./testTs/test/salsa/inferringClassMembersFromAssignments7.ts", + "./testTs/test/salsa/inferringClassStaticMembersFromAssignments.ts", + "./testTs/test/salsa/jsContainerMergeJsContainer.ts", + "./testTs/test/salsa/jsContainerMergeTsDeclaration.ts", + "./testTs/test/salsa/jsObjectsMarkedAsOpenEnded.ts", + "./testTs/test/salsa/moduleExportAlias.ts", + "./testTs/test/salsa/moduleExportAlias2.ts", + "./testTs/test/salsa/moduleExportAssignment.ts", + "./testTs/test/salsa/moduleExportAssignment6.ts", + "./testTs/test/salsa/moduleExportNestedNamespaces.ts", + "./testTs/test/salsa/multipleDeclarations.ts", + "./testTs/test/salsa/nestedPrototypeAssignment.ts", + "./testTs/test/salsa/plainJSRedeclare3.ts", + "./testTs/test/salsa/privateIdentifierExpando.ts", + "./testTs/test/salsa/propertyAssignmentOnImportedSymbol.ts", + "./testTs/test/salsa/sourceFileMergeWithFunction.ts", + "./testTs/test/salsa/spellingUncheckedJS.ts", + "./testTs/test/salsa/thisPropertyAssignmentCircular.ts", + "./testTs/test/salsa/topLevelThisAssignment.ts", + "./testTs/test/salsa/typeFromPropertyAssignment.ts", + "./testTs/test/salsa/typeFromPropertyAssignment14.ts", + "./testTs/test/salsa/typeFromPropertyAssignment15.ts", + "./testTs/test/salsa/typeFromPropertyAssignment16.ts", + "./testTs/test/salsa/typeFromPropertyAssignment17.ts", + "./testTs/test/salsa/typeFromPropertyAssignment18.ts", + "./testTs/test/salsa/typeFromPropertyAssignment19.ts", + "./testTs/test/salsa/typeFromPropertyAssignment2.ts", + "./testTs/test/salsa/typeFromPropertyAssignment23.ts", + "./testTs/test/salsa/typeFromPropertyAssignment24.ts", + "./testTs/test/salsa/typeFromPropertyAssignment25.ts", + "./testTs/test/salsa/typeFromPropertyAssignment3.ts", + "./testTs/test/salsa/typeFromPropertyAssignment34.ts", + "./testTs/test/salsa/typeFromPropertyAssignment35.ts", + "./testTs/test/salsa/typeFromPropertyAssignment37.ts", + "./testTs/test/salsa/typeFromPropertyAssignment4.ts", + "./testTs/test/salsa/typeFromPropertyAssignmentWithExport.ts", + "./testTs/test/salsa/unannotatedParametersAreOptional.ts", + "./testTs/test/salsa/varRequireFromJavascript.ts", + "./testTs/test/salsa/varRequireFromTypescript.ts", + "./testTs/test/scanner/ecmascript3/scannerES3NumericLiteral2.ts", + "./testTs/test/types/contextualTypes/commaOperator/contextuallyTypeCommaOperator01.ts", + "./testTs/test/types/import/importTypeGenericTypes.ts", + "./testTs/test/types/import/importTypeLocal.ts", + "./testTs/test/types/intersection/intersectionsAndEmptyObjects.ts", + "./testTs/test/types/members/augmentedTypeBracketAccessIndexSignature.ts", + "./testTs/test/types/members/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts", + "./testTs/test/types/members/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts", + "./testTs/test/types/never/neverInference.ts", + "./testTs/test/types/tuple/readonlyArraysAndTuples2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts", + "./testTs/test/types/union/discriminatedUnionTypes3.ts", + "./testTs/test/typings/typingsLookup1.ts", + "./testTs/test/typings/typingsLookup2.ts", + "./testTs/test/typings/typingsLookup3.ts", + "./testTs/test/typings/typingsLookup4.ts", + "./testTs/test/ambient/ambientInsideNonAmbient.ts", + "./testTs/test/ambient/ambientDeclarations.ts" + ], + "import_skip":[ + "./testTs/test/ambient/ambientDeclarationsPatterns/declarations.d.ts", + "./testTs/test/ambient/ambientShorthand_merging/declarations1.d.ts", + "./testTs/test/ambient/ambientShorthand_merging/declarations2.d.ts", + "./testTs/test/ambient/ambientShorthand_reExport/declarations.d.ts", + "./testTs/test/ambient/ambientShorthand_reExport/jquery.d.ts", + "./testTs/test/ambient/ambientShorthand_reExport/reExportAll.ts", + "./testTs/test/ambient/ambientShorthand_reExport/reExportX.ts", + "./testTs/test/declarationEmit/typeReferenceRelatedFiles/package.json", + "./testTs/test/declarationEmit/typeReferenceRelatedFiles/main.ts", + "./testTs/test/declarationEmit/typeReferenceRelatedFiles/fs.d.ts", + "./testTs/test/externalModules/typeOnly/importDefaultNamedType/a.ts", + "./testTs/test/jsdoc/enumTagImported/mod1.js", + "./testTs/test/jsdoc/jsdocAugments_qualifiedName/a.js", + "./testTs/test/jsdoc/declarations/jsDeclarationsImportNamespacedType/mod1.js", + "./testTs/test/moduleResolution/scopedPackages/index.d.ts", + "./testTs/test/moduleResolution/scopedPackages/z.d.ts", + "./testTs/test/moduleResolution/scopedPackagesClassic/index.d.ts", + "./testTs/test/moduleResolution/untypedModuleImport_allowJs/index.js", + "./testTs/test/moduleResolution/untypedModuleImport_allowJs/foo.js", + "./testTs/test/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts", + "./testTs/test/moduleResolution/untypedModuleImport_vsAmbient/index.js", + "./testTs/test/salsa/propertyAssignmentOnImportedSymbol/mod1.js", + "./testTs/test/typings/typingsLookup4/index.tsx", + "./testTs/test/typings/typingsLookup4/jquery.d.ts", + "./testTs/test/typings/typingsLookup4/kquery.d.ts", + "./testTs/test/typings/typingsLookup4/lquery.d.ts", + "./testTs/test/typings/typingsLookup4/mquery.d.ts", + "./testTs/test/typings/typingsLookup4/package.json", + "./testTs/test/typings/typingsLookup4/tsconfig.json", + "./testTs/test/jsdoc/enumTagImported/enumTagImported.ts", + "./testTs/test/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts", + "./testTs/test/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts", + "./testTs/test/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts" + ], + "code_rule":[ + "./testTs/test/parser/ecmascript5/ObjectTypes/parserObjectType4.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock2.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorParametersAccessibility3.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classAppearsToHaveMembersOfObject.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/derivedTypeDoesNotRequireExtendsClause.ts", + "./testTs/test/classes/classDeclarations/classBody/classWithEmptyBody.ts", + "./testTs/test/controlFlow/typeGuardsNestedAssignments.ts", + "./testTs/test/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormIsType.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfString.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormInstanceOf.ts", + "./testTs/test/expressions/typeGuards/typeGuardFunctionGenerics.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts", + "./testTs/test/expressions/asOperator/asOperatorASI.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts", + "./testTs/test/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts", + "./testTs/test/types/import/importTypeGenericTypes.ts", + "./testTs/test/types/import/importTypeLocal.ts", + "./testTs/test/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts", + "./testTs/test/types/thisType/fluentClasses.ts", + "./testTs/test/types/members/objectTypeHidingMembersOfObject.ts", + "./testTs/test/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts", + "./testTs/test/types/members/objectTypeWithNumericProperty.ts", + "./testTs/test/types/members/objectTypePropertyAccess.ts", + "./testTs/test/types/typeAliases/classDoesNotDependOnBaseTypes.ts", + "./testTs/test/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts", + "./testTs/test/types/primitives/undefined/validUndefinedAssignments.ts", + "./testTs/test/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts", + "./testTs/test/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts", + "./testTs/test/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts", + "./testTs/test/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts", + "./testTs/test/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts", + "./testTs/test/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration5.ts", + "./testTs/test/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator2.ts", + "./testTs/test/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator3.ts", + "./testTs/test/parser/ecmascript5/ObjectTypes/parserObjectType3.ts", + "./testTs/test/parser/ecmascript5/ParameterLists/parserParameterList12.ts", + "./testTs/test/salsa/constructorFunctions3.ts", + "./testTs/test/salsa/inferringClassMembersFromAssignments6.ts", + "./testTs/test/salsa/methodsReturningThis.ts", + "./testTs/test/salsa/privateConstructorFunction.ts", + "./testTs/test/salsa/propertiesOfGenericConstructorFunctions.ts", + "./testTs/test/salsa/thisTypeOfConstructorFunctions.ts", + "./testTs/test/salsa/typeFromPropertyAssignment27.ts", + "./testTs/test/salsa/typeFromPropertyAssignment40.ts", + "./testTs/test/salsa/typeFromPrototypeAssignment4.ts", + "./testTs/test/types/literal/stringLiteralsWithTypeAssertions01.ts", + "./testTs/test/types/primitives/stringLiteral/stringLiteralType.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesInUnionTypes01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesInUnionTypes02.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesInUnionTypes03.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesOverloadAssignability03.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesTypePredicates01.ts", + "./testTs/test/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne.ts", + "./testTs/test/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope2.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithNonSymmetricSubtypes.ts", + "./testTs/test/controlFlow/controlFlowConditionalExpression.ts", + "./testTs/test/declarationEmit/nullPropertyName.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment5.ts", + "./testTs/test/es6/classExpressions/typeArgumentInferenceWithClassExpression1.ts", + "./testTs/test/es6/classExpressions/typeArgumentInferenceWithClassExpression3.ts", + "./testTs/test/es6/destructuring/emptyArrayBindingPatternParameter02.ts", + "./testTs/test/es6/destructuring/emptyArrayBindingPatternParameter03.ts", + "./testTs/test/es6/destructuring/emptyObjectBindingPatternParameter02.ts", + "./testTs/test/es6/destructuring/emptyObjectBindingPatternParameter03.ts", + "./testTs/test/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithTypeParameters.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target6.ts", + "./testTs/test/functions/parameterInitializersBackwardReferencing.ts", + "./testTs/test/jsdoc/callbackTagNamespace.ts", + "./testTs/test/jsdoc/checkJsdocTypedefInParamTag1.ts", + "./testTs/test/jsdoc/jsdocLiteral.ts", + "./testTs/test/jsdoc/jsdocNeverUndefinedNull.ts", + "./testTs/test/jsdoc/jsdocParseMatchingBackticks.ts", + "./testTs/test/jsdoc/jsdocParseStarEquals.ts", + "./testTs/test/jsdoc/linkTagEmit1.ts", + "./testTs/test/jsdoc/moduleExportsElementAccessAssignment2.ts", + "./testTs/test/jsdoc/paramTagTypeResolution2.ts", + "./testTs/test/jsdoc/parseLinkTag.ts", + "./testTs/test/jsdoc/thisTag1.ts", + "./testTs/test/jsdoc/typeTagWithGenericSignature.ts" + ], + "no_case":[ + "./testTs/test/inferFromBindingPattern.ts", + "./testTs/test/scanner/jsdocInvalidTokens.ts", + "./testTs/test/scanner/ecmascript3/scannerES3NumericLiteral5.ts", + "./testTs/test/scanner/ecmascript3/scannerES3NumericLiteral1.ts", + "./testTs/test/scanner/ecmascript3/scannerES3NumericLiteral7.ts", + "./testTs/test/scanner/ecmascript5/scannerEnum1.ts", + "./testTs/test/scanner/ecmascript5/scannerStringLiteralWithContainingNullCharacter1.ts", + "./testTs/test/scanner/ecmascript5/scannerNonAsciiHorizontalWhitespace.ts", + "./testTs/test/test_ts/test_full.ts", + "./testTs/test/statements/returnStatements/returnStatements.ts", + "./testTs/test/statements/for-inStatements/for-inStatementsArray.ts", + "./testTs/test/statements/for-await-ofStatements/emitter.forAwait.ts", + "./testTs/test/statements/continueStatements/forContinueStatements.ts", + "./testTs/test/statements/continueStatements/whileContinueStatements.ts", + "./testTs/test/statements/continueStatements/forInContinueStatements.ts", + "./testTs/test/statements/continueStatements/doWhileContinueStatements.ts", + "./testTs/test/statements/breakStatements/whileBreakStatements.ts", + "./testTs/test/statements/breakStatements/doWhileBreakStatements.ts", + "./testTs/test/statements/breakStatements/forInBreakStatements.ts", + "./testTs/test/statements/breakStatements/forBreakStatements.ts", + "./testTs/test/statements/ifDoWhileStatements/ifDoWhileStatements.ts", + "./testTs/test/statements/forStatements/forStatementsMultipleValidDecl.ts", + "./testTs/test/statements/forStatements/forStatements.ts", + "./testTs/test/statements/throwStatements/throwStatements.ts", + "./testTs/test/statements/throwStatements/throwInEnclosingStatements.ts", + "./testTs/test/statements/VariableStatements/everyTypeWithAnnotationAndInitializer.ts", + "./testTs/test/statements/VariableStatements/validMultipleVariableDeclarations.ts", + "./testTs/test/statements/VariableStatements/recursiveInitializer.ts", + "./testTs/test/statements/VariableStatements/everyTypeWithInitializer.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of14.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of1.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of11.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of23.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of21.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of5.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of13.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of3.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of24.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of37.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of18.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of4.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of2.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of15.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of22.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of6.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of16.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of33.ts", + "./testTs/test/statements/for-ofStatements/ES5For-of25.ts", + "./testTs/test/controlFlow/controlFlowBinaryOrExpression.ts", + "./testTs/test/controlFlow/controlFlowDoWhileStatement.ts", + "./testTs/test/controlFlow/controlFlowForOfStatement.ts", + "./testTs/test/controlFlow/controlFlowStringIndex.ts", + "./testTs/test/controlFlow/controlFlowAliasingCatchVariables.ts", + "./testTs/test/controlFlow/controlFlowElementAccess2.ts", + "./testTs/test/controlFlow/controlFlowCommaOperator.ts", + "./testTs/test/controlFlow/assertionTypePredicates2.ts", + "./testTs/test/controlFlow/controlFlowBinaryAndExpression.ts", + "./testTs/test/controlFlow/controlFlowWithTemplateLiterals.ts", + "./testTs/test/controlFlow/controlFlowInstanceofExtendsFunction.ts", + "./testTs/test/controlFlow/constLocalsInFunctionExpressions.ts", + "./testTs/test/controlFlow/controlFlowForStatement.ts", + "./testTs/test/controlFlow/controlFlowAssignmentExpression.ts", + "./testTs/test/controlFlow/controlFlowTruthiness.ts", + "./testTs/test/controlFlow/typeGuardsAsAssertions.ts", + "./testTs/test/controlFlow/controlFlowOptionalChain2.ts", + "./testTs/test/controlFlow/controlFlowDestructuringDeclaration.ts", + "./testTs/test/controlFlow/controlFlowInOperator.ts", + "./testTs/test/controlFlow/controlFlowForInStatement2.ts", + "./testTs/test/controlFlow/controlFlowForInStatement.ts", + "./testTs/test/controlFlow/controlFlowElementAccess.ts", + "./testTs/test/controlFlow/controlFlowInstanceOfGuardPrimitives.ts", + "./testTs/test/controlFlow/controlFlowWhileStatement.ts", + "./testTs/test/controlFlow/controlFlowIteration.ts", + "./testTs/test/types/import/importTypeAmbient.ts", + "./testTs/test/types/never/neverUnionIntersection.ts", + "./testTs/test/types/never/neverType.ts", + "./testTs/test/types/objectTypeLiteral/objectTypeLiteralSyntax.ts", + "./testTs/test/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts", + "./testTs/test/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts", + "./testTs/test/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts", + "./testTs/test/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts", + "./testTs/test/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts", + "./testTs/test/types/objectTypeLiteral/constructSignatures/constructSignaturesWithIdenticalOverloads.ts", + "./testTs/test/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloads.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/identicalCallSignatures.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/typeParameterUsedAsTypeParameterConstraint.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/specializedSignatureWithOptional.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignatureWithoutAnnotationsOrBody.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/typeParameterUsedAsTypeParameterConstraint3.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/identicalCallSignatures2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesThatDifferOnlyByReturnType.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/identicalCallSignatures3.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignaturesThatDifferOnlyByReturnType3.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/typeParameterUsedAsTypeParameterConstraint2.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts", + "./testTs/test/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts", + "./testTs/test/types/objectTypeLiteral/methodSignatures/methodSignaturesWithOverloads2.ts", + "./testTs/test/types/objectTypeLiteral/methodSignatures/functionLiterals.ts", + "./testTs/test/types/literal/literalTypes2.ts", + "./testTs/test/types/literal/stringEnumLiteralTypes2.ts", + "./testTs/test/types/literal/literalTypes3.ts", + "./testTs/test/types/literal/enumLiteralTypes1.ts", + "./testTs/test/types/literal/stringEnumLiteralTypes1.ts", + "./testTs/test/types/literal/literalTypesAndDestructuring.ts", + "./testTs/test/types/literal/booleanLiteralTypes1.ts", + "./testTs/test/types/literal/numericLiteralTypes2.ts", + "./testTs/test/types/literal/numericLiteralTypes1.ts", + "./testTs/test/types/literal/stringLiteralsAssertionsInEqualityComparisons01.ts", + "./testTs/test/types/literal/literalTypesAndTypeAssertions.ts", + "./testTs/test/types/literal/enumLiteralTypes2.ts", + "./testTs/test/types/literal/literalTypes1.ts", + "./testTs/test/types/literal/booleanLiteralTypes2.ts", + "./testTs/test/types/literal/literalTypeWidening.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts", + "./testTs/test/types/specifyingTypes/typeQueries/typeofClass2.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/arrayLiteral.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/functionLiteral.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/parenthesizedTypes.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/functionLiteralForOverloads.ts", + "./testTs/test/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveIndexingWithForIn.ts", + "./testTs/test/types/nonPrimitive/nonPrimitiveIndexingWithForInSupressError.ts", + "./testTs/test/types/nonPrimitive/assignObjectToNonPrimitive.ts", + "./testTs/test/types/thisType/thisTypeInFunctions3.ts", + "./testTs/test/types/thisType/thisTypeInTypePredicate.ts", + "./testTs/test/types/thisType/thisTypeInInterfaces.ts", + "./testTs/test/types/thisType/contextualThisType.ts", + "./testTs/test/types/thisType/thisTypeInTuples.ts", + "./testTs/test/types/thisType/thisTypeInObjectLiterals.ts", + "./testTs/test/types/thisType/contextualThisTypeInJavascript.ts", + "./testTs/test/types/thisType/thisTypeInClasses.ts", + "./testTs/test/types/thisType/fluentInterfaces.ts", + "./testTs/test/types/thisType/thisTypeAndConstraints.ts", + "./testTs/test/types/thisType/inferThisType.ts", + "./testTs/test/types/thisType/thisTypeInBasePropertyAndDerivedContainerOfBase01.ts", + "./testTs/test/types/members/typesWithSpecializedConstructSignatures.ts", + "./testTs/test/types/members/typesWithOptionalProperty.ts", + "./testTs/test/types/members/typesWithSpecializedCallSignatures.ts", + "./testTs/test/types/members/objectTypeWithConstructSignatureHidingMembersOfFunction.ts", + "./testTs/test/types/members/classWithPublicProperty.ts", + "./testTs/test/types/members/classWithProtectedProperty.ts", + "./testTs/test/types/members/objectTypeWithCallSignatureAppearsToBeFunctionType.ts", + "./testTs/test/types/members/objectTypeWithCallSignatureHidingMembersOfFunction.ts", + "./testTs/test/types/localTypes/localTypes2.ts", + "./testTs/test/types/localTypes/localTypes3.ts", + "./testTs/test/types/typeAliases/circularTypeAliasForUnionWithInterface.ts", + "./testTs/test/types/typeAliases/asiPreventsParsingAsTypeAlias02.ts", + "./testTs/test/types/typeAliases/asiPreventsParsingAsTypeAlias01.ts", + "./testTs/test/types/typeAliases/genericTypeAliases.ts", + "./testTs/test/types/typeAliases/interfaceDoesNotDependOnBaseTypes.ts", + "./testTs/test/types/typeAliases/circularTypeAliasForUnionWithClass.ts", + "./testTs/test/types/typeAliases/typeAliases.ts", + "./testTs/test/types/mapped/isomorphicMappedTypeInference.ts", + "./testTs/test/types/mapped/mappedTypesAndObjects.ts", + "./testTs/test/types/mapped/mappedTypeOverlappingStringEnumKeys.ts", + "./testTs/test/types/mapped/mappedTypeModifiers.ts", + "./testTs/test/types/mapped/mappedTypes3.ts", + "./testTs/test/types/mapped/mappedTypesArraysTuples.ts", + "./testTs/test/types/mapped/mappedTypes1.ts", + "./testTs/test/types/mapped/mappedTypes2.ts", + "./testTs/test/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionWitoutTypeParameter.ts", + "./testTs/test/types/contextualTypes/methodDeclarations/contextuallyTypedObjectLiteralMethodDeclaration01.ts", + "./testTs/test/types/contextualTypes/methodDeclarations/contextuallyTypedBindingInitializer.ts", + "./testTs/test/types/contextualTypes/jsxAttributes/contextuallyTypedStringLiteralsInJsxAttributes01.tsx", + "./testTs/test/types/contextualTypes/logicalAnd/contextuallyTypeLogicalAnd01.ts", + "./testTs/test/types/conditional/variance.ts", + "./testTs/test/types/conditional/inferTypes2.ts", + "./testTs/test/types/namedTypes/classWithOptionalParameter.ts", + "./testTs/test/types/namedTypes/genericInstantiationEquivalentToObjectLiteral.ts", + "./testTs/test/types/namedTypes/optionalMethods.ts", + "./testTs/test/types/primitives/string/validStringAssignments.ts", + "./testTs/test/types/primitives/string/stringPropertyAccess.ts", + "./testTs/test/types/primitives/string/extendStringInterface.ts", + "./testTs/test/types/primitives/number/extendNumberInterface.ts", + "./testTs/test/types/primitives/number/numberPropertyAccess.ts", + "./testTs/test/types/primitives/number/validNumberAssignments.ts", + "./testTs/test/types/primitives/undefined/validUndefinedValues.ts", + "./testTs/test/types/primitives/undefined/invalidUndefinedValues.ts", + "./testTs/test/types/primitives/void/validVoidAssignments.ts", + "./testTs/test/types/primitives/void/validVoidValues.ts", + "./testTs/test/types/primitives/boolean/extendBooleanInterface.ts", + "./testTs/test/types/primitives/boolean/validBooleanAssignments.ts", + "./testTs/test/types/primitives/boolean/booleanPropertyAccess.ts", + "./testTs/test/types/primitives/enum/validEnumAssignments.ts", + "./testTs/test/types/union/contextualTypeWithUnionTypeCallSignatures.ts", + "./testTs/test/types/union/contextualTypeWithUnionTypeIndexSignatures.ts", + "./testTs/test/types/union/unionTypeCallSignatures2.ts", + "./testTs/test/types/union/contextualTypeWithUnionTypeMembers.ts", + "./testTs/test/types/union/unionTypeReduction.ts", + "./testTs/test/types/union/unionTypeCallSignatures3.ts", + "./testTs/test/types/union/unionTypeIndexSignature.ts", + "./testTs/test/types/tuple/wideningTuples1.ts", + "./testTs/test/types/tuple/tupleElementTypes1.ts", + "./testTs/test/types/tuple/wideningTuples6.ts", + "./testTs/test/types/tuple/tupleElementTypes2.ts", + "./testTs/test/types/tuple/wideningTuples2.ts", + "./testTs/test/types/tuple/tupleElementTypes3.ts", + "./testTs/test/types/tuple/typeInferenceWithTupleType.ts", + "./testTs/test/types/tuple/tupleElementTypes4.ts", + "./testTs/test/types/tuple/named/namedTupleMembers.ts", + "./testTs/test/types/keyof/keyofAndIndexedAccess.ts", + "./testTs/test/types/keyof/keyofIntersection.ts", + "./testTs/test/types/any/assignEveryTypeToAny.ts", + "./testTs/test/types/any/anyPropertyAccess.ts", + "./testTs/test/types/any/anyAsFunctionCall.ts", + "./testTs/test/types/typeParameters/recurringTypeParamForContainerOfBase01.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/typeParameterAsTypeParameterConstraint.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/typeParameterAsTypeParameterConstraintTransitively2.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/instantiateGenericClassWithZeroTypeArguments.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/wrappedAndRecursiveConstraints3.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/wrappedAndRecursiveConstraints2.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/wrappedAndRecursiveConstraints.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/constraintSatisfactionWithAny.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/constraintSatisfactionWithAny2.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/typeParameterAsTypeParameterConstraintTransitively.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts", + "./testTs/test/types/typeParameters/typeArgumentLists/constraintSatisfactionWithEmptyObject.ts", + "./testTs/test/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts", + "./testTs/test/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope.ts", + "./testTs/test/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts", + "./testTs/test/types/spread/spreadExcessProperty.ts", + "./testTs/test/types/spread/spreadOverwritesProperty.ts", + "./testTs/test/types/spread/spreadUnion4.ts", + "./testTs/test/types/spread/spreadUnion.ts", + "./testTs/test/types/spread/spreadContextualTypedBindingPattern.ts", + "./testTs/test/types/spread/objectSpreadRepeatedNullCheckPerf.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/nominalSubtypeCheckOfTypeParameter.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/infiniteExpansionThroughTypeInference.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/infiniteExpansionThroughInstantiation2.ts", + "./testTs/test/types/typeRelationships/recursiveTypes/nominalSubtypeCheckOfTypeParameter2.ts", + "./testTs/test/types/typeRelationships/widenedTypes/strictNullChecksNoWidening.ts", + "./testTs/test/types/typeRelationships/widenedTypes/objectLiteralWidened.ts", + "./testTs/test/types/typeRelationships/widenedTypes/initializersWidened.ts", + "./testTs/test/types/typeRelationships/widenedTypes/arrayLiteralWidened.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembersOptionality3.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembersOptionality.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts", + "./testTs/test/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembersOptionality4.ts", + "./testTs/test/types/typeRelationships/comparable/optionalProperties01.ts", + "./testTs/test/types/typeRelationships/comparable/switchCaseWithIntersectionTypes01.ts", + "./testTs/test/types/typeRelationships/comparable/independentPropertyVariance.ts", + "./testTs/test/types/typeRelationships/comparable/equalityWithUnionTypes01.ts", + "./testTs/test/types/typeRelationships/comparable/optionalProperties02.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithComplexConstraints.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/primtiveTypesAreIdentical.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts", + "./testTs/test/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts", + "./testTs/test/types/typeRelationships/bestCommonType/arrayLiteralWithMultipleBestCommonTypes.ts", + "./testTs/test/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts", + "./testTs/test/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts", + "./testTs/test/types/typeRelationships/typeInference/unionAndIntersectionInference2.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithOverloadedFunctionTypedArguments.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallTypeArgumentInference.ts", + "./testTs/test/types/typeRelationships/typeInference/genericContextualTypes1.ts", + "./testTs/test/types/typeRelationships/typeInference/genericFunctionParameters.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndIndexersErrors.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndIndexers.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndNumericIndexer.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithArrayLiteralArgs.ts", + "./testTs/test/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments3.ts", + "./testTs/test/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndStringIndexer.ts", + "./testTs/test/types/typeRelationships/typeInference/keyofInferenceIntersectsResults.ts", + "./testTs/test/types/typeRelationships/typeInference/unionAndIntersectionInference1.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithOverloadedConstructorTypedArguments.ts", + "./testTs/test/types/typeRelationships/typeInference/bivariantInferences.ts", + "./testTs/test/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts", + "./testTs/test/types/typeRelationships/typeInference/discriminatedUnionInference.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/numberAssignableToEnum.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignatures3.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithWithGenericConstructSignatures.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignatures.ts", + "./testTs/test/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesOverloads03.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesOverloads04.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesInUnionTypes04.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypeAssertion01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesAsTags03.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesAsTags02.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesAsTags01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesAndTuples01.ts", + "./testTs/test/types/stringLiteral/stringLiteralMatchedInSwitch01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesOverloads01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesAndParenthesizedExpressions01.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesOverloads02.ts", + "./testTs/test/types/stringLiteral/stringLiteralTypesWithTemplateStrings01.ts", + "./testTs/test/types/intersection/operatorsAndIntersectionTypes.ts", + "./testTs/test/types/intersection/intersectionTypeMembers.ts", + "./testTs/test/types/intersection/intersectionOfUnionNarrowing.ts", + "./testTs/test/types/intersection/intersectionTypeInference2.ts", + "./testTs/test/types/intersection/intersectionMemberOfUnionNarrowsCorrectly.ts", + "./testTs/test/types/intersection/intersectionTypeOverloading.ts", + "./testTs/test/types/intersection/intersectionTypeEquivalence.ts", + "./testTs/test/types/intersection/intersectionTypeInference3.ts", + "./testTs/test/types/intersection/contextualIntersectionType.ts", + "./testTs/test/types/intersection/intersectionThisTypes.ts", + "./testTs/test/types/intersection/intersectionOfUnionOfUnitTypes.ts", + "./testTs/test/types/rest/genericRestParameters2.ts", + "./testTs/test/types/rest/objectRestParameter.ts", + "./testTs/test/types/rest/objectRestForOf.ts", + "./testTs/test/types/rest/objectRestCatchES5.ts", + "./testTs/test/types/rest/objectRestReadonly.ts", + "./testTs/test/types/rest/objectRestAssignment.ts", + "./testTs/test/types/rest/objectRest2.ts", + "./testTs/test/internalModules/codeGeneration/nameCollision.ts", + "./testTs/test/internalModules/codeGeneration/importStatements.ts", + "./testTs/test/internalModules/codeGeneration/exportCodeGen.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesWithTheSameNameAndSameCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStringIndexerAndExportedFunctionWithTypeIncompatibleWithIndexer.ts", + "./testTs/test/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/FunctionAndModuleWithSameNameAndDifferentCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/AmbientModuleAndAmbientFunctionWithTheSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts", + "./testTs/test/internalModules/DeclarationMerging/EnumAndModuleWithSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts", + "./testTs/test/internalModules/DeclarationMerging/ModuleAndEnumWithSameNameAndCommonRoot.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts", + "./testTs/test/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts", + "./testTs/test/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.ts", + "./testTs/test/internalModules/importDeclarations/exportImportAlias.ts", + "./testTs/test/internalModules/importDeclarations/importAliasIdentifiers.ts", + "./testTs/test/internalModules/exportDeclarations/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts", + "./testTs/test/internalModules/exportDeclarations/ExportVariableWithAccessibleTypeInTypeAnnotation.ts", + "./testTs/test/internalModules/exportDeclarations/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts", + "./testTs/test/internalModules/exportDeclarations/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts", + "./testTs/test/internalModules/exportDeclarations/ExportVariableWithInaccessibleTypeInTypeAnnotation.ts", + "./testTs/test/internalModules/exportDeclarations/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts", + "./testTs/test/internalModules/exportDeclarations/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts", + "./testTs/test/internalModules/exportDeclarations/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts", + "./testTs/test/internalModules/exportDeclarations/ExportModuleWithAccessibleTypesOnItsExportedMembers.ts", + "./testTs/test/internalModules/exportDeclarations/ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts", + "./testTs/test/internalModules/exportDeclarations/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts", + "./testTs/test/internalModules/exportDeclarations/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts", + "./testTs/test/internalModules/exportDeclarations/ExportClassWhichExtendsInterfaceWithInaccessibleType.ts", + "./testTs/test/internalModules/exportDeclarations/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts", + "./testTs/test/internalModules/exportDeclarations/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts", + "./testTs/test/internalModules/exportDeclarations/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts", + "./testTs/test/internalModules/moduleDeclarations/asiPreventsParsingAsNamespace03.ts", + "./testTs/test/internalModules/moduleDeclarations/nestedModules.ts", + "./testTs/test/internalModules/moduleDeclarations/nonInstantiatedModule.ts", + "./testTs/test/internalModules/moduleDeclarations/instantiatedModule.ts", + "./testTs/test/internalModules/moduleDeclarations/asiPreventsParsingAsNamespace05.ts", + "./testTs/test/internalModules/moduleDeclarations/asiPreventsParsingAsNamespace01.ts", + "./testTs/test/internalModules/moduleBody/moduleWithStatementsOfEveryKind.ts", + "./testTs/test/classes/mixinClassesAnnotated.ts", + "./testTs/test/classes/mixinClassesMembers.ts", + "./testTs/test/classes/mixinClassesAnonymous.ts", + "./testTs/test/classes/classExpression.ts", + "./testTs/test/classes/classExpressions/classWithStaticFieldInParameterBindingPattern.ts", + "./testTs/test/classes/classExpressions/classWithStaticFieldInParameterInitializer.ts", + "./testTs/test/classes/classExpressions/genericClassExpressionInFunction.ts", + "./testTs/test/classes/classExpressions/classExpressionLoop.ts", + "./testTs/test/classes/classExpressions/classExpression5.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock12.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock24.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock5.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock15.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock18.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock14.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock27.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock13.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock11.ts", + "./testTs/test/classes/classStaticBlock/classStaticBlock17.ts", + "./testTs/test/classes/propertyMemberDeclarations/thisInInstanceMemberInitializer.ts", + "./testTs/test/classes/propertyMemberDeclarations/abstractProperty.ts", + "./testTs/test/classes/propertyMemberDeclarations/instanceMemberInitialization.ts", + "./testTs/test/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts", + "./testTs/test/classes/propertyMemberDeclarations/staticMemberInitialization.ts", + "./testTs/test/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberFunctionDeclarations/memberFunctionsWithPublicOverloads.ts", + "./testTs/test/classes/propertyMemberDeclarations/memberFunctionDeclarations/typeOfThisInMemberFunctions.ts", + "./testTs/test/classes/members/constructorFunctionTypes/classWithNoConstructorOrBaseClass.ts", + "./testTs/test/classes/members/constructorFunctionTypes/constructorHasPrototypeProperty.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts", + "./testTs/test/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers2.ts", + "./testTs/test/classes/members/inheritanceAndOverriding/derivedClassOverridesWithoutSubtype.ts", + "./testTs/test/classes/members/classTypes/indexersInClassType.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldUnaryMutation.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticMethodCallExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameComputedPropertyName1.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldInitializer.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldInitializer.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldAccess.ts", + "./testTs/test/classes/members/privateNames/privateNameDeclaration.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldCallExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldDestructuredBinding.ts", + "./testTs/test/classes/members/privateNames/privateNameInLhsReceiverExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameComputedPropertyName4.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticMethodInStaticFieldInit.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldClassExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticAccessorsCallExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameClassExpressionLoop.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldUnaryMutation.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldAssignment.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldNoInitializer.ts", + "./testTs/test/classes/members/privateNames/privateNameConstructorSignature.ts", + "./testTs/test/classes/members/privateNames/privateNameComputedPropertyName2.ts", + "./testTs/test/classes/members/privateNames/privateNameAndStaticInitializer.ts", + "./testTs/test/classes/members/privateNames/privateNameComputedPropertyName3.ts", + "./testTs/test/classes/members/privateNames/privateNameNestedClassNameConflict.ts", + "./testTs/test/classes/members/privateNames/privateNameAccessorsCallExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts", + "./testTs/test/classes/members/privateNames/privateNameMethodInStaticFieldInit.ts", + "./testTs/test/classes/members/privateNames/privateStaticNameShadowing.ts", + "./testTs/test/classes/members/privateNames/privateNameMethodCallExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldClassExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameStaticFieldCallExpression.ts", + "./testTs/test/classes/members/privateNames/privateNameFieldAssignment.ts", + "./testTs/test/classes/constructorDeclarations/classConstructorAccessibility4.ts", + "./testTs/test/classes/constructorDeclarations/constructorWithExpressionLessReturn.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts", + "./testTs/test/classes/constructorDeclarations/constructorParameters/constructorOverloadsWithOptionalParameters.ts", + "./testTs/test/classes/constructorDeclarations/superCalls/emitStatementsBeforeSuperCall.ts", + "./testTs/test/classes/constructorDeclarations/superCalls/emitStatementsBeforeSuperCallWithDefineFields.ts", + "./testTs/test/classes/staticIndexSignature/staticIndexSignature6.ts", + "./testTs/test/classes/classDeclarations/mergeClassInterfaceAndModule.ts", + "./testTs/test/classes/classDeclarations/classDeclarationLoop.ts", + "./testTs/test/classes/classDeclarations/classExtendingBuiltinType.ts", + "./testTs/test/classes/classDeclarations/classAndInterfaceWithSameName.ts", + "./testTs/test/classes/classDeclarations/mergedInheritedClassInterface.ts", + "./testTs/test/classes/classDeclarations/classAndInterfaceMerge.d.ts", + "./testTs/test/classes/classDeclarations/modifierOnClassDeclarationMemberInFunction.ts", + "./testTs/test/classes/classDeclarations/mergedClassInterface.ts", + "./testTs/test/classes/classDeclarations/classExtendingNull.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/classExtendingClass.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/constructorFunctionTypeIsAssignableToBaseType.ts", + "./testTs/test/classes/classDeclarations/classHeritageSpecification/constructorFunctionTypeIsAssignableToBaseType2.ts", + "./testTs/test/jsx/jsxParsingError3.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty11.tsx", + "./testTs/test/jsx/tsxSpreadChildrenInvalidType.tsx", + "./testTs/test/jsx/tsxEmit2.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution7.tsx", + "./testTs/test/jsx/tsxGenericAttributesType1.tsx", + "./testTs/test/jsx/tsxElementResolution15.tsx", + "./testTs/test/jsx/jsxParsingError4.tsx", + "./testTs/test/jsx/tsxDefaultAttributesResolution2.tsx", + "./testTs/test/jsx/tsxElementResolution1.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution17.tsx", + "./testTs/test/jsx/tsxAttributeResolution4.tsx", + "./testTs/test/jsx/jsxParsingError2.tsx", + "./testTs/test/jsx/tsxReactComponentWithDefaultTypeParameter2.tsx", + "./testTs/test/jsx/tsxGenericAttributesType6.tsx", + "./testTs/test/jsx/tsxErrorRecovery2.tsx", + "./testTs/test/jsx/tsxUnionElementType1.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution5.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponents1.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution13.tsx", + "./testTs/test/jsx/tsxElementResolution18.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution16.tsx", + "./testTs/test/jsx/tsxFragmentReactEmit.tsx", + "./testTs/test/jsx/jsxReactTestSuite.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution14.tsx", + "./testTs/test/jsx/tsxStatelessFunctionComponents2.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution11.tsx", + "./testTs/test/jsx/tsxFragmentErrors.tsx", + "./testTs/test/jsx/tsxGenericAttributesType9.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution8.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution6.tsx", + "./testTs/test/jsx/tsxDynamicTagName8.tsx", + "./testTs/test/jsx/tsxEmit3.tsx", + "./testTs/test/jsx/tsxIntrinsicAttributeErrors.tsx", + "./testTs/test/jsx/tsxDynamicTagName7.tsx", + "./testTs/test/jsx/tsxDynamicTagName9.tsx", + "./testTs/test/jsx/tsxElementResolution11.tsx", + "./testTs/test/jsx/tsxElementResolution12.tsx", + "./testTs/test/jsx/jsxEsprimaFbTestSuite.tsx", + "./testTs/test/jsx/jsxCheckJsxNoTypeArgumentsAllowed.tsx", + "./testTs/test/jsx/tsxAttributeResolution1.tsx", + "./testTs/test/jsx/tsxUnionElementType6.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty6.tsx", + "./testTs/test/jsx/tsxReactEmitNesting.tsx", + "./testTs/test/jsx/tsxNoJsx.tsx", + "./testTs/test/jsx/jsxSpreadOverwritesAttributeStrict.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty4.tsx", + "./testTs/test/jsx/tsxUnionTypeComponent1.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution10.tsx", + "./testTs/test/jsx/tsxElementResolution2.tsx", + "./testTs/test/jsx/tsxAttributeResolution16.tsx", + "./testTs/test/jsx/tsxDynamicTagName2.tsx", + "./testTs/test/jsx/checkJsxGenericTagHasCorrectInferences.tsx", + "./testTs/test/jsx/tsxUnionTypeComponent2.tsx", + "./testTs/test/jsx/tsxDynamicTagName4.tsx", + "./testTs/test/jsx/tsxElementResolution16.tsx", + "./testTs/test/jsx/tsxReactEmitWhitespace.tsx", + "./testTs/test/jsx/tsxElementResolution3.tsx", + "./testTs/test/jsx/jsxInvalidEsprimaTestSuite.tsx", + "./testTs/test/jsx/tsxUnionElementType2.tsx", + "./testTs/test/jsx/tsxDefaultAttributesResolution1.tsx", + "./testTs/test/jsx/tsxUnionElementType4.tsx", + "./testTs/test/jsx/checkJsxChildrenCanBeTupleType.tsx", + "./testTs/test/jsx/tsxParseTests1.tsx", + "./testTs/test/jsx/tsxAttributeResolution12.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty7.tsx", + "./testTs/test/jsx/tsxTypeArgumentsJsxPreserveOutput.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution2.tsx", + "./testTs/test/jsx/tsxInArrowFunction.tsx", + "./testTs/test/jsx/tsxSpreadChildren.tsx", + "./testTs/test/jsx/tsxElementResolution8.tsx", + "./testTs/test/jsx/unicodeEscapesInJsxtags.tsx", + "./testTs/test/jsx/tsxElementResolution14.tsx", + "./testTs/test/jsx/tsxAttributeResolution7.tsx", + "./testTs/test/jsx/tsxAttributeErrors.tsx", + "./testTs/test/jsx/tsxCorrectlyParseLessThanComparison1.tsx", + "./testTs/test/jsx/tsxAttributeResolution2.tsx", + "./testTs/test/jsx/tsxAttributeResolution.tsx", + "./testTs/test/jsx/tsxGenericArrowFunctionParsing.tsx", + "./testTs/test/jsx/tsxGenericAttributesType4.tsx", + "./testTs/test/jsx/jsxAndTypeAssertion.tsx", + "./testTs/test/jsx/tsxElementResolution5.tsx", + "./testTs/test/jsx/jsxParsingError1.tsx", + "./testTs/test/jsx/tsxParseTests2.tsx", + "./testTs/test/jsx/tsxTypeErrors.tsx", + "./testTs/test/jsx/tsxAttributeResolution5.tsx", + "./testTs/test/jsx/tsxReactEmitWhitespace2.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty15.tsx", + "./testTs/test/jsx/tsxGenericAttributesType5.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty10.tsx", + "./testTs/test/jsx/tsxElementResolution10.tsx", + "./testTs/test/jsx/tsxUnionElementType5.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution9.tsx", + "./testTs/test/jsx/tsxReactEmit3.tsx", + "./testTs/test/jsx/checkJsxNamespaceNamesQuestionableForms.tsx", + "./testTs/test/jsx/tsxElementResolution4.tsx", + "./testTs/test/jsx/tsxGenericAttributesType7.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty12.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution15.tsx", + "./testTs/test/jsx/tsxElementResolution13.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution3.tsx", + "./testTs/test/jsx/tsxReactEmit4.tsx", + "./testTs/test/jsx/tsxDynamicTagName6.tsx", + "./testTs/test/jsx/tsxElementResolution.tsx", + "./testTs/test/jsx/tsxAttributeResolution3.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution4.tsx", + "./testTs/test/jsx/tsxTypeArgumentResolution.tsx", + "./testTs/test/jsx/tsxAttributeResolution15.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty5.tsx", + "./testTs/test/jsx/checkJsxIntersectionElementPropsType.tsx", + "./testTs/test/jsx/tsxDefaultAttributesResolution3.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty2.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty14.tsx", + "./testTs/test/jsx/tsxAttributeResolution6.tsx", + "./testTs/test/jsx/checkJsxSubtleSkipContextSensitiveBug.tsx", + "./testTs/test/jsx/tsxReactComponentWithDefaultTypeParameter1.tsx", + "./testTs/test/jsx/tsxEmit1.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty9.tsx", + "./testTs/test/jsx/tsxLibraryManagedAttributes.tsx", + "./testTs/test/jsx/tsxErrorRecovery1.tsx", + "./testTs/test/jsx/tsxElementResolution7.tsx", + "./testTs/test/jsx/tsxOpeningClosingNames.tsx", + "./testTs/test/jsx/tsxElementResolution9.tsx", + "./testTs/test/jsx/tsxDynamicTagName5.tsx", + "./testTs/test/jsx/commentEmittingInPreserveJsx1.tsx", + "./testTs/test/jsx/tsxGenericAttributesType2.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution1.tsx", + "./testTs/test/jsx/tsxElementResolution6.tsx", + "./testTs/test/jsx/tsxReactEmit2.tsx", + "./testTs/test/jsx/tsxReactComponentWithDefaultTypeParameter3.tsx", + "./testTs/test/jsx/tsxFragmentPreserveEmit.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty8.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty1.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty3.tsx", + "./testTs/test/jsx/tsxDynamicTagName1.tsx", + "./testTs/test/jsx/checkJsxChildrenProperty13.tsx", + "./testTs/test/jsx/tsxReactEmit1.tsx", + "./testTs/test/jsx/tsxAttributeInvalidNames.tsx", + "./testTs/test/jsx/tsxSpreadAttributesResolution12.tsx", + "./testTs/test/jsx/tsxGenericAttributesType8.tsx", + "./testTs/test/jsx/checkJsxUnionSFXContextualTypeInferredCorrectly.tsx", + "./testTs/test/jsx/tsxAttributeResolution13.tsx", + "./testTs/test/jsx/tsxUnionElementType3.tsx", + "./testTs/test/jsx/tsxReactEmitEntities.tsx", + "./testTs/test/jsx/tsxErrorRecovery3.tsx", + "./testTs/test/jsx/tsxGenericAttributesType3.tsx", + "./testTs/test/jsx/tsxAttributeResolution8.tsx", + "./testTs/test/jsx/tsxDynamicTagName3.tsx", + "./testTs/test/jsx/inline/inlineJsxFactoryDeclarationsLocalTypes.tsx", + "./testTs/test/jsx/inline/inlineJsxAndJsxFragPragma.tsx", + "./testTs/test/jsx/inline/inlineJsxFactoryOverridesCompilerOption.tsx", + "./testTs/test/jsx/inline/inlineJsxFactoryDeclarations.tsx", + "./testTs/test/jsx/inline/inlineJsxAndJsxFragPragmaOverridesCompilerOptions.tsx", + "./testTs/test/jsx/inline/inlineJsxFactoryWithFragmentIsError.tsx", + "./testTs/test/jsx/inline/inlineJsxFactoryLocalTypeGlobalFallback.tsx", + "./testTs/test/references/library-reference-6.ts", + "./testTs/test/references/library-reference-scoped-packages.ts", + "./testTs/test/references/library-reference-14.ts", + "./testTs/test/references/library-reference-1.ts", + "./testTs/test/references/library-reference-7.ts", + "./testTs/test/references/library-reference-3.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithEnumUnion.ts", + "./testTs/test/es7/exponentiationOperator/compoundExponentiationAssignmentLHSIsReference.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithEnum.ts", + "./testTs/test/es7/exponentiationOperator/exponentiationOperatorWithAnyAndNumber.ts", + "./testTs/test/ambient/ambientEnumDeclaration1.ts", + "./testTs/test/ambient/ambientEnumDeclaration2.ts", + "./testTs/test/ambient/ambientShorthand_declarationEmit.ts", + "./testTs/test/externalModules/globalAugmentationModuleResolution.ts", + "./testTs/test/externalModules/esnext/esnextmodulekindWithES2015Target.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES2015Target.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target4.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target7.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target2.ts", + "./testTs/test/externalModules/es6/es6modulekindExportClassNameWithObject.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target12.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target5.ts", + "./testTs/test/externalModules/es6/es6modulekindWithES5Target8.ts", + "./testTs/test/externalModules/typeOnly/preserveValueImports_module.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment1.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment8.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment7.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment3.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment10.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment6.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment2.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment9.ts", + "./testTs/test/es2021/logicalAssignment/logicalAssignment4.ts", + "./testTs/test/async/es6/asyncWithVarShadowing_es6.ts", + "./testTs/test/jsdoc/moduleExportsElementAccessAssignment.ts", + "./testTs/test/jsdoc/jsdocTwoLineTypedef.ts", + "./testTs/test/jsdoc/tsNoCheckForTypescript.ts", + "./testTs/test/jsdoc/typedefTagNested.ts", + "./testTs/test/jsdoc/jsdocVariadicType.ts", + "./testTs/test/jsdoc/enumTagUseBeforeDefCrash.ts", + "./testTs/test/jsdoc/paramTagOnCallExpression.ts", + "./testTs/test/jsdoc/checkJsdocParamOnVariableDeclaredFunctionExpression.ts", + "./testTs/test/jsdoc/typeTagOnPropertyAssignment.ts", + "./testTs/test/jsdoc/jsdocImportTypeReferenceToESModule.ts", + "./testTs/test/jsdoc/jsdocTypeFromChainedAssignment3.ts", + "./testTs/test/jsdoc/extendsTag1.ts", + "./testTs/test/jsdoc/jsdocTemplateTag2.ts", + "./testTs/test/jsdoc/seeTag2.ts", + "./testTs/test/jsdoc/jsdocBindingInUnreachableCode.ts", + "./testTs/test/jsdoc/jsdocParseHigherOrderFunction.ts", + "./testTs/test/jsdoc/jsdocImportTypeReferenceToStringLiteral.ts", + "./testTs/test/jsdoc/paramTagTypeResolution.ts", + "./testTs/test/jsdoc/checkJsdocTypeTag3.ts", + "./testTs/test/jsdoc/checkJsdocTypeTagOnObjectProperty1.ts", + "./testTs/test/jsdoc/jsdocImportTypeReferenceToClassAlias.ts", + "./testTs/test/jsdoc/enumTagOnExports.ts", + "./testTs/test/jsdoc/jsdocTypeDefAtStartOfFile.ts", + "./testTs/test/jsdoc/jsdocTypeReferenceExports.ts", + "./testTs/test/jsdoc/callbackCrossModule.ts", + "./testTs/test/jsdoc/callbackTag3.ts", + "./testTs/test/jsdoc/jsdocParseParenthesizedJSDocParameter.ts", + "./testTs/test/jsdoc/callbackTag1.ts", + "./testTs/test/jsdoc/instantiateTemplateTagTypeParameterOnVariableStatement.ts", + "./testTs/test/jsdoc/seeTag1.ts", + "./testTs/test/jsdoc/enumTagOnExports2.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportedClassAliases.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctions.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsReusesExistingNodesMappingJSDocTypes.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsUniqueSymbolUsage.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypeAliases.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionWithDefaultAssignedMember.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportDefinePropertyEmit.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsFunctionsCjs.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsTypedefDescriptionsPreserved.ts", + "./testTs/test/jsdoc/declarations/jsDeclarationsExportDoubleAssignmentInClosure.ts", + "./testTs/test/override/override18.ts", + "./testTs/test/override/override_js1.ts", + "./testTs/test/override/override16.ts", + "./testTs/test/es2019/globalThisTypeIndexAccess.ts", + "./testTs/test/directives/multiline.tsx", + "./testTs/test/directives/ts-expect-error-nocheck.ts", + "./testTs/test/expressions/elementAccess/stringEnumInElementAccess01.ts", + "./testTs/test/expressions/elementAccess/letIdentifierInElementAccess01.ts", + "./testTs/test/expressions/conditonalOperator/conditionalOperatorConditoinIsStringType.ts", + "./testTs/test/expressions/conditonalOperator/conditionalOperatorConditionIsBooleanType.ts", + "./testTs/test/expressions/conditonalOperator/conditionalOperatorConditoinIsAnyType.ts", + "./testTs/test/expressions/conditonalOperator/conditionalOperatorConditionIsNumberType.ts", + "./testTs/test/expressions/typeGuards/typeGuardNarrowsPrimitiveIntersection.ts", + "./testTs/test/expressions/typeGuards/typeGuardNarrowsToLiteralType.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInForStatement.ts", + "./testTs/test/expressions/typeGuards/typeGuardNarrowsToLiteralTypeUnion.ts", + "./testTs/test/expressions/typeGuards/typeGuardFunction.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInConditionalExpression.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInFunctionAndModuleBlock.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInModule.ts", + "./testTs/test/expressions/typeGuards/typeGuardNesting.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormIsTypeOnInterfaces.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormInstanceOfOnInterface.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts", + "./testTs/test/expressions/typeGuards/typeGuardRedundancy.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInRightOperandOfOrOrOperator.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormFunctionEquality.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInFunction.ts", + "./testTs/test/expressions/typeGuards/typeGuardEnums.ts", + "./testTs/test/expressions/typeGuards/typeGuardFunctionOfFormThis.ts", + "./testTs/test/expressions/typeGuards/typePredicateASI.ts", + "./testTs/test/expressions/typeGuards/typeGuardTautologicalConsistiency.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInDoStatement.ts", + "./testTs/test/expressions/typeGuards/TypeGuardWithEnumUnion.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfIsOrderIndependent.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInGlobal.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInWhileStatement.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInClassMethods.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfFunction.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormTypeOfPrimitiveSubtype.ts", + "./testTs/test/expressions/typeGuards/typeGuardTypeOfUndefined.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts", + "./testTs/test/expressions/typeGuards/typeGuardsInRightOperandOfAndAndOperator.ts", + "./testTs/test/expressions/typeGuards/typeGuardOfFormNotExpr.ts", + "./testTs/test/expressions/typeGuards/typeGuardsOnClassProperty.ts", + "./testTs/test/expressions/typeGuards/typeGuardIntersectionTypes.ts", + "./testTs/test/expressions/asOperator/asOperator3.ts", + "./testTs/test/expressions/asOperator/asOpEmitParens.ts", + "./testTs/test/expressions/asOperator/asOperator1.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperatorInAsyncGenerator.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator3.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator10.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperatorInParameterInitializer.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator9.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator7.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator12.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator_not_strict.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator1.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperatorInParameterBindingPattern.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator2.ts", + "./testTs/test/expressions/nullishCoalescingOperator/nullishCoalescingOperator8.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithAnyAndEveryType.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithNumberAndEnum.ts", + "./testTs/test/expressions/binaryOperators/additionOperator/additionOperatorWithStringAndEveryType.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsUndefined.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsAny.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTwoOperandsAreAny.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNumericLiteral.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts", + "./testTs/test/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeEnumAndNumber.ts", + "./testTs/test/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsTypeParameter.ts", + "./testTs/test/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithAny.ts", + "./testTs/test/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithRHSIsSubtypeOfFunction.ts", + "./testTs/test/expressions/binaryOperators/logicalOrOperator/logicalOrExpressionIsNotContextuallyTyped.ts", + "./testTs/test/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithTypeParameters.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithEnumUnion.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithEnum.ts", + "./testTs/test/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithAnyAndNumber.ts", + "./testTs/test/expressions/binaryOperators/inOperator/inOperatorWithValidOperands.ts", + "./testTs/test/expressions/arrayLiterals/arrayLiterals2ES5.ts", + "./testTs/test/expressions/arrayLiterals/arrayLiteralInference.ts", + "./testTs/test/expressions/assignmentOperator/assignmentGenericLookupTypeNarrowing.ts", + "./testTs/test/expressions/assignmentOperator/compoundAssignmentLHSIsReference.ts", + "./testTs/test/expressions/assignmentOperator/assignmentLHSIsReference.ts", + "./testTs/test/expressions/assignmentOperator/assignmentTypeNarrowing.ts", + "./testTs/test/expressions/unaryOperators/decrementOperator/decrementOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/unaryOperators/decrementOperator/decrementOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/incrementOperator/incrementOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/incrementOperator/incrementOperatorWithAnyOtherType.ts", + "./testTs/test/expressions/unaryOperators/voidOperator/voidOperatorWithNumberType.ts", + "./testTs/test/expressions/unaryOperators/voidOperator/voidOperatorWithEnumType.ts", + "./testTs/test/expressions/unaryOperators/voidOperator/voidOperatorWithBooleanType.ts", + "./testTs/test/expressions/unaryOperators/voidOperator/voidOperatorWithStringType.ts", + "./testTs/test/expressions/optionalChaining/optionalChainingInParameterInitializer.ts", + "./testTs/test/expressions/optionalChaining/optionalChainingInference.ts", + "./testTs/test/expressions/optionalChaining/optionalChainingInParameterBindingPattern.ts", + "./testTs/test/expressions/optionalChaining/propertyAccessChain/propertyAccessChain.2.ts", + "./testTs/test/expressions/optionalChaining/propertyAccessChain/propertyAccessChain.ts", + "./testTs/test/expressions/optionalChaining/callChain/callChain.2.ts", + "./testTs/test/expressions/optionalChaining/callChain/parentheses.ts", + "./testTs/test/expressions/optionalChaining/callChain/callChainInference.ts", + "./testTs/test/expressions/optionalChaining/callChain/callChain.ts", + "./testTs/test/expressions/optionalChaining/elementAccessChain/elementAccessChain.2.ts", + "./testTs/test/expressions/optionalChaining/elementAccessChain/elementAccessChain.ts", + "./testTs/test/expressions/functionCalls/typeArgumentInferenceTransitiveConstraints.ts", + "./testTs/test/expressions/functionCalls/callWithSpread.ts", + "./testTs/test/expressions/functions/typeOfThisInFunctionExpression.ts", + "./testTs/test/expressions/functions/contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts", + "./testTs/test/expressions/functions/arrowFunctionExpressions.ts", + "./testTs/test/expressions/functions/voidParamAssignmentCompatibility.ts", + "./testTs/test/expressions/functions/contextuallyTypedIife.ts", + "./testTs/test/expressions/superCalls/superCalls.ts", + "./testTs/test/expressions/newOperator/newOperatorConformance.ts", + "./testTs/test/expressions/contextualTyping/functionExpressionContextualTyping1.ts", + "./testTs/test/expressions/contextualTyping/superCallParameterContextualTyping1.ts", + "./testTs/test/expressions/contextualTyping/superCallParameterContextualTyping3.ts", + "./testTs/test/expressions/contextualTyping/generatedContextualTyping.ts", + "./testTs/test/expressions/contextualTyping/functionExpressionContextualTyping3.ts", + "./testTs/test/emitter/es2015/asyncGenerators/emitter.asyncGenerators.functionExpressions.es2015.ts", + "./testTs/test/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts", + "./testTs/test/emitter/es2015/asyncGenerators/emitter.asyncGenerators.objectLiteralMethods.es2015.ts", + "./testTs/test/emitter/es2015/asyncGenerators/emitter.asyncGenerators.functionDeclarations.es2015.ts", + "./testTs/test/declarationEmit/classDoesNotDependOnPrivateMember.ts", + "./testTs/test/interfaces/declarationMerging/twoMergedInterfacesWithDifferingOverloads2.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithConflictingPropertyNames2.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithIndexers.ts", + "./testTs/test/interfaces/declarationMerging/mergeTwoInterfaces2.ts", + "./testTs/test/interfaces/declarationMerging/twoMergedInterfacesWithDifferingOverloads.ts", + "./testTs/test/interfaces/declarationMerging/mergeTwoInterfaces.ts", + "./testTs/test/interfaces/declarationMerging/mergeThreeInterfaces.ts", + "./testTs/test/interfaces/declarationMerging/genericAndNonGenericInterfaceWithTheSameName2.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithMultipleBases.ts", + "./testTs/test/interfaces/declarationMerging/mergeThreeInterfaces2.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithMultipleBases2.ts", + "./testTs/test/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts", + "./testTs/test/interfaces/interfaceDeclarations/asiPreventsParsingAsInterface03.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithCallSignaturesThatHidesBaseSignature.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithCallSignaturesThatHidesBaseSignature2.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithOverloadedCallAndConstructSignatures.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithConstructSignaturesThatHidesBaseSignature2.ts", + "./testTs/test/interfaces/interfaceDeclarations/derivedInterfaceDoesNotHideBaseSignatures.ts", + "./testTs/test/interfaces/interfaceDeclarations/asiPreventsParsingAsInterface01.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceThatHidesBaseProperty.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithConstructSignaturesThatHidesBaseSignature.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithCallAndConstructSignature.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceWithSpecializedCallAndConstructSignatures.ts", + "./testTs/test/interfaces/interfaceDeclarations/asiPreventsParsingAsInterface04.ts", + "./testTs/test/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts", + "./testTs/test/interfaces/interfaceDeclarations/asiPreventsParsingAsInterface02.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.binary.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.hex.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.octal.ts", + "./testTs/test/parser/ecmascript2021/numericSeparators/parser.numericSeparators.decimal.ts", + "./testTs/test/parser/ecmascript5/parserOptionalTypeMembers1.ts", + "./testTs/test/parser/ecmascript5/parserSyntaxWalker.generated.ts", + "./testTs/test/parser/ecmascript5/parservoidInQualifiedName0.ts", + "./testTs/test/parser/ecmascript5/parserExportAsFunctionIdentifier.ts", + "./testTs/test/parser/ecmascript5/parserNotRegex2.ts", + "./testTs/test/parser/ecmascript5/parserOverloadOnConstants1.ts", + "./testTs/test/parser/ecmascript5/parserSbp_7.9_A9_T3.ts", + "./testTs/test/parser/ecmascript5/parserParenthesizedVariableAndFunctionInTernary.ts", + "./testTs/test/parser/ecmascript5/parserDebuggerStatement1.ts", + "./testTs/test/parser/ecmascript5/parserEmptyStatement1.ts", + "./testTs/test/parser/ecmascript5/parserUnicode2.ts", + "./testTs/test/parser/ecmascript5/parserKeywordsAsIdentifierName1.ts", + "./testTs/test/parser/ecmascript5/parserEmptyFile1.ts", + "./testTs/test/parser/ecmascript5/parserS7.6.1.1_A1.10.ts", + "./testTs/test/parser/ecmascript5/parserVoidExpression1.ts", + "./testTs/test/parser/ecmascript5/parserDebuggerStatement2.ts", + "./testTs/test/parser/ecmascript5/parserInExpression1.ts", + "./testTs/test/parser/ecmascript5/TupleTypes/TupleType5.ts", + "./testTs/test/parser/ecmascript5/TupleTypes/TupleType2.ts", + "./testTs/test/parser/ecmascript5/TupleTypes/TupleType3.ts", + "./testTs/test/parser/ecmascript5/TupleTypes/TupleType1.ts", + "./testTs/test/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts", + "./testTs/test/parser/ecmascript5/ObjectTypes/parserObjectType1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/parserModifierOnPropertySignature2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/IncompleteMemberVariables/parserErrorRecovery_IncompleteMemberVariable1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/VariableLists/parserVariableStatement3.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/VariableLists/parserVariableStatement4.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/VariableLists/parserVariableStatement1.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/VariableLists/parserVariableStatement2.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrowFunctions/ArrowFunction4.ts", + "./testTs/test/parser/ecmascript5/ErrorRecovery/ArrowFunctions/parserX_ArrowFunction4.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts", + "./testTs/test/parser/ecmascript5/ClassDeclarations/parserClassDeclaration7.d.ts", + "./testTs/test/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment3.ts", + "./testTs/test/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment4.ts", + "./testTs/test/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment1.ts", + "./testTs/test/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment2.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression13.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression3.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression12.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression4.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression2.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression1.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression10.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression6.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression15.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression14.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression8.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression5.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression11.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression7.ts", + "./testTs/test/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression9.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserInterfaceKeywordInEnum.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration5.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnum6.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserInterfaceKeywordInEnum1.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnum2.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration1.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration2.d.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration3.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnum1.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnum3.ts", + "./testTs/test/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration6.ts", + "./testTs/test/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity6.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509546_1.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509546.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser645086_4.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser643728.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser509546_2.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser645086_3.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser596700.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parserNotHexLiteral1.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser630933.ts", + "./testTs/test/parser/ecmascript5/RegressionTests/parser579071.ts", + "./testTs/test/parser/ecmascript5/Protected/Protected8.ts", + "./testTs/test/parser/ecmascript5/Protected/Protected9.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature12.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature9.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature5.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature6.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature8.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature4.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature10.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature1.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature11.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature3.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature7.ts", + "./testTs/test/parser/ecmascript5/PropertySignatures/parserPropertySignature2.ts", + "./testTs/test/parser/ecmascript5/Fuzz/parser768531.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration11.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration4.d.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration9.ts", + "./testTs/test/parser/ecmascript5/VariableDeclarations/parserVariableDeclaration7.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration11.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration12.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration7.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration2.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration9.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration3.d.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration8.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration4.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModule1.ts", + "./testTs/test/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration6.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration8.ts", + "./testTs/test/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration1.d.ts", + "./testTs/test/parser/ecmascript5/ObjectLiterals/parserObjectLiterals1.ts", + "./testTs/test/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration5.ts", + "./testTs/test/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration7.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature7.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature4.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature9.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature1.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature5.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature3.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature8.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature12.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature10.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature2.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature11.ts", + "./testTs/test/parser/ecmascript5/MethodSignatures/parserMethodSignature6.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity1.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity5.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity10.ts", + "./testTs/test/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity6.ts", + "./testTs/test/parser/ecmascript5/Expressions/parserUnaryExpression6.ts", + "./testTs/test/parser/ecmascript5/Statements/parserDoStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/LabeledStatements/parser_duplicateLabel4.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueLabel.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueInIterationStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueTarget2.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueInIterationStatement3.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueTarget3.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueTarget4.ts", + "./testTs/test/parser/ecmascript5/Statements/ContinueStatements/parser_continueInIterationStatement1.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakTarget1.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakInIterationOrSwitchStatement2.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakTarget3.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakInIterationOrSwitchStatement3.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakTarget2.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakTarget4.ts", + "./testTs/test/parser/ecmascript5/Statements/BreakStatements/parser_breakInIterationOrSwitchStatement1.ts", + "./testTs/test/salsa/moduleExportAssignment2.ts", + "./testTs/test/salsa/inferringClassMembersFromAssignments8.ts", + "./testTs/test/salsa/moduleExportAssignment3.ts", + "./testTs/test/salsa/typeFromContextualThisType.ts", + "./testTs/test/salsa/malformedTags.ts", + "./testTs/test/salsa/moduleExportAlias5.ts", + "./testTs/test/salsa/mixedPropertyElementAccessAssignmentDeclaration.ts", + "./testTs/test/salsa/prototypePropertyAssignmentMergedTypeReference.ts", + "./testTs/test/salsa/moduleExportAssignment5.ts", + "./testTs/test/salsa/propertyAssignmentUseParentType1.ts", + "./testTs/test/salsa/moduleExportPropertyAssignmentDefault.ts", + "./testTs/test/salsa/moduleExportAlias4.ts", + "./testTs/test/salsa/moduleExportAliasExports.ts", + "./testTs/test/salsa/typeFromPropertyAssignment20.ts", + "./testTs/test/salsa/moduleExportDuplicateAlias2.ts", + "./testTs/test/salsa/moduleExportAliasElementAccessExpression.ts", + "./testTs/test/salsa/propertyAssignmentOnParenthesizedNumber.ts", + "./testTs/test/salsa/typeFromPropertyAssignment30.ts", + "./testTs/test/salsa/requireAssertsFromTypescript.ts", + "./testTs/test/salsa/moduleExportAlias3.ts", + "./testTs/test/salsa/typeFromPropertyAssignment39.ts", + "./testTs/test/salsa/binderUninitializedModuleExportsAssignment.ts", + "./testTs/test/salsa/moduleExportAssignment4.ts", + "./testTs/test/salsa/typeFromPropertyAssignment38.ts", + "./testTs/test/salsa/commonJSImportExportedClassExpression.ts", + "./testTs/test/salsa/moduleExportDuplicateAlias3.ts", + "./testTs/test/salsa/jsdocConstructorFunctionTypeReference.ts", + "./testTs/test/salsa/requireTwoPropertyAccesses.ts", + "./testTs/test/functions/functionWithUseStrictAndSimpleParameterList.ts", + "./testTs/test/functions/strictBindCallApply2.ts", + "./testTs/test/functions/functionImplementations.ts", + "./testTs/test/test/test_full.ts", + "./testTs/test/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesWithModule.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedDivision.ts", + "./testTs/test/es6/templates/templateStringInPropertyAssignment.ts", + "./testTs/test/es6/templates/templateStringInParentheses.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedTypeAssertionOnAddition.ts", + "./testTs/test/es6/templates/templateStringInUnaryPlus.ts", + "./testTs/test/es6/templates/templateStringInConditional.ts", + "./testTs/test/es6/templates/templateStringWhitespaceEscapes1.ts", + "./testTs/test/es6/templates/templateStringInTypeAssertion.ts", + "./testTs/test/es6/templates/templateStringMultiline1.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithOverloadResolution2.ts", + "./testTs/test/es6/templates/templateStringTermination3.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithTagsTypedAsAny.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithTypedTags.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedMultiplication.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedObjectLiteral.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedArray.ts", + "./testTs/test/es6/templates/templateStringWithPropertyAccess.ts", + "./testTs/test/es6/templates/templateStringMultiline3.ts", + "./testTs/test/es6/templates/templateStringTermination2.ts", + "./testTs/test/es6/templates/taggedTemplateStringsWithManyCallAndMemberExpressions.ts", + "./testTs/test/es6/templates/templateStringControlCharacterEscapes03.ts", + "./testTs/test/es6/templates/templateStringTermination4.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedInOperator.ts", + "./testTs/test/es6/templates/templateStringPlainCharactersThatArePartsOfEscapes01.ts", + "./testTs/test/es6/templates/templateStringInSwitchAndCase.ts", + "./testTs/test/es6/templates/templateStringInArrowFunction.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedComments.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedModulo.ts", + "./testTs/test/es6/templates/templateStringTermination5.ts", + "./testTs/test/es6/templates/templateStringInInOperator.ts", + "./testTs/test/es6/templates/templateStringWithCommentsInArrowFunction.ts", + "./testTs/test/es6/templates/templateStringInArray.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedAddition.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedUnaryPlus.ts", + "./testTs/test/es6/templates/templateStringWithEmptyLiteralPortions.ts", + "./testTs/test/es6/templates/templateStringPlainCharactersThatArePartsOfEscapes02.ts", + "./testTs/test/es6/templates/templateStringInWhile.ts", + "./testTs/test/es6/templates/templateStringMultiline2.ts", + "./testTs/test/es6/templates/taggedTemplateUntypedTagCall01.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedTemplateString.ts", + "./testTs/test/es6/templates/templateStringInTypeOf.ts", + "./testTs/test/es6/templates/templateStringInFunctionExpression.ts", + "./testTs/test/es6/templates/taggedTemplateStringsPlainCharactersThatArePartsOfEscapes02.ts", + "./testTs/test/es6/templates/templateStringBinaryOperations.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedTypeOfOperator.ts", + "./testTs/test/es6/templates/templateStringControlCharacterEscapes04.ts", + "./testTs/test/es6/templates/templateStringControlCharacterEscapes02.ts", + "./testTs/test/es6/templates/templateStringControlCharacterEscapes01.ts", + "./testTs/test/es6/templates/templateStringWithOpenCommentInStringPortion.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedNewOperator.ts", + "./testTs/test/es6/templates/templateStringInIndexExpression.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedConditional.ts", + "./testTs/test/es6/templates/templateStringTermination1.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedFunctionExpression.ts", + "./testTs/test/es6/templates/templateStringWithEmbeddedArrowFunction.ts", + "./testTs/test/es6/templates/templateStringInEqualityChecks.ts", + "./testTs/test/es6/templates/templateStringWithBackslashEscapes01.ts", + "./testTs/test/es6/templates/templateStringWhitespaceEscapes2.ts", + "./testTs/test/es6/classDeclaration/superCallBeforeThisAccessing1.ts", + "./testTs/test/es6/classDeclaration/superCallBeforeThisAccessing8.ts", + "./testTs/test/es6/classDeclaration/superCallBeforeThisAccessing5.ts", + "./testTs/test/es6/classDeclaration/superCallBeforeThisAccessing2.ts", + "./testTs/test/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts", + "./testTs/test/es6/Symbols/symbolProperty60.ts", + "./testTs/test/es6/spread/arrayLiteralSpreadES5iterable.ts", + "./testTs/test/es6/spread/arrayLiteralSpread.ts", + "./testTs/test/es6/destructuring/objectBindingPatternKeywordIdentifiers05.ts", + "./testTs/test/es6/destructuring/restElementWithAssignmentPattern5.ts", + "./testTs/test/es6/destructuring/destructuringWithLiteralInitializers.ts", + "./testTs/test/es6/destructuring/emptyArrayBindingPatternParameter04.ts", + "./testTs/test/es6/destructuring/nonIterableRestElement1.ts", + "./testTs/test/es6/destructuring/restElementWithAssignmentPattern3.ts", + "./testTs/test/es6/destructuring/destructuringEvaluationOrder.ts", + "./testTs/test/es6/destructuring/destructuringInFunctionType.ts", + "./testTs/test/es6/destructuring/destructuringVoid.ts", + "./testTs/test/es6/destructuring/destructuringVariableDeclaration1ES5.ts", + "./testTs/test/es6/destructuring/destructuringObjectBindingPatternAndAssignment1ES5.ts", + "./testTs/test/es6/destructuring/destructuringCatch.ts", + "./testTs/test/es6/destructuring/arrayAssignmentPatternWithAny.ts", + "./testTs/test/es6/destructuring/objectBindingPatternKeywordIdentifiers06.ts", + "./testTs/test/es6/destructuring/declarationInAmbientContext.ts", + "./testTs/test/es6/destructuring/restElementWithBindingPattern.ts", + "./testTs/test/es6/destructuring/destructuringObjectAssignmentPatternWithNestedSpread.ts", + "./testTs/test/es6/destructuring/destructuringVariableDeclaration1ES5iterable.ts", + "./testTs/test/enums/enumMerging.ts", + "./testTs/test/enums/enumConstantMemberWithTemplateLiteralsEmitDeclaration.ts", + "./testTs/test/enums/enumBasics.ts", + "./testTs/test/enums/enumClassification.ts", + "./testTs/test/enums/enumConstantMemberWithStringEmitDeclaration.ts", + "./testTs/test/constEnums/constEnum1.ts", + "./testTs/test/constEnums/constEnum4.ts" + ] +} \ No newline at end of file diff --git a/testTs/test-case.patch b/testTs/test-case.patch new file mode 100644 index 0000000000..4c3e3dd3bc --- /dev/null +++ b/testTs/test-case.patch @@ -0,0 +1,13245 @@ +From 93dbec5e710a8cb28ca8b7f0c70b9ade4a8fc911 Mon Sep 17 00:00:00 2001 +From: zhangrengao +Date: Sat, 15 Jan 2022 21:39:48 +0800 +Subject: [PATCH] test patch + +--- + .../ambient/ambientDeclarations.ts | 1 + + .../ambientDeclarationsPatterns.ts | 11 + + .../declarations.d.ts | 18 + + .../ambient/ambientInsideNonAmbient.ts | 2 + + .../ambientInsideNonAmbientExternalModule.ts | 4 +- + .../ambientShorthand_merging.ts | 6 + + .../declarations1.d.ts | 2 + + .../declarations2.d.ts | 4 + + .../ambientShorthand_reExport.ts | 5 + + .../declarations.d.ts | 2 + + .../ambientShorthand_reExport/jquery.d.ts | 2 + + .../ambientShorthand_reExport/reExportAll.ts | 2 + + .../ambientShorthand_reExport/reExportX.ts | 2 + + .../async/es5/asyncMethodWithSuper_es5.ts | 1 + + .../asyncOrYieldAsBindingIdentifier1.ts | 49 ++ + .../classAbstractAsIdentifier.ts | 2 +- + .../classBody/classWithEmptyBody.ts | 4 +- + .../classDeclarations/classInsideBlock.ts | 1 + + .../classWithPredefinedTypesAsNames.ts | 4 +- + .../classWithSemicolonClassElement1.ts | 3 +- + .../classWithSemicolonClassElement2.ts | 3 +- + .../classExpressions/classExpression2.ts | 4 +- + .../classStaticBlock/classStaticBlock1.ts | 11 + + .../classStaticBlock/classStaticBlock10.ts | 30 ++ + .../classStaticBlock/classStaticBlock11.ts | 15 + + .../classStaticBlock/classStaticBlock12.ts | 10 + + .../classStaticBlock/classStaticBlock13.ts | 14 + + .../classStaticBlock/classStaticBlock14.ts | 15 + + .../classStaticBlock/classStaticBlock15.ts | 18 + + .../classStaticBlock/classStaticBlock16.ts | 26 + + .../classStaticBlock/classStaticBlock17.ts | 33 ++ + .../classStaticBlock/classStaticBlock18.ts | 15 + + .../classStaticBlock/classStaticBlock19.ts | 6 + + .../classStaticBlock/classStaticBlock2.ts | 20 + + .../classStaticBlock/classStaticBlock20.ts | 13 + + .../classStaticBlock/classStaticBlock21.ts | 7 + + .../classStaticBlock/classStaticBlock22.ts | 72 +++ + .../classStaticBlock/classStaticBlock23.ts | 21 + + .../classStaticBlock/classStaticBlock24.ts | 8 + + .../classStaticBlock/classStaticBlock25.ts | 23 + + .../classStaticBlock/classStaticBlock26.ts | 30 ++ + .../classStaticBlock/classStaticBlock27.ts | 17 + + .../classStaticBlock/classStaticBlock3.ts | 19 + + .../classStaticBlock/classStaticBlock4.ts | 16 + + .../classStaticBlock/classStaticBlock5.ts | 19 + + .../classStaticBlock/classStaticBlock6.ts | 62 +++ + .../classStaticBlock/classStaticBlock7.ts | 43 ++ + .../classStaticBlock/classStaticBlock8.ts | 48 ++ + .../classStaticBlock/classStaticBlock9.ts | 8 + + .../classStaticBlockUseBeforeDef1.ts | 15 + + .../classStaticBlockUseBeforeDef2.ts | 10 + + .../classConstructorAccessibility4.ts | 4 +- + ...structorImplementationWithDefaultValues.ts | 6 +- + .../declarationEmitReadonly.ts | 3 +- + .../quotedConstructors.ts | 4 + + ...idesIndexersWithAssignmentCompatibility.ts | 4 +- + .../superInStaticMembers1.ts | 492 ++++++++++++++++++ + .../thisAndSuperInStaticMembers1.ts | 42 ++ + .../thisAndSuperInStaticMembers2.ts | 42 ++ + .../thisAndSuperInStaticMembers3.ts | 26 + + .../thisAndSuperInStaticMembers4.ts | 26 + + .../typeOfThisInStaticMembers.ts | 3 +- + .../typeOfThisInStaticMembers10.ts | 51 ++ + .../typeOfThisInStaticMembers11.ts | 51 ++ + .../typeOfThisInStaticMembers12.ts | 10 + + .../typeOfThisInStaticMembers13.ts | 10 + + .../typeOfThisInStaticMembers3.ts | 12 + + .../typeOfThisInStaticMembers4.ts | 12 + + .../typeOfThisInStaticMembers5.ts | 9 + + .../typeOfThisInStaticMembers6.ts | 7 + + .../typeOfThisInStaticMembers7.ts | 12 + + .../typeOfThisInStaticMembers8.ts | 19 + + .../typeOfThisInStaticMembers9.ts | 22 + + .../privateNameComputedPropertyName3.ts | 2 + + .../privateNames/privateNameFieldAccess.ts | 1 + + .../privateNames/privateNameHashCharName.ts | 11 + + .../privateNames/privateNameInInExpression.ts | 119 +++++ + .../privateNameInInExpressionTransform.ts | 47 ++ + .../privateNameInInExpressionUnused.ts | 13 + + .../privateNamesIncompatibleModifiersJs.ts | 65 +++ + .../classes/mixinClassesAnnotated.ts | 3 + + .../classes/mixinClassesAnonymous.ts | 2 + + .../classes/mixinClassesMembers.ts | 5 + + .../abstractProperty.ts | 3 + + .../abstractPropertyInitializer.ts | 5 + + .../instanceMemberInitialization.ts | 7 +- + ...instanceMemberWithComputedPropertyName2.ts | 1 + + .../staticFactory1.ts | 3 +- + .../staticAndNonStaticPropertiesSameName.ts | 3 +- + .../staticPropertyAndFunctionWithSameName.ts | 4 +- + ...icPropertyNameConflictsInAmbientContext.ts | 10 + + .../controlFlow/assertionTypePredicates2.ts | 27 + + .../controlFlow/controlFlowAliasing.ts | 285 ++++++++++ + .../controlFlowAliasingCatchVariables.ts | 28 + + .../controlFlow/controlFlowElementAccess2.ts | 2 +- + .../controlFlow/controlFlowForInStatement2.ts | 25 + + .../controlFlow/controlFlowInOperator.ts | 26 + + .../controlFlowInstanceofExtendsFunction.ts | 4 +- + .../controlFlowSuperPropertyAccess.ts | 1 + + .../controlFlow/controlFlowTypeofObject.ts | 71 +++ + .../dependentDestructuredVariables.ts | 161 ++++++ + .../typeGuardsNestedAssignments.ts | 3 +- + .../controlFlow/typeGuardsTypeParameters.ts | 1 + + .../declarationEmitWorkWithInlineComments.ts | 5 +- + .../declarationEmitThisPredicates01.ts | 3 +- + ...tionEmitThisPredicatesWithPrivateName01.ts | 3 +- + .../typeReferenceRelatedFiles/fs.d.ts | 5 + + .../typeReferenceRelatedFiles/main.ts | 2 + + .../typeReferenceRelatedFiles/package.json | 4 + + .../typeReferenceRelatedFiles.ts | 18 + + .../decoratorOnClassConstructorParameter5.ts | 15 + + .../class/decoratedBlockScopedClass1.ts | 16 + + .../class/decoratedBlockScopedClass2.ts | 19 + + .../class/decoratedBlockScopedClass3.ts | 27 + + .../class/method/decoratorOnClassMethod14.ts | 14 + + .../class/method/decoratorOnClassMethod15.ts | 12 + + .../class/method/decoratorOnClassMethod16.ts | 12 + + .../class/method/decoratorOnClassMethod17.ts | 11 + + .../class/method/decoratorOnClassMethod18.ts | 11 + + .../decoratorMetadataWithTypeOnlyImport2.ts | 17 + + ...ter.asyncGenerators.classMethods.es2015.ts | 11 + + .../conformance/es2018/es2018IntlAPIs.ts | 7 + + .../conformance/es2020/es2020IntlAPIs.ts | 45 ++ + ...tionWithPropertyAccessInHeritageClause1.ts | 4 +- + .../superCallBeforeThisAccessing1.ts | 1 + + .../superCallBeforeThisAccessing2.ts | 1 + + .../superCallBeforeThisAccessing5.ts | 1 + + .../superCallBeforeThisAccessing8.ts | 1 + + .../es6/spread/arraySpreadImportHelpers.ts | 16 + + ...mplateStringWithCommentsInArrowFunction.ts | 14 + + .../expressions/asOperator/asOperatorASI.ts | 1 + + .../comparisonOperatorWithIdenticalObjects.ts | 6 +- + .../comparisonOperatorWithIntersectionType.ts | 5 + + ...nshipObjectsOnInstantiatedCallSignature.ts | 4 +- + ...jectsOnInstantiatedConstructorSignature.ts | 4 +- + ...peratorWithSubtypeObjectOnCallSignature.ts | 3 +- + ...WithSubtypeObjectOnConstructorSignature.ts | 3 +- + ...eratorWithSubtypeObjectOnIndexSignature.ts | 3 +- + ...ubtypeObjectOnInstantiatedCallSignature.ts | 3 +- + ...bjectOnInstantiatedConstructorSignature.ts | 3 +- + ...isonOperatorWithSubtypeObjectOnProperty.ts | 6 +- + ...anceofOperatorWithInvalidStaticToString.ts | 3 + + .../instanceofOperatorWithLHSIsObject.ts | 1 + + ...ommaOperatorWithSecondOperandObjectType.ts | 1 + + .../conditionalOperatorWithIdenticalBCT.ts | 3 + + .../superCallParameterContextualTyping1.ts | 2 + + .../superCallParameterContextualTyping3.ts | 3 +- + .../functionCalls/callWithSpread.ts | 1 + + .../functions/arrowFunctionExpressions.ts | 1 + + .../newOperator/newOperatorConformance.ts | 1 + + .../expressions/superCalls/superCalls.ts | 2 + + .../thisKeyword/typeOfThisGeneral.ts | 178 +++++++ + .../typeGuards/TypeGuardWithArrayUnion.ts | 1 + + .../typeGuards/typeGuardFunction.ts | 6 +- + .../typeGuards/typeGuardFunctionGenerics.ts | 4 +- + .../typeGuardOfFormExpr1AndExpr2.ts | 3 +- + .../typeGuards/typeGuardOfFormExpr1OrExpr2.ts | 3 +- + .../typeGuards/typeGuardOfFormInstanceOf.ts | 45 +- + .../typeGuards/typeGuardOfFormIsType.ts | 5 +- + .../typeGuardOfFormTypeOfBoolean.ts | 1 + + .../typeGuards/typeGuardOfFormTypeOfNumber.ts | 1 + + .../typeGuards/typeGuardOfFormTypeOfString.ts | 1 + + .../typeGuardOfFromPropNameInUnionType.ts | 9 + + .../typeGuards/typeGuardsInClassAccessors.ts | 1 + + .../typeGuards/typeGuardsInClassMethods.ts | 1 + + .../typeGuards/typeGuardsInProperties.ts | 3 +- + .../typeGuards/typeGuardsOnClassProperty.ts | 3 +- + .../bitwiseNotOperatorWithNumberType.ts | 3 +- + .../bitwiseNotOperatorWithStringType.ts | 3 +- + .../externalModules/exportNonVisibleType.ts | 1 + + .../moduleResolutionWithoutExtension1.ts | 12 + + .../moduleResolutionWithoutExtension2.ts | 6 + + .../moduleResolutionWithoutExtension3.ts | 12 + + .../moduleResolutionWithoutExtension4.ts | 12 + + .../moduleResolutionWithoutExtension5.ts | 6 + + .../moduleResolutionWithoutExtension6.ts | 8 + + .../moduleResolutionWithoutExtension7.ts | 6 + + .../moduleResolutionWithoutExtension8.ts | 6 + + .../typeOnly/exportSpecifiers.ts | 21 + + .../typeOnly/importDefaultNamedType/a.ts | 2 + + .../importDefaultNamedType.ts | 5 + + .../typeOnly/importSpecifiers1.ts | 46 ++ + .../typeOnly/preserveValueImports.ts | 28 + + .../typeOnly/preserveValueImports_errors.ts | 47 ++ + ...erveValueImports_importsNotUsedAsValues.ts | 14 + + .../preserveValueImports_mixedImports.ts | 13 + + .../typeOnly/preserveValueImports_module.ts | 4 + + .../importAssertion/importAssertion1.ts | 37 ++ + .../importAssertion/importAssertion2.ts | 17 + + .../importAssertion/importAssertion3.ts | 15 + + .../importAssertion/importAssertion4.ts | 1 + + .../importAssertion/importAssertion5.ts | 1 + + .../mergedInterfacesWithMultipleBases3.ts | 6 +- + .../interfaceExtendsObjectIntersection.ts | 12 + + .../interfaceWithPropertyOfEveryType.ts | 3 +- + ...duleAndAmbientWithSameNameAndCommonRoot.ts | 1 - + ...onAmbientClassWithSameNameAndCommonRoot.ts | 1 + + ...ionAndNonExportedFunctionThatShareAName.ts | 4 +- + ...ortedAndNonExportedClassesOfTheSameName.ts | 4 + + ...rgeEachWithExportedModulesOfTheSameName.ts | 2 + + .../codeGeneration/exportCodeGen.ts | 2 + + .../codeGeneration/nameCollision.ts | 1 + + .../jsdoc/constructorTagOnClassConstructor.ts | 4 +- + ...bclassWithExplicitNoArgumentConstructor.ts | 3 +- + .../declarations/jsDeclarationsThisTypes.ts | 4 +- + .../jsdoc/enumTagImported/enumTagImported.ts | 23 + + tests/cases/conformance/jsdoc/extendsTag1.ts | 1 + + .../jsdocAugments_qualifiedName.ts | 10 + + .../jsdoc/jsdocAugments_withTypeParameter.ts | 1 + + .../jsdocImplements_namespacedInterface.ts | 2 + + .../jsdoc/jsdocTemplateTagDefault.ts | 71 +++ + .../jsdoc/jsdocTemplateTagNameResolution.ts | 16 + + .../jsdoc/jsdocTypeReferenceUseBeforeDef.ts | 1 + + .../conformance/jsdoc/jsdocVariadicType.ts | 12 + + tests/cases/conformance/jsdoc/seeTag3.ts | 7 + + tests/cases/conformance/jsdoc/thisTag2.ts | 11 + + .../conformance/jsx/jsxParsingError4.tsx | 18 + + .../jsx/jsxUnclosedParserRecovery.ts | 140 +++++ + .../jsx/tsxReactEmitSpreadAttribute.ts | 32 ++ + .../declarationNotFoundPackageBundlesTypes.ts | 23 + + .../scopedPackages/index.d.ts | 3 + + .../scopedPackages/scopedPackages.ts | 12 + + .../moduleResolution/scopedPackages/z.d.ts | 2 + + .../scopedPackagesClassic/index.d.ts | 2 + + .../scopedPackagesClassic.ts | 9 + + .../untypedModuleImport_allowJs.ts | 12 + + .../declarations.d.ts | 4 + + .../untypedModuleImport_vsAmbient.ts | 12 + + .../allowJs/nodeAllowJsPackageSelfName.ts | 24 + + .../node/allowJs/nodeModulesAllowJs1.ts | 324 ++++++++++++ + .../allowJs/nodeModulesAllowJsCjsFromJs.ts | 8 + + ...ModulesAllowJsConditionalPackageExports.ts | 126 +++++ + .../nodeModulesAllowJsDynamicImport.ts | 27 + + .../nodeModulesAllowJsExportAssignment.ts | 32 ++ + ...deModulesAllowJsGeneratedNameCollisions.ts | 29 ++ + .../nodeModulesAllowJsImportAssignment.ts | 34 ++ + ...eModulesAllowJsImportHelpersCollisions1.ts | 34 ++ + ...eModulesAllowJsImportHelpersCollisions2.ts | 30 ++ + ...eModulesAllowJsImportHelpersCollisions3.ts | 32 ++ + .../allowJs/nodeModulesAllowJsImportMeta.ts | 23 + + .../nodeModulesAllowJsPackageExports.ts | 92 ++++ + .../nodeModulesAllowJsPackageImports.ts | 41 ++ + ...nodeModulesAllowJsPackagePatternExports.ts | 69 +++ + ...lesAllowJsPackagePatternExportsTrailers.ts | 69 +++ + ...nodeModulesAllowJsSynchronousCallErrors.ts | 37 ++ + .../nodeModulesAllowJsTopLevelAwait.ts | 25 + + ...lesExportsSpecifierGenerationConditions.ts | 33 ++ + tests/cases/conformance/node/nodeModules1.ts | 321 ++++++++++++ + ...odeModulesCjsFormatFileAlwaysHasDefault.ts | 19 + + .../nodeModulesConditionalPackageExports.ts | 124 +++++ + ...tionEmitDynamicImportWithPackageExports.ts | 71 +++ + ...odulesDeclarationEmitWithPackageExports.ts | 93 ++++ + .../node/nodeModulesDynamicImport.ts | 24 + + .../node/nodeModulesExportAssignments.ts | 20 + + ...ModulesExportsBlocksSpecifierResolution.ts | 27 + + ...lesExportsSpecifierGenerationConditions.ts | 34 ++ + ...ulesExportsSpecifierGenerationDirectory.ts | 29 ++ + ...odulesExportsSpecifierGenerationPattern.ts | 29 ++ + .../node/nodeModulesForbidenSyntax.ts | 67 +++ + .../nodeModulesGeneratedNameCollisions.ts | 26 + + .../node/nodeModulesImportAssertions.ts | 13 + + .../node/nodeModulesImportAssignments.ts | 31 ++ + .../nodeModulesImportHelpersCollisions.ts | 31 ++ + .../nodeModulesImportHelpersCollisions2.ts | 27 + + .../nodeModulesImportHelpersCollisions3.ts | 25 + + .../conformance/node/nodeModulesImportMeta.ts | 20 + + .../nodeModulesImportResolutionIntoExport.ts | 24 + + .../nodeModulesImportResolutionNoCycle.ts | 24 + + .../node/nodeModulesPackageExports.ts | 90 ++++ + .../node/nodeModulesPackageImports.ts | 38 ++ + .../node/nodeModulesPackagePatternExports.ts | 67 +++ + ...odeModulesPackagePatternExportsTrailers.ts | 67 +++ + .../node/nodeModulesResolveJsonModule.ts | 29 ++ + .../node/nodeModulesSynchronousCallErrors.ts | 34 ++ + .../node/nodeModulesTopLevelAwait.ts | 22 + + .../nodeModulesTypesVersionPackageExports.ts | 53 ++ + .../conformance/node/nodePackageSelfName.ts | 21 + + .../node/nodePackageSelfNameScoped.ts | 21 + + .../cases/conformance/override/override10.ts | 3 +- + .../cases/conformance/override/override12.ts | 1 + + .../cases/conformance/override/override15.ts | 9 + + .../cases/conformance/override/override16.ts | 1 + + .../cases/conformance/override/override17.ts | 1 + + .../cases/conformance/override/override18.ts | 1 + + .../cases/conformance/override/override19.ts | 20 + + .../cases/conformance/override/override20.ts | 34 ++ + .../conformance/override/override_js1.ts | 4 +- + .../conformance/override/override_js4.ts | 14 + + .../parserClassDeclaration16.ts | 3 +- + .../parserClassDeclaration17.ts | 1 + + .../parserClassDeclaration19.ts | 3 +- + .../parserClassDeclaration20.ts | 3 +- + .../parserClassDeclaration23.ts | 3 +- + .../parserClassDeclaration26.ts | 3 +- + .../parserClassDeclarationIndexSignature1.ts | 3 +- + .../parserConstructorDeclaration1.ts | 3 +- + .../parserConstructorDeclaration5.ts | 3 +- + .../parserAccessibilityAfterStatic11.ts | 1 + + .../parserAccessibilityAfterStatic14.ts | 1 + + .../parserAccessibilityAfterStatic2.ts | 1 + + .../parserAccessibilityAfterStatic3.ts | 1 + + .../parserAccessibilityAfterStatic4.ts | 1 + + .../parserAccessibilityAfterStatic5.ts | 1 + + .../Generics/parserGenericClass1.ts | 3 +- + .../Generics/parserGenericClass2.ts | 3 +- + .../Generics/parserGenericConstraint1.ts | 3 +- + .../parserIndexMemberDeclaration1.ts | 3 +- + .../parserIndexMemberDeclaration2.ts | 3 +- + .../parserIndexMemberDeclaration3.ts | 3 +- + .../parserIndexMemberDeclaration4.ts | 3 +- + .../parserIndexMemberDeclaration6.ts | 3 +- + .../parserMemberVariableDeclaration5.ts | 3 +- + .../ecmascript5/Protected/Protected3.ts | 3 +- + .../ecmascript5/Protected/Protected5.ts | 3 +- + .../ecmascript5/Protected/Protected9.ts | 3 +- + .../RegressionTests/parser509546.ts | 1 + + .../RegressionTests/parser509546_1.ts | 1 + + .../RegressionTests/parser509546_2.ts | 1 + + .../parser/ecmascript5/parserUnicode3.ts | 3 +- + .../Iterators/parserForOfStatement22.ts | 4 + + .../Iterators/parserForOfStatement23.ts | 6 + + .../Iterators/parserForOfStatement24.ts | 4 + + .../inferringClassMembersFromAssignments3.ts | 1 + + .../conformance/salsa/plainJSBinderErrors.ts | 44 ++ + .../conformance/salsa/plainJSRedeclare.ts | 6 + + .../conformance/salsa/plainJSRedeclare2.ts | 7 + + .../conformance/salsa/plainJSRedeclare3.ts | 7 + + .../salsa/plainJSReservedStrict.ts | 7 + + .../conformance/salsa/spellingUncheckedJS.ts | 51 ++ + .../salsa/typeFromJSInitializer2.ts | 18 + + .../salsa/typeFromJSInitializer3.ts | 18 + + .../salsa/typeFromJSInitializer4.ts | 29 ++ + .../salsa/typeFromPropertyAssignment23.ts | 3 + + .../for-inStatementsAsyncIdentifier.ts | 4 + + .../returnStatements/returnStatements.ts | 1 + + .../throwInEnclosingStatements.ts | 1 + + .../types/any/anyAsGenericFunctionCall.ts | 4 +- + .../types/any/assignAnyToEveryType.ts | 4 +- + .../types/any/assignEveryTypeToAny.ts | 4 +- + .../conformance/types/conditional/variance.ts | 2 + + ...tatedFunctionInferenceWithTypeParameter.ts | 3 + + .../types/import/importTypeAmbient.ts | 5 +- + .../types/import/importTypeGenericTypes.ts | 5 +- + .../types/import/importTypeLocal.ts | 5 + + .../intersectionOfUnionNarrowing.ts | 16 + + .../types/keyof/keyofAndIndexedAccess.ts | 20 + + .../types/literal/literalTypes2.ts | 3 + + .../types/localTypes/localTypes2.ts | 3 + + .../types/localTypes/localTypes3.ts | 3 + + .../mapped/mappedTypeAsClauseRelationships.ts | 27 + + .../types/mapped/mappedTypeProperties.ts | 42 ++ + .../conformance/types/mapped/mappedTypes3.ts | 4 +- + .../types/mapped/mappedTypesAndObjects.ts | 2 + + .../members/classWithProtectedProperty.ts | 4 +- + .../types/members/indexSignatures1.ts | 325 ++++++++++++ + .../objectTypeHidingMembersOfObject.ts | 4 +- + .../types/members/objectTypePropertyAccess.ts | 2 + + .../members/objectTypeWithNumericProperty.ts | 4 +- + ...hStringNamedPropertyOfIllegalCharacters.ts | 2 + + .../typesWithSpecializedCallSignatures.ts | 5 +- + ...typesWithSpecializedConstructSignatures.ts | 5 +- + .../namedTypes/classWithOptionalParameter.ts | 5 +- + .../types/namedTypes/optionalMethods.ts | 3 + + .../conformance/types/never/neverType.ts | 2 + + ...ureWithoutReturnTypeAnnotationInference.ts | 6 +- + .../callSignaturesWithDuplicateParameters.ts | 4 +- + .../callSignaturesWithOptionalParameters.ts | 2 + + .../callSignaturesWithOptionalParameters2.ts | 4 +- + .../parametersWithNoAnnotationAreAny.ts | 4 +- + ...reIsNotSubtypeOfNonSpecializedSignature.ts | 3 + + ...atureIsSubtypeOfNonSpecializedSignature.ts | 3 + + ...gLiteralTypesInImplementationSignatures.ts | 2 + + .../typeParameterAsTypeArgument.ts | 4 +- + ...WithOverloadsThatDifferOnlyByReturnType.ts | 5 +- + .../indexSignatures/numericIndexingResults.ts | 4 +- + .../indexSignatures/stringIndexingResults.ts | 2 + + .../propertyNameWithoutTypeAnnotation.ts | 4 +- + .../propertyNamesOfReservedWords.ts | 4 +- + .../stringNamedPropertyAccess.ts | 4 +- + .../number/extendNumberInterface.ts | 2 +- + .../undefined/invalidUndefinedValues.ts | 4 +- + .../undefined/validUndefinedAssignments.ts | 4 +- + .../types/rest/objectRestParameter.ts | 1 + + .../typeLiterals/arrayOfFunctionTypes3.ts | 4 +- + .../functionLiteralForOverloads2.ts | 5 +- + .../typeQueries/typeQueryOnClass.ts | 5 +- + .../typeQueries/typeQueryWithReservedWords.ts | 1 + + .../typeQueries/typeofClass2.ts | 5 +- + .../typeQueries/typeofModuleWithoutExports.ts | 3 +- + .../specifyingTypes/typeQueries/typeofThis.ts | 146 ++++++ + .../typeQueries/typeofThisWithImplicitThis.ts | 5 + + .../types/spread/spreadDuplicate.ts | 21 + + .../types/spread/spreadDuplicateExact.ts | 22 + + .../conformance/types/spread/spreadUnion4.ts | 4 + + .../types/thisType/fluentClasses.ts | 2 + + .../types/thisType/thisTypeAndConstraints.ts | 3 + + .../types/thisType/thisTypeInClasses.ts | 6 + + .../types/thisType/thisTypeInFunctions3.ts | 3 + + .../thisType/thisTypeInTaggedTemplateCall.ts | 10 + + .../types/tuple/readonlyArraysAndTuples2.ts | 2 + + .../circularTypeAliasForUnionWithClass.ts | 4 + + .../classDoesNotDependOnBaseTypes.ts | 4 +- + .../types/typeAliases/typeAliases.ts | 4 +- + ...allGenericFunctionWithZeroTypeArguments.ts | 5 +- + .../functionConstraintSatisfaction.ts | 5 +- + .../functionConstraintSatisfaction3.ts | 5 +- + .../innerTypeParameterShadowingOuterOne2.ts | 4 +- + ...rtyAccessOnTypeParameterWithConstraints.ts | 3 +- + ...tyAccessOnTypeParameterWithConstraints2.ts | 7 +- + ...tyAccessOnTypeParameterWithConstraints3.ts | 4 +- + ...AccessOnTypeParameterWithoutConstraints.ts | 4 +- + .../typeParameterUsedAsConstraint.ts | 7 + + .../anyAssignabilityInInheritance.ts | 6 +- + .../anyAssignableToEveryType.ts | 1 + + .../anyAssignableToEveryType2.ts | 3 + + .../assignmentCompatWithObjectMembers.ts | 5 +- + .../assignmentCompatWithObjectMembers2.ts | 2 + + .../assignmentCompatWithObjectMembers3.ts | 2 + + ...mentCompatWithObjectMembersNumericNames.ts | 2 + + ...allSignatureAssignabilityInInheritance2.ts | 6 +- + ...allSignatureAssignabilityInInheritance4.ts | 6 +- + ...allSignatureAssignabilityInInheritance5.ts | 5 +- + ...uctSignatureAssignabilityInInheritance2.ts | 6 +- + ...uctSignatureAssignabilityInInheritance4.ts | 5 +- + ...uctSignatureAssignabilityInInheritance5.ts | 5 +- + .../everyTypeAssignableToAny.ts | 2 + + .../nullAssignableToEveryType.ts | 2 +- + .../undefinedAssignableToEveryType.ts | 1 + + .../bestCommonTypeOfConditionalExpressions.ts | 5 +- + ...bestCommonTypeOfConditionalExpressions2.ts | 4 +- + .../heterogeneousArrayLiterals.ts | 2 + + .../narrowingConstrainedTypeVariable.ts | 3 + + .../arrayLiteralsWithRecursiveGenerics.ts | 6 +- + .../recursiveTypeInGenericConstraint.ts | 5 +- + .../recursiveTypesUsedAsFunctionParameters.ts | 5 +- + .../nullIsSubtypeOfEverythingButUndefined.ts | 4 + + .../stringLiteralTypeIsSubtypeOfString.ts | 4 +- + .../subtypesAndSuperTypes/subtypesOfAny.ts | 5 +- + ...subtypesOfTypeParameterWithConstraints2.ts | 5 +- + .../subtypingWithCallSignatures2.ts | 6 + + .../subtypingWithCallSignatures3.ts | 4 + + .../subtypingWithCallSignatures4.ts | 6 +- + .../subtypingWithConstructSignatures2.ts | 5 + + .../subtypingWithConstructSignatures3.ts | 4 + + .../subtypingWithConstructSignatures4.ts | 6 +- + .../subtypingWithConstructSignatures5.ts | 6 +- + .../subtypingWithObjectMembers4.ts | 6 +- + .../undefinedIsSubtypeOfEverything.ts | 25 + + .../objectTypesIdentity.ts | 6 +- + .../objectTypesIdentity2.ts | 5 +- + .../objectTypesIdentityWithCallSignatures.ts | 5 +- + .../objectTypesIdentityWithCallSignatures2.ts | 5 +- + ...yWithCallSignaturesDifferingParamCounts.ts | 5 +- + ...IdentityWithCallSignaturesWithOverloads.ts | 6 +- + ...ectTypesIdentityWithConstructSignatures.ts | 6 +- + ...ctTypesIdentityWithConstructSignatures2.ts | 4 +- + ...ConstructSignaturesDifferingParamCounts.ts | 4 +- + ...tTypesIdentityWithGenericCallSignatures.ts | 6 +- + ...TypesIdentityWithGenericCallSignatures2.ts | 6 +- + ...ricCallSignaturesDifferingByConstraints.ts | 6 +- + ...icCallSignaturesDifferingByConstraints2.ts | 6 +- + ...icCallSignaturesDifferingByConstraints3.ts | 9 +- + ...ericCallSignaturesDifferingByReturnType.ts | 5 +- + ...ricCallSignaturesDifferingByReturnType2.ts | 6 +- + ...lSignaturesDifferingTypeParameterCounts.ts | 6 +- + ...llSignaturesDifferingTypeParameterNames.ts | 5 +- + ...WithGenericCallSignaturesOptionalParams.ts | 5 +- + ...ithGenericCallSignaturesOptionalParams2.ts | 5 +- + ...ithGenericCallSignaturesOptionalParams3.ts | 6 +- + ...nstructSignaturesDifferingByConstraints.ts | 2 + + ...structSignaturesDifferingByConstraints2.ts | 7 +- + ...structSignaturesDifferingByConstraints3.ts | 7 +- + ...onstructSignaturesDifferingByReturnType.ts | 4 +- + ...nstructSignaturesDifferingByReturnType2.ts | 6 +- + ...tSignaturesDifferingTypeParameterCounts.ts | 4 +- + ...ctSignaturesDifferingTypeParameterNames.ts | 6 +- + ...enericConstructSignaturesOptionalParams.ts | 5 +- + ...nericConstructSignaturesOptionalParams2.ts | 5 +- + ...nericConstructSignaturesOptionalParams3.ts | 4 +- + ...objectTypesIdentityWithNumericIndexers1.ts | 3 + + ...objectTypesIdentityWithNumericIndexers2.ts | 5 + + ...objectTypesIdentityWithNumericIndexers3.ts | 3 + + .../objectTypesIdentityWithOptionality.ts | 6 +- + .../objectTypesIdentityWithPrivates.ts | 4 +- + .../objectTypesIdentityWithPrivates2.ts | 1 + + .../objectTypesIdentityWithPublics.ts | 5 +- + .../objectTypesIdentityWithStringIndexers.ts | 3 + + .../objectTypesIdentityWithStringIndexers2.ts | 5 + + .../typeParametersAreIdenticalToThemselves.ts | 4 +- + ...allWithConstraintsTypeArgumentInference.ts | 3 + + .../genericCallWithFunctionTypedArguments4.ts | 4 +- + .../genericCallWithObjectTypeArgs2.ts | 4 +- + ...ricCallWithObjectTypeArgsAndConstraints.ts | 10 +- + ...icCallWithObjectTypeArgsAndConstraints2.ts | 1 + + ...icClassWithObjectTypeArgsAndConstraints.ts | 7 +- + .../keyofInferenceLowerPriorityThanReturn.ts | 4 + + .../types/union/discriminatedUnionTypes3.ts | 19 + + 497 files changed, 8097 insertions(+), 197 deletions(-) + create mode 100644 tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts + create mode 100644 tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts + create mode 100644 tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts + create mode 100644 tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts + create mode 100644 tests/cases/conformance/controlFlow/assertionTypePredicates2.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowAliasing.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowInOperator.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts + create mode 100644 tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts + create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts + create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts + create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json + create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts + create mode 100644 tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts + create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts + create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts + create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts + create mode 100644 tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts + create mode 100644 tests/cases/conformance/es2018/es2018IntlAPIs.ts + create mode 100644 tests/cases/conformance/es2020/es2020IntlAPIs.ts + create mode 100644 tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts + create mode 100644 tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts + create mode 100644 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts + create mode 100644 tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion1.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion2.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion3.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion4.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion5.ts + create mode 100644 tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts + create mode 100644 tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts + create mode 100644 tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts + create mode 100644 tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts + create mode 100644 tests/cases/conformance/jsdoc/jsdocVariadicType.ts + create mode 100644 tests/cases/conformance/jsdoc/seeTag3.ts + create mode 100644 tests/cases/conformance/jsdoc/thisTag2.ts + create mode 100644 tests/cases/conformance/jsx/jsxParsingError4.tsx + create mode 100644 tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts + create mode 100644 tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts + create mode 100644 tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts + create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts + create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts + create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts + create mode 100644 tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts + create mode 100644 tests/cases/conformance/node/nodeModules1.ts + create mode 100644 tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts + create mode 100644 tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesDynamicImport.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportAssignments.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts + create mode 100644 tests/cases/conformance/node/nodeModulesForbidenSyntax.ts + create mode 100644 tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportAssertions.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportAssignments.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportMeta.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts + create mode 100644 tests/cases/conformance/node/nodeModulesPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesPackageImports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesPackagePatternExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts + create mode 100644 tests/cases/conformance/node/nodeModulesResolveJsonModule.ts + create mode 100644 tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts + create mode 100644 tests/cases/conformance/node/nodeModulesTopLevelAwait.ts + create mode 100644 tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodePackageSelfName.ts + create mode 100644 tests/cases/conformance/node/nodePackageSelfNameScoped.ts + create mode 100644 tests/cases/conformance/override/override15.ts + create mode 100644 tests/cases/conformance/override/override19.ts + create mode 100644 tests/cases/conformance/override/override20.ts + create mode 100644 tests/cases/conformance/override/override_js4.ts + create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts + create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts + create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts + create mode 100644 tests/cases/conformance/salsa/plainJSBinderErrors.ts + create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare.ts + create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare2.ts + create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare3.ts + create mode 100644 tests/cases/conformance/salsa/plainJSReservedStrict.ts + create mode 100644 tests/cases/conformance/salsa/spellingUncheckedJS.ts + create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer2.ts + create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer3.ts + create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer4.ts + create mode 100644 tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts + create mode 100644 tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts + create mode 100644 tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts + create mode 100644 tests/cases/conformance/types/mapped/mappedTypeProperties.ts + create mode 100644 tests/cases/conformance/types/members/indexSignatures1.ts + create mode 100644 tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts + create mode 100644 tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts + create mode 100644 tests/cases/conformance/types/spread/spreadDuplicate.ts + create mode 100644 tests/cases/conformance/types/spread/spreadDuplicateExact.ts + create mode 100644 tests/cases/conformance/types/spread/spreadUnion4.ts + create mode 100644 tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts + create mode 100644 tests/cases/conformance/types/union/discriminatedUnionTypes3.ts + +diff --git a/tests/cases/conformance/ambient/ambientDeclarations.ts b/tests/cases/conformance/ambient/ambientDeclarations.ts +index 379f5a5440..156ca565af 100644 +--- a/tests/cases/conformance/ambient/ambientDeclarations.ts ++++ b/tests/cases/conformance/ambient/ambientDeclarations.ts +@@ -73,3 +73,4 @@ declare module 'external1' { + var q; + } + ++let qq2 = new cls(); +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts +new file mode 100644 +index 0000000000..8b2be7e0b2 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts +@@ -0,0 +1,11 @@ ++// @Filename: user.ts ++/// ++import {foo, baz} from "foobarbaz"; ++foo(baz); ++ ++import {foos} from "foosball"; ++foo(foos); ++ ++// Works with relative file name ++import fileText from "./file!text"; ++foo(fileText); +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts +new file mode 100644 +index 0000000000..725593c54e +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts +@@ -0,0 +1,18 @@ ++// @Filename: declarations.d.ts ++declare module "foo*baz" { ++ export function foo(s: string): void; ++} ++// Augmentations still work ++declare module "foo*baz" { ++ export const baz: string; ++} ++ ++// Longest prefix wins ++declare module "foos*" { ++ export const foos: string; ++} ++ ++declare module "*!text" { ++ const x: string; ++ export default x; ++} +diff --git a/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts b/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts +index e2f24113c9..d07ac13995 100644 +--- a/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts ++++ b/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts +@@ -4,6 +4,7 @@ module M { + export declare class C { } + export declare enum E { } + export declare module M { } ++ let qq1 = new C(); + } + + module M2 { +@@ -12,4 +13,5 @@ module M2 { + declare class C { } + declare enum E { } + declare module M { } ++ let qq1 = new C(); + } +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts b/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts +index dbdc315c74..3e1e4bfa35 100644 +--- a/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts ++++ b/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts +@@ -3,4 +3,6 @@ export declare var x; + export declare function f(); + export declare class C { } + export declare enum E { } +-export declare module M { } +\ No newline at end of file ++export declare module M { } ++ ++let qq1 = new C(); +diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts +new file mode 100644 +index 0000000000..a52d4c04bf +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts +@@ -0,0 +1,6 @@ ++// @Filename: user.ts ++/// ++/// ++import foo, {bar} from "foo"; ++foo; ++bar; +diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts +new file mode 100644 +index 0000000000..66bdaa0fc8 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts +@@ -0,0 +1,2 @@ ++// @Filename: declarations1.d.ts ++declare module "foo"; +diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts +new file mode 100644 +index 0000000000..ff7233979a +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts +@@ -0,0 +1,4 @@ ++// @Filename: declarations2.d.ts ++declare module "foo" { ++ export const bar: number; ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts +new file mode 100644 +index 0000000000..45ba9cd111 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts +@@ -0,0 +1,5 @@ ++// @Filename: reExportUser.ts ++import {x} from "./reExportX"; ++import * as $ from "./reExportAll"; ++// '$' is not callable, it is an object. ++x($); +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts +new file mode 100644 +index 0000000000..58d1d8215b +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts +@@ -0,0 +1,2 @@ ++// @Filename: declarations.d.ts ++declare module "jquery"; +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts +new file mode 100644 +index 0000000000..58d1d8215b +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts +@@ -0,0 +1,2 @@ ++// @Filename: declarations.d.ts ++declare module "jquery"; +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts +new file mode 100644 +index 0000000000..ae6c5d4864 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts +@@ -0,0 +1,2 @@ ++// @Filename: reExportAll.ts ++export * from "jquery"; +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts +new file mode 100644 +index 0000000000..07420e1616 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts +@@ -0,0 +1,2 @@ ++// @Filename: reExportX.ts ++export {x} from "jquery"; +\ No newline at end of file +diff --git a/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts b/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts +index c89369d02b..9f7e496b8a 100644 +--- a/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts ++++ b/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts +@@ -55,3 +55,4 @@ class B extends A { + ({ f: super["x"] } = { f }); + } + } ++let b1 = new B(); +diff --git a/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts b/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts +new file mode 100644 +index 0000000000..31c1c4055c +--- /dev/null ++++ b/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts +@@ -0,0 +1,49 @@ ++// @target: esnext ++ ++function f_let () { ++ let await = 1 ++} ++ ++function f1_var () { ++ var await = 1 ++} ++ ++function f1_const () { ++ const await = 1 ++} ++ ++async function f2_let () { ++ let await = 1 ++} ++ ++async function f2_var () { ++ var await = 1 ++} ++ ++async function f2_const () { ++ const await = 1 ++} ++ ++function f3_let () { ++ let yield = 2 ++} ++ ++function f3_var () { ++ var yield = 2 ++} ++ ++function f3_const () { ++ const yield = 2 ++} ++ ++function * f4_let () { ++ let yield = 2; ++} ++ ++function * f4_var () { ++ var yield = 2; ++} ++ ++function * f4_const () { ++ const yield = 2; ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts b/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts +index 4c251a03c3..1a1aeedd41 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts +@@ -1,5 +1,5 @@ + class abstract { + foo() { return 1; } + } +- ++let a = new abstract() + new abstract; +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts b/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts +index 1a2e456e0f..5437d3a67d 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts +@@ -17,4 +17,6 @@ var d: D; + var o: {} = d; + d = 1; + d = { foo: '' } +-d = () => { } +\ No newline at end of file ++d = () => { } ++let cc = new C(); ++let dd = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts b/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts +index efc3ccff9a..3184fc17d5 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts +@@ -1,3 +1,4 @@ + function foo() { + class C { } ++ let a1 = new C() + } +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts b/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts +index 93daf743f8..1d496f4eaf 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts +@@ -3,4 +3,6 @@ + class any { } + class number { } + class boolean { } +-class string { } +\ No newline at end of file ++class string { } ++ ++let aa = new any(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts +index 6571258d9d..5f049c27e3 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts +@@ -1,3 +1,4 @@ + class C { + ; +-} +\ No newline at end of file ++} ++let c9 = new C() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts +index 716c8b58ae..511baa19f9 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts +@@ -1,4 +1,5 @@ + class C { + ; + ; +-} +\ No newline at end of file ++} ++let a15 = new C() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classExpressions/classExpression2.ts b/tests/cases/conformance/classes/classExpressions/classExpression2.ts +index 6365cd07eb..d39896a361 100644 +--- a/tests/cases/conformance/classes/classExpressions/classExpression2.ts ++++ b/tests/cases/conformance/classes/classExpressions/classExpression2.ts +@@ -1,2 +1,4 @@ + class D { } +-var v = class C extends D {}; +\ No newline at end of file ++var v = class C extends D {}; ++let dd = new D() ++let vv = new v() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts +new file mode 100644 +index 0000000000..dd9455ad8c +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts +@@ -0,0 +1,11 @@ ++// @target: esnext, es2015, es5 ++const a = 2; ++ ++class C { ++ static { ++ const a = 1; ++ ++ a; ++ } ++} ++let a1 = new C() +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts +new file mode 100644 +index 0000000000..aa82e1db13 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts +@@ -0,0 +1,30 @@ ++// @target: esnext, es2015, es5 ++var a1 = 1; ++var a2 = 1; ++const b1 = 2; ++const b2 = 2; ++ ++function f () { ++ var a1 = 11; ++ const b1 = 22; ++ ++ class C1 { ++ static { ++ var a1 = 111; ++ var a2 = 111; ++ const b1 = 222; ++ const b2 = 222; ++ } ++ } ++ let c1 = new C1(); ++} ++ ++class C2 { ++ static { ++ var a1 = 111; ++ var a2 = 111; ++ const b1 = 222; ++ const b2 = 222; ++ } ++} ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts +new file mode 100644 +index 0000000000..00492ae619 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts +@@ -0,0 +1,15 @@ ++// @target: esnext, es2015 ++ ++let getX; ++class C { ++ #x = 1 ++ constructor(x: number) { ++ this.#x = x; ++ } ++ ++ static { ++ // getX has privileged access to #x ++ getX = (obj: C) => obj.#x; ++ } ++} ++let cc = new C(1); +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts +new file mode 100644 +index 0000000000..436c690665 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts +@@ -0,0 +1,10 @@ ++// @useDefineForClassFields: false ++// @target: es2015 ++ ++class C { ++ static #x = 1; ++ ++ static { ++ C.#x; ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts +new file mode 100644 +index 0000000000..8120cc3575 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts +@@ -0,0 +1,14 @@ ++// @target: esnext, es2015 ++// @useDefineForClassFields: true ++ ++class C { ++ static #x = 123; ++ ++ static { ++ console.log(C.#x) ++ } ++ ++ foo () { ++ return C.#x; ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts +new file mode 100644 +index 0000000000..ff510c8436 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts +@@ -0,0 +1,15 @@ ++// @useDefineForClassFields: false ++// @target: es2015 ++ ++class C { ++ static #_1 = 1; ++ static #_3 = 1; ++ static #_5 = 1; ++ ++ static {} ++ static {} ++ static {} ++ static {} ++ static {} ++ static {} ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts +new file mode 100644 +index 0000000000..ec2727660f +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts +@@ -0,0 +1,18 @@ ++// @target: esnext, es2015 ++// @useDefineForClassFields: true ++var _C__1; ++ ++class C { ++ static #_1 = 1; ++ static #_3 = 3; ++ static #_5 = 5; ++ ++ static {} ++ static {} ++ static {} ++ static {} ++ static {} ++ static {} ++} ++ ++console.log(_C__1) +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts +new file mode 100644 +index 0000000000..bc15e5f1ab +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts +@@ -0,0 +1,26 @@ ++// @target: es2015 ++ ++let getX: (c: C) => number; ++class C { ++ #x = 1 ++ constructor(x: number) { ++ this.#x = x; ++ } ++ ++ static { ++ // getX has privileged access to #x ++ getX = (obj: C) => obj.#x; ++ getY = (obj: D) => obj.#y; ++ } ++} ++ ++let getY: (c: D) => number; ++class D { ++ #y = 1 ++ ++ static { ++ // getY has privileged access to y ++ getX = (obj: C) => obj.#x; ++ getY = (obj: D) => obj.#y; ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts +new file mode 100644 +index 0000000000..8d26cb4a08 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts +@@ -0,0 +1,33 @@ ++// @target: es2015 ++ ++let friendA: { getX(o: A): number, setX(o: A, v: number): void }; ++ ++class A { ++ #x: number; ++ ++ constructor (v: number) { ++ this.#x = v; ++ } ++ ++ getX () { ++ return this.#x; ++ } ++ ++ static { ++ friendA = { ++ getX(obj) { return obj.#x }, ++ setX(obj, value) { obj.#x = value } ++ }; ++ } ++}; ++ ++class B { ++ constructor(a: A) { ++ const x = friendA.getX(a); // ok ++ friendA.setX(a, x + 1); // ok ++ } ++}; ++ ++const a = new A(41); ++const b = new B(a); ++a.getX(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts +new file mode 100644 +index 0000000000..a36bd50917 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts +@@ -0,0 +1,15 @@ ++// @target: esnext, es2015, es5 ++ ++function foo () { ++ return class { ++ static foo = 1; ++ static { ++ const c = class { ++ static bar = 2; ++ static { ++ // do ++ } ++ } ++ } ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts +new file mode 100644 +index 0000000000..33bb993be6 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts +@@ -0,0 +1,6 @@ ++class C { ++ @decorator ++ static { ++ // something ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts +new file mode 100644 +index 0000000000..292d7181bb +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts +@@ -0,0 +1,20 @@ ++// @target: esnext, es2015, es5 ++ ++const a = 1; ++const b = 2; ++ ++class C { ++ static { ++ const a = 11; ++ ++ a; ++ b; ++ } ++ ++ static { ++ const a = 11; ++ ++ a; ++ b; ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts +new file mode 100644 +index 0000000000..72a9d09161 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts +@@ -0,0 +1,13 @@ ++class C { ++ async static { ++ // something ++ } ++ ++ public static { ++ // something ++ } ++ ++ readonly private static { ++ // something ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts +new file mode 100644 +index 0000000000..65422df9cd +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts +@@ -0,0 +1,7 @@ ++class C { ++ /* jsdocs */ ++ static { ++ // something ++ } ++} ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts +new file mode 100644 +index 0000000000..8d3be9861a +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts +@@ -0,0 +1,72 @@ ++// @target: esnext ++ ++let await: "any"; ++class C { ++ static { ++ let await: any; // illegal, cannot declare a new binding for await ++ } ++ static { ++ let { await } = {} as any; // illegal, cannot declare a new binding for await ++ } ++ static { ++ let { await: other } = {} as any; // legal ++ } ++ static { ++ let await; // illegal, cannot declare a new binding for await ++ } ++ static { ++ function await() { }; // illegal ++ } ++ static { ++ class await { }; // illegal ++ } ++ ++ static { ++ class D { ++ await = 1; // legal ++ x = await; // legal (initializers have an implicit function boundary) ++ }; ++ } ++ static { ++ (function await() { }); // legal, 'await' in function expression name not bound inside of static block ++ } ++ static { ++ (class await { }); // legal, 'await' in class expression name not bound inside of static block ++ } ++ static { ++ (function () { return await; }); // legal, 'await' is inside of a new function boundary ++ } ++ static { ++ (() => await); // legal, 'await' is inside of a new function boundary ++ } ++ ++ static { ++ class E { ++ constructor() { await; } ++ method() { await; } ++ get accessor() { ++ await; ++ return 1; ++ } ++ set accessor(v: any) { ++ await; ++ } ++ propLambda = () => { await; } ++ propFunc = function () { await; } ++ } ++ } ++ static { ++ class S { ++ static method() { await; } ++ static get accessor() { ++ await; ++ return 1; ++ } ++ static set accessor(v: any) { ++ await; ++ } ++ static propLambda = () => { await; } ++ static propFunc = function () { await; } ++ } ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts +new file mode 100644 +index 0000000000..bb83b27dca +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts +@@ -0,0 +1,21 @@ ++// @target: esnext ++ ++const nums = [1, 2, 3].map(n => Promise.resolve(n)) ++ ++class C { ++ static { ++ for await (const nn of nums) { ++ console.log(nn) ++ } ++ } ++} ++ ++async function foo () { ++ class C { ++ static { ++ for await (const nn of nums) { ++ console.log(nn) ++ } ++ } ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts +new file mode 100644 +index 0000000000..8132238772 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts +@@ -0,0 +1,8 @@ ++// @module: commonjs, es2015, es2020, UMD, AMD, System, esnext ++ ++export class C { ++ static x: number; ++ static { ++ C.x = 1; ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts +new file mode 100644 +index 0000000000..56f99a6122 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts +@@ -0,0 +1,23 @@ ++// @target: esnext ++// @declaration: true ++// @declarationMap: true ++// @sourceMap: true ++ ++const a = 1; ++const b = 2; ++ ++class C { ++ static { ++ const a = 11; ++ ++ a; ++ b; ++ } ++ ++ static { ++ const a = 11; ++ ++ a; ++ b; ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts +new file mode 100644 +index 0000000000..1081729acd +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts +@@ -0,0 +1,30 @@ ++// @target: esnext ++ ++class C { ++ static { ++ await; // illegal ++ } ++ static { ++ await (1); // illegal ++ } ++ static { ++ ({ [await]: 1 }); // illegal ++ } ++ static { ++ class D { ++ [await] = 1; // illegal (computed property names are evaluated outside of a class body ++ }; ++ } ++ static { ++ ({ await }); // illegal short-hand property reference ++ } ++ static { ++ await: // illegal, 'await' cannot be used as a label ++ break await; // illegal, 'await' cannot be used as a label ++ } ++ static { ++ function f(await) { } ++ const ff = (await) => { } ++ const fff = await => { } ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts +new file mode 100644 +index 0000000000..a0429bbb54 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts +@@ -0,0 +1,17 @@ ++// https://github.com/microsoft/TypeScript/issues/44872 ++ ++void class Foo { ++ static prop = 1 ++ static { ++ console.log(Foo.prop); ++ Foo.prop++; ++ } ++ static { ++ console.log(Foo.prop); ++ Foo.prop++; ++ } ++ static { ++ console.log(Foo.prop); ++ Foo.prop++; ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts +new file mode 100644 +index 0000000000..84125fdbed +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts +@@ -0,0 +1,19 @@ ++// @target: esnext ++ ++const a = 1; ++ ++class C { ++ static f1 = 1; ++ ++ static { ++ console.log(C.f1, C.f2, C.f3) ++ } ++ ++ static f2 = 2; ++ ++ static { ++ console.log(C.f1, C.f2, C.f3) ++ } ++ ++ static f3 = 3; ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts +new file mode 100644 +index 0000000000..7a944a4969 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts +@@ -0,0 +1,16 @@ ++// @target: esnext ++ ++class C { ++ static s1 = 1; ++ ++ static { ++ this.s1; ++ C.s1; ++ ++ this.s2; ++ C.s2; ++ } ++ ++ static s2 = 2; ++ static ss2 = this.s1; ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts +new file mode 100644 +index 0000000000..2410b532ab +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts +@@ -0,0 +1,19 @@ ++// @target: esnext, es2015, es5 ++ ++class B { ++ static a = 1; ++ static b = 2; ++} ++ ++class C extends B { ++ static b = 3; ++ static c = super.a ++ ++ static { ++ this.b; ++ super.b; ++ super.a; ++ } ++} ++ ++let cc = new C(); +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts +new file mode 100644 +index 0000000000..cdd0cda2fe +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts +@@ -0,0 +1,62 @@ ++class B { ++ static a = 1; ++} ++ ++class C extends B { ++ static { ++ let await = 1; ++ let arguments = 1; ++ let eval = 1; ++ } ++ ++ static { ++ await: if (true) { ++ ++ } ++ ++ arguments; ++ await; ++ super(); ++ } ++} ++ ++class CC { ++ constructor () { ++ class C extends B { ++ static { ++ class CC extends B { ++ constructor () { ++ super(); ++ } ++ } ++ super(); ++ } ++ } ++ } ++} ++ ++async function foo () { ++ class C extends B { ++ static { ++ arguments; ++ await; ++ ++ async function ff () { ++ arguments; ++ await; ++ } ++ } ++ } ++} ++ ++function foo1 () { ++ class C extends B { ++ static { ++ arguments; ++ ++ function ff () { ++ arguments; ++ } ++ } ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts +new file mode 100644 +index 0000000000..727ada0342 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts +@@ -0,0 +1,43 @@ ++class C { ++ static { ++ await 1; ++ yield 1; ++ return 1; ++ } ++} ++ ++async function f1 () { ++ class C { ++ static { ++ await 1; ++ ++ async function ff () { ++ await 1; ++ } ++ } ++ } ++} ++ ++function * f2 () { ++ class C { ++ static { ++ yield 1; ++ ++ function * ff () { ++ yield 1; ++ } ++ } ++ } ++} ++ ++function f3 () { ++ class C { ++ static { ++ return 1; ++ ++ function ff () { ++ return 1 ++ } ++ } ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts +new file mode 100644 +index 0000000000..d2e5220b83 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts +@@ -0,0 +1,48 @@ ++function foo (v: number) { ++ label: while (v) { ++ class C { ++ static { ++ if (v === 1) { ++ break label; ++ } ++ if (v === 2) { ++ continue label; ++ } ++ if (v === 3) { ++ break ++ } ++ if (v === 4) { ++ continue ++ } ++ } ++ } ++ ++ if (v === 5) { ++ break label; ++ } ++ if (v === 6) { ++ continue label; ++ } ++ if (v === 7) { ++ break; ++ } ++ if (v === 8) { ++ continue; ++ } ++ } ++ ++ class C { ++ static { ++ outer: break outer; // valid ++ loop: while (v) { ++ if (v === 1) break loop; // valid ++ if (v === 2) continue loop; // valid ++ if (v === 3) break; // valid ++ if (v === 4) continue; // valid ++ } ++ switch (v) { ++ default: break; // valid ++ } ++ } ++ } ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts +new file mode 100644 +index 0000000000..d99157b190 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts +@@ -0,0 +1,8 @@ ++// @target: esnext, es2015, es5 ++class A { ++ static bar = A.foo + 1 ++ static { ++ A.foo + 2; ++ } ++ static foo = 1; ++} +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts +new file mode 100644 +index 0000000000..11f8b7f554 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts +@@ -0,0 +1,15 @@ ++// @target: esnext ++// @noEmit: true ++// @strict: true ++ ++class C { ++ static x; ++ static { ++ this.x = 1; ++ } ++ static y = this.x; ++ static z; ++ static { ++ this.z = this.y; ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts +new file mode 100644 +index 0000000000..89658a6ebe +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts +@@ -0,0 +1,10 @@ ++// @target: esnext ++// @noEmit: true ++// @strict: true ++ ++class C { ++ static { ++ this.x = 1; ++ } ++ static x; ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts b/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts +index 3760f2176a..83c7d721b0 100644 +--- a/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts ++++ b/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts +@@ -14,6 +14,7 @@ class A { + } + } + } ++let aa = new A(); + + class D { + protected constructor() { } +@@ -28,4 +29,5 @@ class D { + class F extends D { // OK + } + } +-} +\ No newline at end of file ++} ++let dd = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts +index bdbcd7f959..c75a4f196b 100644 +--- a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts ++++ b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts +@@ -17,4 +17,8 @@ class E { + constructor(x: T = null) { + var y = x; + } +-} +\ No newline at end of file ++} ++ ++let cc = new C(null); ++let dd = new D(null); ++let ee = new E(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts +index 76b41eabba..ffd568ede1 100644 +--- a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts ++++ b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts +@@ -2,4 +2,5 @@ + + class C { + constructor(readonly x: number) {} +-} +\ No newline at end of file ++} ++let c7 = new C(1) +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts b/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts +index c03ce26cc2..e22bf5d126 100644 +--- a/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts ++++ b/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts +@@ -29,3 +29,7 @@ class F { + console.log(this); + } + } ++let c3 =new C() ++let c4 =new D() ++let c5 =new E() ++let c6 =new F() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts b/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts +index 20243d55be..7806d4f33e 100644 +--- a/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts ++++ b/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts +@@ -14,4 +14,6 @@ class Base2 { + // ok, use assignment compatibility + class Derived2 extends Base2 { + [x: number]: any; +-} +\ No newline at end of file ++} ++let c1 = new Derived() ++let c2 = new Derived2() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts +new file mode 100644 +index 0000000000..fd281b1606 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts +@@ -0,0 +1,492 @@ ++// @target: es5, es2015, es2021, esnext ++// @noTypesAndSymbols: true ++ ++// @filename: external.ts ++export class Reflect {} ++export interface Foo {} ++export declare namespace Bar { type _ = unknown; } ++export const enum Baz {} ++export default class {}; ++ ++// @filename: locals.ts ++export {}; ++declare class B { static w(): number; } ++class C extends B { ++ static _ = [ ++ (() => { ++ var Reflect; // collision (es2015-es2021 only) ++ super.w(); ++ })(), ++ (() => { ++ var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) ++ super.w(); ++ })(), ++ (() => { ++ var [Reflect] = [null]; // collision (es2015-es2021 only) ++ super.w(); ++ })(), ++ (() => { ++ class Reflect {} // collision (es2015-es2021 only) ++ super.w(); ++ })(), ++ (() => { ++ function Reflect() {} // collision (es2015-es2021 only) ++ super.w(); ++ })(), ++ (() => { ++ enum Reflect {} // collision (es2015-es2021 only) ++ super.w(); ++ })(), ++ (() => { ++ const enum Reflect {} // collision (es2015-es2021 only) ++ super.w(); ++ })(), ++ (() => { ++ type Reflect = unknown; // no collision ++ super.w(); ++ })(), ++ (() => { ++ interface Reflect {}; // no collision ++ super.w(); ++ })(), ++ (() => { ++ (class Reflect {}); // no collision ++ super.w(); ++ })(), ++ (() => { ++ (function Reflect() {}); // no collision ++ super.w(); ++ })(), ++ ]; ++ ++ static { ++ var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) ++ super.w(); ++ } ++ ++ static { ++ var [Reflect] = [null]; // collision (es2015-es2021 only) ++ super.w(); ++ } ++ ++ static { ++ var Reflect; // collision (es2015-es2021 only) ++ super.w(); ++ } ++ ++ static { ++ class Reflect {} // collision (es2015-es2021 only) ++ super.w(); ++ } ++ ++ static { ++ function Reflect() {} // collision (es2015-es2021 only) ++ super.w(); ++ } ++ ++ static { ++ enum Reflect {} // collision (es2015-es2021 only) ++ super.w(); ++ } ++ ++ static { ++ const enum Reflect {} // collision (es2015-es2021 only) ++ super.w(); ++ } ++ ++ static { ++ type Reflect = unknown; // no collision ++ super.w(); ++ } ++ ++ static { ++ interface Reflect {} // no collision ++ super.w(); ++ } ++ ++ static { ++ (class Reflect {}) // no collision ++ super.w(); ++ } ++ ++ static { ++ (function Reflect() {}) // no collision ++ super.w(); ++ } ++} ++ ++// @filename: varInContainingScopeStaticField1.ts ++export {}; ++declare class B { static w(): number; } ++var Reflect = null; // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: varInContainingScopeStaticField2.ts ++export {}; ++declare class B { static w(): number; } ++var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: varInContainingScopeStaticField3.ts ++export {}; ++declare class B { static w(): number; } ++var [Reflect] = [null]; // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: varInContainingScopeStaticBlock1.ts ++export {}; ++declare class B { static w(): number; } ++var Reflect = null; // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: varInContainingScopeStaticBlock2.ts ++export {}; ++declare class B { static w(): number; } ++var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: varInContainingScopeStaticBlock3.ts ++export {}; ++declare class B { static w(): number; } ++var [Reflect] = [null]; // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: classDeclInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++class Reflect {} // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: classDeclInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++class Reflect {} // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: funcDeclInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++function Reflect() {} // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: funcDeclInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++function Reflect() {} // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: valueNamespaceInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++namespace Reflect {} // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: valueNamespaceInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++namespace Reflect {} // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: enumInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++enum Reflect {} // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: enumInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++enum Reflect {} // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: constEnumInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++const enum Reflect {} // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: constEnumInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++const enum Reflect {} // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: namespaceImportInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++import * as Reflect from "./external"; // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: namespaceImportInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++import * as Reflect from "./external"; // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: namedImportInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++import { Reflect } from "./external"; // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: namedImportInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++import { Reflect } from "./external"; // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: namedImportOfInterfaceInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++import { Foo as Reflect } from "./external"; // collision (es2015-es2021 only, not a type-only import) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: namedImportOfInterfaceInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++import { Foo as Reflect } from "./external"; // collision (es2015-es2021 only, not a type-only import) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: namedImportOfUninstantiatedNamespaceInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++import { Bar as Reflect } from "./external"; // collision (es2015-es2021 only, not a type-only import) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: namedImportOfUninstantiatedNamespaceInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++import { Bar as Reflect } from "./external"; // collision (es2015-es2021 only, not a type-only import) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: namedImportOfConstEnumInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++import { Baz as Reflect } from "./external"; // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: namedImportOfConstEnumInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++import { Baz as Reflect } from "./external"; // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: typeOnlyNamedImportInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++import type { Reflect } from "./external"; // no collision ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: typeOnlyNamedImportInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++import type { Reflect } from "./external"; // no collision ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: defaultImportInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++import Reflect from "./external"; // collision (es2015-es2021 only) ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: defaultImportInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++import Reflect from "./external"; // collision (es2015-es2021 only) ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: typeOnlyDefaultImportInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++import type Reflect from "./external"; // no collision ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: typeOnlyDefaultImportInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++import type Reflect from "./external"; // no collision ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: typeInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++type Reflect = unknown; // no collision ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: typeInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++type Reflect = unknown; // no collision ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: interfaceInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++interface Reflect {}; // no collision ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: interfaceInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++interface Reflect {}; // no collision ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: uninstantiatedNamespaceInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++declare namespace Reflect { type _ = unknown; }; // no collision ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: uninstantiatedNamespaceInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++declare namespace Reflect { type _ = unknown; }; // no collision ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: classExprInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++(class Reflect {}); // no collision ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: classExprInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++(class Reflect {}); // no collision ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: inContainingClassExprStaticField.ts ++export {}; ++declare class B { static w(): number; } ++(class Reflect { // collision (es2015-es2021 only) ++ static { ++ class C extends B { ++ static _ = super.w(); ++ } ++ } ++}); ++ ++// @filename: inContainingClassExprStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++(class Reflect { // collision (es2015-es2021 only) ++ static { ++ class C extends B { ++ static { super.w(); } ++ } ++ } ++}); ++ ++// @filename: funcExprInContainingScopeStaticField.ts ++export {}; ++declare class B { static w(): number; } ++(function Reflect() {}); // no collision ++class C extends B { ++ static _ = super.w(); ++} ++ ++// @filename: funcExprInContainingScopeStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++(function Reflect() {}); // no collision ++class C extends B { ++ static { super.w(); } ++} ++ ++// @filename: inContainingFuncExprStaticField.ts ++export {}; ++declare class B { static w(): number; } ++(function Reflect() { // collision (es2015-es2021 only) ++ class C extends B { ++ static _ = super.w(); ++ } ++}); ++ ++// @filename: inContainingFuncExprStaticBlock.ts ++export {}; ++declare class B { static w(): number; } ++(function Reflect() { // collision (es2015-es2021 only) ++ class C extends B { ++ static { super.w(); } ++ } ++}); +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts +new file mode 100644 +index 0000000000..e3bfff9aed +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts +@@ -0,0 +1,42 @@ ++// @target: esnext, es2015 ++// @useDefineForClassFields: true ++// @noTypesAndSymbols: true ++ ++declare class B { ++ static a: any; ++ static f(): number; ++ a: number; ++ f(): number; ++} ++ ++class C extends B { ++ static x: any = undefined!; ++ static y1 = this.x; ++ static y2 = this.x(); ++ static y3 = this?.x(); ++ static y4 = this[("x")](); ++ static y5 = this?.[("x")](); ++ static z1 = super.a; ++ static z2 = super["a"]; ++ static z3 = super.f(); ++ static z4 = super["f"](); ++ static z5 = super.a = 0; ++ static z6 = super.a += 1; ++ static z7 = (() => { super.a = 0; })(); ++ static z8 = [super.a] = [0]; ++ static z9 = [super.a = 0] = [0]; ++ static z10 = [...super.a] = [0]; ++ static z11 = { x: super.a } = { x: 0 }; ++ static z12 = { x: super.a = 0 } = { x: 0 }; ++ static z13 = { ...super.a } = { x: 0 }; ++ static z14 = ++super.a; ++ static z15 = --super.a; ++ static z16 = ++super[("a")]; ++ static z17 = super.a++; ++ static z18 = super.a``; ++ ++ // these should be unaffected ++ x = 1; ++ y = this.x; ++ z = super.f(); ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts +new file mode 100644 +index 0000000000..7e751c3d67 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts +@@ -0,0 +1,42 @@ ++// @target: esnext, es2015 ++// @useDefineForClassFields: false ++// @noTypesAndSymbols: true ++ ++declare class B { ++ static a: any; ++ static f(): number; ++ a: number; ++ f(): number; ++} ++ ++class C extends B { ++ static x: any = undefined!; ++ static y1 = this.x; ++ static y2 = this.x(); ++ static y3 = this?.x(); ++ static y4 = this[("x")](); ++ static y5 = this?.[("x")](); ++ static z1 = super.a; ++ static z2 = super["a"]; ++ static z3 = super.f(); ++ static z4 = super["f"](); ++ static z5 = super.a = 0; ++ static z6 = super.a += 1; ++ static z7 = (() => { super.a = 0; })(); ++ static z8 = [super.a] = [0]; ++ static z9 = [super.a = 0] = [0]; ++ static z10 = [...super.a] = [0]; ++ static z11 = { x: super.a } = { x: 0 }; ++ static z12 = { x: super.a = 0 } = { x: 0 }; ++ static z13 = { ...super.a } = { x: 0 }; ++ static z14 = ++super.a; ++ static z15 = --super.a; ++ static z16 = ++super[("a")]; ++ static z17 = super.a++; ++ static z18 = super.a``; ++ ++ // these should be unaffected ++ x = 1; ++ y = this.x; ++ z = super.f(); ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts +new file mode 100644 +index 0000000000..413c7c54bc +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts +@@ -0,0 +1,26 @@ ++// @target: es5 ++// @useDefineForClassFields: true ++// @noTypesAndSymbols: true ++ ++declare class B { ++ static a: any; ++ static f(): number; ++ a: number; ++ f(): number; ++} ++ ++class C extends B { ++ static x: any = undefined!; ++ static y1 = this.x; ++ static y2 = this.x(); ++ static y3 = this?.x(); ++ static y4 = this[("x")](); ++ static y5 = this?.[("x")](); ++ static z3 = super.f(); ++ static z4 = super["f"](); ++ ++ // these should be unaffected ++ x = 1; ++ y = this.x; ++ z = super.f(); ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts +new file mode 100644 +index 0000000000..aad82e41dc +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts +@@ -0,0 +1,26 @@ ++// @target: es5 ++// @useDefineForClassFields: false ++// @noTypesAndSymbols: true ++ ++declare class B { ++ static a: any; ++ static f(): number; ++ a: number; ++ f(): number; ++} ++ ++class C extends B { ++ static x: any = undefined!; ++ static y1 = this.x; ++ static y2 = this.x(); ++ static y3 = this?.x(); ++ static y4 = this[("x")](); ++ static y5 = this?.[("x")](); ++ static z3 = super.f(); ++ static z4 = super["f"](); ++ ++ // these should be unaffected ++ x = 1; ++ y = this.x; ++ z = super.f(); ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts +index dcba533725..f05e58dcb5 100644 +--- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts +@@ -30,4 +30,5 @@ var t2 = C2.bar(); + var r5 = t2.foo + 1; + var r6 = t2.bar(); + var r7 = new t2(''); +- ++let b2 = new C(1) ++let b3 = new C2('null') +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts +new file mode 100644 +index 0000000000..bb458c87d2 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts +@@ -0,0 +1,51 @@ ++// @target: esnext, es6, es5 ++// @experimentalDecorators: true ++// @useDefineForClassFields: false ++ ++declare const foo: any; ++ ++@foo ++class C { ++ static a = 1; ++ static b = this.a + 1; ++} ++ ++@foo ++class D extends C { ++ static c = 2; ++ static d = this.c + 1; ++ static e = super.a + this.c + 1; ++ static f = () => this.c + 1; ++ static ff = function () { this.c + 1 } ++ static foo () { ++ return this.c + 1; ++ } ++ static get fa () { ++ return this.c + 1; ++ } ++ static set fa (v: number) { ++ this.c = v + 1; ++ } ++} ++ ++class CC { ++ static a = 1; ++ static b = this.a + 1; ++} ++ ++class DD extends CC { ++ static c = 2; ++ static d = this.c + 1; ++ static e = super.a + this.c + 1; ++ static f = () => this.c + 1; ++ static ff = function () { this.c + 1 } ++ static foo () { ++ return this.c + 1; ++ } ++ static get fa () { ++ return this.c + 1; ++ } ++ static set fa (v: number) { ++ this.c = v + 1; ++ } ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts +new file mode 100644 +index 0000000000..6c4025bc47 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts +@@ -0,0 +1,51 @@ ++// @target: esnext, es6, es5 ++// @experimentalDecorators: true ++// @useDefineForClassFields: true ++ ++declare const foo: any; ++ ++@foo ++class C { ++ static a = 1; ++ static b = this.a + 1; ++} ++ ++@foo ++class D extends C { ++ static c = 2; ++ static d = this.c + 1; ++ static e = super.a + this.c + 1; ++ static f = () => this.c + 1; ++ static ff = function () { this.c + 1 } ++ static foo () { ++ return this.c + 1; ++ } ++ static get fa () { ++ return this.c + 1; ++ } ++ static set fa (v: number) { ++ this.c = v + 1; ++ } ++} ++ ++class CC { ++ static a = 1; ++ static b = this.a + 1; ++} ++ ++class DD extends CC { ++ static c = 2; ++ static d = this.c + 1; ++ static e = super.a + this.c + 1; ++ static f = () => this.c + 1; ++ static ff = function () { this.c + 1 } ++ static foo () { ++ return this.c + 1; ++ } ++ static get fa () { ++ return this.c + 1; ++ } ++ static set fa (v: number) { ++ this.c = v + 1; ++ } ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts +new file mode 100644 +index 0000000000..041089512b +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts +@@ -0,0 +1,10 @@ ++// @target: esnext, es6, es5 ++// @useDefineForClassFields: false ++ ++class C { ++ static readonly c: "foo" = "foo" ++ static bar = class Inner { ++ static [this.c] = 123; ++ [this.c] = 123; ++ } ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts +new file mode 100644 +index 0000000000..6c965e0e2d +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts +@@ -0,0 +1,10 @@ ++// @target: esnext, es6, es5 ++// @useDefineForClassFields: true ++ ++class C { ++ static readonly c: "foo" = "foo" ++ static bar = class Inner { ++ static [this.c] = 123; ++ [this.c] = 123; ++ } ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts +new file mode 100644 +index 0000000000..27541ce361 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts +@@ -0,0 +1,12 @@ ++// @target: esnext, es6, es5 ++// @useDefineForClassFields: false ++class C { ++ static a = 1; ++ static b = this.a + 1; ++} ++ ++class D extends C { ++ static c = 2; ++ static d = this.c + 1; ++ static e = super.a + this.c + 1; ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts +new file mode 100644 +index 0000000000..0d08423bb9 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts +@@ -0,0 +1,12 @@ ++// @target: esnext, es6, es5 ++// @useDefineForClassFields: true ++class C { ++ static a = 1; ++ static b = this.a + 1; ++} ++ ++class D extends C { ++ static c = 2; ++ static d = this.c + 1; ++ static e = super.a + this.c + 1; ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts +new file mode 100644 +index 0000000000..db6e8a76c6 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts +@@ -0,0 +1,9 @@ ++// @target: esnext, es6, es5 ++ ++class C { ++ static create = () => new this("yep") ++ ++ constructor (private foo: string) { ++ ++ } ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts +new file mode 100644 +index 0000000000..b27d0855a2 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts +@@ -0,0 +1,7 @@ ++class C { ++ static f = 1 ++} ++ ++class D extends C { ++ static c = super(); ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts +new file mode 100644 +index 0000000000..1a2d9cd2e2 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts +@@ -0,0 +1,12 @@ ++// @target: esnext, es6, es5 ++ ++class C { ++ static a = 1; ++ static b = this.a + 1; ++} ++ ++class D extends C { ++ static c = 2; ++ static d = this.c + 1; ++ static e = 1 + (super.a) + (this.c + 1) + 1; ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts +new file mode 100644 +index 0000000000..8b26476f14 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts +@@ -0,0 +1,19 @@ ++// @target: esnext, es6, es5 ++ ++class C { ++ static f = 1; ++ static arrowFunctionBoundary = () => this.f + 1; ++ static functionExprBoundary = function () { return this.f + 2 }; ++ static classExprBoundary = class { a = this.f + 3 }; ++ static functionAndClassDeclBoundary = (() => { ++ function foo () { ++ return this.f + 4 ++ } ++ class CC { ++ a = this.f + 5 ++ method () { ++ return this.f + 6 ++ } ++ } ++ })(); ++} +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts +new file mode 100644 +index 0000000000..0a648d2fa0 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts +@@ -0,0 +1,22 @@ ++// @target: esnext, es6, es5 ++ ++class C { ++ static f = 1 ++} ++ ++class D extends C { ++ static arrowFunctionBoundary = () => super.f + 1; ++ static functionExprBoundary = function () { return super.f + 2 }; ++ static classExprBoundary = class { a = super.f + 3 }; ++ static functionAndClassDeclBoundary = (() => { ++ function foo () { ++ return super.f + 4 ++ } ++ class C { ++ a = super.f + 5 ++ method () { ++ return super.f +6 ++ } ++ } ++ })(); ++} +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts +index 09573f98c9..f57d3afc8b 100644 +--- a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts +@@ -23,3 +23,5 @@ class Foo { + } + + console.log(new Foo("NAME").getValue(100)); ++ ++let ff = new Foo(null) +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts b/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts +index 4c02159bfa..af502334e7 100644 +--- a/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts +@@ -6,3 +6,4 @@ class A { + console.log(this.#myField); + } + } ++let aa = new A(); +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts b/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts +new file mode 100644 +index 0000000000..4a076565bf +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts +@@ -0,0 +1,11 @@ ++// @target: es6 ++ ++# ++ ++class C { ++ # ++ ++ m() { ++ this.# ++ } ++} +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts +new file mode 100644 +index 0000000000..e274378150 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts +@@ -0,0 +1,119 @@ ++// @strict: true ++// @target: esnext ++// @useDefineForClassFields: true ++ ++class Foo { ++ #field = 1; ++ static #staticField = 2; ++ #method() {} ++ static #staticMethod() {} ++ ++ goodRhs(v: any) { ++ const a = #field in v; ++ ++ const b = #field in v.p1.p2; ++ ++ const c = #field in (v as {}); ++ ++ const d = #field in (v as Foo); ++ ++ const e = #field in (v as never); ++ ++ for (let f in #field in v as any) { /**/ } // unlikely but valid ++ } ++ badRhs(v: any) { ++ const a = #field in (v as unknown); // Bad - RHS of in must be object type or any ++ ++ const b = #fiel in v; // Bad - typo in privateID ++ ++ const c = (#field) in v; // Bad - privateID is not an expression on its own ++ ++ for (#field in v) { /**/ } // Bad - 'in' not allowed ++ ++ for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any ++ } ++ whitespace(v: any) { ++ const a = v && /*0*/#field/*1*/ ++ /*2*/in/*3*/ ++ /*4*/v/*5*/ ++ } ++ flow(u: unknown, n: never, fb: Foo | Bar, fs: FooSub, b: Bar, fsb: FooSub | Bar, fsfb: Foo | FooSub | Bar) { ++ ++ if (typeof u === 'object') { ++ if (#field in n) { ++ n; // good n is never ++ } ++ ++ if (#field in u) { ++ u; // good u is Foo ++ } else { ++ u; // good u is object | null ++ } ++ ++ if (u !== null) { ++ if (#field in u) { ++ u; // good u is Foo ++ } else { ++ u; // good u is object ++ } ++ ++ if (#method in u) { ++ u; // good u is Foo ++ } ++ ++ if (#staticField in u) { ++ u; // good u is typeof Foo ++ } ++ ++ if (#staticMethod in u) { ++ u; // good u is typeof Foo ++ } ++ } ++ } ++ ++ if (#field in fb) { ++ fb; // good fb is Foo ++ } else { ++ fb; // good fb is Bar ++ } ++ ++ if (#field in fs) { ++ fs; // good fs is FooSub ++ } else { ++ fs; // good fs is never ++ } ++ ++ if (#field in b) { ++ b; // good b is 'Bar & Foo' ++ } else { ++ b; // good b is Bar ++ } ++ ++ if (#field in fsb) { ++ fsb; // good fsb is FooSub ++ } else { ++ fsb; // good fsb is Bar ++ } ++ ++ if (#field in fsfb) { ++ fsfb; // good fsfb is 'Foo | FooSub' ++ } else { ++ fsfb; // good fsfb is Bar ++ } ++ ++ class Nested { ++ m(v: any) { ++ if (#field in v) { ++ v; // good v is Foo ++ } ++ } ++ } ++ } ++} ++ ++class FooSub extends Foo { subTypeOfFoo = true } ++class Bar { notFoo = true } ++ ++function badSyntax(v: Foo) { ++ return #field in v; // Bad - outside of class ++} +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts +new file mode 100644 +index 0000000000..f7be176373 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts +@@ -0,0 +1,47 @@ ++// @target: esnext, es2020 ++ ++class Foo { ++ #field = 1; ++ #method() {} ++ static #staticField= 2; ++ static #staticMethod() {} ++ ++ check(v: any) { ++ #field in v; // expect Foo's 'field' WeakMap ++ #method in v; // expect Foo's 'instances' WeakSet ++ #staticField in v; // expect Foo's constructor ++ #staticMethod in v; // expect Foo's constructor ++ } ++ precedence(v: any) { ++ // '==' and '||' have lower precedence than 'in' ++ // 'in' naturally has same precedence as 'in' ++ // '<<' has higher precedence than 'in' ++ ++ v == #field in v || v; // Good precedence: (v == (#field in v)) || v ++ ++ v << #field in v << v; // Good precedence (SyntaxError): (v << #field) in (v << v) ++ ++ v << #field in v == v; // Good precedence (SyntaxError): ((v << #field) in v) == v ++ ++ v == #field in v in v; // Good precedence: v == ((#field in v) in v) ++ ++ #field in v && #field in v; // Good precedence: (#field in v) && (#field in v) ++ } ++ invalidLHS(v: any) { ++ 'prop' in v = 10; ++ #field in v = 10; ++ } ++} ++ ++class Bar { ++ #field = 1; ++ check(v: any) { ++ #field in v; // expect Bar's 'field' WeakMap ++ } ++} ++ ++function syntaxError(v: Foo) { ++ return #field in v; // expect `return in v` so runtime will have a syntax error ++} ++ ++export { } +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts +new file mode 100644 +index 0000000000..4b214a2b9e +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts +@@ -0,0 +1,13 @@ ++// @strict: true ++// @noUnusedLocals: true ++// @target: esnext ++ ++class Foo { ++ #unused: undefined; // expect unused error ++ #brand: undefined; // expect no error ++ ++ isFoo(v: any): v is Foo { ++ // This should count as using/reading '#brand' ++ return #brand in v; ++ } ++} +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts b/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts +new file mode 100644 +index 0000000000..5154b5e439 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts +@@ -0,0 +1,65 @@ ++// @allowJs: true ++// @checkJs: true ++// @strict: true ++// @target: es6 ++// @outDir: ./out ++// @filename: privateNamesIncompatibleModifiersJs.js ++ ++class A { ++ /** ++ * @public ++ */ ++ #a = 1; ++ ++ /** ++ * @private ++ */ ++ #b = 1; ++ ++ /** ++ * @protected ++ */ ++ #c = 1; ++ ++ /** ++ * @public ++ */ ++ #aMethod() { return 1; } ++ ++ /** ++ * @private ++ */ ++ #bMethod() { return 1; } ++ ++ /** ++ * @protected ++ */ ++ #cMethod() { return 1; } ++ ++ /** ++ * @public ++ */ ++ get #aProp() { return 1; } ++ /** ++ * @public ++ */ ++ set #aProp(value) { } ++ ++ /** ++ * @private ++ */ ++ get #bProp() { return 1; } ++ /** ++ * @private ++ */ ++ set #bProp(value) { } ++ ++ /** ++ * @protected ++ */ ++ get #cProp() { return 1; } ++ /** ++ * @protected ++ */ ++ set #cProp(value) { } ++} +diff --git a/tests/cases/conformance/classes/mixinClassesAnnotated.ts b/tests/cases/conformance/classes/mixinClassesAnnotated.ts +index 62f5e30c9a..8bca7d06d1 100644 +--- a/tests/cases/conformance/classes/mixinClassesAnnotated.ts ++++ b/tests/cases/conformance/classes/mixinClassesAnnotated.ts +@@ -36,6 +36,7 @@ function Tagged>(superClass: T): Constructor & + this._tag = "hello"; + } + } ++ let c = new C(); + return C; + } + +@@ -65,3 +66,5 @@ class Thing3 extends Thing2 { + this.print(); + } + } ++let der = new Derived(1,1,1); ++let th3 = new Thing3(''); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/mixinClassesAnonymous.ts b/tests/cases/conformance/classes/mixinClassesAnonymous.ts +index 0e42288808..aa639e71e3 100644 +--- a/tests/cases/conformance/classes/mixinClassesAnonymous.ts ++++ b/tests/cases/conformance/classes/mixinClassesAnonymous.ts +@@ -62,3 +62,5 @@ const Timestamped = >(Base: CT) => { + timestamp = new Date(); + }; + } ++let aa = new Derived(1,1,1); ++let bb = new Thing3(''); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/mixinClassesMembers.ts b/tests/cases/conformance/classes/mixinClassesMembers.ts +index 905518c88f..7deb2ac30b 100644 +--- a/tests/cases/conformance/classes/mixinClassesMembers.ts ++++ b/tests/cases/conformance/classes/mixinClassesMembers.ts +@@ -97,3 +97,8 @@ class C3 extends Mixed3 { + } + f() { return super.f(); } + } ++let aa = new C1(''); ++let bb = new M1(); ++let cc = new M2(); ++let dd = new C2(); ++let ee = new C3(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts +index 5f7266c0ea..7870b163db 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts +@@ -14,3 +14,6 @@ class B extends A { + class C extends A { + protected get x() { return 'C.x' }; + } ++ ++let b = new B(); ++let c = new C(); +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts +new file mode 100644 +index 0000000000..42a0999748 +--- /dev/null ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts +@@ -0,0 +1,5 @@ ++// @strict: true ++// @declaration: true ++abstract class C { ++ abstract prop = 1 ++} +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts +index 04b44a6835..d7c518964d 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts +@@ -4,8 +4,8 @@ class C { + + var c = new C(); + c.x = 3; +-var c2 = new C(); +-var r = c.x === c2.x; ++// var c2 = new C(); ++// var r = c.x === c2.x; + + // #31792 + +@@ -14,4 +14,5 @@ var r = c.x === c2.x; + class MyMap { + constructor(private readonly Map_: { new(): any }) {} + private readonly store = new this.Map_(); +-} +\ No newline at end of file ++} ++let mm = new MyMap(null) +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts +index e597b6b9d9..ed03d54763 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts +@@ -6,3 +6,4 @@ const x = 1; + class C { + [x]: string; + } ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts +index 5d786cd4cf..0277ffa658 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts +@@ -10,4 +10,5 @@ class Derived extends Base { + } + var d = Derived.create(); + +-d.foo(); +\ No newline at end of file ++d.foo(); ++let b1 =new Derived() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts +index 06a784c782..d3b03f9716 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts +@@ -4,4 +4,5 @@ class C { + + f() { } + static f() { } +-} +\ No newline at end of file ++} ++let a4 = new C() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts +index 4566ce26f0..4a275f4eef 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts +@@ -6,4 +6,6 @@ class C { + class D { + static f: number; + f() { } +-} +\ No newline at end of file ++} ++let a2 =new C() ++let a3 = new D() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts +index 198c923b0d..d937176b83 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts +@@ -54,3 +54,13 @@ declare class StaticArgumentsFn { + static arguments(): any; // ok + arguments(): any; // ok + } ++let a5 =new StaticName() ++let a6 =new StaticNameFn() ++let a7 =new StaticLength() ++let a8 =new StaticLengthFn() ++let a9 =new StaticPrototype() ++let a10 =new StaticPrototypeFn() ++let a11 =new StaticCaller() ++let a12 =new StaticCallerFn() ++let a13 =new StaticArguments() ++let a14 =new StaticArgumentsFn() +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts b/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts +new file mode 100644 +index 0000000000..915c9ae94f +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts +@@ -0,0 +1,27 @@ ++// @allowJs: true ++// @checkJs: true ++// @outDir: ./out ++// @filename: assertionTypePredicates2.js ++ ++/** ++ * @typedef {{ x: number }} A ++ */ ++ ++/** ++ * @typedef { A & { y: number } } B ++ */ ++ ++/** ++ * @param {A} a ++ * @returns { asserts a is B } ++ */ ++const foo = (a) => { ++ if (/** @type { B } */ (a).y !== 0) throw TypeError(); ++ return undefined; ++}; ++ ++export const main = () => { ++ /** @type { A } */ ++ const a = { x: 1 }; ++ foo(a); ++}; +diff --git a/tests/cases/conformance/controlFlow/controlFlowAliasing.ts b/tests/cases/conformance/controlFlow/controlFlowAliasing.ts +new file mode 100644 +index 0000000000..03b7530921 +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowAliasing.ts +@@ -0,0 +1,285 @@ ++// @strict: true ++// @declaration: true ++ ++// Narrowing by aliased conditional expressions ++ ++function f10(x: string | number) { ++ const isString = typeof x === "string"; ++ if (isString) { ++ let t: string = x; ++ } ++ else { ++ let t: number = x; ++ } ++} ++ ++function f11(x: unknown) { ++ const isString = typeof x === "string"; ++ if (isString) { ++ let t: string = x; ++ } ++} ++ ++function f12(x: string | number | boolean) { ++ const isString = typeof x === "string"; ++ const isNumber = typeof x === "number"; ++ if (isString || isNumber) { ++ let t: string | number = x; ++ } ++ else { ++ let t: boolean = x; ++ } ++} ++ ++function f13(x: string | number | boolean) { ++ const isString = typeof x === "string"; ++ const isNumber = typeof x === "number"; ++ const isStringOrNumber = isString || isNumber; ++ if (isStringOrNumber) { ++ let t: string | number = x; ++ } ++ else { ++ let t: boolean = x; ++ } ++} ++ ++function f14(x: number | null | undefined): number | null { ++ const notUndefined = x !== undefined; ++ return notUndefined ? x : 0; ++} ++ ++function f15(obj: { readonly x: string | number }) { ++ const isString = typeof obj.x === 'string'; ++ if (isString) { ++ let s: string = obj.x; ++ } ++} ++ ++function f16(obj: { readonly x: string | number }) { ++ const isString = typeof obj.x === 'string'; ++ obj = { x: 42 }; ++ if (isString) { ++ let s: string = obj.x; // Not narrowed because of is assigned in function body ++ } ++} ++ ++function f17(obj: readonly [string | number]) { ++ const isString = typeof obj[0] === 'string'; ++ if (isString) { ++ let s: string = obj[0]; ++ } ++} ++ ++function f18(obj: readonly [string | number]) { ++ const isString = typeof obj[0] === 'string'; ++ obj = [42]; ++ if (isString) { ++ let s: string = obj[0]; // Not narrowed because of is assigned in function body ++ } ++} ++ ++function f20(obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const isFoo = obj.kind === 'foo'; ++ if (isFoo) { ++ obj.foo; ++ } ++ else { ++ obj.bar; ++ } ++} ++ ++function f21(obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const isFoo: boolean = obj.kind === 'foo'; ++ if (isFoo) { ++ obj.foo; // Not narrowed because isFoo has type annotation ++ } ++ else { ++ obj.bar; // Not narrowed because isFoo has type annotation ++ } ++} ++ ++function f22(obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ let isFoo = obj.kind === 'foo'; ++ if (isFoo) { ++ obj.foo; // Not narrowed because isFoo is mutable ++ } ++ else { ++ obj.bar; // Not narrowed because isFoo is mutable ++ } ++} ++ ++function f23(obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const isFoo = obj.kind === 'foo'; ++ obj = obj; ++ if (isFoo) { ++ obj.foo; // Not narrowed because obj is assigned in function body ++ } ++ else { ++ obj.bar; // Not narrowed because obj is assigned in function body ++ } ++} ++ ++function f24(arg: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const obj = arg; ++ const isFoo = obj.kind === 'foo'; ++ if (isFoo) { ++ obj.foo; ++ } ++ else { ++ obj.bar; ++ } ++} ++ ++function f25(arg: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ let obj = arg; ++ const isFoo = obj.kind === 'foo'; ++ if (isFoo) { ++ obj.foo; // Not narrowed because obj is mutable ++ } ++ else { ++ obj.bar; // Not narrowed because obj is mutable ++ } ++} ++ ++function f26(outer: { readonly obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number } }) { ++ const isFoo = outer.obj.kind === 'foo'; ++ if (isFoo) { ++ outer.obj.foo; ++ } ++ else { ++ outer.obj.bar; ++ } ++} ++ ++function f27(outer: { obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number } }) { ++ const isFoo = outer.obj.kind === 'foo'; ++ if (isFoo) { ++ outer.obj.foo; // Not narrowed because obj is mutable ++ } ++ else { ++ outer.obj.bar; // Not narrowed because obj is mutable ++ } ++} ++ ++function f28(obj?: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const isFoo = obj && obj.kind === 'foo'; ++ const isBar = obj && obj.kind === 'bar'; ++ if (isFoo) { ++ obj.foo; ++ } ++ if (isBar) { ++ obj.bar; ++ } ++} ++ ++// Narrowing by aliased discriminant property access ++ ++function f30(obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const kind = obj.kind; ++ if (kind === 'foo') { ++ obj.foo; ++ } ++ else { ++ obj.bar; ++ } ++} ++ ++function f31(obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const { kind } = obj; ++ if (kind === 'foo') { ++ obj.foo; ++ } ++ else { ++ obj.bar; ++ } ++} ++ ++function f32(obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const { kind: k } = obj; ++ if (k === 'foo') { ++ obj.foo; ++ } ++ else { ++ obj.bar; ++ } ++} ++ ++function f33(obj: { kind: 'foo', foo: string } | { kind: 'bar', bar: number }) { ++ const { kind } = obj; ++ switch (kind) { ++ case 'foo': obj.foo; break; ++ case 'bar': obj.bar; break; ++ } ++} ++ ++ ++class C10 { ++ constructor(readonly x: string | number) { ++ const thisX_isString = typeof this.x === 'string'; ++ const xIsString = typeof x === 'string'; ++ if (thisX_isString && xIsString) { ++ let s: string; ++ s = this.x; ++ s = x; ++ } ++ } ++} ++ ++class C11 { ++ constructor(readonly x: string | number) { ++ const thisX_isString = typeof this.x === 'string'; ++ const xIsString = typeof x === 'string'; ++ if (thisX_isString && xIsString) { ++ // Some narrowings may be invalidated due to later assignments. ++ let s: string; ++ s = this.x; ++ s = x; ++ } ++ else { ++ this.x = 10; ++ x = 10; ++ } ++ } ++} ++ ++// Mixing of aliased discriminants and conditionals ++ ++function f40(obj: { kind: 'foo', foo?: string } | { kind: 'bar', bar?: number }) { ++ const { kind } = obj; ++ const isFoo = kind == 'foo'; ++ if (isFoo && obj.foo) { ++ let t: string = obj.foo; ++ } ++} ++ ++// Unsupported narrowing of destructured payload by destructured discriminant ++ ++type Data = { kind: 'str', payload: string } | { kind: 'num', payload: number }; ++ ++function gg2(obj: Data) { ++ if (obj.kind === 'str') { ++ let t: string = obj.payload; ++ } ++ else { ++ let t: number = obj.payload; ++ } ++} ++ ++function foo({ kind, payload }: Data) { ++ if (kind === 'str') { ++ let t: string = payload; ++ } ++ else { ++ let t: number = payload; ++ } ++} ++ ++// Repro from #45830 ++ ++const obj = { ++ fn: () => true ++}; ++ ++if (a) { } ++ ++const a = obj.fn(); +diff --git a/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts b/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts +new file mode 100644 +index 0000000000..a746fa1cd0 +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts +@@ -0,0 +1,28 @@ ++// @useUnknownInCatchVariables: true,false ++ ++try {} ++catch (e) { ++ const isString = typeof e === 'string'; ++ if (isString) { ++ e.toUpperCase(); // e string ++ } ++ ++ if (typeof e === 'string') { ++ e.toUpperCase(); // e string ++ } ++} ++ ++try {} ++catch (e) { ++ const isString = typeof e === 'string'; ++ ++ e = 1; ++ ++ if (isString) { ++ e.toUpperCase(); // e any/unknown ++ } ++ ++ if (typeof e === 'string') { ++ e.toUpperCase(); // e string ++ } ++} +diff --git a/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts b/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts +index fa0592c973..17a2af7895 100644 +--- a/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts ++++ b/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts +@@ -10,4 +10,4 @@ if (typeof config['works'] !== 'boolean') { + if (typeof config.works !== 'boolean') { + config['works'].prop = 'test'; // error, config['works']: boolean | { 'prop': string } + config.works.prop = 'test'; // ok +-} ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts b/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts +new file mode 100644 +index 0000000000..450e50cadc +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts +@@ -0,0 +1,25 @@ ++const keywordA = 'a'; ++const keywordB = 'b'; ++ ++type A = { [keywordA]: number }; ++type B = { [keywordB]: string }; ++ ++declare const c: A | B; ++ ++if ('a' in c) { ++ c; // narrowed to `A` ++} ++ ++if (keywordA in c) { ++ c; // also narrowed to `A` ++} ++ ++let stringB: string = 'b'; ++ ++if ((stringB as 'b') in c) { ++ c; // narrowed to `B` ++} ++ ++if ((stringB as ('a' | 'b')) in c) { ++ c; // not narrowed ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/controlFlowInOperator.ts b/tests/cases/conformance/controlFlow/controlFlowInOperator.ts +new file mode 100644 +index 0000000000..5dc27c45e8 +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowInOperator.ts +@@ -0,0 +1,26 @@ ++const a = 'a'; ++const b = 'b'; ++const d = 'd'; ++ ++type A = { [a]: number; }; ++type B = { [b]: string; }; ++ ++declare const c: A | B; ++ ++if ('a' in c) { ++ c; // A ++ c['a']; // number; ++} ++ ++if ('d' in c) { ++ c; // never ++} ++ ++if (a in c) { ++ c; // A ++ c[a]; // number; ++} ++ ++if (d in c) { ++ c; // never ++} +diff --git a/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts b/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts +index 4a1ff7ff86..8780db0c12 100644 +--- a/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts ++++ b/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts +@@ -29,4 +29,6 @@ export const x: X | number = Math.random() > 0.5 ? new X() : 1 + + if (x instanceof X) { + x.why() // should compile +-} +\ No newline at end of file ++} ++let xx = new X(); ++let yy = new Y(); +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts b/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts +index b42af687c0..b3710bae0d 100644 +--- a/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts ++++ b/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts +@@ -7,3 +7,4 @@ class C extends B { + super.m && super.m(); + } + } ++let qq3 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts b/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts +new file mode 100644 +index 0000000000..db134447ed +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts +@@ -0,0 +1,71 @@ ++// @strict: true ++// @declaration: true ++ ++declare function obj(x: object): void; ++ ++function f1(x: unknown) { ++ if (!x) { ++ return; ++ } ++ if (typeof x === 'object') { ++ obj(x); ++ } ++} ++ ++function f2(x: unknown) { ++ if (x === null) { ++ return; ++ } ++ if (typeof x === 'object') { ++ obj(x); ++ } ++} ++ ++function f3(x: unknown) { ++ if (x == null) { ++ return; ++ } ++ if (typeof x === 'object') { ++ obj(x); ++ } ++} ++ ++function f4(x: unknown) { ++ if (x == undefined) { ++ return; ++ } ++ if (typeof x === 'object') { ++ obj(x); ++ } ++} ++ ++function f5(x: unknown) { ++ if (!!true) { ++ if (!x) { ++ return; ++ } ++ } ++ else { ++ if (x === null) { ++ return; ++ } ++ } ++ if (typeof x === 'object') { ++ obj(x); ++ } ++} ++ ++function f6(x: unknown) { ++ if (x === null) { ++ x; ++ } ++ else { ++ x; ++ if (typeof x === 'object') { ++ obj(x); ++ } ++ } ++ if (typeof x === 'object') { ++ obj(x); // Error ++ } ++} +diff --git a/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts b/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts +new file mode 100644 +index 0000000000..55e95ddf09 +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts +@@ -0,0 +1,161 @@ ++// @strict: true ++// @declaration: true ++// @target: es2015 ++ ++type Action = ++ | { kind: 'A', payload: number } ++ | { kind: 'B', payload: string }; ++ ++function f10({ kind, payload }: Action) { ++ if (kind === 'A') { ++ payload.toFixed(); ++ } ++ if (kind === 'B') { ++ payload.toUpperCase(); ++ } ++} ++ ++function f11(action: Action) { ++ const { kind, payload } = action; ++ if (kind === 'A') { ++ payload.toFixed(); ++ } ++ if (kind === 'B') { ++ payload.toUpperCase(); ++ } ++} ++ ++function f12({ kind, payload }: Action) { ++ switch (kind) { ++ case 'A': ++ payload.toFixed(); ++ break; ++ case 'B': ++ payload.toUpperCase(); ++ break; ++ default: ++ payload; // never ++ } ++} ++ ++type Action2 = ++ | { kind: 'A', payload: number | undefined } ++ | { kind: 'B', payload: string | undefined }; ++ ++function f20({ kind, payload }: Action2) { ++ if (payload) { ++ if (kind === 'A') { ++ payload.toFixed(); ++ } ++ if (kind === 'B') { ++ payload.toUpperCase(); ++ } ++ } ++} ++ ++function f21(action: Action2) { ++ const { kind, payload } = action; ++ if (payload) { ++ if (kind === 'A') { ++ payload.toFixed(); ++ } ++ if (kind === 'B') { ++ payload.toUpperCase(); ++ } ++ } ++} ++ ++function f22(action: Action2) { ++ if (action.payload) { ++ const { kind, payload } = action; ++ if (kind === 'A') { ++ payload.toFixed(); ++ } ++ if (kind === 'B') { ++ payload.toUpperCase(); ++ } ++ } ++} ++ ++function f23({ kind, payload }: Action2) { ++ if (payload) { ++ switch (kind) { ++ case 'A': ++ payload.toFixed(); ++ break; ++ case 'B': ++ payload.toUpperCase(); ++ break; ++ default: ++ payload; // never ++ } ++ } ++} ++ ++type Foo = ++ | { kind: 'A', isA: true } ++ | { kind: 'B', isA: false } ++ | { kind: 'C', isA: false }; ++ ++function f30({ kind, isA }: Foo) { ++ if (kind === 'A') { ++ isA; // true ++ } ++ if (kind === 'B') { ++ isA; // false ++ } ++ if (kind === 'C') { ++ isA; // false ++ } ++ if (isA) { ++ kind; // 'A' ++ } ++ else { ++ kind; // 'B' | 'C' ++ } ++} ++ ++// Repro from #35283 ++ ++interface A { variant: 'a', value: T } ++ ++interface B { variant: 'b', value: Array } ++ ++type AB = A | B; ++ ++declare function printValue(t: T): void; ++ ++declare function printValueList(t: Array): void; ++ ++function unrefined1(ab: AB): void { ++ const { variant, value } = ab; ++ if (variant === 'a') { ++ printValue(value); ++ } ++ else { ++ printValueList(value); ++ } ++} ++ ++// Repro from #38020 ++ ++type Action3 = ++ | {type: 'add', payload: { toAdd: number } } ++ | {type: 'remove', payload: { toRemove: number } }; ++ ++const reducerBroken = (state: number, { type, payload }: Action3) => { ++ switch (type) { ++ case 'add': ++ return state + payload.toAdd; ++ case 'remove': ++ return state - payload.toRemove; ++ } ++} ++ ++// Repro from #46143 ++ ++declare var it: Iterator; ++const { value, done } = it.next(); ++if (!done) { ++ value; // number ++} +diff --git a/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts b/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts +index 41e3ffe572..1a42e77ae0 100644 +--- a/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts ++++ b/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts +@@ -44,4 +44,5 @@ let match: RegExpExecArray | null + + while ((match = re.exec("xxx")) != null) { + const length = match[1].length + match[2].length +-} +\ No newline at end of file ++} ++let qq4 = new Foo(); +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts b/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts +index 169dbc7a7c..708fcceab8 100644 +--- a/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts ++++ b/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts +@@ -33,3 +33,4 @@ function fun(item: { [P in keyof T]: T[P] }) { + } + } + } ++let qq6 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts b/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts +index a5b3074a5c..20e4ef968e 100644 +--- a/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts ++++ b/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts +@@ -34,4 +34,7 @@ export class Baz { + constructor(/* @internal */ + public isInternal: string + ) {} +-} +\ No newline at end of file ++} ++// let ff = new Foo('','','','','','','','','','') ++// let bar = new Bar(''); ++// let baz = new Baz(''); +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts +index 69af9c5b07..1b88b5d2bb 100644 +--- a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts ++++ b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts +@@ -8,4 +8,5 @@ export class C { + } + + export class D extends C { +-} +\ No newline at end of file ++} ++let qq6 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts +index 461c7d1757..d22941e2f2 100644 +--- a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts ++++ b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts +@@ -8,4 +8,5 @@ export class C { + } + + class D extends C { +-} +\ No newline at end of file ++} ++let qq7 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts +new file mode 100644 +index 0000000000..fe6e6774e2 +--- /dev/null ++++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts +@@ -0,0 +1,5 @@ ++// @filename: node_modules/@types/node/fs.d.ts ++declare module "fs" { ++ function FSWatcher() ++ // interface FSWatcher {} ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts +new file mode 100644 +index 0000000000..38de3dcf37 +--- /dev/null ++++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts +@@ -0,0 +1,2 @@ ++// @filename: main.ts ++/// +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json +new file mode 100644 +index 0000000000..f93a231130 +--- /dev/null ++++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json +@@ -0,0 +1,4 @@ ++{ ++ "name": "@types/node", ++ "version": "1.0.0" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts +new file mode 100644 +index 0000000000..957e4b37af +--- /dev/null ++++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts +@@ -0,0 +1,18 @@ ++// @declaration: true ++// @filename: node_modules/@types/node/index.d.ts ++/// ++ ++// @filename: node_modules/@types/node/package.json ++// { ++// "name": "@types/node", ++// "version": "1.0.0" ++// } ++// @filename: main.ts ++// / ++import { FSWatcher } from "fs"; ++ ++FSWatcher(); ++ ++export function f() { ++ // return {} as FSWatcher; ++} +diff --git a/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts +new file mode 100644 +index 0000000000..3679047895 +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts +@@ -0,0 +1,15 @@ ++// @target: es2018 ++// @experimentalDecorators: true ++// @noEmitHelpers: true ++// @noTypesAndSymbols: true ++ ++// https://github.com/microsoft/TypeScript/issues/44931 ++interface IFoo { } ++declare const IFoo: any; ++class BulkEditPreviewProvider { ++ static readonly Schema = 'vscode-bulkeditpreview'; ++ static emptyPreview = { scheme: BulkEditPreviewProvider.Schema }; ++ constructor( ++ @IFoo private readonly _modeService: IFoo, ++ ) { } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts +new file mode 100644 +index 0000000000..521dd6a31c +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts +@@ -0,0 +1,16 @@ ++// @target: es5 ++// @experimentaldecorators: true ++// @emitDecoratorMetadata: true ++// @filename: a.ts ++ ++function decorator() { ++ return (target: new (...args: any[]) => any) => {} ++} ++ ++@decorator() ++class Foo { ++ public static func(): Foo { ++ return new Foo(); ++ } ++} ++Foo.func(); +diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts +new file mode 100644 +index 0000000000..7d8de6894f +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts +@@ -0,0 +1,19 @@ ++// @target: es5 ++// @experimentaldecorators: true ++// @emitDecoratorMetadata: true ++// @filename: a.ts ++ ++function decorator() { ++ return (target: new (...args: any[]) => any) => {} ++} ++ ++try { ++ @decorator() ++ class Foo { ++ public static func(): Foo { ++ return new Foo(); ++ } ++ } ++ Foo.func(); ++} ++catch (e) {} +diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts +new file mode 100644 +index 0000000000..48eebc559f +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts +@@ -0,0 +1,27 @@ ++// @target: es5 ++// @experimentaldecorators: true ++// @emitDecoratorMetadata: true ++// @filename: a.ts ++ ++function decorator() { ++ return (target: new (...args: any[]) => any) => {} ++} ++ ++@decorator() ++class Foo { ++ public static func(): Foo { ++ return new Foo(); ++ } ++} ++Foo.func(); ++ ++try { ++ @decorator() ++ class Foo { ++ public static func(): Foo { ++ return new Foo(); ++ } ++ } ++ Foo.func(); ++} ++catch (e) {} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts +new file mode 100644 +index 0000000000..18f3df79bc +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts +@@ -0,0 +1,14 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ private prop = () => { ++ return 0; ++ } ++ @decorator ++ foo() { ++ return 0; ++ } ++} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts +new file mode 100644 +index 0000000000..70f86b1bbe +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts +@@ -0,0 +1,12 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ private prop = 1 ++ @decorator ++ foo() { ++ return 0; ++ } ++} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts +new file mode 100644 +index 0000000000..400d4fbe5a +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts +@@ -0,0 +1,12 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ private prop ++ @decorator ++ foo() { ++ return 0; ++ } ++} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts +new file mode 100644 +index 0000000000..1aa25d7f32 +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts +@@ -0,0 +1,11 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ private prop @decorator ++ foo() { ++ return 0; ++ } ++} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts +new file mode 100644 +index 0000000000..9417c44c5b +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts +@@ -0,0 +1,11 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ p1 ++ ++ @decorator() ++ p2; ++} +diff --git a/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts b/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts +new file mode 100644 +index 0000000000..c63fcf1a16 +--- /dev/null ++++ b/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts +@@ -0,0 +1,17 @@ ++// @experimentalDecorators: true ++// @emitDecoratorMetadata: true ++ ++ ++// @filename: services.ts ++export namespace Services { ++ export class Service {} ++} ++ ++// @filename: index.ts ++import type { Services } from './services'; ++ ++declare const decorator: any; ++export class Main { ++ @decorator() ++ field: Services.Service; ++} +diff --git a/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts b/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts +index fe1bc56dd1..20e20e00dc 100644 +--- a/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts ++++ b/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts +@@ -58,3 +58,14 @@ class C9 extends B9 { + super.g(); + } + } ++ ++let c1 = new C1(); ++let c2 = new C2(); ++let c3 = new C3(); ++let c4 = new C4(); ++let c5 = new C5(); ++let c6 = new C6(); ++let c7 = new C7(); ++let c8 = new C8(); ++let c9 = new C9(); ++ +diff --git a/tests/cases/conformance/es2018/es2018IntlAPIs.ts b/tests/cases/conformance/es2018/es2018IntlAPIs.ts +new file mode 100644 +index 0000000000..c1f6739202 +--- /dev/null ++++ b/tests/cases/conformance/es2018/es2018IntlAPIs.ts +@@ -0,0 +1,7 @@ ++// @target: es2018 ++ ++// Sample from ++// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/supportedLocalesOf ++const locales = ['ban', 'id-u-co-pinyin', 'de-ID']; ++const options = { localeMatcher: 'lookup' } as const; ++console.log(Intl.PluralRules.supportedLocalesOf(locales, options).join(', ')); +\ No newline at end of file +diff --git a/tests/cases/conformance/es2020/es2020IntlAPIs.ts b/tests/cases/conformance/es2020/es2020IntlAPIs.ts +new file mode 100644 +index 0000000000..464ecc01ec +--- /dev/null ++++ b/tests/cases/conformance/es2020/es2020IntlAPIs.ts +@@ -0,0 +1,45 @@ ++// @target: es2020 ++ ++// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation ++const count = 26254.39; ++const date = new Date("2012-05-24"); ++ ++function log(locale: string) { ++ console.log( ++ `${new Intl.DateTimeFormat(locale).format(date)} ${new Intl.NumberFormat(locale).format(count)}` ++ ); ++} ++ ++log("en-US"); ++// expected output: 5/24/2012 26,254.39 ++ ++log("de-DE"); ++// expected output: 24.5.2012 26.254,39 ++ ++// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat ++const rtf1 = new Intl.RelativeTimeFormat('en', { style: 'narrow' }); ++ ++console.log(rtf1.format(3, 'quarter')); ++//expected output: "in 3 qtrs." ++ ++console.log(rtf1.format(-1, 'day')); ++//expected output: "1 day ago" ++ ++const rtf2 = new Intl.RelativeTimeFormat('es', { numeric: 'auto' }); ++ ++console.log(rtf2.format(2, 'day')); ++//expected output: "pasado mañana" ++ ++// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames ++const regionNamesInEnglish = new Intl.DisplayNames(['en'], { type: 'region' }); ++const regionNamesInTraditionalChinese = new Intl.DisplayNames(['zh-Hant'], { type: 'region' }); ++ ++console.log(regionNamesInEnglish.of('US')); ++// expected output: "United States" ++ ++console.log(regionNamesInTraditionalChinese.of('US')); ++// expected output: "美國" ++ ++const locales1 = ['ban', 'id-u-co-pinyin', 'de-ID']; ++const options1 = { localeMatcher: 'lookup' } as const; ++console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts b/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts +index 5d18229ea0..de26b4fc10 100644 +--- a/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts ++++ b/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts +@@ -2,4 +2,6 @@ class B {} + function foo() { + return {B: B}; + } +-class C extends (foo()).B {} +\ No newline at end of file ++class C extends (foo()).B {} ++let qt6 = new B(); ++let qt7 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts +index e5d63f2e93..a872204ec7 100644 +--- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts ++++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts +@@ -13,3 +13,4 @@ class D extends Base { + var i = Factory.create(s); + } + } ++let qt2 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts +index 1b0a0d541e..826baf9d02 100644 +--- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts ++++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts +@@ -7,3 +7,4 @@ class D extends Base { + super(() => { this._t }); // no error. only check when this is directly accessing in constructor + } + } ++let qt5 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts +index 1782027758..10e7ca31aa 100644 +--- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts ++++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts +@@ -4,3 +4,4 @@ + this._t; // No error + } + } ++let qt4 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts +index 5742cdab84..3b55dbc70f 100644 +--- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts ++++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts +@@ -10,3 +10,4 @@ class D extends Base { + } + } + } ++let qt3 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts b/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts +new file mode 100644 +index 0000000000..ebeb117ed0 +--- /dev/null ++++ b/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts +@@ -0,0 +1,16 @@ ++// @target: es5 ++// @importHelpers: true ++// @isolatedModules: true ++// @noTypesAndSymbols: true ++// @noEmit: true ++// @filename: main.ts ++ ++export {}; ++const k = [1, , 2]; ++const o = [3, ...k, 4]; ++ ++// @filename: tslib.d.ts ++// this is a pre-TS4.4 versions of emit helper, which always forced array packing ++declare module "tslib" { ++ function __spreadArray(to: any[], from: any[]): any[]; ++} +diff --git a/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts b/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts +new file mode 100644 +index 0000000000..c344bea1fb +--- /dev/null ++++ b/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts +@@ -0,0 +1,14 @@ ++// @removeComments: false ++ ++const a = 1; ++const f1 = () => ++ `${ ++ // a ++ a ++ }a`; ++ ++const f2 = () => ++ `${ ++ // a ++ a ++ }`; +diff --git a/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts b/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts +index a4dd44a15a..ea325aefaf 100644 +--- a/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts ++++ b/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts +@@ -8,3 +8,4 @@ as `Hello world`; // should not error + // Example 2 + var y = 20 + as(Foo); // should emit ++let qw11 = new Foo(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts +index 05b8e135cb..285f41f742 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts +@@ -191,4 +191,8 @@ var r8b3 = b2 !== a2; + var r8b4 = b3 !== a3; + var r8b5 = b4 !== a4; + var r8b6 = b5 !== a5; +-var r8b7 = b6 !== a6; +\ No newline at end of file ++var r8b7 = b6 !== a6; ++let qr1 = new A1(); ++let qr2 = new B1(); ++let qr3 = new A2(); ++let qr4 = new B2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts +new file mode 100644 +index 0000000000..68900e5f91 +--- /dev/null ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts +@@ -0,0 +1,5 @@ ++declare let a: { a: 1 } ++a > 1; ++ ++declare let b: { a: 1 } & { b: number } ++b > 1; +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts +index 5670cf8ef1..441748fb1a 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts +@@ -146,4 +146,6 @@ var r8b2 = b2 !== a2; + var r8b3 = b3 !== a3; + var r8b4 = b4 !== a4; + var r8b5 = b5 !== a5; +-var r8b6 = b6 !== a6; +\ No newline at end of file ++var r8b6 = b6 !== a6; ++let qe5 = new Derived(); ++let qe6 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts +index 8f3d914934..3f0d1adb65 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts +@@ -146,4 +146,6 @@ var r8b2 = b2 !== a2; + var r8b3 = b3 !== a3; + var r8b4 = b4 !== a4; + var r8b5 = b5 !== a5; +-var r8b6 = b6 !== a6; +\ No newline at end of file ++var r8b6 = b6 !== a6; ++let qe7 = new Derived(); ++let qe8 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts +index 6b6ae79015..e60a012739 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts +@@ -256,4 +256,5 @@ var r8b8 = b8 !== a8; + var r8b9 = b9 !== a9; + var r8b10 = b10 !== a10; + var r8b11 = b11 !== a11; +-//var r8b12 = b12 !== a12; +\ No newline at end of file ++//var r8b12 = b12 !== a12; ++let qw12 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts +index 363192f49f..e42a1cc1c1 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts +@@ -218,4 +218,5 @@ var r8b6 = b6 !== a6; + var r8b7 = b7 !== a7; + var r8b8 = b8 !== a8; + var r8b9 = b9 !== a9; +-//var r8b10 = b10 !== a10; +\ No newline at end of file ++//var r8b10 = b10 !== a10; ++let qe9 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts +index 8246c6dd18..9154c7f806 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts +@@ -104,4 +104,5 @@ var r8a1 = a4 !== b4; + var r8b1 = b1 !== a1; + var r8b1 = b2 !== a2; + var r8b1 = b3 !== a3; +-var r8b1 = b4 !== a4; +\ No newline at end of file ++var r8b1 = b4 !== a4; ++let qr5 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts +index da3d4131c6..59f9a78a38 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts +@@ -161,4 +161,5 @@ var r8b3 = b3 !== a3; + var r8b4 = b4 !== a4; + var r8b5 = b5 !== a5; + var r8b6 = b6 !== a6; +-//var r8b7 = b7 !== a7; +\ No newline at end of file ++//var r8b7 = b7 !== a7; ++let qw14 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts +index 5a2356eadb..05f49336bf 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts +@@ -161,4 +161,5 @@ var r8b3 = b3 !== a3; + var r8b4 = b4 !== a4; + var r8b5 = b5 !== a5; + var r8b6 = b6 !== a6; +-//var r8b7 = b7 !== a7; +\ No newline at end of file ++//var r8b7 = b7 !== a7; ++let qw13 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts +index 6401feb11c..fb2cd09f76 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts +@@ -75,4 +75,8 @@ var rg4 = b2 === a2; + var rh1 = a1 !== b1; + var rh2 = a2 !== b2; + var rh3 = b1 !== a1; +-var rh4 = b2 !== a2; +\ No newline at end of file ++var rh4 = b2 !== a2; ++let qe1 = new Derived(); ++let qe2 = new A1(); ++let qe3 = new B1(); ++let qe4 = new B2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts +index b99f8d7114..1399026e80 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts +@@ -19,3 +19,6 @@ declare class NormalToString { + function baz(normal: NormalToString) { + return normal instanceof NormalToString; + } ++let qr7 = new StaticToString(); ++let qr8 = new StaticToNumber(); ++let qr9 = new NormalToString(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts +index 6b88cd39f2..47a60b104b 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts +@@ -12,3 +12,4 @@ var r1 = a instanceof x1; + var r2 = b instanceof x2; + var r3 = c instanceof x1; + var r4 = d instanceof x1; ++let qr0 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts b/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts +index 0a6a47dfbb..4e2e1e494d 100644 +--- a/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts ++++ b/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts +@@ -38,3 +38,4 @@ var resultIsObject8 = (true, {}); + var resultIsObject9 = (!BOOLEAN, { a: 1, b: "s" }); + var resultIsObject10 = ("string", new Date()); + var resultIsObject11 = (STRING.toLowerCase(), new CLASS()); ++let qw10 = new CLASS(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts +index 11652b023d..93bdd906c6 100644 +--- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts ++++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts +@@ -44,3 +44,6 @@ var result10: (t: X) => any = true ? (m) => m.propertyX1 : (n) => n.propertyX2; + + //Expr1 and Expr2 are literals + var result11: any = true ? 1 : 'string'; ++ ++let qq1 = new A(); ++let qq0 = new B(); +diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts +index 7bcde9a695..fc8bde2595 100644 +--- a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts ++++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts +@@ -9,3 +9,5 @@ class B extends A { + // Ensure 'value' is of type 'number (and not '{}') by using its 'toExponential()' method. + constructor() { super(value => String(value.toExponential())); } + } ++ ++let qr17 = new B(); +diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts +index 760337f3ef..6eac51e440 100644 +--- a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts ++++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts +@@ -28,4 +28,5 @@ class C extends CBase { + } + }); + } +-} +\ No newline at end of file ++} ++let qt1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts b/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts +index b1e2ee7578..3ba8aa488a 100644 +--- a/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts ++++ b/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts +@@ -55,3 +55,4 @@ class D extends C { + super.foo(1, 2, ...a); + } + } ++let qr13 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts b/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts +index 707ef02de8..304d6792dc 100644 +--- a/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts ++++ b/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts +@@ -96,3 +96,4 @@ function tryCatchFn() { + var m = () => this + ''; + } + } ++let qr14 = new MyClass(); +diff --git a/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts b/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts +index b50751c7ae..051e4e3c3e 100644 +--- a/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts ++++ b/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts +@@ -60,3 +60,4 @@ var t: any; + var nested = new (new (new nestedCtor())())(); + var n = new nested(); + var n = new nested(); ++let aa1 = new C1(null,null); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/superCalls/superCalls.ts b/tests/cases/conformance/expressions/superCalls/superCalls.ts +index fdebc85906..da0fe9656b 100644 +--- a/tests/cases/conformance/expressions/superCalls/superCalls.ts ++++ b/tests/cases/conformance/expressions/superCalls/superCalls.ts +@@ -27,3 +27,5 @@ class OtherDerived extends OtherBase { + super(); + } + } ++let qr15 = new Derived(null); ++let qr16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts b/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts +new file mode 100644 +index 0000000000..99d6a50b00 +--- /dev/null ++++ b/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts +@@ -0,0 +1,178 @@ ++// @target: esnext ++// @useDefineForClassFields: false ++class MyTestClass { ++ private canary: number; ++ static staticCanary: number; ++ ++ constructor() { ++ //type of 'this' in constructor body is the class instance type ++ var p = this.canary; ++ var p: number; ++ this.canary = 3; ++ } ++ ++ //type of 'this' in member function param list is the class instance type ++ memberFunc(t = this) { ++ var t: MyTestClass; ++ ++ //type of 'this' in member function body is the class instance type ++ var p = this; ++ var p: MyTestClass; ++ } ++ ++ //type of 'this' in member accessor(get and set) body is the class instance type ++ get prop() { ++ var p = this; ++ var p: MyTestClass; ++ return this; ++ } ++ set prop(v) { ++ var p = this; ++ var p: MyTestClass; ++ p = v; ++ v = p; ++ } ++ ++ someFunc = () => { ++ //type of 'this' in member variable initializer is the class instance type ++ var t = this; ++ var t: MyTestClass; ++ }; ++ ++ //type of 'this' in static function param list is constructor function type ++ static staticFn(t = this) { ++ var t: typeof MyTestClass; ++ var t = MyTestClass; ++ t.staticCanary; ++ ++ //type of 'this' in static function body is constructor function type ++ var p = this; ++ var p: typeof MyTestClass; ++ var p = MyTestClass; ++ p.staticCanary; ++ } ++ ++ static get staticProp() { ++ //type of 'this' in static accessor body is constructor function type ++ var p = this; ++ var p: typeof MyTestClass; ++ var p = MyTestClass; ++ p.staticCanary; ++ return this; ++ } ++ static set staticProp(v: typeof MyTestClass) { ++ //type of 'this' in static accessor body is constructor function type ++ var p = this; ++ var p: typeof MyTestClass; ++ var p = MyTestClass; ++ p.staticCanary; ++ } ++} ++ ++class MyGenericTestClass { ++ private canary: number; ++ static staticCanary: number; ++ ++ constructor() { ++ //type of 'this' in constructor body is the class instance type ++ var p = this.canary; ++ var p: number; ++ this.canary = 3; ++ } ++ ++ //type of 'this' in member function param list is the class instance type ++ memberFunc(t = this) { ++ var t: MyGenericTestClass; ++ ++ //type of 'this' in member function body is the class instance type ++ var p = this; ++ var p: MyGenericTestClass; ++ } ++ ++ //type of 'this' in member accessor(get and set) body is the class instance type ++ get prop() { ++ var p = this; ++ var p: MyGenericTestClass; ++ return this; ++ } ++ set prop(v) { ++ var p = this; ++ var p: MyGenericTestClass; ++ p = v; ++ v = p; ++ } ++ ++ someFunc = () => { ++ //type of 'this' in member variable initializer is the class instance type ++ var t = this; ++ var t: MyGenericTestClass; ++ }; ++ ++ //type of 'this' in static function param list is constructor function type ++ static staticFn(t = this) { ++ var t: typeof MyGenericTestClass; ++ var t = MyGenericTestClass; ++ t.staticCanary; ++ ++ //type of 'this' in static function body is constructor function type ++ var p = this; ++ var p: typeof MyGenericTestClass; ++ var p = MyGenericTestClass; ++ p.staticCanary; ++ } ++ ++ static get staticProp() { ++ //type of 'this' in static accessor body is constructor function type ++ var p = this; ++ var p: typeof MyGenericTestClass; ++ var p = MyGenericTestClass; ++ p.staticCanary; ++ return this; ++ } ++ static set staticProp(v: typeof MyGenericTestClass) { ++ //type of 'this' in static accessor body is constructor function type ++ var p = this; ++ var p: typeof MyGenericTestClass; ++ var p = MyGenericTestClass; ++ p.staticCanary; ++ } ++} ++ ++//type of 'this' in a function declaration param list is Any ++function fn(s = this) { ++ var s: any; ++ s.spaaaaaaace = 4; ++ ++ //type of 'this' in a function declaration body is Any ++ var t: any; ++ var t = this; ++ this.spaaaaace = 4; ++} ++ ++//type of 'this' in a function expression param list list is Any ++var q1 = function (s = this) { ++ var s: any; ++ s.spaaaaaaace = 4; ++ ++ //type of 'this' in a function expression body is Any ++ var t: any; ++ var t = this; ++ this.spaaaaace = 4; ++} ++ ++//type of 'this' in a fat arrow expression param list is typeof globalThis ++var q2 = (s = this) => { ++ var s: typeof globalThis; ++ s.spaaaaaaace = 4; ++ ++ //type of 'this' in a fat arrow expression body is typeof globalThis ++ var t: typeof globalThis; ++ var t = this; ++ this.spaaaaace = 4; ++} ++ ++//type of 'this' in global module is GlobalThis ++var t: typeof globalThis; ++var t = this; ++this.spaaaaace = 4; ++ +diff --git a/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts b/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts +index 8884754b48..c6378e0dc3 100644 +--- a/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts ++++ b/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts +@@ -7,3 +7,4 @@ function saySize(message: Message | Message[]) { + return message.length; // Should have type Message[] here + } + } ++let rr5 = new Message(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts +index 57d56ccc3b..0f531ea811 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts +@@ -80,4 +80,8 @@ acceptingTypeGuardFunction(isA); + + // Binary expressions + let union2: C | B; +-let union3: boolean | B = isA(union2) || union2; +\ No newline at end of file ++let union3: boolean | B = isA(union2) || union2; ++ ++let ee2 = new B(); ++let ee3 = new C(); ++let ee4 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts +index d0e108b573..3511cc54b1 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts +@@ -30,4 +30,6 @@ let test2: B = funC(isB); + if (funD(isC, a)) { + a.propC; + } +-let test3: B = funE(isB, 1); +\ No newline at end of file ++let test3: B = funE(isB, 1); ++let qw7 = new B(); ++let qw8 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts +index 1ed8e6ebb0..e14dd79116 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts +@@ -43,4 +43,5 @@ if (typeof strOrNumOrBool !== "string" && numOrBool !== strOrNumOrBool) { + } + else { + var r3: string | number | boolean = strOrNumOrBool; // string | number | boolean +-} +\ No newline at end of file ++} ++let rr1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts +index 1d72f35828..3411e32bcf 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts +@@ -43,4 +43,5 @@ if (typeof strOrNumOrBool === "string" || numOrBool !== strOrNumOrBool) { + } + else { + numOrBool = strOrNumOrBool; // number | boolean +-} +\ No newline at end of file ++} ++let qw2 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts +index 31514fca74..db3d488209 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts +@@ -1,25 +1,25 @@ +-// A type guard of the form x instanceof C, where C is of a subtype of the global type 'Function' +-// and C has a property named 'prototype' +-// - when true, narrows the type of x to the type of the 'prototype' property in C provided +-// it is a subtype of the type of x, or +-// - when false, has no effect on the type of x. +- +-class C1 { +- p1: string; +-} +-class C2 { +- p2: number; +-} +-class D1 extends C1 { +- p3: number; +-} ++// A type guard of the form x instanceof C, where C is of a subtype of the global type 'Function' ++// and C has a property named 'prototype' ++// - when true, narrows the type of x to the type of the 'prototype' property in C provided ++// it is a subtype of the type of x, or ++// - when false, has no effect on the type of x. ++ ++class C1 { ++ p1: string; ++} ++class C2 { ++ p2: number; ++} ++class D1 extends C1 { ++ p3: number; ++} + class C3 { + p4: number; + } +-var str: string; +-var num: number; +-var strOrNum: string | number; +- ++var str: string; ++var num: number; ++var strOrNum: string | number; ++ + var ctor1: C1 | C2; + str = ctor1 instanceof C1 && ctor1.p1; // C1 + num = ctor1 instanceof C2 && ctor1.p2; // C2 +@@ -31,7 +31,7 @@ num = ctor2 instanceof C2 && ctor2.p2; // C2 + num = ctor2 instanceof D1 && ctor2.p3; // D1 + str = ctor2 instanceof D1 && ctor2.p1; // D1 + var r2: D1 | C2 = ctor2 instanceof C1 && ctor2; // C2 | D1 +- ++ + var ctor3: C1 | C2; + if (ctor3 instanceof C1) { + ctor3.p1; // C1 +@@ -64,4 +64,7 @@ if (ctor6 instanceof C1 || ctor6 instanceof C2) { + } + else { + ctor6.p4; // C3 +-} +\ No newline at end of file ++} ++let qw4 = new C2(); ++let qw3 = new D1(); ++let qw5 = new C3(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts +index 9f5ca611ee..e0953773d5 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts +@@ -34,4 +34,7 @@ var c2Ord1: C2 | D1; + num = isC2(c2Ord1) && c2Ord1.p2; // C2 + num = isD1(c2Ord1) && c2Ord1.p3; // D1 + str = isD1(c2Ord1) && c2Ord1.p1; // D1 +-var r2: C2 | D1 = isC1(c2Ord1) && c2Ord1; // C2 | D1 +\ No newline at end of file ++var r2: C2 | D1 = isC1(c2Ord1) && c2Ord1; // C2 | D1 ++ ++let rr2 = new C2(); ++let rr3 = new D1(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts +index 37651071b7..610f0da2c8 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts +@@ -83,3 +83,4 @@ if (typeof strOrNum !== "boolean") { + else { + let z2: {} = strOrNum; // {} + } ++let qw9 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts +index b4cdf81660..f00736781f 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts +@@ -82,3 +82,4 @@ if (typeof strOrBool !== "number") { + else { + let y2: {} = strOrBool; // {} + } ++let ee6 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts +index f742124708..a20093f868 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts +@@ -82,3 +82,4 @@ if (typeof numOrBool !== "string") { + else { + let x2: {} = numOrBool; // {} + } ++let rr4 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts +index e1256e4288..ceee99f7e2 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts +@@ -103,3 +103,12 @@ function f(i: Indexed) { + } + return "c" in i && i.c; + } ++let tt1 = new A(); ++let tt2 = new B(); ++let tt3 = new C(); ++let tt4 = new D(); ++let tt5 = new AWithOptionalProp(); ++let tt6 = new BWithOptionalProp(); ++let tt7 = new ClassWithUnionProp(); ++let tt8 = new InMemberOfClass(); ++let tt9 = new SelfAssert(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts +index 04b9a6a394..044131068a 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts +@@ -101,3 +101,4 @@ class ClassWithAccessors { + num = typeof var2 === "string" && var2.length; // string + } + } ++let ee1 = new ClassWithAccessors(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts +index cb1327027c..7bb36dfefe 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts +@@ -65,3 +65,4 @@ class C1 { + num = typeof param === "string" && param.length; // string + } + } ++let qw1 = new C1(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts +index bffe8d3d1b..b7fd3f9c34 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts +@@ -24,4 +24,5 @@ strOrNum = typeof c1.pp3 === "string" && c1.pp3; // string | number + var obj1: { + x: string | number; + }; +-strOrNum = typeof obj1.x === "string" && obj1.x; // string | number +\ No newline at end of file ++strOrNum = typeof obj1.x === "string" && obj1.x; // string | number ++let ee5 = new C1(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts +index 2c26b10c6a..574f2af39c 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts +@@ -25,4 +25,5 @@ var o: { + + if (typeof o.prop1 === "string" && o.prop1.toLowerCase()) {} + var prop1 = o.prop1; +-if (typeof prop1 === "string" && prop1.toLocaleLowerCase()) { } +\ No newline at end of file ++if (typeof prop1 === "string" && prop1.toLocaleLowerCase()) { } ++let qw6 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts +index b41a114503..87e1d09bea 100644 +--- a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts ++++ b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts +@@ -43,4 +43,5 @@ var ResultIsNumber13 = ~~~(NUMBER + NUMBER); + ~foo(); + ~objA.a; + ~M.n; +-~objA.a, M.n; +\ No newline at end of file ++~objA.a, M.n; ++let qr11 = new A(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts +index 0b60c73ef9..4495309b10 100644 +--- a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts ++++ b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts +@@ -42,4 +42,5 @@ var ResultIsNumber14 = ~~~(STRING + STRING); + ~STRING; + ~STRING1; + ~foo(); +-~objA.a,M.n; +\ No newline at end of file ++~objA.a,M.n; ++let qr12 = new A(); +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/exportNonVisibleType.ts b/tests/cases/conformance/externalModules/exportNonVisibleType.ts +index 4f4722fd86..cc56bd2f0b 100644 +--- a/tests/cases/conformance/externalModules/exportNonVisibleType.ts ++++ b/tests/cases/conformance/externalModules/exportNonVisibleType.ts +@@ -31,3 +31,4 @@ class C1 { + } + + export = C1; // Should work, private type I1 of visible class C1 only used in private member m1. ++let qt8 = new C1(); +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts +new file mode 100644 +index 0000000000..83e86fc6c6 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts +@@ -0,0 +1,12 @@ ++// @moduleResolution: node12 ++// @module: node12 ++ ++// @filename: /src/foo.mts ++export function foo() { ++ return ""; ++} ++ ++// @filename: /src/bar.mts ++// Extensionless relative path ES import in an ES module ++import { foo } from "./foo"; // should error, suggest adding ".mjs" ++import { baz } from "./baz"; // should error, ask for extension, no extension suggestion +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts +new file mode 100644 +index 0000000000..0051e17401 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts +@@ -0,0 +1,6 @@ ++// @moduleResolution: node12 ++// @module: node12 ++ ++// @filename: /src/buzz.mts ++// Extensionless relative path cjs import in an ES module ++import foo = require("./foo"); // should error, should not ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts +new file mode 100644 +index 0000000000..2ec3ff1ad0 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts +@@ -0,0 +1,12 @@ ++// @moduleResolution: nodenext ++// @module: nodenext ++// @jsx: preserve ++ ++// @filename: /src/foo.tsx ++export function foo() { ++ return ""; ++} ++ ++// @filename: /src/bar.mts ++// Extensionless relative path ES import in an ES module ++import { foo } from "./foo"; // should error, suggest adding ".jsx" +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts +new file mode 100644 +index 0000000000..c1eab70f92 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts +@@ -0,0 +1,12 @@ ++// @moduleResolution: nodenext ++// @module: nodenext ++// @jsx: react ++ ++// @filename: /src/foo.tsx ++export function foo() { ++ return ""; ++} ++ ++// @filename: /src/bar.mts ++// Extensionless relative path ES import in an ES module ++import { foo } from "./foo"; // should error, suggest adding ".js" +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts +new file mode 100644 +index 0000000000..5053a242cd +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts +@@ -0,0 +1,6 @@ ++// @moduleResolution: node12 ++// @module: node12 ++ ++// @filename: /src/buzz.mts ++// Extensionless relative path dynamic import in an ES module ++import("./foo").then(x => x); // should error, ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts +new file mode 100644 +index 0000000000..2a6ef2645d +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts +@@ -0,0 +1,8 @@ ++// @moduleResolution: node12 ++// @module: node12 ++ ++// @filename: /src/bar.cts ++// Extensionless relative path import statement in a cjs module ++// Import statements are not allowed in cjs files, ++// but other errors should not assume that they are allowed ++import { foo } from "./foo"; // should error, should not ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts +new file mode 100644 +index 0000000000..3b10dd6e48 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts +@@ -0,0 +1,6 @@ ++// @moduleResolution: node12 ++// @module: node12 ++ ++// @filename: /src/bar.cts ++// Extensionless relative path cjs import in a cjs module ++import foo = require("./foo"); // should error, should not ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts +new file mode 100644 +index 0000000000..fef17b3aa1 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts +@@ -0,0 +1,6 @@ ++// @moduleResolution: node12 ++// @module: node12 ++ ++// @filename: /src/bar.cts ++// Extensionless relative path dynamic import in a cjs module ++import("./foo").then(x => x); // should error, ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts b/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts +new file mode 100644 +index 0000000000..c8c584f66d +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts +@@ -0,0 +1,21 @@ ++// @module: esnext ++// @declaration: true ++ ++// @Filename: /imports.ts ++import { type, as, something, foo, bar } from "./exports.js"; ++type; ++as; // Error (used in emitting position) ++something; // Error (used in emitting position) ++foo; // Error (used in emitting position) ++bar; // Error (used in emitting position) ++ ++// @Filename: /exports.ts ++const type = 0; ++const as = 0; ++const something = 0; ++export { type }; ++export { type as }; ++export { type something }; ++export { type type as foo }; ++export { type as as bar }; ++export type { type something as whatever }; // Error +diff --git a/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts +new file mode 100644 +index 0000000000..3e949a0611 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts +@@ -0,0 +1,2 @@ ++// @Filename: /a.ts ++export default class A {} +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts +new file mode 100644 +index 0000000000..3bb8cdfce2 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts +@@ -0,0 +1,5 @@ ++ ++ ++// @Filename: /b.ts ++import type from './a'; ++type; +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts b/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts +new file mode 100644 +index 0000000000..348784befd +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts +@@ -0,0 +1,46 @@ ++// @module: esnext ++// @declaration: true ++ ++// @Filename: /mod.ts ++export const as = 0; ++export const type = 0; ++export const something = 0; ++ ++// @Filename: /a.ts ++import { type } from "./mod.js"; ++import { type as } from "./mod.js"; ++type; ++as; // Error (used in emitting position) ++ ++// @Filename: /b.ts ++import { type as as } from "./mod.js"; ++type; // Error (cannot resolve name) ++as; ++ ++// @Filename: /c.ts ++import { type as as as } from "./mod.js"; ++type; // Error (cannot resolve name) ++as; // Error (used in emitting position) ++ ++// @Filename: /d.ts ++import { type as as as as } from "./mod.js"; // Error ++ ++// @Filename: /e.ts ++import { type type as as } from "./mod.js"; ++import { type as type } from "./mod.js"; ++type; ++as; // Error (used in emitting position) ++ ++// @Filename: /f.ts ++import { type import } from "./mod.js"; // Error ++import { type as export } from "./mod.js"; // Error ++import { type as as export } from "./mod.js"; // Error ++import { type something } from "./mod.js"; ++import { type something as s } from "./mod.js"; ++type; // Error (cannot resolve name) ++as; // Error (cannot resolve name) ++something; // Error (used in emitting position) ++s; // Error (used in emitting position) ++ ++// @Filename: /g.ts ++import type { type something } from "./mod.js"; // Error +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts +new file mode 100644 +index 0000000000..66326cb98b +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts +@@ -0,0 +1,28 @@ ++// @preserveValueImports: true ++// @isolatedModules: true,false ++// @module: esnext ++ ++// @Filename: a.ts ++export default {}; ++export const b = 0; ++export const c = 1; ++export interface D {} ++ ++// @Filename: b.ts ++import a, { b, c, D } from "./a"; ++ ++// @Filename: c.ts ++import * as a from "./a"; ++ ++// @Filename: d.ts ++export = {}; ++ ++// @Filename: e.ts ++import D = require("./d"); ++import DD = require("./d"); ++DD; ++ ++// @Filename: f.ts ++import type a from "./a"; ++import { b, c } from "./a"; ++b; +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts +new file mode 100644 +index 0000000000..fc2a3612e7 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts +@@ -0,0 +1,47 @@ ++// @preserveValueImports: true ++// @isolatedModules: true,false ++// @module: esnext ++ ++// @Filename: a.ts ++export type A = {}; ++export type { A as default }; ++ ++// @Filename: b.ts ++class B {}; ++export type { B, B as default }; ++ ++// @Filename: c.ts ++import DefaultA from "./a"; ++import { A } from "./a"; ++import DefaultB from "./b"; ++import { B } from "./b"; ++ ++// @Filename: c.fixed.ts ++import type DefaultA from "./a"; ++import type { A } from "./a"; ++import type DefaultB from "./b"; ++import type { B } from "./b"; ++ ++// @Filename: d.ts ++export { A as AA } from "./a"; ++export { B as BB } from "./b"; ++ ++// @Filename: d.fixed.ts ++export type { A as AA } from "./a"; ++export type { B as BB } from "./b"; ++ ++// @Filename: e.ts ++import { AA, BB } from "./d"; ++ ++// @Filename: e.fixed.ts ++import type { AA, BB } from "./d"; ++ ++// @Filename: f.ts ++import type { A } from "./a"; ++import type { B } from "./b"; ++export { A, B as BB }; ++ ++// @Filename: f.fixed.ts ++import type { A } from "./a"; ++import type { B } from "./b"; ++export type { A, B as BB }; +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts +new file mode 100644 +index 0000000000..4797a30727 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts +@@ -0,0 +1,14 @@ ++// @preserveValueImports: true ++// @importsNotUsedAsValues: preserve ++// @module: esnext ++ ++// @Filename: /mod.ts ++export type A = unknown; ++export type B = never; ++export type C = any; ++ ++// @Filename: /index.ts ++import { type A, type B, type C } from "./mod.js"; ++ ++// @Filename: /reexport.ts ++export { type A, type B, type C } from "./mod.js"; +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts +new file mode 100644 +index 0000000000..85cbae30f7 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts +@@ -0,0 +1,13 @@ ++// @preserveValueImports: true ++// @isolatedModules: true ++// @module: es2015 ++ ++// @Filename: /exports.ts ++export function Component() {} ++export interface ComponentProps {} ++ ++// @Filename: /index.ts ++import { Component, ComponentProps } from "./exports.js"; ++ ++// @Filename: /index.fixed.ts ++import { Component, type ComponentProps } from "./exports.js"; +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts +new file mode 100644 +index 0000000000..27f78f707c +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts +@@ -0,0 +1,4 @@ ++// @preserveValueImports: true ++// @module: amd,system,commonjs,es2015 ++// @noTypesAndSymbols: true ++export {}; +diff --git a/tests/cases/conformance/importAssertion/importAssertion1.ts b/tests/cases/conformance/importAssertion/importAssertion1.ts +new file mode 100644 +index 0000000000..b547158cf1 +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion1.ts +@@ -0,0 +1,37 @@ ++// @declaration: true ++// @target: es2015 ++// @module: es2015, commonjs, esnext ++ ++// @filename: 0.ts ++export const a = 1; ++export const b = 2; ++ ++// @filename: 1.ts ++import './0' assert { type: "json" } ++import { a, b } from './0' assert { "type": "json" } ++import * as foo from './0' assert { type: "json" } ++a; ++b; ++foo.a; ++foo.b; ++ ++// @filename: 2.ts ++import { a, b } from './0' assert {} ++import { a as c, b as d } from './0' assert { a: "a", b: "b", c: "c" } ++a; ++b; ++c; ++d; ++ ++// @filename: 3.ts ++const a = import('./0') ++const b = import('./0', { assert: { type: "json" } }) ++const c = import('./0', { assert: { type: "json", ttype: "typo" } }) ++const d = import('./0', { assert: {} }) ++const dd = import('./0', {}) ++declare function foo(): any; ++const e = import('./0', foo()) ++const f = import() ++const g = import('./0', {}, {}) ++const h = import('./0', { assert: { type: "json" }},) ++ +diff --git a/tests/cases/conformance/importAssertion/importAssertion2.ts b/tests/cases/conformance/importAssertion/importAssertion2.ts +new file mode 100644 +index 0000000000..42a26af43e +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion2.ts +@@ -0,0 +1,17 @@ ++// @declaration: true ++// @target: es2015 ++// @module: es2015, commonjs, esnext ++ ++// @filename: 0.ts ++export const a = 1; ++export const b = 2; ++ ++// @filename: 1.ts ++export {} from './0' assert { type: "json" } ++export { a, b } from './0' assert { type: "json" } ++export * from './0' assert { type: "json" } ++export * as ns from './0' assert { type: "json" } ++ ++// @filename: 2.ts ++export { a, b } from './0' assert {} ++export { a as c, b as d } from './0' assert { a: "a", b: "b", c: "c" } +diff --git a/tests/cases/conformance/importAssertion/importAssertion3.ts b/tests/cases/conformance/importAssertion/importAssertion3.ts +new file mode 100644 +index 0000000000..28479378b1 +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion3.ts +@@ -0,0 +1,15 @@ ++// @declaration: true ++// @target: es2015 ++// @module: es2015, esnext ++ ++// @filename: 0.ts ++export interface I { } ++ ++// @filename: 1.ts ++export type {} from './0' assert { type: "json" } ++export type { I } from './0' assert { type: "json" } ++ ++// @filename: 2.ts ++import type { I } from './0' assert { type: "json" } ++import type * as foo from './0' assert { type: "json" } ++ +diff --git a/tests/cases/conformance/importAssertion/importAssertion4.ts b/tests/cases/conformance/importAssertion/importAssertion4.ts +new file mode 100644 +index 0000000000..242d7dd375 +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion4.ts +@@ -0,0 +1 @@ ++import * as f from "./first" assert +diff --git a/tests/cases/conformance/importAssertion/importAssertion5.ts b/tests/cases/conformance/importAssertion/importAssertion5.ts +new file mode 100644 +index 0000000000..ef09d84e66 +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion5.ts +@@ -0,0 +1 @@ ++import * as f from "./first" assert { +diff --git a/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts b/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts +index e3d076707b..8b95f5e240 100644 +--- a/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts ++++ b/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts +@@ -32,4 +32,8 @@ class D implements A { + d: string; + y: boolean; + z: boolean; +-} +\ No newline at end of file ++} ++let ww1 = new C(); ++let ww2 = new C2(); ++let ww3 = new C3(); ++let ww4 = new C4(); +diff --git a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts +index 003976a2b2..1ab2942311 100644 +--- a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts ++++ b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts +@@ -53,3 +53,15 @@ class C20 extends Constructor>() { x: string } + class C21 extends Constructor>() { x: string } + class C22 extends Constructor>() { x: string } + class C23 extends Constructor>() { x: string } ++let c1 = new C1(); ++let c2 = new C2(); ++let c3 = new C3(); ++let c4 = new C4(); ++let c5 = new C5(); ++let c6 = new C6(); ++let c7 = new C7(); ++let cx = new CX(); ++let c20 = new C20(); ++let c21 = new C21(); ++let c22 = new C22(); ++let c23 = new C23(); +\ No newline at end of file +diff --git a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts +index 6979b40579..20d877f7a2 100644 +--- a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts ++++ b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts +@@ -39,4 +39,5 @@ var a: Foo = { + m: M, + n: {}, + o: E.A +-} +\ No newline at end of file ++} ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts +index 12f51f90a7..e1af2f0ac6 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts +@@ -21,4 +21,3 @@ declare module A { + var p: { x: number; y: number; } + var p = A.Point.Origin; + var p = new A.Point(0, 0); // unexpected error here, bug 840000 +- +\ No newline at end of file +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts +index e923f1f002..b9bb58e89e 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts +@@ -13,6 +13,7 @@ module A { + export class Point { + constructor(public x: number, public y: number) { } + } ++ let pp = new Point(1,1); + } + + // @filename: test.ts +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts +index d285d9b422..9dca12bc2e 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts +@@ -19,4 +19,6 @@ module A { + export module Point { + function Origin() { return ""; }// not an error since not exported + } +-} +\ No newline at end of file ++ let pp = new Point(1,1); ++} ++let pp1 = new Point(1,1); +\ No newline at end of file +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts +index 7d88bf6292..71433fbef5 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts +@@ -3,6 +3,7 @@ module A { + x: number; + y: number; + } ++ let pp = new Point(); + } + + module A { +@@ -11,6 +12,7 @@ module A { + return { x: p.x, y: p.y }; + } + } ++ let pp1 = new Point(); + } + + // ensure merges as expected +@@ -21,6 +23,7 @@ module X.Y.Z { + export class Line { + length: number; + } ++ let ll = new Line(); + } + + module X { +@@ -29,6 +32,7 @@ module X { + class Line { + name: string; + } ++ let ll1 = new Line() + } + } + } +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts +index 449e6e76a2..a0c9072675 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts +@@ -16,6 +16,7 @@ module X.Y.Z { + export class Line { + length: number; + } ++ let ll = new Line(); + } + + module X { +@@ -24,6 +25,7 @@ module X { + export class Line { + name: string; + } ++ let ll1 = new Line(); + } + } + } +diff --git a/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts b/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts +index 02398acbbb..321d84cd56 100644 +--- a/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts ++++ b/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts +@@ -39,6 +39,7 @@ module E { + export module M { + export var x = 42; + } ++ let c1 = new C(); + } + + // validate all exportable statements, +@@ -51,4 +52,5 @@ module F { + module M { + var x = 42; + } ++ let c2 = new C(); + } +\ No newline at end of file +diff --git a/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts b/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts +index aef48103cd..14d12af759 100644 +--- a/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts ++++ b/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts +@@ -15,6 +15,7 @@ module B { + class B { + name: string; + } ++ let bb = new B(); + } + + module X { +diff --git a/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts b/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts +index 6d2f3780ee..72a97ff055 100644 +--- a/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts ++++ b/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts +@@ -11,4 +11,6 @@ export class Beta { + } + } + +-const arr = [Alpha, Beta]; ++// const arr = [Alpha, Beta]; ++let aa = new Alpha(); ++let be = new Beta(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts +index eb609720d7..b0bf85be74 100644 +--- a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts ++++ b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts +@@ -16,4 +16,5 @@ export class Sub extends Super { + constructor() { + super('first', 'second'); + } +-} +\ No newline at end of file ++} ++let ss = new Sub(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts +index bc2eae7dac..29ba837ef9 100644 +--- a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts ++++ b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts +@@ -14,4 +14,6 @@ export class A { + export default class Base extends A { + // This method is required to reproduce #35932 + verify() { } +-} +\ No newline at end of file ++} ++ ++let b = new Base(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts b/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts +new file mode 100644 +index 0000000000..859c60103b +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts +@@ -0,0 +1,23 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++// @Filename: type.js ++/** @typedef {import("./mod1").TestEnum} TE */ ++/** @type {TE} */ ++const test = 'add' ++/** @type {import("./mod1").TestEnum} */ ++const tost = 'remove' ++ ++// @Filename: value.js ++import { TestEnum } from "./mod1" ++/** @type {TestEnum} */ ++const tist = TestEnum.ADD ++ ++ ++// @Filename: mod1.js ++ ++/** @enum {string} */ ++// export const TestEnum = { ++// ADD: 'add', ++// REMOVE: 'remove' ++// } +diff --git a/tests/cases/conformance/jsdoc/extendsTag1.ts b/tests/cases/conformance/jsdoc/extendsTag1.ts +index 194982760e..79b3bc7079 100644 +--- a/tests/cases/conformance/jsdoc/extendsTag1.ts ++++ b/tests/cases/conformance/jsdoc/extendsTag1.ts +@@ -8,3 +8,4 @@ + * @extends {Set} Should prefer this Set, not the Set in the heritage clause + */ + class My extends Set {} ++let q4 = new My(); +diff --git a/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts b/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts +new file mode 100644 +index 0000000000..ce4fb95ff2 +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts +@@ -0,0 +1,10 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++ ++ ++// @Filename: /b.js ++import * as a from "./a"; ++let b = a.A; ++/** @augments a.A */ ++class B {} +diff --git a/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts b/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts +index e94df03fbc..aba2b989e7 100644 +--- a/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts ++++ b/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts +@@ -12,3 +12,4 @@ class B extends A { + return this.x; + } + } ++let q7 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts b/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts +index c298e6685a..9af8207ba4 100644 +--- a/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts ++++ b/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts +@@ -26,3 +26,5 @@ class BAT { + return ""; + } + } ++let q1 = new B(); ++let q2 = new BAT(); +diff --git a/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts b/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts +new file mode 100644 +index 0000000000..c93359a7a6 +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts +@@ -0,0 +1,71 @@ ++// @allowJs: true ++// @checkJs: true ++// @declaration: true ++// @outDir: out ++// @Filename: file.js ++ ++/** ++ * @template {string | number} [T=string] - ok: defaults are permitted ++ * @typedef {[T]} A ++ */ ++ ++/** @type {A} */ // ok, default for `T` in `A` is `string` ++const aDefault1 = [""]; ++/** @type {A} */ // error: `number` is not assignable to string` ++const aDefault2 = [0]; ++/** @type {A} */ // ok, `T` is provided for `A` ++const aString = [""]; ++/** @type {A} */ // ok, `T` is provided for `A` ++const aNumber = [0]; ++ ++/** ++ * @template T ++ * @template [U=T] - ok: default can reference earlier type parameter ++ * @typedef {[T, U]} B ++ */ ++ ++/** ++ * @template {string | number} [T] - error: default requires an `=type` ++ * @typedef {[T]} C ++ */ ++ ++/** ++ * @template {string | number} [T=] - error: default requires a `type` ++ * @typedef {[T]} D ++ */ ++ ++/** ++ * @template {string | number} [T=string] ++ * @template U - error: Required type parameters cannot follow optional type parameters ++ * @typedef {[T, U]} E ++ */ ++ ++/** ++ * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. ++ * @template [U=T] ++ * @typedef {[T, U]} G ++ */ ++ ++/** ++ * @template T ++ * @template [U=T] - ok: default can reference earlier type parameter ++ * @param {T} a ++ * @param {U} b ++ */ ++function f1(a, b) {} ++ ++ /** ++ * @template {string | number} [T=string] ++ * @template U - error: Required type parameters cannot follow optional type parameters ++ * @param {T} a ++ * @param {U} b ++ */ ++function f2(a, b) {} ++ ++/** ++ * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. ++ * @template [U=T] ++ * @param {T} a ++ * @param {U} b ++ */ ++function f3(a, b) {} +diff --git a/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts b/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts +new file mode 100644 +index 0000000000..a5b4d052ad +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts +@@ -0,0 +1,16 @@ ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @declaration: true ++// @Filename: file.js ++ ++/** ++ * @template T ++ * @template {keyof T} K ++ * @typedef {T[K]} Foo ++ */ ++ ++const x = { a: 1 }; ++ ++/** @type {Foo} */ ++const y = "a"; +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts b/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts +index 93e735e1fa..b38836e7e7 100644 +--- a/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts ++++ b/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts +@@ -6,3 +6,4 @@ + const c = null + class C { + } ++let q3 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/jsdocVariadicType.ts b/tests/cases/conformance/jsdoc/jsdocVariadicType.ts +new file mode 100644 +index 0000000000..cd4e75a54a +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/jsdocVariadicType.ts +@@ -0,0 +1,12 @@ ++// @allowJS: true ++// @checkJs: true ++// @noEmit: true ++ ++// @filename: a.js ++/** ++ * @type {function(boolean, string, ...*):void} ++ */ ++const foo = function (a, b, ...r) { }; ++ ++// @filename: b.ts ++foo(false, ''); +diff --git a/tests/cases/conformance/jsdoc/seeTag3.ts b/tests/cases/conformance/jsdoc/seeTag3.ts +new file mode 100644 +index 0000000000..abd16226fe +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/seeTag3.ts +@@ -0,0 +1,7 @@ ++// @outdir: out/ ++// @checkJs: true ++// @filename: seeTag3.js ++ ++/** @see [The typescript web site](https://typescriptlang.org) */ ++function theWholeThing() { ++} +diff --git a/tests/cases/conformance/jsdoc/thisTag2.ts b/tests/cases/conformance/jsdoc/thisTag2.ts +new file mode 100644 +index 0000000000..187ac9b932 +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/thisTag2.ts +@@ -0,0 +1,11 @@ ++// @target: esnext ++// @allowJs: true ++// @declaration: true ++// @emitDeclarationOnly: true ++// @filename: a.js ++ ++/** @this {string} */ ++export function f1() {} ++ ++/** @this */ ++export function f2() {} +diff --git a/tests/cases/conformance/jsx/jsxParsingError4.tsx b/tests/cases/conformance/jsx/jsxParsingError4.tsx +new file mode 100644 +index 0000000000..c4db4fe7ab +--- /dev/null ++++ b/tests/cases/conformance/jsx/jsxParsingError4.tsx +@@ -0,0 +1,18 @@ ++// @strict: true, false ++// @jsx: react ++// @filename: a.tsx ++ ++declare const React: any ++declare namespace JSX { ++ interface IntrinsicElements { ++ [k: string]: any ++ } ++} ++ ++const a = ( ++ ++); ++ ++const b = ( ++ ++); +diff --git a/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts b/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts +new file mode 100644 +index 0000000000..08b6149d37 +--- /dev/null ++++ b/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts +@@ -0,0 +1,140 @@ ++// @Filename: jsxParserRecovery.tsx ++// @jsx: preserve ++ ++// should have no errors here; all these functions should parse and resolve ++noName(); noClose(); noCloseTypeArg(); noCloseAttrs(); noCloseTypeArgAttrs(); noCloseBracket(); noCloseBracketTypeArgAttrs(); noSelfclose(); noSelfcloseTypeArgAttrs(); ++noNameTrailingTag(); noCloseTrailingTag(); noCloseTypeArgTrailingTag(); noCloseAttrsTrailingTag(); noCloseTypeArgAttrsTrailingTag(); noCloseBracketTrailingTag(); noCloseBracketTypeArgAttrsTrailingTag(); // noSelfcloseTrailingTag(); noSelfcloseTypeArgAttrsTrailingTag(); ++noNameTrailingText(); noCloseTrailingText(); noCloseTypeArgTrailingText(); noCloseAttrsTrailingText(); noCloseTypeArgAttrsTrailingText(); noCloseBracketTrailingText(); noCloseBracketTypeArgAttrsTrailingText(); // noSelfcloseTrailingText(); noSelfcloseTypeArgAttrsTrailingText(); ++ ++function diddy() { ++ return null; ++} ++ ++var donkey =
++ < ++
; ++function noName() { } ++var donkey =
++ ; ++function noClose() { } ++var donkey =
++ ++
; ++function noCloseTypeArg() { } ++var donkey =
++ ; ++function noCloseAttrs() { } ++var donkey =
++ bananas="please" ++
; ++function noCloseTypeArgAttrs() { } ++var donkey =
++ ; ++function noCloseBracket() { } ++var donkey =
++ bananas="please"/ ++
; ++function noCloseBracketTypeArgAttrs() { } ++var donkey =
++ ++
; ++function noSelfclose() { } ++var donkey =
++ bananas="please"> ++
; ++function noSelfcloseTypeArgAttrs() { } ++ ++var donkey =
++ < ++ ++
; ++function noNameTrailingTag() { } ++var donkey =
++ ++
; ++function noCloseTrailingTag() { } ++var donkey =
++ ++ ++
; ++function noCloseTypeArgTrailingTag() { } ++var donkey =
++ ++
; ++function noCloseAttrsTrailingTag() { } ++var donkey =
++ bananas="please" ++ ++
; ++function noCloseTypeArgAttrsTrailingTag() { } ++var donkey =
++ ++
; ++function noCloseBracketTrailingTag() { } ++var donkey =
++ bananas="please"/ ++ ++
; ++function noCloseBracketTypeArgAttrsTrailingTag() { } ++var donkey =
++ ++ ++
; ++function noSelfcloseTrailingTag() { } ++var donkey =
++ bananas="please"> ++ ++
; ++function noSelfcloseTypeArgAttrsTrailingTag() { } ++ ++var donkey =
++ < ++ Cranky Wrinkly Funky ++
; ++function noNameTrailingText() { } ++var donkey =
++ ; ++function noCloseTrailingText() { } ++var donkey =
++ ++ Cranky Wrinkly Funky ++
; ++function noCloseTypeArgTrailingText() { } ++var donkey =
++ ; ++function noCloseAttrsTrailingText() { } ++var donkey =
++ bananas="please" ++ Cranky Wrinkly Funky ++
; ++function noCloseTypeArgAttrsTrailingText() { } ++var donkey =
++ ; ++function noCloseBracketTrailingText() { } ++var donkey =
++ bananas="please"/ ++ Cranky Wrinkly Funky ++
; ++function noCloseBracketTypeArgAttrsTrailingText() { } ++var donkey =
++ ++ Cranky Wrinkly Funky ++
; ++function noSelfcloseTrailingText() { } ++var donkey =
++ bananas="please"> ++ Cranky Wrinkly Funky ++
; ++function noSelfcloseTypeArgAttrsTrailingText() { } +diff --git a/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts b/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts +new file mode 100644 +index 0000000000..2ddc20ae39 +--- /dev/null ++++ b/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts +@@ -0,0 +1,32 @@ ++// @jsx: react-jsx ++// @target: es2015,es2018,esnext ++// @filename: test.tsx ++/// ++ ++export function T1(a: any) { ++ return
T1
; ++} ++ ++export function T2(a: any, b: any) { ++ return
T2
; ++} ++ ++export function T3(a: any, b: any) { ++ return
T3
; ++} ++ ++export function T4(a: any, b: any) { ++ return
T4
; ++} ++ ++export function T5(a: any, b: any, c: any, d: any) { ++ return
T5
; ++} ++ ++export function T6(a: any, b: any, c: any, d: any) { ++ return
T6
; ++} ++ ++export function T7(a: any, b: any, c: any, d: any) { ++ return
T7
; ++} +diff --git a/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts b/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts +new file mode 100644 +index 0000000000..75c681daf0 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts +@@ -0,0 +1,23 @@ ++// @noImplicitAny: true ++// @noImplicitReferences: true ++ ++// @filename: node_modules/foo/package.json ++{ ++ "name": "foo", ++ "version": "1.0.0" ++} ++ ++// @filename: node_modules/foo/index.js ++var foo = 0; ++module.exports = foo; ++ ++// @filename: node_modules/foo/index.d.ts ++declare const foo: any; ++export = foo; ++ ++// @filename: node_modules/foo/other.js ++module.exports = {}; ++ ++// @filename: index.ts ++import * as Foo from "foo"; ++import * as Other from "foo/other"/*1*/; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts b/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts +new file mode 100644 +index 0000000000..04d4f15421 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts +@@ -0,0 +1,3 @@ ++// @filename: /node_modules/@cow/boy/index.d.ts ++export const x: number; ++export const y: number; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts b/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts +new file mode 100644 +index 0000000000..80db9778d1 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts +@@ -0,0 +1,12 @@ ++// @noImplicitReferences: true ++// @traceResolution: true ++// @typeRoots: types ++ ++ ++// @filename: /a.ts ++import { x } from "./index"; ++import { y } from "./index"; ++import { z } from "./z"; ++x; ++y; ++z; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts b/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts +new file mode 100644 +index 0000000000..8af8c4b248 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts +@@ -0,0 +1,2 @@ ++// @filename: /node_modules/@types/be__bop/e/z.d.ts ++export const z: number; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts +new file mode 100644 +index 0000000000..7cfe77597d +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts +@@ -0,0 +1,2 @@ ++// @filename: /node_modules/@types/see__saw/index.d.ts ++export const x = 0; +diff --git a/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts +new file mode 100644 +index 0000000000..4f491b9532 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts +@@ -0,0 +1,9 @@ ++// @noImplicitReferences: true ++// @traceResolution: true ++// @typeRoots: types ++// @moduleResolution: classic ++ ++ ++// @filename: /a.ts ++import { x } from "./index"; ++x; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts +new file mode 100644 +index 0000000000..b2c0c1f81c +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts +@@ -0,0 +1,12 @@ ++// @noImplicitReferences: true ++// @currentDirectory: / ++// @allowJs: true ++// @maxNodeModuleJsDepth: 1 ++// Same as untypedModuleImport.ts but with --allowJs, so the package will actually be typed. ++ ++// @filename: /node_modules/foo/index.js ++// exports.default = { bar() { return 0; } } ++ ++// @filename: /a.ts ++import foo from "foo"; ++foo.bar(); +diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts +new file mode 100644 +index 0000000000..c54d01514d +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts +@@ -0,0 +1,4 @@ ++// @filename: /declarations.d.ts ++declare module "foo" { ++ export const x: number; ++} +diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts +new file mode 100644 +index 0000000000..577d258b72 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts +@@ -0,0 +1,12 @@ ++// @noImplicitReferences: true ++// @currentDirectory: / ++// This tests that an ambient module declaration overrides an untyped import. ++ ++// @filename: /node_modules/foo/index.js ++// This file is not processed. ++ ++ ++// @filename: /a.ts ++/// ++import { x } from "foo"; ++x; +diff --git a/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts b/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts +new file mode 100644 +index 0000000000..a19a7104ae +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts +@@ -0,0 +1,24 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: index.js ++// esm format file ++import * as self from "package"; ++self; ++// @filename: index.mjs ++// esm format file ++import * as self from "package"; ++self; ++// @filename: index.cjs ++// esm format file ++import * as self from "package"; ++self; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts +new file mode 100644 +index 0000000000..113c1fdeb8 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts +@@ -0,0 +1,324 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder/index.cjs ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder/index.mjs ++// esm format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/index.js ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/index.cjs ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/index.mjs ++// esm format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/another/index.js ++// esm format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/another/index.cjs ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/another/index.mjs ++// esm format file ++const x = 1; ++export {x}; ++// @filename: index.js ++import * as m1 from "./index.js"; ++import * as m2 from "./index.mjs"; ++import * as m3 from "./index.cjs"; ++import * as m4 from "./subfolder/index.js"; ++import * as m5 from "./subfolder/index.mjs"; ++import * as m6 from "./subfolder/index.cjs"; ++import * as m7 from "./subfolder2/index.js"; ++import * as m8 from "./subfolder2/index.mjs"; ++import * as m9 from "./subfolder2/index.cjs"; ++import * as m10 from "./subfolder2/another/index.js"; ++import * as m11 from "./subfolder2/another/index.mjs"; ++import * as m12 from "./subfolder2/another/index.cjs"; ++// The next ones shouldn't all work - esm format files have no index resolution or extension resolution ++import * as m13 from "./"; ++import * as m14 from "./index"; ++import * as m15 from "./subfolder"; ++import * as m16 from "./subfolder/"; ++import * as m17 from "./subfolder/index"; ++import * as m18 from "./subfolder2"; ++import * as m19 from "./subfolder2/"; ++import * as m20 from "./subfolder2/index"; ++import * as m21 from "./subfolder2/another"; ++import * as m22 from "./subfolder2/another/"; ++import * as m23 from "./subfolder2/another/index"; ++void m1; ++void m2; ++void m3; ++void m4; ++void m5; ++void m6; ++void m7; ++void m8; ++void m9; ++void m10; ++void m11; ++void m12; ++void m13; ++void m14; ++void m15; ++void m16; ++void m17; ++void m18; ++void m19; ++void m20; ++void m21; ++void m22; ++void m23; ++ ++// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) ++import m24 = require("./"); ++import m25 = require("./index"); ++import m26 = require("./subfolder"); ++import m27 = require("./subfolder/"); ++import m28 = require("./subfolder/index"); ++import m29 = require("./subfolder2"); ++import m30 = require("./subfolder2/"); ++import m31 = require("./subfolder2/index"); ++import m32 = require("./subfolder2/another"); ++import m33 = require("./subfolder2/another/"); ++import m34 = require("./subfolder2/another/index"); ++void m24; ++void m25; ++void m26; ++void m27; ++void m28; ++void m29; ++void m30; ++void m31; ++void m32; ++void m33; ++void m34; ++ ++// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution ++const _m35 = import("./"); ++const _m36 = import("./index"); ++const _m37 = import("./subfolder"); ++const _m38 = import("./subfolder/"); ++const _m39 = import("./subfolder/index"); ++const _m40 = import("./subfolder2"); ++const _m41 = import("./subfolder2/"); ++const _m42 = import("./subfolder2/index"); ++const _m43 = import("./subfolder2/another"); ++const _m44 = import("./subfolder2/another/"); ++const _m45 = import("./subfolder2/another/index"); ++// esm format file ++const x = 1; ++export {x}; ++// @filename: index.cjs ++// ESM-format imports below should issue errors ++import * as m1 from "./index.js"; ++import * as m2 from "./index.mjs"; ++import * as m3 from "./index.cjs"; ++import * as m4 from "./subfolder/index.js"; ++import * as m5 from "./subfolder/index.mjs"; ++import * as m6 from "./subfolder/index.cjs"; ++import * as m7 from "./subfolder2/index.js"; ++import * as m8 from "./subfolder2/index.mjs"; ++import * as m9 from "./subfolder2/index.cjs"; ++import * as m10 from "./subfolder2/another/index.js"; ++import * as m11 from "./subfolder2/another/index.mjs"; ++import * as m12 from "./subfolder2/another/index.cjs"; ++// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) ++import * as m13 from "./"; ++import * as m14 from "./index"; ++import * as m15 from "./subfolder"; ++import * as m16 from "./subfolder/"; ++import * as m17 from "./subfolder/index"; ++import * as m18 from "./subfolder2"; ++import * as m19 from "./subfolder2/"; ++import * as m20 from "./subfolder2/index"; ++import * as m21 from "./subfolder2/another"; ++import * as m22 from "./subfolder2/another/"; ++import * as m23 from "./subfolder2/another/index"; ++void m1; ++void m2; ++void m3; ++void m4; ++void m5; ++void m6; ++void m7; ++void m8; ++void m9; ++void m10; ++void m11; ++void m12; ++void m13; ++void m14; ++void m15; ++void m16; ++void m17; ++void m18; ++void m19; ++void m20; ++void m21; ++void m22; ++void m23; ++ ++// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) ++import m24 = require("./"); ++import m25 = require("./index"); ++import m26 = require("./subfolder"); ++import m27 = require("./subfolder/"); ++import m28 = require("./subfolder/index"); ++import m29 = require("./subfolder2"); ++import m30 = require("./subfolder2/"); ++import m31 = require("./subfolder2/index"); ++import m32 = require("./subfolder2/another"); ++import m33 = require("./subfolder2/another/"); ++import m34 = require("./subfolder2/another/index"); ++void m24; ++void m25; ++void m26; ++void m27; ++void m28; ++void m29; ++void m30; ++void m31; ++void m32; ++void m33; ++void m34; ++ ++// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution ++const _m35 = import("./"); ++const _m36 = import("./index"); ++const _m37 = import("./subfolder"); ++const _m38 = import("./subfolder/"); ++const _m39 = import("./subfolder/index"); ++const _m40 = import("./subfolder2"); ++const _m41 = import("./subfolder2/"); ++const _m42 = import("./subfolder2/index"); ++const _m43 = import("./subfolder2/another"); ++const _m44 = import("./subfolder2/another/"); ++const _m45 = import("./subfolder2/another/index"); ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: index.mjs ++import * as m1 from "./index.js"; ++import * as m2 from "./index.mjs"; ++import * as m3 from "./index.cjs"; ++import * as m4 from "./subfolder/index.js"; ++import * as m5 from "./subfolder/index.mjs"; ++import * as m6 from "./subfolder/index.cjs"; ++import * as m7 from "./subfolder2/index.js"; ++import * as m8 from "./subfolder2/index.mjs"; ++import * as m9 from "./subfolder2/index.cjs"; ++import * as m10 from "./subfolder2/another/index.js"; ++import * as m11 from "./subfolder2/another/index.mjs"; ++import * as m12 from "./subfolder2/another/index.cjs"; ++// The next ones should all fail - esm format files have no index resolution or extension resolution ++import * as m13 from "./"; ++import * as m14 from "./index"; ++import * as m15 from "./subfolder"; ++import * as m16 from "./subfolder/"; ++import * as m17 from "./subfolder/index"; ++import * as m18 from "./subfolder2"; ++import * as m19 from "./subfolder2/"; ++import * as m20 from "./subfolder2/index"; ++import * as m21 from "./subfolder2/another"; ++import * as m22 from "./subfolder2/another/"; ++import * as m23 from "./subfolder2/another/index"; ++void m1; ++void m2; ++void m3; ++void m4; ++void m5; ++void m6; ++void m7; ++void m8; ++void m9; ++void m10; ++void m11; ++void m12; ++void m13; ++void m14; ++void m15; ++void m16; ++void m17; ++void m18; ++void m19; ++void m20; ++void m21; ++void m22; ++void m23; ++ ++// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) ++import m24 = require("./"); ++import m25 = require("./index"); ++import m26 = require("./subfolder"); ++import m27 = require("./subfolder/"); ++import m28 = require("./subfolder/index"); ++import m29 = require("./subfolder2"); ++import m30 = require("./subfolder2/"); ++import m31 = require("./subfolder2/index"); ++import m32 = require("./subfolder2/another"); ++import m33 = require("./subfolder2/another/"); ++import m34 = require("./subfolder2/another/index"); ++void m24; ++void m25; ++void m26; ++void m27; ++void m28; ++void m29; ++void m30; ++void m31; ++void m32; ++void m33; ++void m34; ++ ++// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution ++const _m35 = import("./"); ++const _m36 = import("./index"); ++const _m37 = import("./subfolder"); ++const _m38 = import("./subfolder/"); ++const _m39 = import("./subfolder/index"); ++const _m40 = import("./subfolder2"); ++const _m41 = import("./subfolder2/"); ++const _m42 = import("./subfolder2/index"); ++const _m43 = import("./subfolder2/another"); ++const _m44 = import("./subfolder2/another/"); ++const _m45 = import("./subfolder2/another/index"); ++ ++// esm format file ++const x = 1; ++export {x}; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: subfolder2/package.json ++{ ++} ++// @filename: subfolder2/another/package.json ++{ ++ "type": "module" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts +new file mode 100644 +index 0000000000..ea0821742f +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts +@@ -0,0 +1,8 @@ ++// @module: node12,nodenext ++// @allowJs: true ++// @noEmit: true ++// @filename: foo.cjs ++exports.foo = "foo" ++// @filename: bar.ts ++import foo from "./foo.cjs" ++foo.foo; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts +new file mode 100644 +index 0000000000..1020812d5a +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts +@@ -0,0 +1,126 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: index.js ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/a"; ++import * as mjsi from "inner/b"; ++import * as typei from "inner"; ++import * as ts from "inner/types"; ++cjsi.mjsSource; ++mjsi.mjsSource; ++typei.mjsSource; ++ts.mjsSource; ++// @filename: index.mjs ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/a"; ++import * as mjsi from "inner/b"; ++import * as typei from "inner"; ++import * as ts from "inner/types"; ++cjsi.mjsSource; ++mjsi.mjsSource; ++typei.mjsSource; ++ts.mjsSource; ++// @filename: index.cjs ++// cjs format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/a"; ++import * as mjsi from "inner/b"; ++import * as typei from "inner"; ++import * as ts from "inner/types"; ++cjsi.cjsSource; ++mjsi.cjsSource; ++typei.implicitCjsSource; ++ts.cjsSource; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/a"; ++import * as mjs from "inner/b"; ++import * as type from "inner"; ++import * as ts from "inner/types"; ++export { cjs }; ++export { mjs }; ++export { type }; ++export { ts }; ++export const implicitCjsSource = true; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/a"; ++import * as mjs from "inner/b"; ++import * as type from "inner"; ++import * as ts from "inner/types"; ++export { cjs }; ++export { mjs }; ++export { type }; ++export { ts }; ++export const mjsSource = true; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/a"; ++import * as mjs from "inner/b"; ++import * as type from "inner"; ++import * as ts from "inner/types"; ++export { cjs }; ++export { mjs }; ++export { type }; ++export { ts }; ++export const cjsSource = true; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./a": { ++ "require": "./index.cjs", ++ "node": "./index.mjs" ++ }, ++ "./b": { ++ "import": "./index.mjs", ++ "node": "./index.cjs" ++ }, ++ ".": { ++ "import": "./index.mjs", ++ "node": "./index.js" ++ }, ++ "./types": { ++ "types": { ++ "import": "./index.d.mts", ++ "require": "./index.d.cts", ++ }, ++ "node": { ++ "import": "./index.mjs", ++ "require": "./index.cjs" ++ } ++ } ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts +new file mode 100644 +index 0000000000..d7032c648b +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts +@@ -0,0 +1,27 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++export async function main() { ++ const { readFile } = await import("fs"); ++} ++// @filename: index.js ++// esm format file ++export async function main() { ++ const { readFile } = await import("fs"); ++} ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts +new file mode 100644 +index 0000000000..f7d5aaf822 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts +@@ -0,0 +1,32 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++const a = {}; ++export = a; ++// @filename: subfolder/file.js ++// cjs format file ++const a = {}; ++module.exports = a; ++// @filename: index.js ++// esm format file ++const a = {}; ++export = a; ++// @filename: file.js ++// esm format file ++import "fs"; ++const a = {}; ++module.exports = a; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts +new file mode 100644 +index 0000000000..14783731bf +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts +@@ -0,0 +1,29 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++function require() {} ++const exports = {}; ++class Object {} ++export const __esModule = false; ++export {require, exports, Object}; ++// @filename: index.js ++// esm format file ++function require() {} ++const exports = {}; ++class Object {} ++export const __esModule = false; ++export {require, exports, Object}; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts +new file mode 100644 +index 0000000000..53e6b94450 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts +@@ -0,0 +1,34 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++import fs = require("fs"); ++fs.readFile; ++export import fs2 = require("fs"); ++// @filename: index.js ++// esm format file ++import fs = require("fs"); ++fs.readFile; ++export import fs2 = require("fs"); ++// @filename: file.js ++// esm format file ++const __require = null; ++const _createRequire = null; ++import fs = require("fs"); ++fs.readFile; ++export import fs2 = require("fs"); ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts +new file mode 100644 +index 0000000000..d5727a3dc7 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts +@@ -0,0 +1,34 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @importHelpers: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++import {default as _fs} from "fs"; ++_fs.readFile; ++import * as fs from "fs"; ++fs.readFile; ++// @filename: index.js ++// esm format file ++import {default as _fs} from "fs"; ++_fs.readFile; ++import * as fs from "fs"; ++fs.readFile; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; ++declare module "tslib" { ++ export {}; ++ // intentionally missing all helpers ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts +new file mode 100644 +index 0000000000..032290f78b +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts +@@ -0,0 +1,30 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @importHelpers: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.ts ++// cjs format file ++export * from "fs"; ++export * as fs from "fs"; ++// @filename: index.js ++// esm format file ++export * from "fs"; ++export * as fs from "fs"; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; ++declare module "tslib" { ++ export {}; ++ // intentionally missing all helpers ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts +new file mode 100644 +index 0000000000..9452e2003a +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts +@@ -0,0 +1,32 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @importHelpers: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++export {default} from "fs"; ++export {default as foo} from "fs"; ++export {bar as baz} from "fs"; ++// @filename: index.js ++// esm format file ++export {default} from "fs"; ++export {default as foo} from "fs"; ++export {bar as baz} from "fs"; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; ++declare module "tslib" { ++ export {}; ++ // intentionally missing all helpers ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts +new file mode 100644 +index 0000000000..a8708434b9 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts +@@ -0,0 +1,23 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++const x = import.meta.url; ++export {x}; ++// @filename: index.js ++// esm format file ++const x = import.meta.url; ++export {x}; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts +new file mode 100644 +index 0000000000..65e5721b0b +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts +@@ -0,0 +1,92 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: index.js ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.mjs ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.cjs ++// cjs format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++cjsi; ++mjsi; ++typei; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts +new file mode 100644 +index 0000000000..b9d6027f5d +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts +@@ -0,0 +1,41 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: index.js ++// esm format file ++import * as cjs from "#cjs"; ++import * as mjs from "#mjs"; ++import * as type from "#type"; ++cjs; ++mjs; ++type; ++// @filename: index.mjs ++// esm format file ++import * as cjs from "#cjs"; ++import * as mjs from "#mjs"; ++import * as type from "#type"; ++cjs; ++mjs; ++type; ++// @filename: index.cjs ++// esm format file ++import * as cjs from "#cjs"; ++import * as mjs from "#mjs"; ++import * as type from "#type"; ++cjs; ++mjs; ++type; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js", ++ "imports": { ++ "#cjs": "./index.cjs", ++ "#mjs": "./index.mjs", ++ "#type": "./index.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts +new file mode 100644 +index 0000000000..2691885690 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts +@@ -0,0 +1,69 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: index.js ++// esm format file ++import * as cjsi from "inner/cjs/index"; ++import * as mjsi from "inner/mjs/index"; ++import * as typei from "inner/js/index"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.mjs ++// esm format file ++import * as cjsi from "inner/cjs/index"; ++import * as mjsi from "inner/mjs/index"; ++import * as typei from "inner/js/index"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.cjs ++// cjs format file ++import * as cjsi from "inner/cjs/index"; ++import * as mjsi from "inner/mjs/index"; ++import * as typei from "inner/js/index"; ++cjsi; ++mjsi; ++typei; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/cjs/index"; ++import * as mjs from "inner/mjs/index"; ++import * as type from "inner/js/index"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/cjs/index"; ++import * as mjs from "inner/mjs/index"; ++import * as type from "inner/js/index"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/cjs/index"; ++import * as mjs from "inner/mjs/index"; ++import * as type from "inner/js/index"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./cjs/*": "./*.cjs", ++ "./mjs/*": "./*.mjs", ++ "./js/*": "./*.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts +new file mode 100644 +index 0000000000..6b96f34758 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts +@@ -0,0 +1,69 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: index.js ++// esm format file ++import * as cjsi from "inner/cjs/index.cjs"; ++import * as mjsi from "inner/mjs/index.mjs"; ++import * as typei from "inner/js/index.js"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.mjs ++// esm format file ++import * as cjsi from "inner/cjs/index.cjs"; ++import * as mjsi from "inner/mjs/index.mjs"; ++import * as typei from "inner/js/index.js"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.cjs ++// cjs format file ++import * as cjsi from "inner/cjs/index.cjs"; ++import * as mjsi from "inner/mjs/index.mjs"; ++import * as typei from "inner/js/index.js"; ++cjsi; ++mjsi; ++typei; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/cjs/index.cjs"; ++import * as mjs from "inner/mjs/index.mjs"; ++import * as type from "inner/js/index.js"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/cjs/index.cjs"; ++import * as mjs from "inner/mjs/index.mjs"; ++import * as type from "inner/js/index.js"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/cjs/index.cjs"; ++import * as mjs from "inner/mjs/index.mjs"; ++import * as type from "inner/js/index.js"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./cjs/*.cjs": "./*.cjs", ++ "./mjs/*.mjs": "./*.mjs", ++ "./js/*.js": "./*.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts +new file mode 100644 +index 0000000000..15892edbe3 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts +@@ -0,0 +1,37 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++import {h} from "../index.js"; ++import mod = require("../index.js"); ++import {f as _f} from "./index.js"; ++import mod2 = require("./index.js"); ++export async function f() { ++ const mod3 = await import ("../index.js"); ++ const mod4 = await import ("./index.js"); ++ h(); ++} ++// @filename: index.js ++// esm format file ++import {h as _h} from "./index.js"; ++import mod = require("./index.js"); ++import {f} from "./subfolder/index.js"; ++import mod2 = require("./subfolder/index.js"); ++export async function h() { ++ const mod3 = await import ("./index.js"); ++ const mod4 = await import ("./subfolder/index.js"); ++ f(); ++} ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts +new file mode 100644 +index 0000000000..872cad71c9 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts +@@ -0,0 +1,25 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @filename: subfolder/index.js ++// cjs format file ++const x = await 1; ++export {x}; ++for await (const y of []) {} ++// @filename: index.js ++// esm format file ++const x = await 1; ++export {x}; ++for await (const y of []) {} ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts b/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts +new file mode 100644 +index 0000000000..656465829e +--- /dev/null ++++ b/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts +@@ -0,0 +1,33 @@ ++// @module: commonjs ++// @lib: es2020 ++// @declaration: true ++// @filename: index.ts ++export const a = async () => (await import("inner")).x(); ++// @filename: node_modules/inner/index.d.ts ++export { x } from "./other.js"; ++// @filename: node_modules/inner/other.d.ts ++import { Thing } from "./private.js" ++export const x: () => Thing; ++// @filename: node_modules/inner/private.d.ts ++export interface Thing {} // not exported in export map, inaccessible under new module modes ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "type": "module", ++ "exports": { ++ ".": { ++ "default": "./index.js" ++ }, ++ "./other": { ++ "default": "./other.js" ++ } ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModules1.ts b/tests/cases/conformance/node/nodeModules1.ts +new file mode 100644 +index 0000000000..698a6efec1 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModules1.ts +@@ -0,0 +1,321 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder/index.cts ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder/index.mts ++// esm format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/index.ts ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/index.cts ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/index.mts ++// esm format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/another/index.ts ++// esm format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/another/index.mts ++// esm format file ++const x = 1; ++export {x}; ++// @filename: subfolder2/another/index.cts ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: index.mts ++import * as m1 from "./index.js"; ++import * as m2 from "./index.mjs"; ++import * as m3 from "./index.cjs"; ++import * as m4 from "./subfolder/index.js"; ++import * as m5 from "./subfolder/index.mjs"; ++import * as m6 from "./subfolder/index.cjs"; ++import * as m7 from "./subfolder2/index.js"; ++import * as m8 from "./subfolder2/index.mjs"; ++import * as m9 from "./subfolder2/index.cjs"; ++import * as m10 from "./subfolder2/another/index.js"; ++import * as m11 from "./subfolder2/another/index.mjs"; ++import * as m12 from "./subfolder2/another/index.cjs"; ++// The next ones should all fail - esm format files have no index resolution or extension resolution ++import * as m13 from "./"; ++import * as m14 from "./index"; ++import * as m15 from "./subfolder"; ++import * as m16 from "./subfolder/"; ++import * as m17 from "./subfolder/index"; ++import * as m18 from "./subfolder2"; ++import * as m19 from "./subfolder2/"; ++import * as m20 from "./subfolder2/index"; ++import * as m21 from "./subfolder2/another"; ++import * as m22 from "./subfolder2/another/"; ++import * as m23 from "./subfolder2/another/index"; ++void m1; ++void m2; ++void m3; ++void m4; ++void m5; ++void m6; ++void m7; ++void m8; ++void m9; ++void m10; ++void m11; ++void m12; ++void m13; ++void m14; ++void m15; ++void m16; ++void m17; ++void m18; ++void m19; ++void m20; ++void m21; ++void m22; ++void m23; ++ ++// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) ++import m24 = require("./"); ++import m25 = require("./index"); ++import m26 = require("./subfolder"); ++import m27 = require("./subfolder/"); ++import m28 = require("./subfolder/index"); ++import m29 = require("./subfolder2"); ++import m30 = require("./subfolder2/"); ++import m31 = require("./subfolder2/index"); ++import m32 = require("./subfolder2/another"); ++import m33 = require("./subfolder2/another/"); ++import m34 = require("./subfolder2/another/index"); ++void m24; ++void m25; ++void m26; ++void m27; ++void m28; ++void m29; ++void m30; ++void m31; ++void m32; ++void m33; ++void m34; ++ ++// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution ++const _m35 = import("./"); ++const _m36 = import("./index"); ++const _m37 = import("./subfolder"); ++const _m38 = import("./subfolder/"); ++const _m39 = import("./subfolder/index"); ++const _m40 = import("./subfolder2"); ++const _m41 = import("./subfolder2/"); ++const _m42 = import("./subfolder2/index"); ++const _m43 = import("./subfolder2/another"); ++const _m44 = import("./subfolder2/another/"); ++const _m45 = import("./subfolder2/another/index"); ++ ++// esm format file ++const x = 1; ++export {x}; ++// @filename: index.cts ++// ESM-format imports below should issue errors ++import * as m1 from "./index.js"; ++import * as m2 from "./index.mjs"; ++import * as m3 from "./index.cjs"; ++import * as m4 from "./subfolder/index.js"; ++import * as m5 from "./subfolder/index.mjs"; ++import * as m6 from "./subfolder/index.cjs"; ++import * as m7 from "./subfolder2/index.js"; ++import * as m8 from "./subfolder2/index.mjs"; ++import * as m9 from "./subfolder2/index.cjs"; ++import * as m10 from "./subfolder2/another/index.js"; ++import * as m11 from "./subfolder2/another/index.mjs"; ++import * as m12 from "./subfolder2/another/index.cjs"; ++// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) ++import * as m13 from "./"; ++import * as m14 from "./index"; ++import * as m15 from "./subfolder"; ++import * as m16 from "./subfolder/"; ++import * as m17 from "./subfolder/index"; ++import * as m18 from "./subfolder2"; ++import * as m19 from "./subfolder2/"; ++import * as m20 from "./subfolder2/index"; ++import * as m21 from "./subfolder2/another"; ++import * as m22 from "./subfolder2/another/"; ++import * as m23 from "./subfolder2/another/index"; ++void m1; ++void m2; ++void m3; ++void m4; ++void m5; ++void m6; ++void m7; ++void m8; ++void m9; ++void m10; ++void m11; ++void m12; ++void m13; ++void m14; ++void m15; ++void m16; ++void m17; ++void m18; ++void m19; ++void m20; ++void m21; ++void m22; ++void m23; ++ ++// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) ++import m24 = require("./"); ++import m25 = require("./index"); ++import m26 = require("./subfolder"); ++import m27 = require("./subfolder/"); ++import m28 = require("./subfolder/index"); ++import m29 = require("./subfolder2"); ++import m30 = require("./subfolder2/"); ++import m31 = require("./subfolder2/index"); ++import m32 = require("./subfolder2/another"); ++import m33 = require("./subfolder2/another/"); ++import m34 = require("./subfolder2/another/index"); ++void m24; ++void m25; ++void m26; ++void m27; ++void m28; ++void m29; ++void m30; ++void m31; ++void m32; ++void m33; ++void m34; ++ ++// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution ++const _m35 = import("./"); ++const _m36 = import("./index"); ++const _m37 = import("./subfolder"); ++const _m38 = import("./subfolder/"); ++const _m39 = import("./subfolder/index"); ++const _m40 = import("./subfolder2"); ++const _m41 = import("./subfolder2/"); ++const _m42 = import("./subfolder2/index"); ++const _m43 = import("./subfolder2/another"); ++const _m44 = import("./subfolder2/another/"); ++const _m45 = import("./subfolder2/another/index"); ++// cjs format file ++const x = 1; ++export {x}; ++// @filename: index.ts ++import * as m1 from "./index.js"; ++import * as m2 from "./index.mjs"; ++import * as m3 from "./index.cjs"; ++import * as m4 from "./subfolder/index.js"; ++import * as m5 from "./subfolder/index.mjs"; ++import * as m6 from "./subfolder/index.cjs"; ++import * as m7 from "./subfolder2/index.js"; ++import * as m8 from "./subfolder2/index.mjs"; ++import * as m9 from "./subfolder2/index.cjs"; ++import * as m10 from "./subfolder2/another/index.js"; ++import * as m11 from "./subfolder2/another/index.mjs"; ++import * as m12 from "./subfolder2/another/index.cjs"; ++// The next ones shouldn't all work - esm format files have no index resolution or extension resolution ++import * as m13 from "./"; ++import * as m14 from "./index"; ++import * as m15 from "./subfolder"; ++import * as m16 from "./subfolder/"; ++import * as m17 from "./subfolder/index"; ++import * as m18 from "./subfolder2"; ++import * as m19 from "./subfolder2/"; ++import * as m20 from "./subfolder2/index"; ++import * as m21 from "./subfolder2/another"; ++import * as m22 from "./subfolder2/another/"; ++import * as m23 from "./subfolder2/another/index"; ++void m1; ++void m2; ++void m3; ++void m4; ++void m5; ++void m6; ++void m7; ++void m8; ++void m9; ++void m10; ++void m11; ++void m12; ++void m13; ++void m14; ++void m15; ++void m16; ++void m17; ++void m18; ++void m19; ++void m20; ++void m21; ++void m22; ++void m23; ++ ++// These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) ++import m24 = require("./"); ++import m25 = require("./index"); ++import m26 = require("./subfolder"); ++import m27 = require("./subfolder/"); ++import m28 = require("./subfolder/index"); ++import m29 = require("./subfolder2"); ++import m30 = require("./subfolder2/"); ++import m31 = require("./subfolder2/index"); ++import m32 = require("./subfolder2/another"); ++import m33 = require("./subfolder2/another/"); ++import m34 = require("./subfolder2/another/index"); ++void m24; ++void m25; ++void m26; ++void m27; ++void m28; ++void m29; ++void m30; ++void m31; ++void m32; ++void m33; ++void m34; ++ ++// These shouldn't work - dynamic `import()` always uses the esm resolver, which does not have extension resolution ++const _m35 = import("./"); ++const _m36 = import("./index"); ++const _m37 = import("./subfolder"); ++const _m38 = import("./subfolder/"); ++const _m39 = import("./subfolder/index"); ++const _m40 = import("./subfolder2"); ++const _m41 = import("./subfolder2/"); ++const _m42 = import("./subfolder2/index"); ++const _m43 = import("./subfolder2/another"); ++const _m44 = import("./subfolder2/another/"); ++const _m45 = import("./subfolder2/another/index"); ++// esm format file ++const x = 1; ++export {x}; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: subfolder2/package.json ++{ ++} ++// @filename: subfolder2/another/package.json ++{ ++ "type": "module" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts b/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts +new file mode 100644 +index 0000000000..06c6320d77 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts +@@ -0,0 +1,19 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++export const a = 1; ++// @filename: index.ts ++// esm format file ++import mod from "./subfolder/index.js"; ++mod; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts b/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts +new file mode 100644 +index 0000000000..07bf9d9724 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts +@@ -0,0 +1,124 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @outDir: out ++// @filename: index.ts ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/a"; ++import * as mjsi from "inner/b"; ++import * as typei from "inner"; ++import * as ts from "inner/types"; ++cjsi.mjsSource; ++mjsi.mjsSource; ++typei.mjsSource; ++ts.mjsSource; ++// @filename: index.mts ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/a"; ++import * as mjsi from "inner/b"; ++import * as typei from "inner"; ++import * as ts from "inner/types"; ++cjsi.mjsSource; ++mjsi.mjsSource; ++typei.mjsSource; ++ts.mjsSource; ++// @filename: index.cts ++// cjs format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/a"; ++import * as mjsi from "inner/b"; ++import * as typei from "inner"; ++import * as ts from "inner/types"; ++cjsi.cjsSource; ++mjsi.cjsSource; ++typei.implicitCjsSource; ++ts.cjsSource; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/a"; ++import * as mjs from "inner/b"; ++import * as type from "inner"; ++import * as ts from "inner/types"; ++export { cjs }; ++export { mjs }; ++export { type }; ++export { ts }; ++export const implicitCjsSource = true; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/a"; ++import * as mjs from "inner/b"; ++import * as type from "inner"; ++import * as ts from "inner/types"; ++export { cjs }; ++export { mjs }; ++export { type }; ++export { ts }; ++export const mjsSource = true; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/a"; ++import * as mjs from "inner/b"; ++import * as type from "inner"; ++import * as ts from "inner/types"; ++export { cjs }; ++export { mjs }; ++export { type }; ++export { ts }; ++export const cjsSource = true; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./a": { ++ "require": "./index.cjs", ++ "node": "./index.mjs" ++ }, ++ "./b": { ++ "import": "./index.mjs", ++ "node": "./index.cjs" ++ }, ++ ".": { ++ "import": "./index.mjs", ++ "node": "./index.js" ++ }, ++ "./types": { ++ "types": { ++ "import": "./index.d.mts", ++ "require": "./index.d.cts", ++ }, ++ "node": { ++ "import": "./index.mjs", ++ "require": "./index.cjs" ++ } ++ } ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts b/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts +new file mode 100644 +index 0000000000..3f8bae7ffc +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts +@@ -0,0 +1,71 @@ ++// @module: nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++export {}; ++// @filename: index.mts ++// esm format file ++export {}; ++// @filename: index.cts ++// cjs format file ++export {}; ++// @filename: other.ts ++// esm format file ++export const a = await import("package/cjs"); ++export const b = await import("package/mjs"); ++export const c = await import("package"); ++export const f = await import("inner"); ++// @filename: other2.ts ++// esm format file ++export const d = await import("inner/cjs"); ++export const e = await import("inner/mjs"); ++// @filename: other.mts ++// esm format file ++export const a = await import("package/cjs"); ++export const b = await import("package/mjs"); ++export const c = await import("package"); ++export const f = await import("inner"); ++// @filename: other2.mts ++// esm format file ++export const d = await import("inner/cjs"); ++export const e = await import("inner/mjs"); ++// @filename: other.cts ++// cjs format file, no TLA ++export const a = import("package/cjs"); ++export const b = import("package/mjs"); ++export const c = import("package"); ++export const f = import("inner"); ++// @filename: other2.cts ++// cjs format file, no TLA ++export const d = import("inner/cjs"); ++export const e = import("inner/mjs"); ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++export const cjsMain = true; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++export const esm = true; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++export const cjsNonmain = true; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts b/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts +new file mode 100644 +index 0000000000..2599ff429f +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts +@@ -0,0 +1,93 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @outDir: out ++// @filename: index.ts ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++export const a = cjs; ++export const b = mjs; ++export const c = type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++export const d = cjsi; ++export const e = mjsi; ++export const f = typei; ++// @filename: index.mts ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++export const a = cjs; ++export const b = mjs; ++export const c = type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++export const d = cjsi; ++export const e = mjsi; ++export const f = typei; ++// @filename: index.cts ++// cjs format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++export const a = cjs; ++export const b = mjs; ++export const c = type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++export const d = cjsi; ++export const e = mjsi; ++export const f = typei; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++cjs; ++mjs; ++type; ++export const cjsMain = true; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++cjs; ++mjs; ++type; ++export const esm = true; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++cjs; ++mjs; ++type; ++export const cjsNonmain = true; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesDynamicImport.ts b/tests/cases/conformance/node/nodeModulesDynamicImport.ts +new file mode 100644 +index 0000000000..46b317ca52 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesDynamicImport.ts +@@ -0,0 +1,24 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++export async function main() { ++ const { readFile } = await import("fs"); ++} ++// @filename: index.ts ++// esm format file ++export async function main() { ++ const { readFile } = await import("fs"); ++} ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportAssignments.ts b/tests/cases/conformance/node/nodeModulesExportAssignments.ts +new file mode 100644 +index 0000000000..7cbcd200d9 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportAssignments.ts +@@ -0,0 +1,20 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++const a = {}; ++export = a; ++// @filename: index.ts ++// esm format file ++const a = {}; ++export = a; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts b/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts +new file mode 100644 +index 0000000000..ffc5adf8e0 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts +@@ -0,0 +1,27 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import { Thing } from "inner/other"; ++export const a = (await import("inner")).x(); ++// @filename: node_modules/inner/index.d.ts ++// esm format file ++export { x } from "./other.js"; ++// @filename: node_modules/inner/other.d.ts ++// esm format file ++export interface Thing {} ++export const x: () => Thing; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts +new file mode 100644 +index 0000000000..2562c7a4a1 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts +@@ -0,0 +1,34 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import { Thing } from "inner/other.js"; // should fail ++export const a = (await import("inner")).x(); ++// @filename: node_modules/inner/index.d.ts ++// esm format file ++export { x } from "./other.js"; ++// @filename: node_modules/inner/other.d.ts ++// esm format file ++export interface Thing {} ++export const x: () => Thing; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "type": "module", ++ "exports": { ++ ".": { ++ "default": "./index.js" ++ }, ++ "./other": { ++ "default": "./other.js" ++ } ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts +new file mode 100644 +index 0000000000..2eb8ac58e6 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts +@@ -0,0 +1,29 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import { Thing } from "inner/other"; ++export const a = (await import("inner/index.js")).x(); ++// @filename: node_modules/inner/index.d.ts ++// esm format file ++export { x } from "./other.js"; ++// @filename: node_modules/inner/other.d.ts ++// esm format file ++export interface Thing {} ++export const x: () => Thing; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "type": "module", ++ "exports": { ++ "./": "./" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts +new file mode 100644 +index 0000000000..97812da5b5 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts +@@ -0,0 +1,29 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import { Thing } from "inner/other"; ++export const a = (await import("inner/index.js")).x(); ++// @filename: node_modules/inner/index.d.ts ++// esm format file ++export { x } from "./other.js"; ++// @filename: node_modules/inner/other.d.ts ++// esm format file ++export interface Thing {} ++export const x: () => Thing; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "type": "module", ++ "exports": { ++ "./*.js": "./*.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts b/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts +new file mode 100644 +index 0000000000..d441627d7d +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts +@@ -0,0 +1,67 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++const x = () => (void 0); ++export {x}; ++// @filename: subfolder/index.cts ++// cjs format file ++const x = () => (void 0); ++export {x}; ++// @filename: subfolder/index.mts ++// esm format file ++const x = () => (void 0); ++export {x}; ++// @filename: subfolder2/index.ts ++// cjs format file ++const x = () => (void 0); ++export {x}; ++// @filename: subfolder2/index.cts ++// cjs format file ++const x = () => (void 0); ++export {x}; ++// @filename: subfolder2/index.mts ++// esm format file ++const x = () => (void 0); ++export {x}; ++// @filename: subfolder2/another/index.ts ++// esm format file ++const x = () => (void 0); ++export {x}; ++// @filename: subfolder2/another/index.mts ++// esm format file ++const x = () => (void 0); ++export {x}; ++// @filename: subfolder2/another/index.cts ++// cjs format file ++const x = () => (void 0); ++export {x}; ++// @filename: index.mts ++// esm format file ++const x = () => (void 0); ++export {x}; ++// @filename: index.cts ++// cjs format file ++const x = () => (void 0); ++export {x}; ++// @filename: index.ts ++// esm format file ++const x = () => (void 0); ++export {x}; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: subfolder2/package.json ++{ ++} ++// @filename: subfolder2/another/package.json ++{ ++ "type": "module" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts b/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts +new file mode 100644 +index 0000000000..e9a9b9d9ed +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts +@@ -0,0 +1,26 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++function require() {} ++const exports = {}; ++class Object {} ++export const __esModule = false; ++export {require, exports, Object}; ++// @filename: index.ts ++// esm format file ++function require() {} ++const exports = {}; ++class Object {} ++export const __esModule = false; ++export {require, exports, Object}; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportAssertions.ts b/tests/cases/conformance/node/nodeModulesImportAssertions.ts +new file mode 100644 +index 0000000000..0fe1ccdf82 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportAssertions.ts +@@ -0,0 +1,13 @@ ++// @module: node12,nodenext ++// @resolveJsonModule: true ++// @filename: index.ts ++import json from "./package.json" assert { type: "json" }; ++// @filename: otherc.cts ++import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions ++const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine ++// @filename: package.json ++{ ++ "name": "pkg", ++ "private": true, ++ "type": "module" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportAssignments.ts b/tests/cases/conformance/node/nodeModulesImportAssignments.ts +new file mode 100644 +index 0000000000..6c22fe83e0 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportAssignments.ts +@@ -0,0 +1,31 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++import fs = require("fs"); ++fs.readFile; ++export import fs2 = require("fs"); ++// @filename: index.ts ++// esm format file ++import fs = require("fs"); ++fs.readFile; ++export import fs2 = require("fs"); ++// @filename: file.ts ++// esm format file ++const __require = null; ++const _createRequire = null; ++import fs = require("fs"); ++fs.readFile; ++export import fs2 = require("fs"); ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts +new file mode 100644 +index 0000000000..103b583712 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts +@@ -0,0 +1,31 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @importHelpers: true ++// @filename: subfolder/index.ts ++// cjs format file ++import {default as _fs} from "fs"; ++_fs.readFile; ++import * as fs from "fs"; ++fs.readFile; ++// @filename: index.ts ++// esm format file ++import {default as _fs} from "fs"; ++_fs.readFile; ++import * as fs from "fs"; ++fs.readFile; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; ++declare module "tslib" { ++ export {}; ++ // intentionally missing all helpers ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts +new file mode 100644 +index 0000000000..7f90947a5f +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts +@@ -0,0 +1,27 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @importHelpers: true ++// @filename: subfolder/index.ts ++// cjs format file ++export * from "fs"; ++export * as fs from "fs"; ++// @filename: index.ts ++// esm format file ++export * from "fs"; ++export * as fs from "fs"; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; ++declare module "tslib" { ++ export {}; ++ // intentionally missing all helpers ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts +new file mode 100644 +index 0000000000..5f6984ad1f +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts +@@ -0,0 +1,25 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @importHelpers: true ++// @filename: subfolder/index.ts ++// cjs format file ++export {default} from "fs"; ++// @filename: index.ts ++// esm format file ++export {default} from "fs"; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} ++// @filename: types.d.ts ++declare module "fs"; ++declare module "tslib" { ++ export {}; ++ // intentionally missing all helpers ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportMeta.ts b/tests/cases/conformance/node/nodeModulesImportMeta.ts +new file mode 100644 +index 0000000000..d684c7b5cb +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportMeta.ts +@@ -0,0 +1,20 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++const x = import.meta.url; ++export {x}; ++// @filename: index.ts ++// esm format file ++const x = import.meta.url; ++export {x}; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts b/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts +new file mode 100644 +index 0000000000..2a407b2bc6 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts +@@ -0,0 +1,24 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import * as type from "#type"; ++type; ++// @filename: index.mts ++// esm format file ++import * as type from "#type"; ++type; ++// @filename: index.cts ++// esm format file ++import * as type from "#type"; ++type; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.cjs", ++ "imports": { ++ "#type": "package" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts b/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts +new file mode 100644 +index 0000000000..c0482c86ec +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts +@@ -0,0 +1,24 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import * as type from "#type"; ++type; ++// @filename: index.mts ++// esm format file ++import * as type from "#type"; ++type; ++// @filename: index.cts ++// esm format file ++import * as type from "#type"; ++type; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "package", ++ "imports": { ++ "#type": "package" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesPackageExports.ts b/tests/cases/conformance/node/nodeModulesPackageExports.ts +new file mode 100644 +index 0000000000..897d01b07d +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesPackageExports.ts +@@ -0,0 +1,90 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @outDir: out ++// @filename: index.ts ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.mts ++// esm format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.cts ++// cjs format file ++import * as cjs from "package/cjs"; ++import * as mjs from "package/mjs"; ++import * as type from "package"; ++cjs; ++mjs; ++type; ++import * as cjsi from "inner/cjs"; ++import * as mjsi from "inner/mjs"; ++import * as typei from "inner"; ++cjsi; ++mjsi; ++typei; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/cjs"; ++import * as mjs from "inner/mjs"; ++import * as type from "inner"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./cjs": "./index.cjs", ++ "./mjs": "./index.mjs", ++ ".": "./index.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesPackageImports.ts b/tests/cases/conformance/node/nodeModulesPackageImports.ts +new file mode 100644 +index 0000000000..cccf930098 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesPackageImports.ts +@@ -0,0 +1,38 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import * as cjs from "#cjs"; ++import * as mjs from "#mjs"; ++import * as type from "#type"; ++cjs; ++mjs; ++type; ++// @filename: index.mts ++// esm format file ++import * as cjs from "#cjs"; ++import * as mjs from "#mjs"; ++import * as type from "#type"; ++cjs; ++mjs; ++type; ++// @filename: index.cts ++// esm format file ++import * as cjs from "#cjs"; ++import * as mjs from "#mjs"; ++import * as type from "#type"; ++cjs; ++mjs; ++type; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js", ++ "imports": { ++ "#cjs": "./index.cjs", ++ "#mjs": "./index.mjs", ++ "#type": "./index.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts b/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts +new file mode 100644 +index 0000000000..e22e497a94 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts +@@ -0,0 +1,67 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @outDir: out ++// @filename: index.ts ++// esm format file ++import * as cjsi from "inner/cjs/index"; ++import * as mjsi from "inner/mjs/index"; ++import * as typei from "inner/js/index"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.mts ++// esm format file ++import * as cjsi from "inner/cjs/index"; ++import * as mjsi from "inner/mjs/index"; ++import * as typei from "inner/js/index"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.cts ++// cjs format file ++import * as cjsi from "inner/cjs/index"; ++import * as mjsi from "inner/mjs/index"; ++import * as typei from "inner/js/index"; ++cjsi; ++mjsi; ++typei; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/cjs/index"; ++import * as mjs from "inner/mjs/index"; ++import * as type from "inner/js/index"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/cjs/index"; ++import * as mjs from "inner/mjs/index"; ++import * as type from "inner/js/index"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/cjs/index"; ++import * as mjs from "inner/mjs/index"; ++import * as type from "inner/js/index"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./cjs/*": "./*.cjs", ++ "./mjs/*": "./*.mjs", ++ "./js/*": "./*.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts b/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts +new file mode 100644 +index 0000000000..3abe36e0d6 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts +@@ -0,0 +1,67 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @outDir: out ++// @filename: index.ts ++// esm format file ++import * as cjsi from "inner/cjs/index.cjs"; ++import * as mjsi from "inner/mjs/index.mjs"; ++import * as typei from "inner/js/index.js"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.mts ++// esm format file ++import * as cjsi from "inner/cjs/index.cjs"; ++import * as mjsi from "inner/mjs/index.mjs"; ++import * as typei from "inner/js/index.js"; ++cjsi; ++mjsi; ++typei; ++// @filename: index.cts ++// cjs format file ++import * as cjsi from "inner/cjs/index.cjs"; ++import * as mjsi from "inner/mjs/index.mjs"; ++import * as typei from "inner/js/index.js"; ++cjsi; ++mjsi; ++typei; ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++import * as cjs from "inner/cjs/index.cjs"; ++import * as mjs from "inner/mjs/index.mjs"; ++import * as type from "inner/js/index.js"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++import * as cjs from "inner/cjs/index.cjs"; ++import * as mjs from "inner/mjs/index.mjs"; ++import * as type from "inner/js/index.js"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++import * as cjs from "inner/cjs/index.cjs"; ++import * as mjs from "inner/mjs/index.mjs"; ++import * as type from "inner/js/index.js"; ++export { cjs }; ++export { mjs }; ++export { type }; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ "./cjs/*.cjs": "./*.cjs", ++ "./mjs/*.mjs": "./*.mjs", ++ "./js/*.js": "./*.js" ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts b/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts +new file mode 100644 +index 0000000000..c298685c22 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts +@@ -0,0 +1,29 @@ ++// @module: node12,nodenext ++// @resolveJsonModule: true ++// @outDir: ./out ++// @declaration: true ++// @filename: index.ts ++import pkg from "./package.json" ++export const name = pkg.name; ++import * as ns from "./package.json"; ++export const thing = ns; ++export const name2 = ns.default.name; ++// @filename: index.cts ++import pkg from "./package.json" ++export const name = pkg.name; ++import * as ns from "./package.json"; ++export const thing = ns; ++export const name2 = ns.default.name; ++// @filename: index.mts ++import pkg from "./package.json" ++export const name = pkg.name; ++import * as ns from "./package.json"; ++export const thing = ns; ++export const name2 = ns.default.name; ++// @filename: package.json ++{ ++ "name": "pkg", ++ "version": "0.0.1", ++ "type": "module", ++ "default": "misedirection" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts b/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts +new file mode 100644 +index 0000000000..78aa93ee17 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts +@@ -0,0 +1,34 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++import {h} from "../index.js"; ++import mod = require("../index.js"); ++import {f as _f} from "./index.js"; ++import mod2 = require("./index.js"); ++export async function f() { ++ const mod3 = await import ("../index.js"); ++ const mod4 = await import ("./index.js"); ++ h(); ++} ++// @filename: index.ts ++// esm format file ++import {h as _h} from "./index.js"; ++import mod = require("./index.js"); ++import {f} from "./subfolder/index.js"; ++import mod2 = require("./subfolder/index.js"); ++export async function h() { ++ const mod3 = await import ("./index.js"); ++ const mod4 = await import ("./subfolder/index.js"); ++ f(); ++} ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts b/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts +new file mode 100644 +index 0000000000..2fbd5d3b0c +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts +@@ -0,0 +1,22 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: subfolder/index.ts ++// cjs format file ++const x = await 1; ++export {x}; ++for await (const y of []) {} ++// @filename: index.ts ++// esm format file ++const x = await 1; ++export {x}; ++for await (const y of []) {} ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module" ++} ++// @filename: subfolder/package.json ++{ ++ "type": "commonjs" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts b/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts +new file mode 100644 +index 0000000000..52cda091b3 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts +@@ -0,0 +1,53 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @outDir: out ++// @filename: index.ts ++// esm format file ++import * as mod from "inner"; ++mod.correctVersionApplied; ++ ++// @filename: index.mts ++// esm format file ++import * as mod from "inner"; ++mod.correctVersionApplied; ++ ++// @filename: index.cts ++// cjs format file ++import * as mod from "inner"; ++mod.correctVersionApplied; ++ ++// @filename: node_modules/inner/index.d.ts ++// cjs format file ++export const noConditionsApplied = true; ++// @filename: node_modules/inner/index.d.mts ++// esm format file ++export const importConditionApplied = true; ++// @filename: node_modules/inner/index.d.cts ++// cjs format file ++export const wrongConditionApplied = true; ++// @filename: node_modules/inner/old-types.d.ts ++export const noVersionApplied = true; ++// @filename: node_modules/inner/new-types.d.ts ++export const correctVersionApplied = true; ++// @filename: node_modules/inner/future-types.d.ts ++export const futureVersionApplied = true; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++} ++// @filename: node_modules/inner/package.json ++{ ++ "name": "inner", ++ "private": true, ++ "exports": { ++ ".": { ++ "types@>=10000": "./future-types.d.ts", ++ "types@>=1": "./new-types.d.ts", ++ "types": "./old-types.d.ts", ++ "import": "./index.mjs", ++ "node": "./index.js" ++ }, ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodePackageSelfName.ts b/tests/cases/conformance/node/nodePackageSelfName.ts +new file mode 100644 +index 0000000000..099d9c424e +--- /dev/null ++++ b/tests/cases/conformance/node/nodePackageSelfName.ts +@@ -0,0 +1,21 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import * as self from "package"; ++self; ++// @filename: index.mts ++// esm format file ++import * as self from "package"; ++self; ++// @filename: index.cts ++// esm format file ++import * as self from "package"; ++self; ++// @filename: package.json ++{ ++ "name": "package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodePackageSelfNameScoped.ts b/tests/cases/conformance/node/nodePackageSelfNameScoped.ts +new file mode 100644 +index 0000000000..f4ef1e3798 +--- /dev/null ++++ b/tests/cases/conformance/node/nodePackageSelfNameScoped.ts +@@ -0,0 +1,21 @@ ++// @module: node12,nodenext ++// @declaration: true ++// @filename: index.ts ++// esm format file ++import * as self from "@scope/package"; ++self; ++// @filename: index.mts ++// esm format file ++import * as self from "@scope/package"; ++self; ++// @filename: index.cts ++// cjs format file ++import * as self from "@scope/package"; ++self; ++// @filename: package.json ++{ ++ "name": "@scope/package", ++ "private": true, ++ "type": "module", ++ "exports": "./index.js" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override10.ts b/tests/cases/conformance/override/override10.ts +index 3a8eca1632..31b904811c 100644 +--- a/tests/cases/conformance/override/override10.ts ++++ b/tests/cases/conformance/override/override10.ts +@@ -9,4 +9,5 @@ abstract class Base { + abstract class Sub extends Base { + abstract override foo(): number; + bar() { } +-} +\ No newline at end of file ++} ++let aa =new Sub(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override12.ts b/tests/cases/conformance/override/override12.ts +index 304caf1627..084c248b37 100644 +--- a/tests/cases/conformance/override/override12.ts ++++ b/tests/cases/conformance/override/override12.ts +@@ -24,3 +24,4 @@ class B extends A { + + override m3(): void {} + } ++let qq13 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override15.ts b/tests/cases/conformance/override/override15.ts +new file mode 100644 +index 0000000000..882cc7eb97 +--- /dev/null ++++ b/tests/cases/conformance/override/override15.ts +@@ -0,0 +1,9 @@ ++// @noImplicitOverride: true ++ ++class A { ++ doSomething() {} ++} ++ ++class B extends A { ++ override doSomethang() {} ++} +diff --git a/tests/cases/conformance/override/override16.ts b/tests/cases/conformance/override/override16.ts +index 4468edfdc4..b869c89311 100644 +--- a/tests/cases/conformance/override/override16.ts ++++ b/tests/cases/conformance/override/override16.ts +@@ -8,3 +8,4 @@ class A { + class B extends A { + override foo = "string"; + } ++let qq12 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override17.ts b/tests/cases/conformance/override/override17.ts +index edabe9816d..a5f92ef955 100644 +--- a/tests/cases/conformance/override/override17.ts ++++ b/tests/cases/conformance/override/override17.ts +@@ -25,3 +25,4 @@ class B extends A { + + override m3(): void {} + } ++let qq11 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override18.ts b/tests/cases/conformance/override/override18.ts +index 2527449e74..6d4d132193 100644 +--- a/tests/cases/conformance/override/override18.ts ++++ b/tests/cases/conformance/override/override18.ts +@@ -9,3 +9,4 @@ class A { + class B extends A { + override foo = "string"; + } ++let qq7 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override19.ts b/tests/cases/conformance/override/override19.ts +new file mode 100644 +index 0000000000..63e5cd9994 +--- /dev/null ++++ b/tests/cases/conformance/override/override19.ts +@@ -0,0 +1,20 @@ ++// @target: esnext ++// @noImplicitOverride: true ++ ++type Foo = abstract new(...args: any) => any; ++declare function CreateMixin(Context: C, Base: T): T & { ++ new (...args: any[]): { context: InstanceType } ++} ++class Context {} ++ ++class A { ++ doSomething() {} ++} ++ ++class B extends CreateMixin(Context, A) { ++ override foo() {} // Remove override ++} ++ ++class C extends CreateMixin(Context, A) { ++ override doSomethang() {} // Suggestion 'doSomething' ++} +diff --git a/tests/cases/conformance/override/override20.ts b/tests/cases/conformance/override/override20.ts +new file mode 100644 +index 0000000000..9835cd9135 +--- /dev/null ++++ b/tests/cases/conformance/override/override20.ts +@@ -0,0 +1,34 @@ ++// @target: esnext ++// @noImplicitOverride: true ++ ++const Foo: C1 & C2 = ++ class { ++ m1() { } ++ m2() { } ++ } ++ ++interface I1 { ++ m1(): void; ++} ++ ++interface I2 { ++ m1(): void; ++ m2(): void; ++} ++ ++interface C1 { ++ new(...args: any[]): I1; ++} ++ ++interface C2 { ++ new(...args: any[]): I2; ++} ++ ++export class Bar extends Foo { ++ m1() { ++ super.m1(); ++ } ++ m2() { ++ super.m2(); ++ } ++} +diff --git a/tests/cases/conformance/override/override_js1.ts b/tests/cases/conformance/override/override_js1.ts +index 75df72695e..d327d1dbcf 100644 +--- a/tests/cases/conformance/override/override_js1.ts ++++ b/tests/cases/conformance/override/override_js1.ts +@@ -22,4 +22,6 @@ class C { + fooo (v) {} + /** @override */ + bar(v) {} +-} +\ No newline at end of file ++} ++let qq8 = new D(); ++let qq9 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override_js4.ts b/tests/cases/conformance/override/override_js4.ts +new file mode 100644 +index 0000000000..f5a7f1b6c4 +--- /dev/null ++++ b/tests/cases/conformance/override/override_js4.ts +@@ -0,0 +1,14 @@ ++// @noImplicitOverride: true ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++ ++// @Filename: a.js ++class A { ++ doSomething() {} ++} ++ ++class B extends A { ++ /** @override */ ++ doSomethang() {} ++} +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts +index b345892ec2..39a09037ca 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts +@@ -1,4 +1,5 @@ + class C { + foo(); + foo() { } +-} +\ No newline at end of file ++} ++let q19 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts +index a709f7d7bc..08f7560759 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts +@@ -5,3 +5,4 @@ declare class Enumerator { + public item(): any; + constructor (o: any); + } ++let q22 = new Enumerator(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts +index 65d9bd0a57..5ed5520812 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts +@@ -1,4 +1,5 @@ + class C { + foo(); + "foo"() { } +-} +\ No newline at end of file ++} ++let q18 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts +index 6c8540e833..a2025ab46f 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts +@@ -1,4 +1,5 @@ + class C { + 0(); + "0"() { } +-} +\ No newline at end of file ++} ++let q23 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts +index 5720f935a6..7ff1604575 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts +@@ -1,2 +1,3 @@ + class C\u0032 { +-} +\ No newline at end of file ++} ++let q17 = new C\u0032(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts +index 4d5395733a..fbefb55710 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts +@@ -1,4 +1,5 @@ + class C { + var + public +-} +\ No newline at end of file ++} ++let q20 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts +index b99c0c6f48..bae31847e0 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts +@@ -1,3 +1,4 @@ + class C { + [index:number]:number +-} +\ No newline at end of file ++} ++let q21 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts +index b845118647..024f143cad 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts +@@ -1,3 +1,4 @@ + class C { + public constructor() { } +-} +\ No newline at end of file ++} ++let q24 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts +index f445d70c88..7305a4098d 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts +@@ -1,3 +1,4 @@ + class C { + private constructor() { } +-} +\ No newline at end of file ++} ++let q25 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts +index 5ebd8f13ae..bd99e7cfb1 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts +@@ -2,3 +2,4 @@ class Outer + { + static public() {} + } ++let q12 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts +index 23fb870f86..474e281b08 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts +@@ -2,3 +2,4 @@ class Outer + { + static public() {} + } ++let q14 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts +index 30045cf9f0..dfc01652e7 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts +@@ -2,3 +2,4 @@ class Outer + { + static public; + } ++let q11 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts +index c2f462b71a..f38fc7ee97 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts +@@ -2,3 +2,4 @@ class Outer + { + static public = 1; + } ++let q9 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts +index fe0ed44cf0..41f075c30c 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts +@@ -2,3 +2,4 @@ class Outer + { + static public: number; + } ++let q13 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts +index 49db39132c..ea9593bb53 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts +@@ -2,3 +2,4 @@ class Outer + { + static public + } ++let q0 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts +index 237910839d..a814947c9e 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts +@@ -1,2 +1,3 @@ + class C { +-} +\ No newline at end of file ++} ++let q38 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts +index 949f220fbd..f4f517c52c 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts +@@ -1,2 +1,3 @@ + class C { +-} +\ No newline at end of file ++} ++let q40 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts +index 585fa7dbe1..78a9ffb4db 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts +@@ -1,2 +1,3 @@ + class C { +-} +\ No newline at end of file ++} ++let q39 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts +index 56ba0579b0..7de740ebab 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts +@@ -1,3 +1,4 @@ + class C { + [a: string]: number +-} +\ No newline at end of file ++} ++let q27 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts +index 34108a6e71..f0224e9379 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts +@@ -1,4 +1,5 @@ + class C { + [a: string]: number + public v: number +-} +\ No newline at end of file ++} ++let q29 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts +index f2180413ca..25ea575259 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts +@@ -1,4 +1,5 @@ + class C { + [a: string]: number; + public v: number +-} +\ No newline at end of file ++} ++let q30 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts +index 498ad89d82..42622da3af 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts +@@ -1,3 +1,4 @@ + class C { + [a: string]: number; public v: number +-} +\ No newline at end of file ++} ++let q28 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts +index af180f585f..b89c199246 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts +@@ -1,3 +1,4 @@ + class C { + static [x: string]: string; +-} +\ No newline at end of file ++} ++let q26 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts b/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts +index 98c4f9a75b..62e5062755 100644 +--- a/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts ++++ b/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts +@@ -1,3 +1,4 @@ + class C { + declare Foo; +-} +\ No newline at end of file ++} ++let q8 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts +index 2b07e1ca9a..765e7b650a 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts +@@ -1,3 +1,4 @@ + class C { + protected constructor() { } +-} +\ No newline at end of file ++} ++let q37 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts +index f0bf235a03..c1d4944d1e 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts +@@ -1,3 +1,4 @@ + class C { + protected static m() { } +-} +\ No newline at end of file ++} ++let q34 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts +index 4e24e28ec1..5ce2aa474a 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts +@@ -1,3 +1,4 @@ + class C { + constructor(protected p) { } +-} +\ No newline at end of file ++} ++let q35 = new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts +index bfb48ee0e3..29d488ffbc 100644 +--- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts ++++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts +@@ -1,3 +1,4 @@ + export class Logger { + public + } ++let q32 = new Logger(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts +index bfb48ee0e3..18eeed1a6d 100644 +--- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts +@@ -1,3 +1,4 @@ + export class Logger { + public + } ++let q31 = new Logger(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts +index ca1a460120..a4609ba88c 100644 +--- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts ++++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts +@@ -3,3 +3,4 @@ + export class Logger { + public + } ++let q23 = new Logger(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts b/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts +index bb5f00ea71..99802e72b5 100644 +--- a/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts ++++ b/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts +@@ -1,2 +1,3 @@ + class 剩下 { +-} +\ No newline at end of file ++} ++let q5 = new 剩下(); +diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts +new file mode 100644 +index 0000000000..87f569dbfb +--- /dev/null ++++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts +@@ -0,0 +1,4 @@ ++// @target: esnext ++ ++var async; ++for (async of [1, 2]) {} +diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts +new file mode 100644 +index 0000000000..5a3601380b +--- /dev/null ++++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts +@@ -0,0 +1,6 @@ ++// @target: esnext ++ ++async function foo(x: any) { ++ var async; ++ for await (async of x) {} ++} +diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts +new file mode 100644 +index 0000000000..3846bd0a91 +--- /dev/null ++++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts +@@ -0,0 +1,4 @@ ++// @target: esnext ++ ++var async; ++for ((async) of [1, 2]); +diff --git a/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts b/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts +index 800bd368db..f713920ad5 100644 +--- a/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts ++++ b/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts +@@ -14,3 +14,4 @@ class Derived extends Base { + this.p = 1 + } + } ++let w1 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/salsa/plainJSBinderErrors.ts b/tests/cases/conformance/salsa/plainJSBinderErrors.ts +new file mode 100644 +index 0000000000..d2019e3f78 +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSBinderErrors.ts +@@ -0,0 +1,44 @@ ++// @outdir: out/ ++// @target: esnext ++// @allowJS: true ++// @filename: plainJSBinderErrors.js ++export default 12 ++export default 13 ++const await = 1 ++const yield = 2 ++async function f() { ++ const await = 3 ++} ++function* g() { ++ const yield = 4 ++} ++class C { ++ #constructor = 5 ++ deleted() { ++ function container(f) { ++ delete f ++ } ++ var g = 6 ++ delete g ++ delete container ++ } ++ evalArguments() { ++ const eval = 7 ++ const arguments = 8 ++ } ++ withOctal() { ++ const redundant = 010 ++ with (redundant) { ++ return toFixed() ++ } ++ } ++ label() { ++ for(;;) { ++ label: var x = 1 ++ break label ++ } ++ return x ++ } ++} ++const eval = 9 ++const arguments = 10 +diff --git a/tests/cases/conformance/salsa/plainJSRedeclare.ts b/tests/cases/conformance/salsa/plainJSRedeclare.ts +new file mode 100644 +index 0000000000..be6831d0cd +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSRedeclare.ts +@@ -0,0 +1,6 @@ ++// @outdir: out/ ++// @allowJS: true ++// @filename: plainJSRedeclare.js ++const orbitol = 1 ++var orbitol = 1 + false ++orbitol.toExponential() +diff --git a/tests/cases/conformance/salsa/plainJSRedeclare2.ts b/tests/cases/conformance/salsa/plainJSRedeclare2.ts +new file mode 100644 +index 0000000000..7409b6c8fe +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSRedeclare2.ts +@@ -0,0 +1,7 @@ ++// @outdir: out/ ++// @allowJS: true ++// @checkJS: true ++// @filename: plainJSRedeclare.js ++const orbitol = 1 ++var orbitol = 1 + false ++orbitol.toExponential() +diff --git a/tests/cases/conformance/salsa/plainJSRedeclare3.ts b/tests/cases/conformance/salsa/plainJSRedeclare3.ts +new file mode 100644 +index 0000000000..1327fcfc17 +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSRedeclare3.ts +@@ -0,0 +1,7 @@ ++// @outdir: out/ ++// @allowJS: true ++// @checkJS: false ++// @filename: plainJSRedeclare.js ++const orbitol = 1 ++var orbitol = 1 + false ++orbitol.toExponential() +diff --git a/tests/cases/conformance/salsa/plainJSReservedStrict.ts b/tests/cases/conformance/salsa/plainJSReservedStrict.ts +new file mode 100644 +index 0000000000..fbd654927d +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSReservedStrict.ts +@@ -0,0 +1,7 @@ ++// @outdir: out/ ++// @target: esnext ++// @allowJS: true ++// @filename: plainJSReservedStrict.js ++"use strict" ++const eval = 1 ++const arguments = 2 +diff --git a/tests/cases/conformance/salsa/spellingUncheckedJS.ts b/tests/cases/conformance/salsa/spellingUncheckedJS.ts +new file mode 100644 +index 0000000000..d5a1e8ac56 +--- /dev/null ++++ b/tests/cases/conformance/salsa/spellingUncheckedJS.ts +@@ -0,0 +1,51 @@ ++// @noEmit: true ++// @allowJs: true ++// @filename: spellingUncheckedJS.js ++export var inModule = 1 ++inmodule.toFixed() ++ ++function f() { ++ var locals = 2 + true ++ locale.toFixed() ++ // @ts-expect-error ++ localf.toExponential() ++ // @ts-expect-error ++ "this is fine" ++} ++class Classe { ++ non = 'oui' ++ methode() { ++ // no error on 'this' references ++ return this.none ++ } ++} ++class Derivee extends Classe { ++ methode() { ++ // no error on 'super' references ++ return super.none ++ } ++} ++ ++ ++var object = { ++ spaaace: 3 ++} ++object.spaaaace // error on read ++object.spaace = 12 // error on write ++object.fresh = 12 // OK ++other.puuuce // OK, from another file ++new Date().getGMTDate() // OK, from another file ++ ++// No suggestions for globals from other files ++const atoc = setIntegral(() => console.log('ok'), 500) ++AudioBuffin // etc ++Jimmy ++Jon ++ ++// @filename: other.js ++var Jimmy = 1 ++var John = 2 ++Jon // error, it's from the same file ++var other = { ++ puuce: 4 ++} +diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer2.ts b/tests/cases/conformance/salsa/typeFromJSInitializer2.ts +new file mode 100644 +index 0000000000..c1d5857624 +--- /dev/null ++++ b/tests/cases/conformance/salsa/typeFromJSInitializer2.ts +@@ -0,0 +1,18 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++// @strictNullChecks: true ++// @noImplicitAny: true ++// @Filename: a.js ++ ++/** @type {() => undefined} */ ++function f1() { ++ return undefined; ++} ++const a = f1() ++ ++/** @type {() => null} */ ++function f2() { ++ return null; ++} ++const b = f2() +diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer3.ts b/tests/cases/conformance/salsa/typeFromJSInitializer3.ts +new file mode 100644 +index 0000000000..c5100df43d +--- /dev/null ++++ b/tests/cases/conformance/salsa/typeFromJSInitializer3.ts +@@ -0,0 +1,18 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++// @strictNullChecks: false ++// @noImplicitAny: true ++// @Filename: a.js ++ ++/** @type {() => undefined} */ ++function f1() { ++ return undefined; ++} ++const a = f1() ++ ++/** @type {() => null} */ ++function f2() { ++ return null; ++} ++const b = f2() +diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer4.ts b/tests/cases/conformance/salsa/typeFromJSInitializer4.ts +new file mode 100644 +index 0000000000..02d16c45a2 +--- /dev/null ++++ b/tests/cases/conformance/salsa/typeFromJSInitializer4.ts +@@ -0,0 +1,29 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++// @strictNullChecks: false ++// @noImplicitAny: true ++// @Filename: a.js ++ ++/** @type {number | undefined} */ ++var n; ++ ++// should get any on parameter initialisers ++function f(a = null, b = n, l = []) { ++ // a should be any ++ a = undefined ++ a = null ++ a = 1 ++ a = true ++ a = {} ++ a = 'ok' ++ ++ // b should be number | undefined, not any ++ b = 1 ++ b = undefined ++ b = 'error' ++ ++ // l should be any[] ++ l.push(1) ++ l.push('ok') ++} +diff --git a/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts b/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts +index 18923e0a5a..1dafa91c28 100644 +--- a/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts ++++ b/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts +@@ -35,3 +35,6 @@ class NormalModule extends Module { + return 0 + } + } ++let cc = new C(); ++let dd = new D(); ++let mo = new NormalModule(); +\ No newline at end of file +diff --git a/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts b/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts +new file mode 100644 +index 0000000000..ae63dd3136 +--- /dev/null ++++ b/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts +@@ -0,0 +1,4 @@ ++// @target: esnext ++ ++var async; ++for (async in { a: 1, b: 2 }) {} +diff --git a/tests/cases/conformance/statements/returnStatements/returnStatements.ts b/tests/cases/conformance/statements/returnStatements/returnStatements.ts +index ce764c1f11..945b98944c 100644 +--- a/tests/cases/conformance/statements/returnStatements/returnStatements.ts ++++ b/tests/cases/conformance/statements/returnStatements/returnStatements.ts +@@ -21,3 +21,4 @@ function fn10(): I { return { id: 12 }; } + function fn11(): I { return new C(); } + function fn12(): C { return new D(); } + function fn13(): C { return null; } ++let q41 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts b/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts +index c5875327b5..313b2b7169 100644 +--- a/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts ++++ b/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts +@@ -45,3 +45,4 @@ var aa = { + throw this; + } + } ++let q42 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts b/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts +index 9529b5b9a3..7996e18343 100644 +--- a/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts ++++ b/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts +@@ -7,4 +7,6 @@ var b = x('hello'); + + class C { foo: string; } + var c = x(x); +-var d = x(x); +\ No newline at end of file ++var d = x(x); ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/any/assignAnyToEveryType.ts b/tests/cases/conformance/types/any/assignAnyToEveryType.ts +index 0af7d94d7b..aba7eb4753 100644 +--- a/tests/cases/conformance/types/any/assignAnyToEveryType.ts ++++ b/tests/cases/conformance/types/any/assignAnyToEveryType.ts +@@ -42,4 +42,6 @@ M = x; + + function k(a: T) { + a = x; +-} +\ No newline at end of file ++} ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/any/assignEveryTypeToAny.ts b/tests/cases/conformance/types/any/assignEveryTypeToAny.ts +index 8613550fc5..0f7f258e87 100644 +--- a/tests/cases/conformance/types/any/assignEveryTypeToAny.ts ++++ b/tests/cases/conformance/types/any/assignEveryTypeToAny.ts +@@ -52,4 +52,6 @@ x = { f(x: T) { return x; } } + + function j(a: T) { + x = a; +-} +\ No newline at end of file ++} ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/conditional/variance.ts b/tests/cases/conformance/types/conditional/variance.ts +index 1dd5db5c67..433eab8e01 100644 +--- a/tests/cases/conformance/types/conditional/variance.ts ++++ b/tests/cases/conformance/types/conditional/variance.ts +@@ -25,3 +25,5 @@ class Bar { + Bar.instance.push(this); + } + } ++ ++let ba = new Bar(); +diff --git a/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts b/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts +index 530d506f64..87069a602d 100644 +--- a/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts ++++ b/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts +@@ -31,3 +31,6 @@ testRest((t1: D, t2, t3) => {}) + testRest((t1, t2: D, t3) => {}) + testRest((t2: D, ...t3) => {}) + testRest((t2, ...t3: D[]) => {}) ++ ++ ++let d = new D(); +diff --git a/tests/cases/conformance/types/import/importTypeAmbient.ts b/tests/cases/conformance/types/import/importTypeAmbient.ts +index b1ba463777..3345c3ac06 100644 +--- a/tests/cases/conformance/types/import/importTypeAmbient.ts ++++ b/tests/cases/conformance/types/import/importTypeAmbient.ts +@@ -28,8 +28,8 @@ declare module "foo2" { + item: Bar.I; + constructor(input: Baz.J); + } ++ + } +- + let y: import("foo2").Bar.I = { a: "", b: 0 }; + + class Bar2 { +@@ -40,3 +40,6 @@ class Bar2 { + let shim: typeof import("foo2") = { + Bar: Bar2 + }; ++ ++var a; ++let ba1 = new Bar2(a); +diff --git a/tests/cases/conformance/types/import/importTypeGenericTypes.ts b/tests/cases/conformance/types/import/importTypeGenericTypes.ts +index 5bc3aa7802..cf808fc6e3 100644 +--- a/tests/cases/conformance/types/import/importTypeGenericTypes.ts ++++ b/tests/cases/conformance/types/import/importTypeGenericTypes.ts +@@ -29,9 +29,10 @@ class Bar { + item: Bar.I; + constructor(input: Baz.J) {} + } ++let bbb = new Bar(null); + export { Bar } + +-// @filename: usage.ts ++// @filename: usage. + export const x: import("./foo")<{x: number}> = { x: 0, y: 0, data: {x: 12} }; + export let y: import("./foo2").Bar.I<{x: number}> = { a: "", b: 0, data: {x: 12} }; + +@@ -43,3 +44,5 @@ export class Bar2 { + export let shim: typeof import("./foo2") = { + Bar: Bar2 + }; ++ ++let ba2 = new Bar2(1); +diff --git a/tests/cases/conformance/types/import/importTypeLocal.ts b/tests/cases/conformance/types/import/importTypeLocal.ts +index 4f29a22285..6fe5ab1c18 100644 +--- a/tests/cases/conformance/types/import/importTypeLocal.ts ++++ b/tests/cases/conformance/types/import/importTypeLocal.ts +@@ -26,8 +26,11 @@ class Bar { + item: Bar.I; + constructor(input: Baz.J) {} + } ++let bbb = new Bar(null) + export { Bar } + ++ ++ + // @filename: usage.ts + export const x: import("./foo") = { x: 0, y: 0 }; + export let y: import("./foo2").Bar.I = { a: "", b: 0 }; +@@ -40,3 +43,5 @@ export class Bar2 { + export let shim: typeof import("./foo2") = { + Bar: Bar2 + }; ++ ++let ba2 = new Bar2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts b/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts +new file mode 100644 +index 0000000000..0f67b66bff +--- /dev/null ++++ b/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts +@@ -0,0 +1,16 @@ ++// @strict: true ++ ++interface X { ++ a?: { aProp: string }; ++ b?: { bProp: string }; ++} ++type AorB = { a: object; b: undefined } | { a: undefined; b: object }; ++ ++declare const q: X & AorB; ++ ++if (q.a !== undefined) { ++ q.a.aProp; ++} else { ++ // q.b is previously incorrectly inferred as potentially undefined ++ q.b.bProp; ++} +diff --git a/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts b/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts +index 56ff157a67..7c7d0b13e0 100644 +--- a/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts ++++ b/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts +@@ -658,3 +658,23 @@ const cf2 = (t: T, + const s: string = t[k]; + t.cool; + }; ++ ++let shape = new Shape(); ++let ta1 = new TaggedShape(); ++let it = new Item(); ++let op = new Options(); ++let com1 = new Component(); ++let c11 = new C(); ++let c12 = new C1(); ++let ba1 = new Base(); ++let per = new Person(1); ++let oth = new OtherPerson(1); ++var aa; ++let com2 = new Component1(aa); ++let com3 = new Component2(aa); ++let a11 = new A(); ++let b11 = new B(); ++let fo = new Form(); ++let sam = new SampleClass(1); ++let ano = new AnotherSampleClass(1); ++let unb = new Unbounded(); +diff --git a/tests/cases/conformance/types/literal/literalTypes2.ts b/tests/cases/conformance/types/literal/literalTypes2.ts +index 57e7a0bc74..46b1479857 100644 +--- a/tests/cases/conformance/types/literal/literalTypes2.ts ++++ b/tests/cases/conformance/types/literal/literalTypes2.ts +@@ -176,3 +176,6 @@ type Bit = 0 | 1; + + let aa = makeArray(0); + aa = append(aa, 1); ++ ++let c1 = new C1(); ++let c2 = new C2(); +diff --git a/tests/cases/conformance/types/localTypes/localTypes2.ts b/tests/cases/conformance/types/localTypes/localTypes2.ts +index 79f1402c70..2b81f903ac 100644 +--- a/tests/cases/conformance/types/localTypes/localTypes2.ts ++++ b/tests/cases/conformance/types/localTypes/localTypes2.ts +@@ -3,6 +3,7 @@ function f1() { + class C { + constructor(public x: number, public y: number) { } + } ++ let c = new C(1,2); + return C; + } + let C = f(); +@@ -17,6 +18,7 @@ function f2() { + public x = x; + constructor(public y: number) { } + } ++ let c = new C(1); + return C; + } + let C = f(10); +@@ -31,6 +33,7 @@ function f3() { + public x = x; + public y = y; + } ++ let c = new C(); + return C; + } + let C = f(10, 20); +diff --git a/tests/cases/conformance/types/localTypes/localTypes3.ts b/tests/cases/conformance/types/localTypes/localTypes3.ts +index 5eb3cf2850..7b1e536270 100644 +--- a/tests/cases/conformance/types/localTypes/localTypes3.ts ++++ b/tests/cases/conformance/types/localTypes/localTypes3.ts +@@ -3,6 +3,7 @@ function f1() { + class C { + constructor(public x: X, public y: Y) { } + } ++ let c = new C(1,2); + return C; + } + let C = f(); +@@ -17,6 +18,7 @@ function f2() { + public x = x; + constructor(public y: Y) { } + } ++ let c = new C(1); + return C; + } + let C = f(10); +@@ -31,6 +33,7 @@ function f3() { + public x = x; + public y = y; + } ++ let c = new C(); + return C; + } + let C = f(10, "hello"); +diff --git a/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts b/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts +new file mode 100644 +index 0000000000..051192159e +--- /dev/null ++++ b/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts +@@ -0,0 +1,27 @@ ++// From original issue #45212: ++type Methods = { [P in keyof T as T[P] extends Function ? P : never]: T[P] }; ++type H = T[keyof Methods]; // Ok ++ ++// `Filter` only filters out some keys of `T`. ++type Filter = { [P in keyof T as T[P] extends Function ? P : never]: T[P] }; ++// `Modify` might modify some keys of `T`. ++type Modify = { [P in keyof T as P extends string? `bool${P}`: P]: T[P] }; ++ ++function fun(val: T) { ++ let x: Filter = val; // Ok ++ let y: Modify = val; // Error ++} ++ ++type FilterInclOpt = { [P in keyof T as T[P] extends Function ? P : never]+?: T[P] }; ++type ModifyInclOpt = { [P in keyof T as P extends string? `bool${P}`: never ]+?: T[P] }; ++type FilterExclOpt = { [P in keyof T as T[P] extends Function ? P : never]-?: T[P] }; ++type ModifyExclOpt = { [P in keyof T as P extends string? `bool${P}`: never ]-?: T[P] }; ++ ++function fun2(val: T) { ++ let x: FilterInclOpt = val; // Ok ++ let y: ModifyInclOpt = val; // Ok ++ let z: FilterExclOpt = val; // Error ++ let w: ModifyExclOpt = val; // Error ++} ++ ++ +diff --git a/tests/cases/conformance/types/mapped/mappedTypeProperties.ts b/tests/cases/conformance/types/mapped/mappedTypeProperties.ts +new file mode 100644 +index 0000000000..407e0eaf56 +--- /dev/null ++++ b/tests/cases/conformance/types/mapped/mappedTypeProperties.ts +@@ -0,0 +1,42 @@ ++// @declaration: true ++export type PlaceType = 'openSky' | 'roofed' | 'garage' ++type Before = { ++ model: 'hour' | 'day'; ++ [placeType in PlaceType]: void; ++} ++ ++type After = { ++ [placeType in PlaceType]: void; ++ model: 'hour' | 'day' ++} ++ ++type AfterQuestion = { ++ [placeType in PlaceType]?: void; ++ model: 'hour' | 'day'; ++} ++type AfterMethod = { ++ [placeType in PlaceType]?: void; ++ model(duration: number): 'hour' | 'day'; ++} ++ ++type AfterImplicit = { ++ [placeType in PlaceType] ++ model: 'hour' | 'day'; ++} ++type AfterImplicitQ = { ++ [placeType in PlaceType]? ++ model: 'hour' | 'day' ++} ++ ++interface I { ++ [P in PlaceType]: any ++} ++class C { ++ [P in PlaceType]: any ++} ++const D = class { ++ [P in PlaceType]: any ++} ++const E = class { ++ [P in 'a' | 'b']: any ++} +diff --git a/tests/cases/conformance/types/mapped/mappedTypes3.ts b/tests/cases/conformance/types/mapped/mappedTypes3.ts +index bf5a4399b0..6ef1918898 100644 +--- a/tests/cases/conformance/types/mapped/mappedTypes3.ts ++++ b/tests/cases/conformance/types/mapped/mappedTypes3.ts +@@ -37,4 +37,6 @@ function f3(bb: BoxifiedBacon) { + let b = unboxify(bb); // Explicit type parameter required + let bool = b.isPerfect; + let weight = bb.weight; +-} +\ No newline at end of file ++} ++ ++let box = new Box(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts b/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts +index b3530b4696..66e25c6091 100644 +--- a/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts ++++ b/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts +@@ -43,3 +43,5 @@ interface E3 extends Base { + class Form { + private values: {[P in keyof T]?: T[P]} = {} + } ++ ++let f = new Form(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/classWithProtectedProperty.ts b/tests/cases/conformance/types/members/classWithProtectedProperty.ts +index 96bc615c02..a37828eef1 100644 +--- a/tests/cases/conformance/types/members/classWithProtectedProperty.ts ++++ b/tests/cases/conformance/types/members/classWithProtectedProperty.ts +@@ -24,4 +24,6 @@ class D extends C { + var r7: string = C.f(); + var r8: string = C.g(); + } +-} +\ No newline at end of file ++} ++ ++let d = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/indexSignatures1.ts b/tests/cases/conformance/types/members/indexSignatures1.ts +new file mode 100644 +index 0000000000..f888275683 +--- /dev/null ++++ b/tests/cases/conformance/types/members/indexSignatures1.ts +@@ -0,0 +1,325 @@ ++// @strict: true ++// @declaration: true ++// @target: esnext ++ ++// Symbol index signature checking ++ ++const sym = Symbol(); ++ ++function gg3(x: { [key: string]: string }, y: { [key: symbol]: string }, z: { [sym]: number }) { ++ x = z; ++ y = z; // Error ++} ++ ++// Overlapping index signatures ++ ++function gg1(x: { [key: `a${string}`]: string, [key: `${string}a`]: string }, y: { [key: `a${string}a`]: string }) { ++ x = y; ++ y = x; ++} ++ ++interface IX { [key: `a${string}`]: string, [key: `${string}a`]: string } ++interface IY { [key: `a${string}a`]: string } ++ ++function gg2(x: IX, y: IY) { ++ x = y; // Error ++ y = x; ++} ++ ++// Intersection of multiple applicable index signatures ++ ++declare let combo: { [x: `foo-${string}`]: 'a' | 'b' } & { [x: `${string}-bar`]: 'b' | 'c' }; ++const x1 = combo['foo-test']; // 'a' | 'b' ++const x2 = combo['test-bar']; // 'b' | 'c' ++const x3 = combo['foo-test-bar']; // 'b' (('a' | 'b') & ('b' | 'c')) ++ ++declare var str: string; ++ ++const x4 = combo[`foo-${str}`]; ++const x5 = combo[`${str}-bar`]; ++const x6 = combo[`foo-${str}-bar`]; ++ ++declare let combo2: { [x: `${string}xxx${string}` & `${string}yyy${string}`]: string }; ++ ++const x7 = combo2['axxxbyyyc']; ++const x8 = combo2['ayyyxxxbc']; ++const x9 = combo2['axxxbbbyc']; // Error ++ ++// Property access on template pattern index signature ++ ++declare let dom: { [x: `data${string}`]: string }; ++const y1 = dom['data123']; ++const y2 = dom.data123; ++ ++// Excess property checking for template pattern index signature ++ ++dom = { data123: 'hello' }; ++dom = { date123: 'hello' }; // Error ++ ++// Contextual typing by index signature with template literal pattern ++ ++type Funcs = { ++ [key: `s${string}`]: (x: string) => void, ++ [key: `n${string}`]: (x: number) => void, ++} ++ ++const funcs: Funcs = { ++ sfoo: x => x.length, // x: string ++ nfoo: x => x * 2, // n: number ++} ++ ++// Duplicate index signature checking ++ ++type Duplicates = { ++ [key: string | number]: any; // Error ++ [key: number | symbol]: any; // Error ++ [key: symbol | `foo${string}`]: any; // Error ++ [key: `foo${string}`]: any; // Error ++} ++ ++// Conflicting index signature checking ++ ++type Conflicting = { ++ [key: `a${string}`]: 'a'; ++ [key: `${string}a`]: 'b'; ++ [key: `a${string}a`]: 'c'; // Error ++} ++ ++// Invalid index signatures ++ ++type Invalid = { ++ [key: 'a' | 'b' | 'c']: string; // Error ++ [key: T | number]: string; // Error ++ [key: Error]: string; // Error ++ [key: T & string]: string; // Error ++} ++ ++// Intersections in index signatures ++ ++type Tag1 = { __tag1__: void }; ++type Tag2 = { __tag2__: void }; ++ ++type TaggedString1 = string & Tag1; ++type TaggedString2 = string & Tag2; ++ ++declare let s0: string; ++declare let s1: TaggedString1; ++declare let s2: TaggedString2; ++declare let s3: TaggedString1 | TaggedString2; ++declare let s4: TaggedString1 & TaggedString2; ++ ++interface I1 { [key: TaggedString1]: string } ++interface I2 { [key: TaggedString2]: string } ++interface I3 { [key: TaggedString1 | TaggedString2]: string } ++interface I4 { [key: TaggedString1 & TaggedString2]: string } ++ ++declare let i1: I1; ++declare let i2: I2; ++declare let i3: I3; ++declare let i4: I4; ++ ++i1[s0]; // Error ++i1[s1]; ++i1[s2]; // Error ++i1[s3]; // Error ++i1[s4]; ++ ++i2[s0]; // Error ++i2[s1]; // Error ++i2[s2]; ++i2[s3]; // Error ++i2[s4]; ++ ++i3[s0]; // Error ++i3[s1]; ++i3[s2]; ++i3[s3]; ++i3[s4]; ++ ++i4[s0]; // Error ++i4[s1]; // Error ++i4[s2]; // Error ++i4[s3]; // Error ++i4[s4]; ++ ++i1 = i2; // Error ++i1 = i3; ++i1 = i4; // Error ++ ++i2 = i1; // Error ++i2 = i3; ++i2 = i4; // Error ++ ++i3 = i1; // Error ++i3 = i2; // Error ++i3 = i4; // Error ++ ++i4 = i1; ++i4 = i2; ++i4 = i3; ++ ++declare let o1: { [key: TaggedString1]: string }; ++declare let o2: { [key: TaggedString2]: string }; ++declare let o3: { [key: TaggedString1 | TaggedString2]: string }; ++declare let o4: { [key: TaggedString1 & TaggedString2]: string }; ++ ++o1[s0]; // Error ++o1[s1]; ++o1[s2]; // Error ++o1[s3]; // Error ++o1[s4]; ++ ++o2[s0]; // Error ++o2[s1]; // Error ++o2[s2]; ++o2[s3]; // Error ++o2[s4]; ++ ++o3[s0]; // Error ++o3[s1]; ++o3[s2]; ++o3[s3]; ++o3[s4]; ++ ++o4[s0]; // Error ++o4[s1]; // Error ++o4[s2]; // Error ++o4[s3]; // Error ++o4[s4]; ++ ++o1 = o2; ++o1 = o3; ++o1 = o4; ++ ++o2 = o1; ++o2 = o3; ++o2 = o4; ++ ++o3 = o1; ++o3 = o2; ++o3 = o4; ++ ++o4 = o1; ++o4 = o2; ++o4 = o3; ++ ++// Index signatures inferred from computed property names ++ ++const obj10 = { ++ ['x']: 0 as const, ++ ['a' + 'b']: 1 as const, ++}; ++ ++const obj11 = { ++ [1]: 2 as const, ++ [1 + 2]: 3 as const, ++}; ++ ++const obj12 = { ++ [sym]: 4 as const, ++ [Symbol()]: 5 as const, ++}; ++ ++const obj13 = { ++ ['x']: 0 as const, ++ ['a' + 'b']: 1 as const, ++ [1]: 2 as const, ++ [1 + 2]: 3 as const, ++ [sym]: 4 as const, ++ [Symbol()]: 5 as const, ++}; ++ ++// Repros from #1863 ++ ++const system = Symbol('system'); ++const SomeSytePlugin = Symbol('SomeSytePlugin'); ++ ++interface Plugs { ++ [key: symbol]: (...args: any) => unknown; ++} ++ ++const plugins = { ++ "user": {} as Plugs, ++ [system]: {} as Plugs ++}; ++ ++plugins[system][SomeSytePlugin] = () => console.log('awsome'); ++plugins[system][SomeSytePlugin](); ++ ++var theAnswer: symbol = Symbol('secret'); ++var obj = {} as Record; ++obj[theAnswer] = 42; ++ ++// Repro from #26470 ++ ++const directive = Symbol('directive'); ++declare function foo(options: { [x in string]: (arg: TArg) => TRet } & { [directive]?: TDir }): void; ++ ++let case1 = foo({ ++ [directive]: (x: string) => 'str', ++ addOne: (x: number) => x + 1, ++ double: (x: number) => x + x, ++}); ++ ++let case2 = foo({ ++ addOne: (x: number) => x + 1, ++ double: (x: number) => x + x, ++ [directive]: (x: string) => 'str', ++}); ++ ++let case3 = foo({ ++ [directive]: 'str', ++ addOne: (x: number) => x + 1, ++ double: (x: number) => x + x, ++}); ++ ++// Repros from #42192 ++ ++type Pseudo = `&:${string}`; ++ ++const AmIPseudo1: Pseudo = '&:test'; ++const AmIPseudo: Pseudo = '&'; // Error ++ ++type PseudoDeclaration = { [key in Pseudo]: string }; ++ ++const test: PseudoDeclaration = { 'someKey' : 'someValue' }; // Error ++ ++type FieldPattern = `/${string}`; ++ ++const path1: FieldPattern = '/one'; ++const path2: FieldPattern = 'two'; // Error ++ ++type PathsObject = { [P in FieldPattern]: object; }; ++const pathObject: PathsObject = 123; // Error ++ ++type IdType = `${number}-${number}-${number}-${number}` ++const id: IdType = '0000-0000-0000-0001'; ++ ++type A = Record; ++ ++const a: A = { [id]: 'test' } ++ ++let aid = a[id]; ++ ++// Repro from #44793 ++ ++interface AA { ++ a?: string; ++ b?: number; ++ [key: symbol]: string; ++} ++ ++const aa: AA = { [sym]: '123' }; ++ ++const obj1: { [key: symbol]: string } = { [sym]: 'hello '}; ++const obj2: { [key: string]: string } = { [sym]: 'hello '}; // Permitted for backwards compatibility ++const obj3: { [key: number]: string } = { [sym]: 'hello '}; // Error ++ ++// Repro from #45772 ++ ++type Id = string & { __tag: 'id '}; ++type Rec1 = { [key: Id]: number }; ++type Rec2 = Record; ++ ++type K1 = keyof Rec1; // Id ++type K2 = keyof Rec2; // Id +diff --git a/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts b/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts +index 1a7d6f2be4..bc489541ae 100644 +--- a/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts ++++ b/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts +@@ -24,4 +24,6 @@ var b: { + valueOf(): void; + } + +-var r4: void = b.valueOf(); +\ No newline at end of file ++var r4: void = b.valueOf(); ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/objectTypePropertyAccess.ts b/tests/cases/conformance/types/members/objectTypePropertyAccess.ts +index a54890fce9..e3c2cca547 100644 +--- a/tests/cases/conformance/types/members/objectTypePropertyAccess.ts ++++ b/tests/cases/conformance/types/members/objectTypePropertyAccess.ts +@@ -26,3 +26,5 @@ var r8 = a.toString(); + var r9 = a['toString'](); + var r10 = a.foo; + var r11 = a['foo']; ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts b/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts +index 730ab43ec9..2c1b46b5d1 100644 +--- a/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts ++++ b/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts +@@ -40,4 +40,6 @@ var b = { + var r1 = b[1]; + var r2 = b[1.1]; + var r3 = b['1']; +-var r4 = b['1.1']; +\ No newline at end of file ++var r4 = b['1.1']; ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts b/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts +index 766f56bdd2..d67c011129 100644 +--- a/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts ++++ b/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts +@@ -50,3 +50,5 @@ var r2 = b[" "]; + var r3 = b["a b"]; + // BUG 817263 + var r4 = b["~!@#$%^&*()_+{}|:'<>?\/.,`"]; ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts b/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts +index 9eef3476f2..9aea8f6a18 100644 +--- a/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts ++++ b/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts +@@ -38,4 +38,7 @@ a = i; + + var r1: Derived1 = c.foo('hi'); + var r2: Derived2 = c.foo('bye'); +-var r3: Base = c.foo('hm'); +\ No newline at end of file ++var r3: Base = c.foo('hm'); ++ ++// let dev1 = new Derived1(); ++// let dev2 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts b/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts +index 7c84e76f14..522fad55bf 100644 +--- a/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts ++++ b/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts +@@ -36,4 +36,7 @@ a = i; + + var r1 = new C('hi'); + var r2: Derived2 = new i('bye'); +-var r3: Base = new a('hm'); +\ No newline at end of file ++var r3: Base = new a('hm'); ++ ++let dev1 = new Derived1(); ++let dev2 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts b/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts +index 82e7de4584..97001142ae 100644 +--- a/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts ++++ b/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts +@@ -8,4 +8,7 @@ class C { + class C2 { + x?: T; + f?(x: T) {} +-} +\ No newline at end of file ++} ++ ++let c = new C(); ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/namedTypes/optionalMethods.ts b/tests/cases/conformance/types/namedTypes/optionalMethods.ts +index 932521425f..dc7fe5cf4c 100644 +--- a/tests/cases/conformance/types/namedTypes/optionalMethods.ts ++++ b/tests/cases/conformance/types/namedTypes/optionalMethods.ts +@@ -56,3 +56,6 @@ class Derived extends Base { + a = 1; + f(): number { return 1; } + } ++ ++let ba1 = new Bar(); ++let dev = new Derived(); +diff --git a/tests/cases/conformance/types/never/neverType.ts b/tests/cases/conformance/types/never/neverType.ts +index d58471d62a..e548194630 100644 +--- a/tests/cases/conformance/types/never/neverType.ts ++++ b/tests/cases/conformance/types/never/neverType.ts +@@ -91,3 +91,5 @@ test(() => "hello"); + test(() => fail()); + test(() => { throw new Error(); }) + test(errorCallback); ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts +index 1cc499c7d6..16fe9f1bc5 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts +@@ -77,6 +77,7 @@ module M { + export var x = 1; + export class C { foo: string } + } ++let c2 = new M.C(); + function foo11() { + return M; + } +@@ -119,4 +120,7 @@ module e1 { export var y = 1; } + function foo15() { + return e1; + } +-var r15 = foo15(); +\ No newline at end of file ++var r15 = foo15(); ++ ++let c = new C(); ++let c11 = new c1(1); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts +index d5ff0c1f56..191117eb92 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts +@@ -35,4 +35,6 @@ var b = { + foo(x, x) { }, + a: function foo(x: number, x: string) { }, + b: (x: T, x: T) => { } +-} +\ No newline at end of file ++} ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts +index 34edfba671..d285c45d78 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts +@@ -52,3 +52,5 @@ b.a(1); + b.a(1, 2); + b.b(); + b.b(1); ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts +index 4f31726f82..bdd01987b0 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts +@@ -56,4 +56,6 @@ a(1); + a(1, 2); + a.foo(1); + a.foo(1, 2); +-a.foo(1, 2, 3); +\ No newline at end of file ++a.foo(1, 2, 3); ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts +index 432c905765..4c09ab1066 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts +@@ -26,4 +26,6 @@ var b = { + return x; + }, + b: (x) => x +-} +\ No newline at end of file ++} ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts +index 01f33fbd7b..0aeddb657c 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts +@@ -62,3 +62,6 @@ var a3: { + foo(x: 'a'); + foo(x: T); + } ++let c1 = new C(); ++let c2 = new C2(); ++let c3 = new C3(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts +index 70735b8edd..06ca07fbe8 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts +@@ -78,3 +78,6 @@ var a3: { + foo(x: 'a'); + foo(x: T); + } ++let c1 = new C(); ++let c2 = new C2(); ++let c3 = new C3(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts +index a8bf323850..6ea1c88cfb 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts +@@ -23,3 +23,5 @@ var b = { + a: function foo(x: 'hi', y: 'hi') { }, + b: (x: 'hi') => { } + } ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts +index ef33eef5d5..5e87397a9e 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts +@@ -24,4 +24,6 @@ interface I { + + //interface I { + // x: C; +-//} ++//} ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts b/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts +index 4ac60bd7f7..9a462477de 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts +@@ -29,4 +29,7 @@ var a: { + var b: { + new (x: T, y: string): C2; + new (x: T, y: string): C; // error +-} +\ No newline at end of file ++} ++ ++let c1 = new C(1); ++let c2 = new C2(1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts +index 3d7b7eba45..4af4aba5a9 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts +@@ -53,4 +53,6 @@ var r2b = b2['2']; + var r3 = b2['3']; + var r4 = b2[1]; + var r5 = b2[2]; +-var r6 = b2[3]; +\ No newline at end of file ++var r6 = b2[3]; ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts +index f51b8e461e..48ccea819f 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts +@@ -32,3 +32,5 @@ var b: { [x: string]: string } = { y: '' } + var r10 = b['y']; + var r11 = b['a']; + var r12 = b[1]; ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts +index 42f42eb312..ce53505fda 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts +@@ -18,4 +18,6 @@ var b = { + var r1 = (new C()).foo; + var r2 = (null).foo; + var r3 = a.foo; +-var r4 = b.foo; +\ No newline at end of file ++var r4 = b.foo; ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts +index 6673465381..e8589921f5 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts +@@ -273,4 +273,6 @@ enum E { + } + + var r7 = E.abstract; +-var r8 = E.as; +\ No newline at end of file ++var r8 = E.as; ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts +index dbea999036..9c6eea5968 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts +@@ -20,4 +20,6 @@ var r3 = a["a b"]; + var b = { + "a b": 1 + } +-var r4 = b["a b"]; +\ No newline at end of file ++var r4 = b["a b"]; ++ ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts b/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts +index 6aa6325ee3..68641deedd 100644 +--- a/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts ++++ b/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts +@@ -7,4 +7,4 @@ var x = 1; + var a: string = x.doStuff(); + var b: string = x.doOtherStuff('hm'); + var c: string = x['doStuff'](); +-var d: string = x['doOtherStuff']('hm'); +\ No newline at end of file ++var d: string = x['doOtherStuff']('hm'); +diff --git a/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts b/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts +index 58a5a54386..572d96843f 100644 +--- a/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts ++++ b/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts +@@ -28,4 +28,6 @@ x = f; + + enum E { A } + x = E; +-x = E.A; +\ No newline at end of file ++x = E.A; ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts b/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts +index 71ae9f89a1..a1cad7a4a4 100644 +--- a/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts ++++ b/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts +@@ -20,4 +20,6 @@ var h: { f(): void } = x; + + function i(a: T) { + a = x; +-} +\ No newline at end of file ++} ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/rest/objectRestParameter.ts b/tests/cases/conformance/types/rest/objectRestParameter.ts +index 5b6faeb797..a18f4afc49 100644 +--- a/tests/cases/conformance/types/rest/objectRestParameter.ts ++++ b/tests/cases/conformance/types/rest/objectRestParameter.ts +@@ -19,3 +19,4 @@ function foobar({ bar={}, ...opts }: any = {}) { + foobar(); + foobar({ baz: 'hello' }); + foobar({ bar: { greeting: 'hello' } }); ++let t1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts b/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts +index 9746dd287b..a518d15d97 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts +@@ -23,4 +23,6 @@ var c2: { (x: number): number; (x: T): any; }; + + var z2 = [a2, b2, c2]; + var r6 = z2[0]; +-var r7 = r6(''); // any not string +\ No newline at end of file ++var r7 = r6(''); // any not string ++ ++let c11 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts b/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts +index 4ba6a76000..1d686dcc89 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts +@@ -25,4 +25,7 @@ var f2: { + var f3: { + new(x: string): D; + new(x: number): D; +-} = D; +\ No newline at end of file ++} = D; ++ ++let c = new C(''); ++let d = new D(''); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts +index 3e8ee82c74..4dd74a8b9b 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts +@@ -53,4 +53,7 @@ class D { + + var d: D; + var r3: typeof D; +-var r4: typeof d; +\ No newline at end of file ++var r4: typeof d; ++ ++let c1 = new C(1); ++let d1 = new D(1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts +index 5fb9d2233f..ce1748f526 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts +@@ -12,3 +12,4 @@ interface IScope { + delete: typeof Controller.prototype.delete; // Should not error + var: typeof Controller.prototype.var; // Should not error + } ++let c2 = new Controller(); +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts +index df1898a543..4dcf244525 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts +@@ -18,4 +18,7 @@ class D extends C { + var d: D; + + var r1: typeof D; +-var r2: typeof d; +\ No newline at end of file ++var r2: typeof d; ++ ++let c = new C(1); ++let d1 = new D(1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts +index 878885a8a9..53d74c3b71 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts +@@ -3,6 +3,7 @@ module M { + class C { + foo: number; + } ++ var c = new C(); + } + +-var r: typeof M; +\ No newline at end of file ++var r: typeof M; +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts +new file mode 100644 +index 0000000000..420604c550 +--- /dev/null ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts +@@ -0,0 +1,146 @@ ++// @noImplicitThis: true ++// @strict: true ++ ++class Test { ++ data = {}; ++ constructor() { ++ var copy: typeof this.data = {}; ++ } ++} ++ ++class Test1 { ++ data = { foo: '' }; ++ ['this'] = ''; ++ constructor() { ++ var copy: typeof this.data = { foo: '' }; ++ var foo: typeof this.data.foo = ''; ++ ++ var self: typeof this = this; ++ self.data; ++ ++ var str: typeof this.this = ''; ++ } ++} ++ ++ ++function Test2() { ++ let x: typeof this.no = 1; ++} ++ ++function Test3(this: { no: number }) { ++ let x: typeof this.no = 1; ++} ++ ++function Test4(this: { no: number } | undefined) { ++ let x: typeof this.no = 1; ++} ++ ++class Test5 { ++ no = 1; ++ ++ f = () => { ++ // should not capture this. ++ let x: typeof this.no = 1; ++ } ++} ++ ++namespace Test6 { ++ export let f = () => { ++ let x: typeof this.no = 1; ++ } ++} ++ ++module Test7 { ++ export let f = () => { ++ let x: typeof this.no = 1; ++ } ++} ++ ++const Test8 = () => { ++ let x: typeof this.no = 1; ++} ++ ++class Test9 { ++ no = 0; ++ this = 0; ++ ++ f() { ++ if (this instanceof Test9D1) { ++ const d1: typeof this = this; ++ d1.f1(); ++ } ++ ++ if (this instanceof Test9D2) { ++ const d2: typeof this = this; ++ d2.f2(); ++ } ++ } ++ ++ g() { ++ if (this.no === 1) { ++ const no: typeof this.no = this.no; ++ } ++ ++ if (this.this === 1) { ++ const no: typeof this.this = this.this; ++ } ++ } ++} ++ ++class Test9D1 { ++ f1() {} ++} ++ ++class Test9D2 { ++ f2() {} ++} ++ ++class Test10 { ++ a?: { b?: string } ++ ++ foo() { ++ let a: typeof this.a = undefined as any; ++ if (this.a) { ++ let a: typeof this.a = undefined as any; // should narrow to { b?: string } ++ let b: typeof this.a.b = undefined as any; ++ ++ if (this.a.b) { ++ let b: typeof this.a.b = undefined as any; // should narrow to string ++ } ++ } ++ } ++} ++ ++class Test11 { ++ this?: { x?: string }; ++ ++ foo() { ++ const o = this; ++ let bar: typeof o.this = {}; ++ ++ if (o.this && o.this.x) { ++ let y: string = o.this.x; // should narrow to string ++ } ++ } ++} ++ ++class Tests12 { ++ test1() { // OK ++ type Test = typeof this; ++ } ++ ++ test2() { // OK ++ for (;;) {} ++ type Test = typeof this; ++ } ++ ++ test3() { // expected no compile errors ++ for (const dummy in []) {} ++ type Test = typeof this; ++ } ++ ++ test4() { // expected no compile errors ++ for (const dummy of []) {} ++ type Test = typeof this; ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts +new file mode 100644 +index 0000000000..d99cceaa58 +--- /dev/null ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts +@@ -0,0 +1,5 @@ ++// @noImplicitThis: false ++ ++function Test1() { ++ let x: typeof this.no = 1 ++} +diff --git a/tests/cases/conformance/types/spread/spreadDuplicate.ts b/tests/cases/conformance/types/spread/spreadDuplicate.ts +new file mode 100644 +index 0000000000..f27a2529f0 +--- /dev/null ++++ b/tests/cases/conformance/types/spread/spreadDuplicate.ts +@@ -0,0 +1,21 @@ ++// @strict: true ++// @declaration: true ++ ++// Repro from #44438 ++ ++declare let a: { a: string }; ++declare let b: { a?: string }; ++declare let c: { a: string | undefined }; ++declare let d: { a?: string | undefined }; ++ ++declare let t: boolean; ++ ++let a1 = { a: 123, ...a }; // string (Error) ++let b1 = { a: 123, ...b }; // string | number ++let c1 = { a: 123, ...c }; // string | undefined (Error) ++let d1 = { a: 123, ...d }; // string | number ++ ++let a2 = { a: 123, ...(t ? a : {}) }; // string | number ++let b2 = { a: 123, ...(t ? b : {}) }; // string | number ++let c2 = { a: 123, ...(t ? c : {}) }; // string | number ++let d2 = { a: 123, ...(t ? d : {}) }; // string | number +diff --git a/tests/cases/conformance/types/spread/spreadDuplicateExact.ts b/tests/cases/conformance/types/spread/spreadDuplicateExact.ts +new file mode 100644 +index 0000000000..e395af4ce5 +--- /dev/null ++++ b/tests/cases/conformance/types/spread/spreadDuplicateExact.ts +@@ -0,0 +1,22 @@ ++// @strict: true ++// @exactOptionalPropertyTypes: true ++// @declaration: true ++ ++// Repro from #44438 ++ ++declare let a: { a: string }; ++declare let b: { a?: string }; ++declare let c: { a: string | undefined }; ++declare let d: { a?: string | undefined }; ++ ++declare let t: boolean; ++ ++let a1 = { a: 123, ...a }; // string (Error) ++let b1 = { a: 123, ...b }; // string | number ++let c1 = { a: 123, ...c }; // string | undefined (Error) ++let d1 = { a: 123, ...d }; // string | number | undefined ++ ++let a2 = { a: 123, ...(t ? a : {}) }; // string | number ++let b2 = { a: 123, ...(t ? b : {}) }; // string | number ++let c2 = { a: 123, ...(t ? c : {}) }; // string | number | undefined ++let d2 = { a: 123, ...(t ? d : {}) }; // string | number | undefined +diff --git a/tests/cases/conformance/types/spread/spreadUnion4.ts b/tests/cases/conformance/types/spread/spreadUnion4.ts +new file mode 100644 +index 0000000000..6a39ac3a3c +--- /dev/null ++++ b/tests/cases/conformance/types/spread/spreadUnion4.ts +@@ -0,0 +1,4 @@ ++declare const a: { x: () => void } ++declare const b: { x?: () => void } ++ ++const c = { ...a, ...b }; +diff --git a/tests/cases/conformance/types/thisType/fluentClasses.ts b/tests/cases/conformance/types/thisType/fluentClasses.ts +index c9e791cb6f..0aad4efe17 100644 +--- a/tests/cases/conformance/types/thisType/fluentClasses.ts ++++ b/tests/cases/conformance/types/thisType/fluentClasses.ts +@@ -15,3 +15,5 @@ class C extends B { + } + var c: C; + var z = c.foo().bar().baz(); // Fluent pattern ++let b1 = new B(); ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts b/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts +index f46b251c3b..c6091fd7a2 100644 +--- a/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts ++++ b/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts +@@ -19,3 +19,6 @@ class B { + x = x.self(); + } + } ++ ++let a = new A(); ++let b = new B(); +diff --git a/tests/cases/conformance/types/thisType/thisTypeInClasses.ts b/tests/cases/conformance/types/thisType/thisTypeInClasses.ts +index 6c650341fb..0d3913de7e 100644 +--- a/tests/cases/conformance/types/thisType/thisTypeInClasses.ts ++++ b/tests/cases/conformance/types/thisType/thisTypeInClasses.ts +@@ -47,3 +47,9 @@ class C5 { + let x2 = undefined as this; + } + } ++ ++let c1 = new C1(); ++let c2 = new C2(); ++let c3 = new C3(); ++let c4 = new C4(); ++let c5 = new C5(); +diff --git a/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts b/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts +index 01d7fd0430..8fe03ac945 100644 +--- a/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts ++++ b/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts +@@ -7,3 +7,6 @@ class Test extends Base { + this.check(this); + } + } ++ ++let te = new Test(); ++ +diff --git a/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts b/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts +new file mode 100644 +index 0000000000..c46933329b +--- /dev/null ++++ b/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts +@@ -0,0 +1,10 @@ ++// @target: esnext ++ ++class Foo { ++ static m(this: new () => T, strings: TemplateStringsArray | string) { ++ return new this() ++ } ++} ++ ++Foo.m`test`; ++(Foo.m)`test`; +diff --git a/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts b/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts +index 0f58f1971d..e03bc2a0c6 100644 +--- a/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts ++++ b/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts +@@ -21,3 +21,5 @@ class A { + @someDec + k: readonly [string, number] = ['foo', 42]; + } ++ ++let a = new A(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts b/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts +index e7cca719f4..05fd3be85e 100644 +--- a/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts ++++ b/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts +@@ -15,3 +15,7 @@ type T4 = string | I4; + class I4 { + [x: string]: T4; + } ++ ++let i0 = new I0(); ++let i3 = new I3(); ++let i4 = new I4(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts b/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts +index 4cc3a72395..96d1b74b83 100644 +--- a/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts ++++ b/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts +@@ -9,4 +9,6 @@ var x: StringTree; + if (typeof x !== "string") { + x[0] = ""; + x[0] = new StringTreeCollection; +-} +\ No newline at end of file ++} ++ ++let s1 = new StringTreeCollection(); +diff --git a/tests/cases/conformance/types/typeAliases/typeAliases.ts b/tests/cases/conformance/types/typeAliases/typeAliases.ts +index b9d28f4cc3..32eb8473bf 100644 +--- a/tests/cases/conformance/types/typeAliases/typeAliases.ts ++++ b/tests/cases/conformance/types/typeAliases/typeAliases.ts +@@ -77,4 +77,6 @@ var x: [string, boolean]; + f16(x); + + var y: StringAndBoolean = ["1", false]; +-y[0].toLowerCase(); +\ No newline at end of file ++y[0].toLowerCase(); ++ ++let c7 = new C7(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts +index 9a21c48ee1..b4a8dc7ba5 100644 +--- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts ++++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts +@@ -33,4 +33,7 @@ interface I2 { + f(x: T): T; + } + var i2: I2; +-var r7 = i2.f(1); +\ No newline at end of file ++var r7 = i2.f(1); ++ ++let c1 = new C(); ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts +index ba1c5b003f..7490e2bd94 100644 +--- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts ++++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts +@@ -58,4 +58,7 @@ function foo2(x: T, y: U) { + //function foo2(x: T, y: U) { + // foo(x); + // foo(y); +-//} +\ No newline at end of file ++//} ++ ++let c11 = new C(); ++let c12 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts +index 6c32014789..dec6cdd0bd 100644 +--- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts ++++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts +@@ -38,4 +38,7 @@ var c2: { (x: T): T; (x: T, y: T): T }; + var r9 = foo(function (x: U) { return x; }); + var r10 = foo((x: U) => x); + var r12 = foo(i2); +-var r15 = foo(c2); +\ No newline at end of file ++var r15 = foo(c2); ++ ++let c11 = new C(); ++let c12 = new C2() +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts +index 60766c7e5e..4bd0b6c27f 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts +@@ -34,4 +34,6 @@ class C2 { + // var x: U; + // x.getDate(); + // } +-//} +\ No newline at end of file ++//} ++let c1 = new C(); ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts +index b89016ecff..c10bef3300 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts +@@ -31,4 +31,5 @@ var b = { + } + } + +-var r4 = b.foo(new Date()); +\ No newline at end of file ++var r4 = b.foo(new Date()); ++let c = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts +index 10f3a49884..a9992c5aa1 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts +@@ -61,7 +61,7 @@ var a: { + var r3 = a().foo(); + var r3b = a()['foo'](); + // parameter supplied for type argument inference to succeed +-var aB = new B(); ++// var aB = new B(); + var r3c = a(aB, aB).foo(); + var r3d = a(aB, aB)['foo'](); + +@@ -78,4 +78,7 @@ var b = { + // } + //} + +-var r4 = b.foo(aB, aB); // no inferences for T so constraint isn't satisfied, error +\ No newline at end of file ++var r4 = b.foo(aB, aB); // no inferences for T so constraint isn't satisfied, error ++ ++let b1 = new B(); ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts +index 6167485f1b..73a10ae071 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts +@@ -53,4 +53,6 @@ var b = { + } + } + +-var r4 = b.foo(new B()); // valid call to an invalid function +\ No newline at end of file ++var r4 = b.foo(new B()); // valid call to an invalid function ++let b1 = new B(); ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts +index 1660d67a4e..b46569e9a4 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts +@@ -28,4 +28,6 @@ var b = { + } + } + +-var r4 = b.foo(1); +\ No newline at end of file ++var r4 = b.foo(1); ++ ++let c = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts +index bade67badd..b9f3e54bb7 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts +@@ -32,3 +32,10 @@ var a3: { (): void } + var a4: { (): void } + var a5: { (): void } + var a6: { (): void } ++ ++let c1 = new C(); ++let c2 = new C2(); ++let c3 = new C3(); ++let c4 = new C4(); ++let c5 = new C5(); ++let c6 = new C6(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts +index cc154308a1..5dfa8f94d3 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts +@@ -85,4 +85,8 @@ var r3 = foo3(a); // any + + declare function foo18(x: {}): {}; + declare function foo18(x: any): any; +-var r3 = foo3(a); // any +\ No newline at end of file ++var r3 = foo3(a); // any ++ ++let aa1 = new A(); ++let aa2 = new A2(); ++let ccc = new CC(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts +index 1c3bcc71ce..03e0089697 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts +@@ -38,6 +38,7 @@ function foo(x: T, y: U, z: V) { + z = a; + } + ++let cc = new C(); + //function foo(x: T, y: U, z: V) { + // x = a; + // y = a; +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts +index 26f3eee594..74a517176d 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts +@@ -127,3 +127,6 @@ interface I20 { + [x: string]: {}; + foo: any; + } ++let aa = new A(); ++let aa2 = new A2() ++let ccc = new c(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts +index d7a94cc862..464edb67d3 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts +@@ -40,6 +40,8 @@ module SimpleTypes { + a2 = b; + a2 = t2; + a2 = t; ++ let ss = new S(); ++ let tt = new T(); + } + + module ObjectTypes { +@@ -81,5 +83,6 @@ module ObjectTypes { + a2 = b; + a2 = t2; + a2 = t; +- ++ let ss = new S(); ++ let tt = new T(); + } +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts +index a45da06482..a9e3bc6141 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts +@@ -39,3 +39,5 @@ b2 = a2; + a2 = b; + a2 = t2; + a2 = t; ++let qu1 = new S(); ++let qu2 = new T(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts +index 6e9a210db4..b96693de94 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts +@@ -39,3 +39,5 @@ b2 = a2; + a2 = b; + a2 = t2; + a2 = t; ++let qi3 = new S(); ++let qi4 = new T(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts +index b25c949f42..7372988241 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts +@@ -39,3 +39,5 @@ b2 = a2; + a2 = b; + a2 = t2; + a2 = t; ++let qi1 = new S(); ++let qi2 = new T(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts +index 9e6cd52ac2..c511bfa71a 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts +@@ -66,4 +66,8 @@ interface I extends A { + a16: (x: T) => number[]; // ok + a17: (x: (a: T) => T) => T[]; // ok + a18: (x: (a: T) => T) => T[]; // ok, no inferences for T but assignable to any +-} +\ No newline at end of file ++} ++ ++let qi14 = new Derived(); ++let qi15 = new Derived2(); ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts +index dd10ee7646..bb1f737657 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts +@@ -46,4 +46,8 @@ interface I extends A { + a16: (x: { a: T; b: T }) => T[]; // ok, more general parameter type + a17: (x: (a: T) => T) => T[]; // ok + a18: (x: (a: T) => T) => any[]; // ok +-} +\ No newline at end of file ++} ++ ++let qi14 = new Derived(); ++let qi15 = new Derived2(); ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts +index bf60d6518c..ef4e179af9 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts +@@ -45,4 +45,7 @@ interface I extends B { + a12: >(x: Array, y: T) => Array; // ok, less specific parameter type + a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds + a14: (x: { a: T; b: U }) => T; // ok +-} +\ No newline at end of file ++} ++let qi14 = new Derived(); ++let qi15 = new Derived2(); ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts +index 65e4f4c962..8d842b7d7e 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts +@@ -66,4 +66,8 @@ interface I extends A { + a16: new (x: T) => number[]; // ok + a17: new (x: new (a: T) => T) => T[]; // ok + a18: new (x: new (a: T) => T) => T[]; // ok, no inferences for T but assignable to any +-} +\ No newline at end of file ++} ++ ++let qi14 = new Derived(); ++let qi15 = new Derived2(); ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts +index 9dfcf5548a..8b57d6a8c7 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts +@@ -56,4 +56,7 @@ interface I extends A { + a18: new (x: T) => number[]; // ok, more general parameter type + a19: new (x: new (a: T) => T) => T[]; // ok + a20: new (x: new (a: T) => T) => any[]; // ok +-} +\ No newline at end of file ++} ++let qi14 = new Derived(); ++let qi15 = new Derived2(); ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts +index f33820218e..6ba5e454f6 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts +@@ -45,4 +45,7 @@ interface I extends B { + a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type + a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds + a14: new (x: { a: T; b: U }) => T; // ok +-} +\ No newline at end of file ++} ++let qi14 = new Derived(); ++let qi15 = new Derived2(); ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts +index 6c8670abaa..407e128678 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts +@@ -53,6 +53,8 @@ function foo(x: T, y: U, z: V) { + a = y; + a = z; + } ++ ++let ccc = new C(); + //function foo(x: T, y: U, z: V) { + // a = x; + // a = y; +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts +index b0f55331d7..cc755558ff 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts +@@ -35,7 +35,7 @@ function foo(x: T, y: U, z: V) { + y = null; + z = null; + } +- ++let cc = new C(); + //function foo(x: T, y: U, z: V) { + // x = null; + // y = null; +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts +index 5fc14274a1..f296781ef1 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts +@@ -35,6 +35,7 @@ function foo(x: T, y: U, z: V) { + y = undefined; + z = undefined; + } ++let cc = new C(); + //function foo(x: T, y: U, z: V) { + // x = undefined; + // y = undefined; +diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts +index 5f02210478..1e1889cc10 100644 +--- a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts ++++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts +@@ -23,4 +23,7 @@ var r11 = true ? base : derived2; + + function foo5(t: T, u: U): Object { + return true ? t : u; // BCT is Object +-} +\ No newline at end of file ++} ++ ++let qy10 = new Derived(); ++let qy11 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts +index 8e6f345ea4..f1512e3536 100644 +--- a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts ++++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts +@@ -21,4 +21,6 @@ function foo2(t: T, u: U) { // Error for referencing own type pa + + function foo3(t: T, u: U) { + return true ? t : u; +-} +\ No newline at end of file ++} ++let qy8 = new Derived(); ++let qy9 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts +index 0f498c570a..13ecea225a 100644 +--- a/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts ++++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts +@@ -99,6 +99,8 @@ function foo4(t: T, u: U) { + + var k: Base[] = [t, u]; + } ++let qy8 = new Derived(); ++let qy9 = new Derived2(); + + //function foo3(t: T, u: U) { + // var a = [t, t]; // T[] +diff --git a/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts b/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts +index 04623503f9..491876d8ff 100644 +--- a/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts ++++ b/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts +@@ -34,3 +34,6 @@ function f3(v: T | { x: string }) { + const y: { x: string } = v; + } + } ++let qy5 = new C(); ++let qy6 = new D(); ++let qy7 = new E(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts +index e7260831a4..35de332a33 100644 +--- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts ++++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts +@@ -22,4 +22,8 @@ var ys = [list, list2]; // {}[] + var zs = [list, null]; // List[] + + var myDerivedList: DerivedList; +-var as = [list, myDerivedList]; // List[] +\ No newline at end of file ++var as = [list, myDerivedList]; // List[] ++ ++let li = new List(); ++let der = new DerivedList(); ++let my = new MyList(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts +index ac6286bd81..e4d37f2abe 100644 +--- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts ++++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts +@@ -10,4 +10,7 @@ class D { + x: G>; + } + +-var c1 = new Foo>(); // ok, circularity in assignment compat check causes success +\ No newline at end of file ++var c1 = new Foo>(); // ok, circularity in assignment compat check causes success ++let g = new G(); ++let foo = new Foo(); ++let d = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts +index 6eba1f2836..6cdf1db8be 100644 +--- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts ++++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts +@@ -40,4 +40,7 @@ function other, U>() { + + var r = foo5(list); + var r2 = foo5(myList); +-} +\ No newline at end of file ++} ++ ++let li = new List(); ++let my = new MyList(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts +index 24f2ab71d4..ced02bcefe 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts +@@ -88,3 +88,7 @@ var r19 = true ? null : new Object(); + + var r20 = true ? {} : null; + var r20 = true ? null : {}; ++ ++let c11 = new C1(); ++let c12 = new C2(); ++let c13 = new c(); +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts +index c7e9c0fc8e..0f00bc8c02 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts +@@ -97,4 +97,6 @@ function f15(x: any) { } + + function f16(x: 'a'); + function f16(x: U); +-function f16(x: any) { } +\ No newline at end of file ++function f16(x: any) { } ++ ++let ccc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts +index 0e5df54319..d785a27b7b 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts +@@ -130,4 +130,7 @@ interface I19 { + interface I20 { + [x: string]: any; + foo: {}; +-} +\ No newline at end of file ++} ++let a1 = new A(); ++let a2 = new A2(); ++let c1 = new c(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts +index 9edf4f5f41..990e4b8cc5 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts +@@ -154,4 +154,7 @@ function f20(x: T) { + function f21(x: T) { + var r20 = true ? {} : x; // ok + var r20 = true ? x : {}; // ok +-} +\ No newline at end of file ++} ++ ++let c1 = new C1(); ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts +index e8ae73c5fb..4a29484b12 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts +@@ -5,6 +5,7 @@ class Derived extends Base { bar: string; } + class Derived2 extends Derived { baz: string; } + class OtherDerived extends Base { bing: string; } + ++ + declare function foo1(a: (x: number) => number[]): typeof a; + declare function foo1(a: any): any; + +@@ -169,3 +170,8 @@ var r17arg1 = (x: (a: T) => T) => null; + var r17 = foo17(r17arg1); // any + var r18arg1 = (x: (a: T) => T) => null; + var r18 = foo18(r18arg1); ++ ++ ++let der1 = new Derived(); ++let der2 = new Derived2(); ++let oth = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts +index 505919547f..51c890854f 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts +@@ -103,6 +103,10 @@ module Errors { + + var r9arg = (x: (a: T) => T) => null; + var r9 = foo17(r9arg); // (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; ++ let ba = new Base(); ++ let der1 = new Derived(); ++ let der2 = new Derived2(); ++ let oth = new OtherDerived(); + } + + module WithGenericSignaturesInBaseType { +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts +index e86fc51d44..e043cec402 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts +@@ -108,4 +108,8 @@ var r17arg = (x: (a: T) => T) => null; + var r17 = foo17(r17arg); + + var r18arg = (x: (a: T) => T) => null; +-var r18 = foo18(r18arg); +\ No newline at end of file ++var r18 = foo18(r18arg); ++ ++let der =new Derived(); ++let der2 = new Derived2(); ++let oth = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts +index 46d1c9e91d..683db9f182 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts +@@ -169,3 +169,8 @@ var r17arg1: new (x: (a: T) => T) => T[]; + var r17 = foo17(r17arg1); // any + var r18arg1: new (x: (a: T) => T) => T[]; + var r18 = foo18(r18arg1); ++ ++ ++let der =new Derived(); ++let der2 = new Derived2(); ++let oth = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts +index 215a5d1d4d..bbaddcabfc 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts +@@ -105,6 +105,10 @@ module Errors { + + var r9arg: new (x: new (a: T) => T) => any[]; + var r9 = foo17(r9arg); // // (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; ++ let ba = new Base(); ++ let der1 = new Derived(); ++ let der2 = new Derived2(); ++ let oth = new OtherDerived(); + } + + module WithGenericSignaturesInBaseType { +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts +index 830139d3fa..5d5145d29d 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts +@@ -108,4 +108,8 @@ var r17arg: new (x: new (a: T) => T) => T[]; + var r17 = foo17(r17arg); + + var r18arg: new (x: new (a: T) => T) => any[]; +-var r18 = foo18(r18arg); +\ No newline at end of file ++var r18 = foo18(r18arg); ++ ++let der =new Derived(); ++let der2 = new Derived2(); ++let oth = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts +index f33820218e..f3c1c5d20d 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts +@@ -6,6 +6,7 @@ class Derived extends Base { bar: string; } + class Derived2 extends Derived { baz: string; } + class OtherDerived extends Base { bing: string; } + ++ + interface A { // T + // M's + a: new (x: number) => number[]; +@@ -45,4 +46,7 @@ interface I extends B { + a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type + a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds + a14: new (x: { a: T; b: U }) => T; // ok +-} +\ No newline at end of file ++} ++let der =new Derived(); ++let der2 = new Derived2(); ++let oth = new OtherDerived(); +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts +index b50e1f7106..2c99af9515 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts +@@ -30,4 +30,8 @@ class A3 { + + class B3 extends A3 { + '1.1': Derived; // ok, inherits '1' +-} +\ No newline at end of file ++} ++let der = new Derived(); ++let b1 = new B(); ++let b2 = new B2(); ++let b3 = new B3(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts +index 7ee0906ee2..08c7e7d192 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts +@@ -118,3 +118,28 @@ class D16 extends Base { + class D17 extends Base { + foo: {}; + } ++ ++ ++let d0 = new D0(); ++let da = new DA(); ++let d1 = new D1() ++let d1a = new D1A() ++let d2 = new D2() ++let d2a = new D2A() ++let d3 = new D3() ++let d3a = new D1A() ++let d4 = new D4() ++let d5 = new D5() ++let d6 = new D6() ++let d7 = new D7() ++let d8 = new D8() ++let d9 = new D9() ++let d10 = new D10() ++let d11 = new D11() ++let d12 = new D12() ++let c1 = new c() ++let d13 = new D13() ++let d14 = new D14() ++let d15 = new D15() ++let d16 = new D16() ++let d17 = new D17() +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts +index 225a974181..acf6300dba 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts +@@ -85,4 +85,8 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // error +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++ ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts +index fefde23a69..2427d26180 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts +@@ -62,4 +62,7 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++let aa = new A(); ++let bb = new B(); ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts +index 94038f6df9..bb5d06c3fc 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts +@@ -97,4 +97,7 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let qy17 = new A(); ++let qy18 = new B(); ++let qy19 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts +index 699f0f73f7..99aafb4b8a 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts +@@ -97,4 +97,7 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let aa = new A(); ++let bb = new B(); ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts +index b62b558d06..8a23c2c1bd 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts +@@ -97,4 +97,7 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let aa = new A(); ++let bb = new B(); ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts +index 0aaf7c30f2..cc561aa934 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts +@@ -113,4 +113,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let aa = new A(); ++let bb = new B(); ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts +index efec6a715b..964c2a9d43 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts +@@ -84,4 +84,8 @@ function foo13(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let a1 = new A('1'); ++let b1 = new B('1'); ++let c1 = new C(1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts +index 63e5167a4c..09f632da93 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts +@@ -73,4 +73,6 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let qy38 = new B(null); ++let qy39 =new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts +index b8fc424b21..b6af7ec955 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts +@@ -73,4 +73,6 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let qo23 =new B(null,null); ++let qo24 =new C(null,null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts +index d95bc486df..72019e6b9a 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts +@@ -97,4 +97,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts +index 5c009926a0..099927c132 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts +@@ -97,4 +97,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts +index ede6da4040..21f9ed1933 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts +@@ -99,4 +99,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts +index 5fb315c4da..c0ce245917 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts +@@ -111,4 +111,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); ++let d1 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts +index aaae2cbf33..b341b1f6c2 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts +@@ -120,4 +120,11 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let one = new One(); ++let two = new Two(); ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); ++let d1 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts +index 97a657606e..ab7da883ec 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts +@@ -99,4 +99,7 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let qy12 = new A(); ++let qy13 = new B(); ++let qy14 = new C(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts +index df7533d906..5e419a9b14 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts +@@ -99,4 +99,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let qo27 = new A(); ++let qo28 =new B(); ++let qo29 =new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts +index e3bd868941..1bda87ea35 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts +@@ -97,4 +97,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C, B>); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts +index 9e01aaec49..9b74d14cfc 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts +@@ -97,4 +97,7 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let qo17 = new A(); ++let qo18 =new B(); ++let qo19 =new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts +index c5454cc41e..781a351188 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts +@@ -99,4 +99,7 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let qo9 = new A(); ++let qo10 = new B(); ++let qo11 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts +index b8620f04d1..ca2a5abb87 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts +@@ -99,4 +99,7 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts +index f39d23637a..828b26331c 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts +@@ -99,4 +99,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts +index 974f53cb9c..8d1aa46bde 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts +@@ -72,3 +72,5 @@ function foo13(x: any) { } + function foo14(x: I); + function foo14(x: typeof b); // ok + function foo14(x: any) { } ++let qo15 = new B(null); ++let qo16 = new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts +index 47bab5dab8..963aabc746 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts +@@ -83,4 +83,9 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++ ++var aa = [] ++let b1 = new B(aa,aa); ++let c1 = new C('',''); ++let d1 = new D(1,1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts +index 14f4933a15..b593e623e5 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts +@@ -92,4 +92,9 @@ function foo13(x: any) { } + + function foo14(x: I, Five>); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++let qo1 = new One(); ++let qo2 = new Two(); ++let qo3 = new B(null,null); ++let qo4 = new C(null,null); ++let qo5 = new D(null,null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts +index 9c072e8936..185dab627d 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts +@@ -79,4 +79,6 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++let qy49 =new B(null); ++let qy50 =new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts +index 2e0a98d557..9e63b81350 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts +@@ -75,4 +75,8 @@ function foo14(x: any) { } + + function foo15(x: I2); + function foo15(x: C); // ok +-function foo15(x: any) { } +\ No newline at end of file ++function foo15(x: any) { } ++ ++var aa; ++let b1 = new B(aa); ++let c1 = new C(aa); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts +index fe01df2564..8caa853954 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts +@@ -69,4 +69,6 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++let qo6 = new B(null); ++let qo7 = new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts +index 20d7dbab13..7573f3e8b4 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts +@@ -69,4 +69,8 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++ ++ ++let b1 = new B(a); ++let c1 = new C(a); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts +index 56dc5a051c..2caea04bc0 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts +@@ -71,4 +71,7 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++ ++let b1 = new B(a); ++let c1 = new C(a); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts +index 6c4a282228..d9e2b8c184 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts +@@ -71,4 +71,7 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++ ++let b1 = new B(a); ++let c1 = new C(a); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts +index 8c9a08137f..0683e8d40b 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts +@@ -71,4 +71,6 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++let qy15 = new B(null,null); ++let qy16 = new C(null,null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts +index 867199d905..0c6b2ca24b 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts +@@ -119,3 +119,6 @@ function foo16(x: I); + function foo16(x: PB); // error + function foo16(x: any) { } + ++let c1 = new C(); ++let pa = new PA(); ++let pb = new PB(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts +index ea9d7d04ee..bf735eb8a5 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts +@@ -122,3 +122,8 @@ function foo16(x: I); + function foo16(x: PB); // error + function foo16(x: any) { } + ++ ++let der = new Derived() ++let c1 = new C(); ++let pa = new PA(); ++let pb = new PB(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts +index d3f22604c4..337ac0b542 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts +@@ -119,3 +119,6 @@ function foo16(x: I); + function foo16(x: PB); // error + function foo16(x: any) { } + ++let qo32 =new C(); ++let qo30 = new PA(); ++let qo31 =new PB(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts +index 7c24195105..21be3c5930 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts +@@ -53,4 +53,8 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // ok +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++ ++let a1 = new A(); ++let b1 = new B(); ++let c1 = new C(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts +index b9e390158c..fe547befb2 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts +@@ -116,4 +116,6 @@ function foo15(x: any) { } + function foo16(x: I); + function foo16(x: PB); // no error + function foo16(x: any) { } +- ++let qo26 =new C(); ++let qo24 = new PA(); ++let qo25 =new PB(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts +index 769e59f06d..403c1692d7 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts +@@ -35,3 +35,4 @@ function foo6(x: D): string; // error + function foo6(x: any): any { } + + ++let d1 = new D(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts +index 813a8333e5..6f12d3d4e0 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts +@@ -85,4 +85,7 @@ function foo13(x: any) { } + + function foo14(x: I); + function foo14(x: typeof b); // error +-function foo14(x: any) { } +\ No newline at end of file ++function foo14(x: any) { } ++let qy41 = new A(); ++let qy42 =new B(); ++let qy43 =new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts +index f511e56bc3..e6d583aa06 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts +@@ -119,3 +119,6 @@ function foo16(x: I); + function foo16(x: PB); // error + function foo16(x: any) { } + ++let qo35 =new C(); ++let qo33 = new PA(); ++let qo34 =new PB(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts +index d8af511910..7c37adc723 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts +@@ -122,3 +122,8 @@ function foo16(x: I); + function foo16(x: PB); // error + function foo16(x: any) { } + ++ ++let der = new Derived(); ++let c1 = new C(); ++let pa = new PA(); ++let pb = new PB(); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts +index 0495789326..383623ee14 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts +@@ -73,4 +73,6 @@ interface I2 { + + foo3(x: T); + foo3(x: T); // no error, different declaration for each T +-} +\ No newline at end of file ++} ++let qy36 = new C(); ++let qy37 =new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts +index 601f790667..b8526977ef 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts +@@ -104,3 +104,6 @@ var r8b = i.foo5(d2, d2); // Derived2 + var r9 = i.foo6(); // Derived + var r10 = i.foo7(d1); // Base + var r11 = i.foo8(); // Base ++ ++let qu12 = new Derived(); ++let qu13 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts +index 3d68ff7a0d..74c3573627 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts +@@ -19,4 +19,6 @@ var b: { + new(x: T): any; + } + +-var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) +\ No newline at end of file ++var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) ++let qy3 = new C(); ++let qy4 =new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts +index 514df351cc..52f1c5e20f 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts +@@ -29,4 +29,6 @@ interface I { + } + + var i: I; +-var r4 = f2(i); // Base => Derived +\ No newline at end of file ++var r4 = f2(i); // Base => Derived ++let qy0 = new Derived(); ++let qy1 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts +index e1c91529d7..475dfe3dcb 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts +@@ -19,8 +19,8 @@ function foo(t: X, t2: X) { + return x; + } + +-var c1 = new X(); +-var d1 = new X(); ++// var c1 = new X(); ++// var d1 = new X(); + var r = foo(c1, d1); + var r2 = foo(c1, c1); + +@@ -30,4 +30,8 @@ function foo2(t: X, t2: X) { + } + + var r = foo2(c1, d1); +-var r2 = foo2(c1, c1); +\ No newline at end of file ++var r2 = foo2(c1, c1); ++ ++let qu4 = new C(); ++let qu5 = new D(); ++let qu6 = new X(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts +index c97915eaf1..5f7fee7daf 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts +@@ -35,3 +35,4 @@ var r5 = f3(new Derived(), x => x); + + var r6 = f3(null, null); // any + var r7 = f3(null, x => x); // any ++let qu8 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts +index 1c29b3822b..a52b2b835e 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts +@@ -37,6 +37,8 @@ module Class { + var g2: G2; + var r = g2.foo2(c1, d1); + var r2 = g2.foo2(c1, c1); ++ var gg1 = new G(); ++ var gg2 = new G2(); + } + + module Interface { +@@ -57,4 +59,7 @@ module Interface { + var g2: G2; + var r = g2.foo2(c1, d1); + var r2 = g2.foo2(c1, c1); +-} +\ No newline at end of file ++} ++let c = new C(); ++let d = new D(); ++let x = new X(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts b/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts +index 9de110bd1e..7a24403769 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts +@@ -44,3 +44,7 @@ function insertOnConflictDoNothing(_tabl + function f() { + insertOnConflictDoNothing(bookTable, ConflictTarget.tableColumns(["serial"])); // <-- No error here; should use the type inferred for the return type of `tableColumns` + } ++let qu9 = new Write(); ++let qu10 = new Col(); ++let qu11 =new Table(); ++let qu12 =new ConflictTarget(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts b/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts +new file mode 100644 +index 0000000000..a5e51271bc +--- /dev/null ++++ b/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts +@@ -0,0 +1,19 @@ ++// @strict: true ++ ++// Repro from #44435 ++ ++type Correct = { ++ code: string ++ property: true ++ err: undefined ++} ++type Err = { ++ err: `${string} is wrong!` ++} ++type SomeReturnType = Correct | Err; ++ ++const example: SomeReturnType = {} as SomeReturnType; ++ ++if (example.err === undefined) { ++ example.property; // true ++} +\ No newline at end of file +-- +2.17.1 + diff --git a/testTs/utils.py b/testTs/utils.py new file mode 100644 index 0000000000..41d066c776 --- /dev/null +++ b/testTs/utils.py @@ -0,0 +1,123 @@ +import os +import datetime +import shutil +import difflib +from config import * +import subprocess +import json + + +#执行终端命令 +def command_os(order): + cmd = order + os.system(cmd) + +#创建文件夹 +def mk_dir(path): + if not os.path.exists(path): + os.makedirs(path) + +#切换分支(git_brash:分支) +def git_checkout(git_brash): + command_os(f'git checkout {git_brash}') + +#删除文件夹(空文件夹与非空文件夹) +def remove_dir(path): + if os.path.exists(path): + shutil.rmtree(path) + +#删除文件 +def remove_file(path): + if os.path.exists(path): + os.remove(path) + +#清空文件内容(path:文件路径) +def clean_file(path): + f = open(path,'w') + f.write('') + f.close() + +#读取文件内容(全部) +def read_file(path): + try: + f =open(path,'r') + content = f.readlines() + f.close() + except: + content = [] + + return content + +#写入文件,覆盖之前内容 +def write_file(path,content): + f = open(path,'w') + f.write(content) + f.close() + +#追加写入文件(path:文件路径,content:写入内容) +def write_append(path,content): + f = open(path,'a+') + f.write(content) + f.close() + +def move_file(srcfile, dstfile): + subprocess.getstatusoutput("mv %s %s" % (srcfile, dstfile)) + +def git_clone(git_url, code_dir): + cmd = ['git', 'clone', git_url, code_dir] + ret = run_cmd_cwd(cmd) + assert not ret, f"\n error: Cloning '{git_url}' failed." + +def git_checkout(git_bash, cwd): + cmd = ['git', 'checkout', git_bash] + ret = run_cmd_cwd(cmd, cwd) + assert not ret, f"\n error: git checkout '{git_bash}' failed." + + +def git_apply(patch_file, cwd): + cmd = ['git', 'apply', patch_file] + ret = run_cmd_cwd(cmd, cwd) + assert not ret, f"\n error: Failed to apply '{patch_file}'" + + +def git_clean(cwd): + cmd = ['git', 'checkout', '--', '.'] + run_cmd_cwd(cmd, cwd) + +#输出当前时间(可用于计算程序运行时长) +def current_time(): + return datetime.datetime.now() + +class Command(): + def __init__(self, cmd): + self.cmd = cmd + + def run(self): + LOGGING.debug("command: " + self.cmd) + out = os.popen(self.cmd).read() + LOGGING.info(out) + return out + +def run_cmd(command): + cmd = Command(command) + return cmd.run() + +def excuting_npm_install(args): + ark_frontend_tool = os.path.join(DEFAULT_ARK_FRONTEND_TOOL) + if args.ark_frontend_tool: + ark_frontend_tool = os.path.join(args.ark_frontend_tool) + + ts2abc_build_dir = os.path.join(os.path.dirname( + os.path.realpath(ark_frontend_tool)), "..") + if os.path.exists(os.path.join(ts2abc_build_dir, "package.json")): + npm_install(ts2abc_build_dir) + elif os.path.exists(os.path.join(ts2abc_build_dir, "..", "package.json")): + npm_install(os.path.join(ts2abc_build_dir, "..")) + +def npm_install(cwd): + try: + os.chdir(cwd) + command_os('npm install') + os.chdir(WORK_PATH) + except Exception as e: + print(e) \ No newline at end of file diff --git a/ts2panda/BUILD.gn b/ts2panda/BUILD.gn index 0c7ce27427..42b43f0f6f 100755 --- a/ts2panda/BUILD.gn +++ b/ts2panda/BUILD.gn @@ -80,7 +80,7 @@ ark_gen_file("ts2abc_irnodes_ts") { action("npm_run_build") { visibility = [ ":*" ] deps = [ - "$ts2abc_root:node_modules", + # "$ts2abc_root:node_modules", "$ts2abc_root:ts2abc_diagnostic_ts", "$ts2abc_root:ts2abc_irnodes_ts", "$ts2abc_root:ts2abc_src", diff --git a/ts2panda/src/base/literal.ts b/ts2panda/src/base/literal.ts index e246cdc496..781ce321ec 100755 --- a/ts2panda/src/base/literal.ts +++ b/ts2panda/src/base/literal.ts @@ -55,4 +55,11 @@ export class LiteralBuffer { isEmpty() { return this.literalBuffer.length == 0; } + + getLiteral(index: number) { + if (index >= this.literalBuffer.length || this.literalBuffer.length <=0) { + return ; + } + return this.literalBuffer[index]; + } } \ No newline at end of file diff --git a/ts2panda/src/cmdOptions.ts b/ts2panda/src/cmdOptions.ts index 133f579608..72bd24cc4f 100644 --- a/ts2panda/src/cmdOptions.ts +++ b/ts2panda/src/cmdOptions.ts @@ -41,7 +41,8 @@ const ts2pandaOptions = [ { name: 'included-files', alias: 'i', type: String, lazyMultiple: true, defaultValue: [], description: "The list of dependent files." }, { name: 'record-type', alias: 'p', type: Boolean, defaultValue: false, description: "Record type info. Default: true" }, { name: 'dts-type-record', alias: 'q', type: Boolean, defaultValue: false, description: "Record type info for .d.ts files. Default: false" }, - { name: 'debug-type', alias: 'g', type: Boolean, defaultValue: false, description: "Record type info for .d.ts files. Default: false" } + { name: 'debug-type', alias: 'g', type: Boolean, defaultValue: false, description: "Record type info for .d.ts files. Default: false" }, + { name: 'output-type', type: Boolean, defaultValue: false, description: "set output type."} ] @@ -135,6 +136,13 @@ export class CmdOptions { return this.options["timeout"]; } + static isOutputType(): false { + if (!this.options) { + return false; + } + return this.options["output-type"]; + } + static showHelp(): void { const usage = commandLineUsage([ { diff --git a/ts2panda/src/compilerDriver.ts b/ts2panda/src/compilerDriver.ts index b86151953c..75ce198e68 100644 --- a/ts2panda/src/compilerDriver.ts +++ b/ts2panda/src/compilerDriver.ts @@ -188,6 +188,10 @@ export class CompilerDriver { writeFileSync(jsonFileName, Ts2Panda.jsonString); LOGD("Successfully generate ", `${jsonFileName}`); } + if (CmdOptions.isOutputType()) { + let typeFileName = this.fileName.substring(0, this.fileName.lastIndexOf(".")).concat(".txt"); + writeFileSync(typeFileName, Ts2Panda.dumpTypeLiteralArrayBuffer()); + } Ts2Panda.clearDumpData(); } catch (err) { diff --git a/ts2panda/src/ts2panda.ts b/ts2panda/src/ts2panda.ts index 3d230d17fb..af9cf1e782 100644 --- a/ts2panda/src/ts2panda.ts +++ b/ts2panda/src/ts2panda.ts @@ -39,6 +39,7 @@ import { getRangeStartVregPos } from "./base/util"; import { TypeOfVreg } from "./pandasm"; +import { LiteralBuffer } from "./base/literal"; const dollarSign: RegExp = /\$/g; @@ -144,6 +145,19 @@ export class Ts2Panda { }); } + static dumpTypeLiteralArrayBuffer() { + let literalArrays = PandaGen.getLiteralArrayBuffer(); + let countType: LiteralBuffer = literalArrays[0]; + let jsonTypeString: string = "" + let typeCount = countType.getLiteral(1)?.getValue(); + if (typeCount) { + for (let i = 0; i < typeCount; i++) { + jsonTypeString += escapeUnicode(JSON.stringify(literalArrays[1+i], null, 2)); + } + } + return jsonTypeString; + } + static dumpConstantPool(ts2abc: any): void { let literalArrays = PandaGen.getLiteralArrayBuffer(); if (CmdOptions.enableTypeLog()) { -- Gitee