diff --git a/internal/ast/kind.go b/internal/ast/kind.go
index 57cdaf6f98..ed98bd68ff 100644
--- a/internal/ast/kind.go
+++ b/internal/ast/kind.go
@@ -339,7 +339,6 @@ const (
KindEnumMember
// Top-level nodes
KindSourceFile
- KindBundle
// JSDoc nodes
KindJSDocTypeExpression
KindJSDocNameReference
diff --git a/internal/ast/kind_stringer_generated.go b/internal/ast/kind_stringer_generated.go
index ac4a204fba..0f1c7442a4 100644
--- a/internal/ast/kind_stringer_generated.go
+++ b/internal/ast/kind_stringer_generated.go
@@ -316,59 +316,58 @@ func _() {
_ = x[KindSpreadAssignment-305]
_ = x[KindEnumMember-306]
_ = x[KindSourceFile-307]
- _ = x[KindBundle-308]
- _ = x[KindJSDocTypeExpression-309]
- _ = x[KindJSDocNameReference-310]
- _ = x[KindJSDocMemberName-311]
- _ = x[KindJSDocAllType-312]
- _ = x[KindJSDocNullableType-313]
- _ = x[KindJSDocNonNullableType-314]
- _ = x[KindJSDocOptionalType-315]
- _ = x[KindJSDocVariadicType-316]
- _ = x[KindJSDoc-317]
- _ = x[KindJSDocText-318]
- _ = x[KindJSDocTypeLiteral-319]
- _ = x[KindJSDocSignature-320]
- _ = x[KindJSDocLink-321]
- _ = x[KindJSDocLinkCode-322]
- _ = x[KindJSDocLinkPlain-323]
- _ = x[KindJSDocTag-324]
- _ = x[KindJSDocAugmentsTag-325]
- _ = x[KindJSDocImplementsTag-326]
- _ = x[KindJSDocDeprecatedTag-327]
- _ = x[KindJSDocPublicTag-328]
- _ = x[KindJSDocPrivateTag-329]
- _ = x[KindJSDocProtectedTag-330]
- _ = x[KindJSDocReadonlyTag-331]
- _ = x[KindJSDocOverrideTag-332]
- _ = x[KindJSDocCallbackTag-333]
- _ = x[KindJSDocOverloadTag-334]
- _ = x[KindJSDocParameterTag-335]
- _ = x[KindJSDocReturnTag-336]
- _ = x[KindJSDocThisTag-337]
- _ = x[KindJSDocTypeTag-338]
- _ = x[KindJSDocTemplateTag-339]
- _ = x[KindJSDocTypedefTag-340]
- _ = x[KindJSDocSeeTag-341]
- _ = x[KindJSDocPropertyTag-342]
- _ = x[KindJSDocSatisfiesTag-343]
- _ = x[KindJSDocImportTag-344]
- _ = x[KindSyntaxList-345]
- _ = x[KindJSTypeAliasDeclaration-346]
- _ = x[KindJSExportAssignment-347]
- _ = x[KindCommonJSExport-348]
- _ = x[KindJSImportDeclaration-349]
- _ = x[KindNotEmittedStatement-350]
- _ = x[KindPartiallyEmittedExpression-351]
- _ = x[KindCommaListExpression-352]
- _ = x[KindSyntheticReferenceExpression-353]
- _ = x[KindNotEmittedTypeElement-354]
- _ = x[KindCount-355]
+ _ = x[KindJSDocTypeExpression-308]
+ _ = x[KindJSDocNameReference-309]
+ _ = x[KindJSDocMemberName-310]
+ _ = x[KindJSDocAllType-311]
+ _ = x[KindJSDocNullableType-312]
+ _ = x[KindJSDocNonNullableType-313]
+ _ = x[KindJSDocOptionalType-314]
+ _ = x[KindJSDocVariadicType-315]
+ _ = x[KindJSDoc-316]
+ _ = x[KindJSDocText-317]
+ _ = x[KindJSDocTypeLiteral-318]
+ _ = x[KindJSDocSignature-319]
+ _ = x[KindJSDocLink-320]
+ _ = x[KindJSDocLinkCode-321]
+ _ = x[KindJSDocLinkPlain-322]
+ _ = x[KindJSDocTag-323]
+ _ = x[KindJSDocAugmentsTag-324]
+ _ = x[KindJSDocImplementsTag-325]
+ _ = x[KindJSDocDeprecatedTag-326]
+ _ = x[KindJSDocPublicTag-327]
+ _ = x[KindJSDocPrivateTag-328]
+ _ = x[KindJSDocProtectedTag-329]
+ _ = x[KindJSDocReadonlyTag-330]
+ _ = x[KindJSDocOverrideTag-331]
+ _ = x[KindJSDocCallbackTag-332]
+ _ = x[KindJSDocOverloadTag-333]
+ _ = x[KindJSDocParameterTag-334]
+ _ = x[KindJSDocReturnTag-335]
+ _ = x[KindJSDocThisTag-336]
+ _ = x[KindJSDocTypeTag-337]
+ _ = x[KindJSDocTemplateTag-338]
+ _ = x[KindJSDocTypedefTag-339]
+ _ = x[KindJSDocSeeTag-340]
+ _ = x[KindJSDocPropertyTag-341]
+ _ = x[KindJSDocSatisfiesTag-342]
+ _ = x[KindJSDocImportTag-343]
+ _ = x[KindSyntaxList-344]
+ _ = x[KindJSTypeAliasDeclaration-345]
+ _ = x[KindJSExportAssignment-346]
+ _ = x[KindCommonJSExport-347]
+ _ = x[KindJSImportDeclaration-348]
+ _ = x[KindNotEmittedStatement-349]
+ _ = x[KindPartiallyEmittedExpression-350]
+ _ = x[KindCommaListExpression-351]
+ _ = x[KindSyntheticReferenceExpression-352]
+ _ = x[KindNotEmittedTypeElement-353]
+ _ = x[KindCount-354]
}
-const _Kind_name = "KindUnknownKindEndOfFileKindSingleLineCommentTriviaKindMultiLineCommentTriviaKindNewLineTriviaKindWhitespaceTriviaKindConflictMarkerTriviaKindNonTextFileMarkerTriviaKindNumericLiteralKindBigIntLiteralKindStringLiteralKindJsxTextKindJsxTextAllWhiteSpacesKindRegularExpressionLiteralKindNoSubstitutionTemplateLiteralKindTemplateHeadKindTemplateMiddleKindTemplateTailKindOpenBraceTokenKindCloseBraceTokenKindOpenParenTokenKindCloseParenTokenKindOpenBracketTokenKindCloseBracketTokenKindDotTokenKindDotDotDotTokenKindSemicolonTokenKindCommaTokenKindQuestionDotTokenKindLessThanTokenKindLessThanSlashTokenKindGreaterThanTokenKindLessThanEqualsTokenKindGreaterThanEqualsTokenKindEqualsEqualsTokenKindExclamationEqualsTokenKindEqualsEqualsEqualsTokenKindExclamationEqualsEqualsTokenKindEqualsGreaterThanTokenKindPlusTokenKindMinusTokenKindAsteriskTokenKindAsteriskAsteriskTokenKindSlashTokenKindPercentTokenKindPlusPlusTokenKindMinusMinusTokenKindLessThanLessThanTokenKindGreaterThanGreaterThanTokenKindGreaterThanGreaterThanGreaterThanTokenKindAmpersandTokenKindBarTokenKindCaretTokenKindExclamationTokenKindTildeTokenKindAmpersandAmpersandTokenKindBarBarTokenKindQuestionTokenKindColonTokenKindAtTokenKindQuestionQuestionTokenKindBacktickTokenKindHashTokenKindEqualsTokenKindPlusEqualsTokenKindMinusEqualsTokenKindAsteriskEqualsTokenKindAsteriskAsteriskEqualsTokenKindSlashEqualsTokenKindPercentEqualsTokenKindLessThanLessThanEqualsTokenKindGreaterThanGreaterThanEqualsTokenKindGreaterThanGreaterThanGreaterThanEqualsTokenKindAmpersandEqualsTokenKindBarEqualsTokenKindBarBarEqualsTokenKindAmpersandAmpersandEqualsTokenKindQuestionQuestionEqualsTokenKindCaretEqualsTokenKindIdentifierKindPrivateIdentifierKindJSDocCommentTextTokenKindBreakKeywordKindCaseKeywordKindCatchKeywordKindClassKeywordKindConstKeywordKindContinueKeywordKindDebuggerKeywordKindDefaultKeywordKindDeleteKeywordKindDoKeywordKindElseKeywordKindEnumKeywordKindExportKeywordKindExtendsKeywordKindFalseKeywordKindFinallyKeywordKindForKeywordKindFunctionKeywordKindIfKeywordKindImportKeywordKindInKeywordKindInstanceOfKeywordKindNewKeywordKindNullKeywordKindReturnKeywordKindSuperKeywordKindSwitchKeywordKindThisKeywordKindThrowKeywordKindTrueKeywordKindTryKeywordKindTypeOfKeywordKindVarKeywordKindVoidKeywordKindWhileKeywordKindWithKeywordKindImplementsKeywordKindInterfaceKeywordKindLetKeywordKindPackageKeywordKindPrivateKeywordKindProtectedKeywordKindPublicKeywordKindStaticKeywordKindYieldKeywordKindAbstractKeywordKindAccessorKeywordKindAsKeywordKindAssertsKeywordKindAssertKeywordKindAnyKeywordKindAsyncKeywordKindAwaitKeywordKindBooleanKeywordKindConstructorKeywordKindDeclareKeywordKindGetKeywordKindImmediateKeywordKindInferKeywordKindIntrinsicKeywordKindIsKeywordKindKeyOfKeywordKindModuleKeywordKindNamespaceKeywordKindNeverKeywordKindOutKeywordKindReadonlyKeywordKindRequireKeywordKindNumberKeywordKindObjectKeywordKindSatisfiesKeywordKindSetKeywordKindStringKeywordKindSymbolKeywordKindTypeKeywordKindUndefinedKeywordKindUniqueKeywordKindUnknownKeywordKindUsingKeywordKindFromKeywordKindGlobalKeywordKindBigIntKeywordKindOverrideKeywordKindOfKeywordKindDeferKeywordKindQualifiedNameKindComputedPropertyNameKindTypeParameterKindParameterKindDecoratorKindPropertySignatureKindPropertyDeclarationKindMethodSignatureKindMethodDeclarationKindClassStaticBlockDeclarationKindConstructorKindGetAccessorKindSetAccessorKindCallSignatureKindConstructSignatureKindIndexSignatureKindTypePredicateKindTypeReferenceKindFunctionTypeKindConstructorTypeKindTypeQueryKindTypeLiteralKindArrayTypeKindTupleTypeKindOptionalTypeKindRestTypeKindUnionTypeKindIntersectionTypeKindConditionalTypeKindInferTypeKindParenthesizedTypeKindThisTypeKindTypeOperatorKindIndexedAccessTypeKindMappedTypeKindLiteralTypeKindNamedTupleMemberKindTemplateLiteralTypeKindTemplateLiteralTypeSpanKindImportTypeKindObjectBindingPatternKindArrayBindingPatternKindBindingElementKindArrayLiteralExpressionKindObjectLiteralExpressionKindPropertyAccessExpressionKindElementAccessExpressionKindCallExpressionKindNewExpressionKindTaggedTemplateExpressionKindTypeAssertionExpressionKindParenthesizedExpressionKindFunctionExpressionKindArrowFunctionKindDeleteExpressionKindTypeOfExpressionKindVoidExpressionKindAwaitExpressionKindPrefixUnaryExpressionKindPostfixUnaryExpressionKindBinaryExpressionKindConditionalExpressionKindTemplateExpressionKindYieldExpressionKindSpreadElementKindClassExpressionKindOmittedExpressionKindExpressionWithTypeArgumentsKindAsExpressionKindNonNullExpressionKindMetaPropertyKindSyntheticExpressionKindSatisfiesExpressionKindTemplateSpanKindSemicolonClassElementKindBlockKindEmptyStatementKindVariableStatementKindExpressionStatementKindIfStatementKindDoStatementKindWhileStatementKindForStatementKindForInStatementKindForOfStatementKindContinueStatementKindBreakStatementKindReturnStatementKindWithStatementKindSwitchStatementKindLabeledStatementKindThrowStatementKindTryStatementKindDebuggerStatementKindVariableDeclarationKindVariableDeclarationListKindFunctionDeclarationKindClassDeclarationKindInterfaceDeclarationKindTypeAliasDeclarationKindEnumDeclarationKindModuleDeclarationKindModuleBlockKindCaseBlockKindNamespaceExportDeclarationKindImportEqualsDeclarationKindImportDeclarationKindImportClauseKindNamespaceImportKindNamedImportsKindImportSpecifierKindExportAssignmentKindExportDeclarationKindNamedExportsKindNamespaceExportKindExportSpecifierKindMissingDeclarationKindExternalModuleReferenceKindJsxElementKindJsxSelfClosingElementKindJsxOpeningElementKindJsxClosingElementKindJsxFragmentKindJsxOpeningFragmentKindJsxClosingFragmentKindJsxAttributeKindJsxAttributesKindJsxSpreadAttributeKindJsxExpressionKindJsxNamespacedNameKindCaseClauseKindDefaultClauseKindHeritageClauseKindCatchClauseKindImportAttributesKindImportAttributeKindPropertyAssignmentKindShorthandPropertyAssignmentKindSpreadAssignmentKindEnumMemberKindSourceFileKindBundleKindJSDocTypeExpressionKindJSDocNameReferenceKindJSDocMemberNameKindJSDocAllTypeKindJSDocNullableTypeKindJSDocNonNullableTypeKindJSDocOptionalTypeKindJSDocVariadicTypeKindJSDocKindJSDocTextKindJSDocTypeLiteralKindJSDocSignatureKindJSDocLinkKindJSDocLinkCodeKindJSDocLinkPlainKindJSDocTagKindJSDocAugmentsTagKindJSDocImplementsTagKindJSDocDeprecatedTagKindJSDocPublicTagKindJSDocPrivateTagKindJSDocProtectedTagKindJSDocReadonlyTagKindJSDocOverrideTagKindJSDocCallbackTagKindJSDocOverloadTagKindJSDocParameterTagKindJSDocReturnTagKindJSDocThisTagKindJSDocTypeTagKindJSDocTemplateTagKindJSDocTypedefTagKindJSDocSeeTagKindJSDocPropertyTagKindJSDocSatisfiesTagKindJSDocImportTagKindSyntaxListKindJSTypeAliasDeclarationKindJSExportAssignmentKindCommonJSExportKindJSImportDeclarationKindNotEmittedStatementKindPartiallyEmittedExpressionKindCommaListExpressionKindSyntheticReferenceExpressionKindNotEmittedTypeElementKindCount"
+const _Kind_name = "KindUnknownKindEndOfFileKindSingleLineCommentTriviaKindMultiLineCommentTriviaKindNewLineTriviaKindWhitespaceTriviaKindConflictMarkerTriviaKindNonTextFileMarkerTriviaKindNumericLiteralKindBigIntLiteralKindStringLiteralKindJsxTextKindJsxTextAllWhiteSpacesKindRegularExpressionLiteralKindNoSubstitutionTemplateLiteralKindTemplateHeadKindTemplateMiddleKindTemplateTailKindOpenBraceTokenKindCloseBraceTokenKindOpenParenTokenKindCloseParenTokenKindOpenBracketTokenKindCloseBracketTokenKindDotTokenKindDotDotDotTokenKindSemicolonTokenKindCommaTokenKindQuestionDotTokenKindLessThanTokenKindLessThanSlashTokenKindGreaterThanTokenKindLessThanEqualsTokenKindGreaterThanEqualsTokenKindEqualsEqualsTokenKindExclamationEqualsTokenKindEqualsEqualsEqualsTokenKindExclamationEqualsEqualsTokenKindEqualsGreaterThanTokenKindPlusTokenKindMinusTokenKindAsteriskTokenKindAsteriskAsteriskTokenKindSlashTokenKindPercentTokenKindPlusPlusTokenKindMinusMinusTokenKindLessThanLessThanTokenKindGreaterThanGreaterThanTokenKindGreaterThanGreaterThanGreaterThanTokenKindAmpersandTokenKindBarTokenKindCaretTokenKindExclamationTokenKindTildeTokenKindAmpersandAmpersandTokenKindBarBarTokenKindQuestionTokenKindColonTokenKindAtTokenKindQuestionQuestionTokenKindBacktickTokenKindHashTokenKindEqualsTokenKindPlusEqualsTokenKindMinusEqualsTokenKindAsteriskEqualsTokenKindAsteriskAsteriskEqualsTokenKindSlashEqualsTokenKindPercentEqualsTokenKindLessThanLessThanEqualsTokenKindGreaterThanGreaterThanEqualsTokenKindGreaterThanGreaterThanGreaterThanEqualsTokenKindAmpersandEqualsTokenKindBarEqualsTokenKindBarBarEqualsTokenKindAmpersandAmpersandEqualsTokenKindQuestionQuestionEqualsTokenKindCaretEqualsTokenKindIdentifierKindPrivateIdentifierKindJSDocCommentTextTokenKindBreakKeywordKindCaseKeywordKindCatchKeywordKindClassKeywordKindConstKeywordKindContinueKeywordKindDebuggerKeywordKindDefaultKeywordKindDeleteKeywordKindDoKeywordKindElseKeywordKindEnumKeywordKindExportKeywordKindExtendsKeywordKindFalseKeywordKindFinallyKeywordKindForKeywordKindFunctionKeywordKindIfKeywordKindImportKeywordKindInKeywordKindInstanceOfKeywordKindNewKeywordKindNullKeywordKindReturnKeywordKindSuperKeywordKindSwitchKeywordKindThisKeywordKindThrowKeywordKindTrueKeywordKindTryKeywordKindTypeOfKeywordKindVarKeywordKindVoidKeywordKindWhileKeywordKindWithKeywordKindImplementsKeywordKindInterfaceKeywordKindLetKeywordKindPackageKeywordKindPrivateKeywordKindProtectedKeywordKindPublicKeywordKindStaticKeywordKindYieldKeywordKindAbstractKeywordKindAccessorKeywordKindAsKeywordKindAssertsKeywordKindAssertKeywordKindAnyKeywordKindAsyncKeywordKindAwaitKeywordKindBooleanKeywordKindConstructorKeywordKindDeclareKeywordKindGetKeywordKindImmediateKeywordKindInferKeywordKindIntrinsicKeywordKindIsKeywordKindKeyOfKeywordKindModuleKeywordKindNamespaceKeywordKindNeverKeywordKindOutKeywordKindReadonlyKeywordKindRequireKeywordKindNumberKeywordKindObjectKeywordKindSatisfiesKeywordKindSetKeywordKindStringKeywordKindSymbolKeywordKindTypeKeywordKindUndefinedKeywordKindUniqueKeywordKindUnknownKeywordKindUsingKeywordKindFromKeywordKindGlobalKeywordKindBigIntKeywordKindOverrideKeywordKindOfKeywordKindDeferKeywordKindQualifiedNameKindComputedPropertyNameKindTypeParameterKindParameterKindDecoratorKindPropertySignatureKindPropertyDeclarationKindMethodSignatureKindMethodDeclarationKindClassStaticBlockDeclarationKindConstructorKindGetAccessorKindSetAccessorKindCallSignatureKindConstructSignatureKindIndexSignatureKindTypePredicateKindTypeReferenceKindFunctionTypeKindConstructorTypeKindTypeQueryKindTypeLiteralKindArrayTypeKindTupleTypeKindOptionalTypeKindRestTypeKindUnionTypeKindIntersectionTypeKindConditionalTypeKindInferTypeKindParenthesizedTypeKindThisTypeKindTypeOperatorKindIndexedAccessTypeKindMappedTypeKindLiteralTypeKindNamedTupleMemberKindTemplateLiteralTypeKindTemplateLiteralTypeSpanKindImportTypeKindObjectBindingPatternKindArrayBindingPatternKindBindingElementKindArrayLiteralExpressionKindObjectLiteralExpressionKindPropertyAccessExpressionKindElementAccessExpressionKindCallExpressionKindNewExpressionKindTaggedTemplateExpressionKindTypeAssertionExpressionKindParenthesizedExpressionKindFunctionExpressionKindArrowFunctionKindDeleteExpressionKindTypeOfExpressionKindVoidExpressionKindAwaitExpressionKindPrefixUnaryExpressionKindPostfixUnaryExpressionKindBinaryExpressionKindConditionalExpressionKindTemplateExpressionKindYieldExpressionKindSpreadElementKindClassExpressionKindOmittedExpressionKindExpressionWithTypeArgumentsKindAsExpressionKindNonNullExpressionKindMetaPropertyKindSyntheticExpressionKindSatisfiesExpressionKindTemplateSpanKindSemicolonClassElementKindBlockKindEmptyStatementKindVariableStatementKindExpressionStatementKindIfStatementKindDoStatementKindWhileStatementKindForStatementKindForInStatementKindForOfStatementKindContinueStatementKindBreakStatementKindReturnStatementKindWithStatementKindSwitchStatementKindLabeledStatementKindThrowStatementKindTryStatementKindDebuggerStatementKindVariableDeclarationKindVariableDeclarationListKindFunctionDeclarationKindClassDeclarationKindInterfaceDeclarationKindTypeAliasDeclarationKindEnumDeclarationKindModuleDeclarationKindModuleBlockKindCaseBlockKindNamespaceExportDeclarationKindImportEqualsDeclarationKindImportDeclarationKindImportClauseKindNamespaceImportKindNamedImportsKindImportSpecifierKindExportAssignmentKindExportDeclarationKindNamedExportsKindNamespaceExportKindExportSpecifierKindMissingDeclarationKindExternalModuleReferenceKindJsxElementKindJsxSelfClosingElementKindJsxOpeningElementKindJsxClosingElementKindJsxFragmentKindJsxOpeningFragmentKindJsxClosingFragmentKindJsxAttributeKindJsxAttributesKindJsxSpreadAttributeKindJsxExpressionKindJsxNamespacedNameKindCaseClauseKindDefaultClauseKindHeritageClauseKindCatchClauseKindImportAttributesKindImportAttributeKindPropertyAssignmentKindShorthandPropertyAssignmentKindSpreadAssignmentKindEnumMemberKindSourceFileKindJSDocTypeExpressionKindJSDocNameReferenceKindJSDocMemberNameKindJSDocAllTypeKindJSDocNullableTypeKindJSDocNonNullableTypeKindJSDocOptionalTypeKindJSDocVariadicTypeKindJSDocKindJSDocTextKindJSDocTypeLiteralKindJSDocSignatureKindJSDocLinkKindJSDocLinkCodeKindJSDocLinkPlainKindJSDocTagKindJSDocAugmentsTagKindJSDocImplementsTagKindJSDocDeprecatedTagKindJSDocPublicTagKindJSDocPrivateTagKindJSDocProtectedTagKindJSDocReadonlyTagKindJSDocOverrideTagKindJSDocCallbackTagKindJSDocOverloadTagKindJSDocParameterTagKindJSDocReturnTagKindJSDocThisTagKindJSDocTypeTagKindJSDocTemplateTagKindJSDocTypedefTagKindJSDocSeeTagKindJSDocPropertyTagKindJSDocSatisfiesTagKindJSDocImportTagKindSyntaxListKindJSTypeAliasDeclarationKindJSExportAssignmentKindCommonJSExportKindJSImportDeclarationKindNotEmittedStatementKindPartiallyEmittedExpressionKindCommaListExpressionKindSyntheticReferenceExpressionKindNotEmittedTypeElementKindCount"
-var _Kind_index = [...]uint16{0, 11, 24, 51, 77, 94, 114, 138, 165, 183, 200, 217, 228, 253, 281, 314, 330, 348, 364, 382, 401, 419, 438, 458, 479, 491, 509, 527, 541, 561, 578, 600, 620, 643, 669, 690, 716, 743, 775, 801, 814, 828, 845, 870, 884, 900, 917, 936, 961, 992, 1034, 1052, 1064, 1078, 1098, 1112, 1139, 1154, 1171, 1185, 1196, 1221, 1238, 1251, 1266, 1285, 1305, 1328, 1359, 1379, 1401, 1432, 1469, 1517, 1541, 1559, 1580, 1613, 1644, 1664, 1678, 1699, 1724, 1740, 1755, 1771, 1787, 1803, 1822, 1841, 1859, 1876, 1889, 1904, 1919, 1936, 1954, 1970, 1988, 2002, 2021, 2034, 2051, 2064, 2085, 2099, 2114, 2131, 2147, 2164, 2179, 2195, 2210, 2224, 2241, 2255, 2270, 2286, 2301, 2322, 2342, 2356, 2374, 2392, 2412, 2429, 2446, 2462, 2481, 2500, 2513, 2531, 2548, 2562, 2578, 2594, 2612, 2634, 2652, 2666, 2686, 2702, 2722, 2735, 2751, 2768, 2788, 2804, 2818, 2837, 2855, 2872, 2889, 2909, 2923, 2940, 2957, 2972, 2992, 3009, 3027, 3043, 3058, 3075, 3092, 3111, 3124, 3140, 3157, 3181, 3198, 3211, 3224, 3245, 3268, 3287, 3308, 3339, 3354, 3369, 3384, 3401, 3423, 3441, 3458, 3475, 3491, 3510, 3523, 3538, 3551, 3564, 3580, 3592, 3605, 3625, 3644, 3657, 3678, 3690, 3706, 3727, 3741, 3756, 3776, 3799, 3826, 3840, 3864, 3887, 3905, 3931, 3958, 3986, 4013, 4031, 4048, 4076, 4103, 4130, 4152, 4169, 4189, 4209, 4227, 4246, 4271, 4297, 4317, 4342, 4364, 4383, 4400, 4419, 4440, 4471, 4487, 4508, 4524, 4547, 4570, 4586, 4611, 4620, 4638, 4659, 4682, 4697, 4712, 4730, 4746, 4764, 4782, 4803, 4821, 4840, 4857, 4876, 4896, 4914, 4930, 4951, 4974, 5001, 5024, 5044, 5068, 5092, 5111, 5132, 5147, 5160, 5190, 5217, 5238, 5254, 5273, 5289, 5308, 5328, 5349, 5365, 5384, 5403, 5425, 5452, 5466, 5491, 5512, 5533, 5548, 5570, 5592, 5608, 5625, 5647, 5664, 5685, 5699, 5716, 5734, 5749, 5769, 5788, 5810, 5841, 5861, 5875, 5889, 5899, 5922, 5944, 5963, 5979, 6000, 6024, 6045, 6066, 6075, 6088, 6108, 6126, 6139, 6156, 6174, 6186, 6206, 6228, 6250, 6268, 6287, 6308, 6328, 6348, 6368, 6388, 6409, 6427, 6443, 6459, 6479, 6498, 6513, 6533, 6554, 6572, 6586, 6612, 6634, 6652, 6675, 6698, 6728, 6751, 6783, 6808, 6817}
+var _Kind_index = [...]uint16{0, 11, 24, 51, 77, 94, 114, 138, 165, 183, 200, 217, 228, 253, 281, 314, 330, 348, 364, 382, 401, 419, 438, 458, 479, 491, 509, 527, 541, 561, 578, 600, 620, 643, 669, 690, 716, 743, 775, 801, 814, 828, 845, 870, 884, 900, 917, 936, 961, 992, 1034, 1052, 1064, 1078, 1098, 1112, 1139, 1154, 1171, 1185, 1196, 1221, 1238, 1251, 1266, 1285, 1305, 1328, 1359, 1379, 1401, 1432, 1469, 1517, 1541, 1559, 1580, 1613, 1644, 1664, 1678, 1699, 1724, 1740, 1755, 1771, 1787, 1803, 1822, 1841, 1859, 1876, 1889, 1904, 1919, 1936, 1954, 1970, 1988, 2002, 2021, 2034, 2051, 2064, 2085, 2099, 2114, 2131, 2147, 2164, 2179, 2195, 2210, 2224, 2241, 2255, 2270, 2286, 2301, 2322, 2342, 2356, 2374, 2392, 2412, 2429, 2446, 2462, 2481, 2500, 2513, 2531, 2548, 2562, 2578, 2594, 2612, 2634, 2652, 2666, 2686, 2702, 2722, 2735, 2751, 2768, 2788, 2804, 2818, 2837, 2855, 2872, 2889, 2909, 2923, 2940, 2957, 2972, 2992, 3009, 3027, 3043, 3058, 3075, 3092, 3111, 3124, 3140, 3157, 3181, 3198, 3211, 3224, 3245, 3268, 3287, 3308, 3339, 3354, 3369, 3384, 3401, 3423, 3441, 3458, 3475, 3491, 3510, 3523, 3538, 3551, 3564, 3580, 3592, 3605, 3625, 3644, 3657, 3678, 3690, 3706, 3727, 3741, 3756, 3776, 3799, 3826, 3840, 3864, 3887, 3905, 3931, 3958, 3986, 4013, 4031, 4048, 4076, 4103, 4130, 4152, 4169, 4189, 4209, 4227, 4246, 4271, 4297, 4317, 4342, 4364, 4383, 4400, 4419, 4440, 4471, 4487, 4508, 4524, 4547, 4570, 4586, 4611, 4620, 4638, 4659, 4682, 4697, 4712, 4730, 4746, 4764, 4782, 4803, 4821, 4840, 4857, 4876, 4896, 4914, 4930, 4951, 4974, 5001, 5024, 5044, 5068, 5092, 5111, 5132, 5147, 5160, 5190, 5217, 5238, 5254, 5273, 5289, 5308, 5328, 5349, 5365, 5384, 5403, 5425, 5452, 5466, 5491, 5512, 5533, 5548, 5570, 5592, 5608, 5625, 5647, 5664, 5685, 5699, 5716, 5734, 5749, 5769, 5788, 5810, 5841, 5861, 5875, 5889, 5912, 5934, 5953, 5969, 5990, 6014, 6035, 6056, 6065, 6078, 6098, 6116, 6129, 6146, 6164, 6176, 6196, 6218, 6240, 6258, 6277, 6298, 6318, 6338, 6358, 6378, 6399, 6417, 6433, 6449, 6469, 6488, 6503, 6523, 6544, 6562, 6576, 6602, 6624, 6642, 6665, 6688, 6718, 6741, 6773, 6798, 6807}
func (i Kind) String() string {
if i < 0 || i >= Kind(len(_Kind_index)-1) {
diff --git a/internal/binder/binder.go b/internal/binder/binder.go
index e2b41a7c48..e918c72af0 100644
--- a/internal/binder/binder.go
+++ b/internal/binder/binder.go
@@ -683,7 +683,9 @@ func (b *Binder) bind(node *ast.Node) bool {
case ast.KindInterfaceDeclaration:
b.bindBlockScopedDeclaration(node, ast.SymbolFlagsInterface, ast.SymbolFlagsInterfaceExcludes)
case ast.KindCallExpression:
- b.bindCallExpression(node)
+ if ast.IsInJSFile(node) {
+ b.bindCallExpression(node)
+ }
case ast.KindTypeAliasDeclaration, ast.KindJSTypeAliasDeclaration:
b.bindBlockScopedDeclaration(node, ast.SymbolFlagsTypeAlias, ast.SymbolFlagsTypeAliasExcludes)
case ast.KindEnumDeclaration:
@@ -910,16 +912,24 @@ func (b *Binder) bindFunctionExpression(node *ast.Node) {
}
func (b *Binder) bindCallExpression(node *ast.Node) {
- // !!! for ModuleDetectionKind.Force, external module indicator is forced to `true` in Strada for source files, in which case
- // we should set the commonjs module indicator but not call b.bindSourceFileAsExternalModule
- // !!! && file.externalModuleIndicator !== true (used for ModuleDetectionKind.Force)
- if ast.IsInJSFile(node) &&
- b.file.ExternalModuleIndicator == nil &&
- b.file.CommonJSModuleIndicator == nil &&
- ast.IsRequireCall(node, false /*requireStringLiteralLikeArgument*/) {
+ // We're only inspecting call expressions to detect CommonJS modules, so we can skip
+ // this check if we've already seen the module indicator
+ if b.file.CommonJSModuleIndicator == nil && ast.IsRequireCall(node, false /*requireStringLiteralLikeArgument*/) {
+ b.setCommonJSModuleIndicator(node)
+ }
+}
+
+func (b *Binder) setCommonJSModuleIndicator(node *ast.Node) bool {
+ if b.file.ExternalModuleIndicator != nil && b.file.ExternalModuleIndicator != b.file.AsNode() {
+ return false
+ }
+ if b.file.CommonJSModuleIndicator == nil {
b.file.CommonJSModuleIndicator = node
- b.bindSourceFileAsExternalModule()
+ if b.file.ExternalModuleIndicator == nil {
+ b.bindSourceFileAsExternalModule()
+ }
}
+ return true
}
func (b *Binder) bindClassLikeDeclaration(node *ast.Node) {
diff --git a/internal/checker/grammarchecks.go b/internal/checker/grammarchecks.go
index 97da3c9bb8..d8a12a9fcd 100644
--- a/internal/checker/grammarchecks.go
+++ b/internal/checker/grammarchecks.go
@@ -2093,9 +2093,7 @@ func (c *Checker) checkGrammarNumericLiteral(node *ast.NumericLiteral) {
// We should test against `getTextOfNode(node)` rather than `node.text`, because `node.text` for large numeric literals can contain "."
// e.g. `node.text` for numeric literal `1100000000000000000000` is `1.1e21`.
isFractional := strings.ContainsRune(nodeText, '.')
- // !!!
- // isScientific := node.NumericLiteralFlags & ast.TokenFlagsScientific
- isScientific := strings.ContainsRune(nodeText, 'e')
+ isScientific := node.TokenFlags&ast.TokenFlagsScientific != 0
// Scientific notation (e.g. 2e54 and 1e00000000010) can't be converted to bigint
// Fractional numbers (e.g. 9000000000000000.001) are inherently imprecise anyway
diff --git a/internal/checker/nodebuilderimpl.go b/internal/checker/nodebuilderimpl.go
index 7cf152edfe..59ae048d9d 100644
--- a/internal/checker/nodebuilderimpl.go
+++ b/internal/checker/nodebuilderimpl.go
@@ -1179,7 +1179,6 @@ func (b *NodeBuilderImpl) getSpecifierForModuleSymbol(symbol *ast.Symbol, overri
if ok {
return result
}
- isBundle := false // !!! remove me
// For declaration bundles, we need to generate absolute paths relative to the common source dir for imports,
// just like how the declaration emitter does for the ambient module declarations - we can easily accomplish this
// using the `baseUrl` compiler option (which we would otherwise never use in declaration emit) and a non-relative
@@ -1191,13 +1190,6 @@ func (b *NodeBuilderImpl) getSpecifierForModuleSymbol(symbol *ast.Symbol, overri
if resolutionMode == core.ResolutionModeESM {
endingPref = modulespecifiers.ImportModuleSpecifierEndingPreferenceJs
}
- if isBundle {
- // !!! relies on option cloning and specifier host implementation
- // specifierCompilerOptions = &core.CompilerOptions{BaseUrl: host.CommonSourceDirectory()}
- // TODO: merge with b.ch.compilerOptions
- specifierPref = modulespecifiers.ImportModuleSpecifierPreferenceNonRelative
- endingPref = modulespecifiers.ImportModuleSpecifierEndingPreferenceMinimal
- }
allSpecifiers := modulespecifiers.GetModuleSpecifiers(
symbol,
diff --git a/internal/evaluator/evaluator.go b/internal/evaluator/evaluator.go
index 3c4cf65eea..50e5ca3e74 100644
--- a/internal/evaluator/evaluator.go
+++ b/internal/evaluator/evaluator.go
@@ -140,7 +140,6 @@ func evaluateTemplateExpression(expr *ast.Node, location *ast.Node, evaluate Eva
}
func AnyToString(v any) string {
- // !!! This function should behave identically to the expression `"" + v` in JS
switch v := v.(type) {
case string:
return v
@@ -155,7 +154,6 @@ func AnyToString(v any) string {
}
func IsTruthy(v any) bool {
- // !!! This function should behave identically to the expression `!!v` in JS
switch v := v.(type) {
case string:
return len(v) != 0
diff --git a/internal/execute/tsc.go b/internal/execute/tsc.go
index 2ee2db6e9f..48dc1deb83 100644
--- a/internal/execute/tsc.go
+++ b/internal/execute/tsc.go
@@ -23,7 +23,6 @@ import (
func CommandLine(sys tsc.System, commandLineArgs []string, testing tsc.CommandLineTesting) tsc.CommandLineResult {
if len(commandLineArgs) > 0 {
- // !!! build mode
switch strings.ToLower(commandLineArgs[0]) {
case "-b", "--b", "-build", "--build":
return tscBuildCompilation(sys, tsoptions.ParseBuildCommandLine(commandLineArgs, sys), testing)
diff --git a/internal/outputpaths/outputpaths.go b/internal/outputpaths/outputpaths.go
index 097a7ccc2c..30de419a0b 100644
--- a/internal/outputpaths/outputpaths.go
+++ b/internal/outputpaths/outputpaths.go
@@ -40,7 +40,6 @@ func (o *OutputPaths) DeclarationMapPath() string {
}
func GetOutputPathsFor(sourceFile *ast.SourceFile, options *core.CompilerOptions, host OutputPathsHost, forceDtsEmit bool) *OutputPaths {
- // !!! bundle not implemented, may be deprecated
ownOutputFilePath := getOwnEmitOutputFilePath(sourceFile.FileName(), options, host, GetOutputExtension(sourceFile.FileName(), options.Jsx))
isJsonFile := ast.IsJsonSourceFile(sourceFile)
// If json file emits to the same location skip writing it, if emitDeclarationOnly skip writing it
diff --git a/internal/parser/parser.go b/internal/parser/parser.go
index 01899cb985..615286cf6b 100644
--- a/internal/parser/parser.go
+++ b/internal/parser/parser.go
@@ -6457,7 +6457,7 @@ func (p *Parser) processPragmasIntoFields(context *ast.SourceFile) {
case typesOk:
var parsed core.ResolutionMode
if resolutionModeOk {
- parsed = parseResolutionMode(resolutionMode.Value, resolutionMode.Pos(), resolutionMode.End() /*, reportDiagnostic*/)
+ parsed = p.parseResolutionMode(resolutionMode.Value, resolutionMode.Pos(), resolutionMode.End())
}
context.TypeReferenceDirectives = append(context.TypeReferenceDirectives, &ast.FileReference{
TextRange: types.TextRange,
@@ -6498,16 +6498,17 @@ func (p *Parser) processPragmasIntoFields(context *ast.SourceFile) {
}
}
-func parseResolutionMode(mode string, pos int, end int /*reportDiagnostic: PragmaDiagnosticReporter*/) (resolutionKind core.ResolutionMode) {
+func (p *Parser) parseResolutionMode(mode string, pos int, end int) (resolutionKind core.ResolutionMode) {
if mode == "import" {
resolutionKind = core.ModuleKindESNext
+ return resolutionKind
}
if mode == "require" {
resolutionKind = core.ModuleKindCommonJS
+ return resolutionKind
}
+ p.parseErrorAt(pos, end, diagnostics.X_resolution_mode_should_be_either_require_or_import)
return resolutionKind
- // reportDiagnostic(pos, end - pos, Diagnostics.resolution_mode_should_be_either_require_or_import);
- // return undefined;
}
func (p *Parser) jsErrorAtRange(loc core.TextRange, message *diagnostics.Message, args ...any) {
diff --git a/internal/printer/printer.go b/internal/printer/printer.go
index c3426a7dd5..799ec8d551 100644
--- a/internal/printer/printer.go
+++ b/internal/printer/printer.go
@@ -4951,9 +4951,6 @@ func (p *Printer) Write(node *ast.Node, sourceFile *ast.SourceFile, writer EmitT
case ast.KindSourceFile:
p.emitSourceFile(node.AsSourceFile())
- case ast.KindBundle:
- panic("not implemented")
-
// Transformation nodes
case ast.KindNotEmittedTypeElement:
p.emitNotEmittedTypeElement(node.AsNotEmittedTypeElement())
diff --git a/internal/transformers/declarations/transform.go b/internal/transformers/declarations/transform.go
index f8cb559039..0bbe627150 100644
--- a/internal/transformers/declarations/transform.go
+++ b/internal/transformers/declarations/transform.go
@@ -50,7 +50,6 @@ type DeclarationTransformer struct {
declarationFilePath string
declarationMapPath string
- isBundledEmit bool
needsDeclare bool
needsScopeFixMarker bool
resultHasScopeMarker bool
@@ -102,7 +101,6 @@ func (tx *DeclarationTransformer) visit(node *ast.Node) *ast.Node {
if node == nil {
return nil
}
- // !!! TODO: Bundle support?
switch node.Kind {
case ast.KindSourceFile:
return tx.visitSourceFile(node.AsSourceFile())
@@ -161,7 +159,6 @@ func (tx *DeclarationTransformer) visitSourceFile(node *ast.SourceFile) *ast.Nod
return node.AsNode()
}
- tx.isBundledEmit = false
tx.needsDeclare = true
tx.needsScopeFixMarker = false
tx.resultHasScopeMarker = false
@@ -238,7 +235,7 @@ func (tx *DeclarationTransformer) transformAndReplaceLatePaintedStatements(state
tx.state.lateMarkedStatements = tx.state.lateMarkedStatements[1:]
saveNeedsDeclare := tx.needsDeclare
- tx.needsDeclare = next.Parent != nil && ast.IsSourceFile(next.Parent) && !(ast.IsExternalModule(next.Parent.AsSourceFile()) && tx.isBundledEmit)
+ tx.needsDeclare = next.Parent != nil && ast.IsSourceFile(next.Parent)
result := tx.transformTopLevelDeclaration(next)
@@ -311,8 +308,6 @@ func (tx *DeclarationTransformer) getReferencedFiles(outputFilePath string) (res
if file.IsDeclarationFile {
declFileName = file.FileName()
} else {
- // !!! bundled emit support, omit bundled refs
- // if (tx.isBundledEmit && contains((node as Bundle).sourceFiles, file)) continue
paths := tx.host.GetOutputPathsFor(file, true)
// Try to use output path for referenced file, or output js path if that doesn't exist, or the input path if all else fails
declFileName = paths.DeclarationFilePath()
@@ -1047,11 +1042,6 @@ func (tx *DeclarationTransformer) rewriteModuleSpecifier(parent *ast.Node, input
return nil
}
tx.resultHasExternalModuleIndicator = tx.resultHasExternalModuleIndicator || (parent.Kind != ast.KindModuleDeclaration && parent.Kind != ast.KindImportType)
- if ast.IsStringLiteralLike(input) {
- if tx.isBundledEmit {
- // !!! TODO: support bundled emit specifier rewriting
- }
- }
return input
}
@@ -1578,7 +1568,7 @@ func (tx *DeclarationTransformer) ensureModifierFlags(node *ast.Node) ast.Modifi
additions = ast.ModifierFlagsAmbient
}
parentIsFile := node.Parent.Kind == ast.KindSourceFile
- if !parentIsFile || (tx.isBundledEmit && parentIsFile && ast.IsExternalModule(node.Parent.AsSourceFile())) {
+ if !parentIsFile {
mask ^= ast.ModifierFlagsAmbient
additions = ast.ModifierFlagsNone
}
diff --git a/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js
index 9911f4cbc8..73c169d214 100644
--- a/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js
+++ b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js
@@ -25,7 +25,6 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
}
return path;
};
-Object.defineProperty(exports, "__esModule", { value: true });
{
require(__rewriteRelativeImportExtension("" + "./foo.ts"));
import(__rewriteRelativeImportExtension("" + "./foo.ts"));
diff --git a/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js.diff
deleted file mode 100644
index 764495c4e8..0000000000
--- a/testdata/baselines/reference/submodule/conformance/emitModuleCommonJS(module=nodenext).js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.emitModuleCommonJS(module=nodenext).js
-+++ new.emitModuleCommonJS(module=nodenext).js
-@@= skipped -24, +24 lines =@@
- }
- return path;
- };
-+Object.defineProperty(exports, "__esModule", { value: true });
- {
- require(__rewriteRelativeImportExtension("" + "./foo.ts"));
- import(__rewriteRelativeImportExtension("" + "./foo.ts"));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt
index cd6427d480..e75e2ebeff 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt
@@ -1,8 +1,11 @@
+/index.ts(1,45): error TS1453: `resolution-mode` should be either `require` or `import`.
/index.ts(2,1): error TS2304: Cannot find name 'foo'.
-==== /index.ts (1 errors) ====
+==== /index.ts (2 errors) ====
///
+ ~~~
+!!! error TS1453: `resolution-mode` should be either `require` or `import`.
foo; // bad resolution mode, which resolves is arbitrary
~~~
!!! error TS2304: Cannot find name 'foo'.
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt.diff
index 488093717c..0da994ce7a 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt.diff
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt.diff
@@ -2,14 +2,14 @@
+++ new.nodeModulesTripleSlashReferenceModeOverrideModeError(module=node16).errors.txt
@@= skipped -0, +0 lines =@@
-/index.ts(1,23): error TS1453: `resolution-mode` should be either `require` or `import`.
++/index.ts(1,45): error TS1453: `resolution-mode` should be either `require` or `import`.
/index.ts(2,1): error TS2304: Cannot find name 'foo'.
--==== /index.ts (2 errors) ====
-+==== /index.ts (1 errors) ====
+ ==== /index.ts (2 errors) ====
///
- ~~~
--!!! error TS1453: `resolution-mode` should be either `require` or `import`.
++ ~~~
+ !!! error TS1453: `resolution-mode` should be either `require` or `import`.
foo; // bad resolution mode, which resolves is arbitrary
- ~~~
- !!! error TS2304: Cannot find name 'foo'.
\ No newline at end of file
+ ~~~
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt
index cd6427d480..e75e2ebeff 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt
@@ -1,8 +1,11 @@
+/index.ts(1,45): error TS1453: `resolution-mode` should be either `require` or `import`.
/index.ts(2,1): error TS2304: Cannot find name 'foo'.
-==== /index.ts (1 errors) ====
+==== /index.ts (2 errors) ====
///
+ ~~~
+!!! error TS1453: `resolution-mode` should be either `require` or `import`.
foo; // bad resolution mode, which resolves is arbitrary
~~~
!!! error TS2304: Cannot find name 'foo'.
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt.diff
index 1267887692..190fefa163 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt.diff
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt.diff
@@ -2,14 +2,14 @@
+++ new.nodeModulesTripleSlashReferenceModeOverrideModeError(module=node18).errors.txt
@@= skipped -0, +0 lines =@@
-/index.ts(1,23): error TS1453: `resolution-mode` should be either `require` or `import`.
++/index.ts(1,45): error TS1453: `resolution-mode` should be either `require` or `import`.
/index.ts(2,1): error TS2304: Cannot find name 'foo'.
--==== /index.ts (2 errors) ====
-+==== /index.ts (1 errors) ====
+ ==== /index.ts (2 errors) ====
///
- ~~~
--!!! error TS1453: `resolution-mode` should be either `require` or `import`.
++ ~~~
+ !!! error TS1453: `resolution-mode` should be either `require` or `import`.
foo; // bad resolution mode, which resolves is arbitrary
- ~~~
- !!! error TS2304: Cannot find name 'foo'.
\ No newline at end of file
+ ~~~
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt
index cd6427d480..e75e2ebeff 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt
@@ -1,8 +1,11 @@
+/index.ts(1,45): error TS1453: `resolution-mode` should be either `require` or `import`.
/index.ts(2,1): error TS2304: Cannot find name 'foo'.
-==== /index.ts (1 errors) ====
+==== /index.ts (2 errors) ====
///
+ ~~~
+!!! error TS1453: `resolution-mode` should be either `require` or `import`.
foo; // bad resolution mode, which resolves is arbitrary
~~~
!!! error TS2304: Cannot find name 'foo'.
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt.diff
index 7302a4c5be..8dfde3b08c 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt.diff
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt.diff
@@ -2,14 +2,14 @@
+++ new.nodeModulesTripleSlashReferenceModeOverrideModeError(module=node20).errors.txt
@@= skipped -0, +0 lines =@@
-/index.ts(1,23): error TS1453: `resolution-mode` should be either `require` or `import`.
++/index.ts(1,45): error TS1453: `resolution-mode` should be either `require` or `import`.
/index.ts(2,1): error TS2304: Cannot find name 'foo'.
--==== /index.ts (2 errors) ====
-+==== /index.ts (1 errors) ====
+ ==== /index.ts (2 errors) ====
///
- ~~~
--!!! error TS1453: `resolution-mode` should be either `require` or `import`.
++ ~~~
+ !!! error TS1453: `resolution-mode` should be either `require` or `import`.
foo; // bad resolution mode, which resolves is arbitrary
- ~~~
- !!! error TS2304: Cannot find name 'foo'.
\ No newline at end of file
+ ~~~
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt
index cd6427d480..e75e2ebeff 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt
@@ -1,8 +1,11 @@
+/index.ts(1,45): error TS1453: `resolution-mode` should be either `require` or `import`.
/index.ts(2,1): error TS2304: Cannot find name 'foo'.
-==== /index.ts (1 errors) ====
+==== /index.ts (2 errors) ====
///
+ ~~~
+!!! error TS1453: `resolution-mode` should be either `require` or `import`.
foo; // bad resolution mode, which resolves is arbitrary
~~~
!!! error TS2304: Cannot find name 'foo'.
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt.diff
index d088df7540..ed7b37ced3 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt.diff
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt.diff
@@ -2,14 +2,14 @@
+++ new.nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt
@@= skipped -0, +0 lines =@@
-/index.ts(1,23): error TS1453: `resolution-mode` should be either `require` or `import`.
++/index.ts(1,45): error TS1453: `resolution-mode` should be either `require` or `import`.
/index.ts(2,1): error TS2304: Cannot find name 'foo'.
--==== /index.ts (2 errors) ====
-+==== /index.ts (1 errors) ====
+ ==== /index.ts (2 errors) ====
///
- ~~~
--!!! error TS1453: `resolution-mode` should be either `require` or `import`.
++ ~~~
+ !!! error TS1453: `resolution-mode` should be either `require` or `import`.
foo; // bad resolution mode, which resolves is arbitrary
- ~~~
- !!! error TS2304: Cannot find name 'foo'.
\ No newline at end of file
+ ~~~
\ No newline at end of file