diff --git a/_packages/api/src/node.ts b/_packages/api/src/node.ts index 9c757e9d9b..3145e84ae8 100644 --- a/_packages/api/src/node.ts +++ b/_packages/api/src/node.ts @@ -544,7 +544,6 @@ export class RemoteNode extends RemoteNodeBase implements Node { get isTypeOnly(): boolean | undefined { switch (this.kind) { case SyntaxKind.ImportSpecifier: - case SyntaxKind.ImportClause: case SyntaxKind.ExportSpecifier: case SyntaxKind.ImportEqualsDeclaration: case SyntaxKind.ExportDeclaration: @@ -921,6 +920,18 @@ export class RemoteNode extends RemoteNodeBase implements Node { } } + get phaseModifier(): SyntaxKind { + switch (this.kind) { + case SyntaxKind.ImportClause: + const flags = (this.data & (1 << 24 | 1 << 25)) >> 24; + if (flags & 1) return SyntaxKind.TypeKeyword; + if (flags & 2) return SyntaxKind.DeferKeyword; + // fallthrough + default: + return SyntaxKind.Unknown; + } + } + get token(): SyntaxKind | undefined { switch (this.kind) { case SyntaxKind.ImportAttributes: diff --git a/_packages/ast/src/nodes.ts b/_packages/ast/src/nodes.ts index 2798419285..dcd68f6b21 100644 --- a/_packages/ast/src/nodes.ts +++ b/_packages/ast/src/nodes.ts @@ -1992,11 +1992,16 @@ export type NamedExportBindings = export interface ImportClause extends NamedDeclaration { readonly kind: SyntaxKind.ImportClause; readonly parent: ImportDeclaration | JSDocImportTag; - readonly isTypeOnly: boolean; + readonly phaseModifier: ImportPhaseModifierSyntaxKind; readonly name?: Identifier; // Default binding readonly namedBindings?: NamedImportBindings; } +export type ImportPhaseModifierSyntaxKind = + | SyntaxKind.Unknown + | SyntaxKind.TypeKeyword + | SyntaxKind.DeferKeyword; + /** @deprecated */ export type AssertionKey = ImportAttributeName; diff --git a/_packages/ast/src/syntaxKind.enum.ts b/_packages/ast/src/syntaxKind.enum.ts index 71dea4aeea..946392e4e6 100644 --- a/_packages/ast/src/syntaxKind.enum.ts +++ b/_packages/ast/src/syntaxKind.enum.ts @@ -165,6 +165,7 @@ export enum SyntaxKind { BigIntKeyword, OverrideKeyword, OfKeyword, + DeferKeyword, QualifiedName, ComputedPropertyName, TypeParameter, diff --git a/_packages/ast/src/syntaxKind.ts b/_packages/ast/src/syntaxKind.ts index a4ea40b129..b63da53dbc 100644 --- a/_packages/ast/src/syntaxKind.ts +++ b/_packages/ast/src/syntaxKind.ts @@ -168,192 +168,193 @@ export var SyntaxKind: any; SyntaxKind[SyntaxKind["BigIntKeyword"] = 163] = "BigIntKeyword"; SyntaxKind[SyntaxKind["OverrideKeyword"] = 164] = "OverrideKeyword"; SyntaxKind[SyntaxKind["OfKeyword"] = 165] = "OfKeyword"; - SyntaxKind[SyntaxKind["QualifiedName"] = 166] = "QualifiedName"; - SyntaxKind[SyntaxKind["ComputedPropertyName"] = 167] = "ComputedPropertyName"; - SyntaxKind[SyntaxKind["TypeParameter"] = 168] = "TypeParameter"; - SyntaxKind[SyntaxKind["Parameter"] = 169] = "Parameter"; - SyntaxKind[SyntaxKind["Decorator"] = 170] = "Decorator"; - SyntaxKind[SyntaxKind["PropertySignature"] = 171] = "PropertySignature"; - SyntaxKind[SyntaxKind["PropertyDeclaration"] = 172] = "PropertyDeclaration"; - SyntaxKind[SyntaxKind["MethodSignature"] = 173] = "MethodSignature"; - SyntaxKind[SyntaxKind["MethodDeclaration"] = 174] = "MethodDeclaration"; - SyntaxKind[SyntaxKind["ClassStaticBlockDeclaration"] = 175] = "ClassStaticBlockDeclaration"; - SyntaxKind[SyntaxKind["Constructor"] = 176] = "Constructor"; - SyntaxKind[SyntaxKind["GetAccessor"] = 177] = "GetAccessor"; - SyntaxKind[SyntaxKind["SetAccessor"] = 178] = "SetAccessor"; - SyntaxKind[SyntaxKind["CallSignature"] = 179] = "CallSignature"; - SyntaxKind[SyntaxKind["ConstructSignature"] = 180] = "ConstructSignature"; - SyntaxKind[SyntaxKind["IndexSignature"] = 181] = "IndexSignature"; - SyntaxKind[SyntaxKind["TypePredicate"] = 182] = "TypePredicate"; - SyntaxKind[SyntaxKind["TypeReference"] = 183] = "TypeReference"; - SyntaxKind[SyntaxKind["FunctionType"] = 184] = "FunctionType"; - SyntaxKind[SyntaxKind["ConstructorType"] = 185] = "ConstructorType"; - SyntaxKind[SyntaxKind["TypeQuery"] = 186] = "TypeQuery"; - SyntaxKind[SyntaxKind["TypeLiteral"] = 187] = "TypeLiteral"; - SyntaxKind[SyntaxKind["ArrayType"] = 188] = "ArrayType"; - SyntaxKind[SyntaxKind["TupleType"] = 189] = "TupleType"; - SyntaxKind[SyntaxKind["OptionalType"] = 190] = "OptionalType"; - SyntaxKind[SyntaxKind["RestType"] = 191] = "RestType"; - SyntaxKind[SyntaxKind["UnionType"] = 192] = "UnionType"; - SyntaxKind[SyntaxKind["IntersectionType"] = 193] = "IntersectionType"; - SyntaxKind[SyntaxKind["ConditionalType"] = 194] = "ConditionalType"; - SyntaxKind[SyntaxKind["InferType"] = 195] = "InferType"; - SyntaxKind[SyntaxKind["ParenthesizedType"] = 196] = "ParenthesizedType"; - SyntaxKind[SyntaxKind["ThisType"] = 197] = "ThisType"; - SyntaxKind[SyntaxKind["TypeOperator"] = 198] = "TypeOperator"; - SyntaxKind[SyntaxKind["IndexedAccessType"] = 199] = "IndexedAccessType"; - SyntaxKind[SyntaxKind["MappedType"] = 200] = "MappedType"; - SyntaxKind[SyntaxKind["LiteralType"] = 201] = "LiteralType"; - SyntaxKind[SyntaxKind["NamedTupleMember"] = 202] = "NamedTupleMember"; - SyntaxKind[SyntaxKind["TemplateLiteralType"] = 203] = "TemplateLiteralType"; - SyntaxKind[SyntaxKind["TemplateLiteralTypeSpan"] = 204] = "TemplateLiteralTypeSpan"; - SyntaxKind[SyntaxKind["ImportType"] = 205] = "ImportType"; - SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 206] = "ObjectBindingPattern"; - SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 207] = "ArrayBindingPattern"; - SyntaxKind[SyntaxKind["BindingElement"] = 208] = "BindingElement"; - SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 209] = "ArrayLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 210] = "ObjectLiteralExpression"; - SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 211] = "PropertyAccessExpression"; - SyntaxKind[SyntaxKind["ElementAccessExpression"] = 212] = "ElementAccessExpression"; - SyntaxKind[SyntaxKind["CallExpression"] = 213] = "CallExpression"; - SyntaxKind[SyntaxKind["NewExpression"] = 214] = "NewExpression"; - SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 215] = "TaggedTemplateExpression"; - SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 216] = "TypeAssertionExpression"; - SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 217] = "ParenthesizedExpression"; - SyntaxKind[SyntaxKind["FunctionExpression"] = 218] = "FunctionExpression"; - SyntaxKind[SyntaxKind["ArrowFunction"] = 219] = "ArrowFunction"; - SyntaxKind[SyntaxKind["DeleteExpression"] = 220] = "DeleteExpression"; - SyntaxKind[SyntaxKind["TypeOfExpression"] = 221] = "TypeOfExpression"; - SyntaxKind[SyntaxKind["VoidExpression"] = 222] = "VoidExpression"; - SyntaxKind[SyntaxKind["AwaitExpression"] = 223] = "AwaitExpression"; - SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 224] = "PrefixUnaryExpression"; - SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 225] = "PostfixUnaryExpression"; - SyntaxKind[SyntaxKind["BinaryExpression"] = 226] = "BinaryExpression"; - SyntaxKind[SyntaxKind["ConditionalExpression"] = 227] = "ConditionalExpression"; - SyntaxKind[SyntaxKind["TemplateExpression"] = 228] = "TemplateExpression"; - SyntaxKind[SyntaxKind["YieldExpression"] = 229] = "YieldExpression"; - SyntaxKind[SyntaxKind["SpreadElement"] = 230] = "SpreadElement"; - SyntaxKind[SyntaxKind["ClassExpression"] = 231] = "ClassExpression"; - SyntaxKind[SyntaxKind["OmittedExpression"] = 232] = "OmittedExpression"; - SyntaxKind[SyntaxKind["ExpressionWithTypeArguments"] = 233] = "ExpressionWithTypeArguments"; - SyntaxKind[SyntaxKind["AsExpression"] = 234] = "AsExpression"; - SyntaxKind[SyntaxKind["NonNullExpression"] = 235] = "NonNullExpression"; - SyntaxKind[SyntaxKind["MetaProperty"] = 236] = "MetaProperty"; - SyntaxKind[SyntaxKind["SyntheticExpression"] = 237] = "SyntheticExpression"; - SyntaxKind[SyntaxKind["SatisfiesExpression"] = 238] = "SatisfiesExpression"; - SyntaxKind[SyntaxKind["TemplateSpan"] = 239] = "TemplateSpan"; - SyntaxKind[SyntaxKind["SemicolonClassElement"] = 240] = "SemicolonClassElement"; - SyntaxKind[SyntaxKind["Block"] = 241] = "Block"; - SyntaxKind[SyntaxKind["EmptyStatement"] = 242] = "EmptyStatement"; - SyntaxKind[SyntaxKind["VariableStatement"] = 243] = "VariableStatement"; - SyntaxKind[SyntaxKind["ExpressionStatement"] = 244] = "ExpressionStatement"; - SyntaxKind[SyntaxKind["IfStatement"] = 245] = "IfStatement"; - SyntaxKind[SyntaxKind["DoStatement"] = 246] = "DoStatement"; - SyntaxKind[SyntaxKind["WhileStatement"] = 247] = "WhileStatement"; - SyntaxKind[SyntaxKind["ForStatement"] = 248] = "ForStatement"; - SyntaxKind[SyntaxKind["ForInStatement"] = 249] = "ForInStatement"; - SyntaxKind[SyntaxKind["ForOfStatement"] = 250] = "ForOfStatement"; - SyntaxKind[SyntaxKind["ContinueStatement"] = 251] = "ContinueStatement"; - SyntaxKind[SyntaxKind["BreakStatement"] = 252] = "BreakStatement"; - SyntaxKind[SyntaxKind["ReturnStatement"] = 253] = "ReturnStatement"; - SyntaxKind[SyntaxKind["WithStatement"] = 254] = "WithStatement"; - SyntaxKind[SyntaxKind["SwitchStatement"] = 255] = "SwitchStatement"; - SyntaxKind[SyntaxKind["LabeledStatement"] = 256] = "LabeledStatement"; - SyntaxKind[SyntaxKind["ThrowStatement"] = 257] = "ThrowStatement"; - SyntaxKind[SyntaxKind["TryStatement"] = 258] = "TryStatement"; - SyntaxKind[SyntaxKind["DebuggerStatement"] = 259] = "DebuggerStatement"; - SyntaxKind[SyntaxKind["VariableDeclaration"] = 260] = "VariableDeclaration"; - SyntaxKind[SyntaxKind["VariableDeclarationList"] = 261] = "VariableDeclarationList"; - SyntaxKind[SyntaxKind["FunctionDeclaration"] = 262] = "FunctionDeclaration"; - SyntaxKind[SyntaxKind["ClassDeclaration"] = 263] = "ClassDeclaration"; - SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 264] = "InterfaceDeclaration"; - SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 265] = "TypeAliasDeclaration"; - SyntaxKind[SyntaxKind["EnumDeclaration"] = 266] = "EnumDeclaration"; - SyntaxKind[SyntaxKind["ModuleDeclaration"] = 267] = "ModuleDeclaration"; - SyntaxKind[SyntaxKind["ModuleBlock"] = 268] = "ModuleBlock"; - SyntaxKind[SyntaxKind["CaseBlock"] = 269] = "CaseBlock"; - SyntaxKind[SyntaxKind["NamespaceExportDeclaration"] = 270] = "NamespaceExportDeclaration"; - SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 271] = "ImportEqualsDeclaration"; - SyntaxKind[SyntaxKind["ImportDeclaration"] = 272] = "ImportDeclaration"; - SyntaxKind[SyntaxKind["ImportClause"] = 273] = "ImportClause"; - SyntaxKind[SyntaxKind["NamespaceImport"] = 274] = "NamespaceImport"; - SyntaxKind[SyntaxKind["NamedImports"] = 275] = "NamedImports"; - SyntaxKind[SyntaxKind["ImportSpecifier"] = 276] = "ImportSpecifier"; - SyntaxKind[SyntaxKind["ExportAssignment"] = 277] = "ExportAssignment"; - SyntaxKind[SyntaxKind["ExportDeclaration"] = 278] = "ExportDeclaration"; - SyntaxKind[SyntaxKind["NamedExports"] = 279] = "NamedExports"; - SyntaxKind[SyntaxKind["NamespaceExport"] = 280] = "NamespaceExport"; - SyntaxKind[SyntaxKind["ExportSpecifier"] = 281] = "ExportSpecifier"; - SyntaxKind[SyntaxKind["MissingDeclaration"] = 282] = "MissingDeclaration"; - SyntaxKind[SyntaxKind["ExternalModuleReference"] = 283] = "ExternalModuleReference"; - SyntaxKind[SyntaxKind["JsxElement"] = 284] = "JsxElement"; - SyntaxKind[SyntaxKind["JsxSelfClosingElement"] = 285] = "JsxSelfClosingElement"; - SyntaxKind[SyntaxKind["JsxOpeningElement"] = 286] = "JsxOpeningElement"; - SyntaxKind[SyntaxKind["JsxClosingElement"] = 287] = "JsxClosingElement"; - SyntaxKind[SyntaxKind["JsxFragment"] = 288] = "JsxFragment"; - SyntaxKind[SyntaxKind["JsxOpeningFragment"] = 289] = "JsxOpeningFragment"; - SyntaxKind[SyntaxKind["JsxClosingFragment"] = 290] = "JsxClosingFragment"; - SyntaxKind[SyntaxKind["JsxAttribute"] = 291] = "JsxAttribute"; - SyntaxKind[SyntaxKind["JsxAttributes"] = 292] = "JsxAttributes"; - SyntaxKind[SyntaxKind["JsxSpreadAttribute"] = 293] = "JsxSpreadAttribute"; - SyntaxKind[SyntaxKind["JsxExpression"] = 294] = "JsxExpression"; - SyntaxKind[SyntaxKind["JsxNamespacedName"] = 295] = "JsxNamespacedName"; - SyntaxKind[SyntaxKind["CaseClause"] = 296] = "CaseClause"; - SyntaxKind[SyntaxKind["DefaultClause"] = 297] = "DefaultClause"; - SyntaxKind[SyntaxKind["HeritageClause"] = 298] = "HeritageClause"; - SyntaxKind[SyntaxKind["CatchClause"] = 299] = "CatchClause"; - SyntaxKind[SyntaxKind["ImportAttributes"] = 300] = "ImportAttributes"; - SyntaxKind[SyntaxKind["ImportAttribute"] = 301] = "ImportAttribute"; - SyntaxKind[SyntaxKind["PropertyAssignment"] = 302] = "PropertyAssignment"; - SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 303] = "ShorthandPropertyAssignment"; - SyntaxKind[SyntaxKind["SpreadAssignment"] = 304] = "SpreadAssignment"; - SyntaxKind[SyntaxKind["EnumMember"] = 305] = "EnumMember"; - SyntaxKind[SyntaxKind["SourceFile"] = 306] = "SourceFile"; - SyntaxKind[SyntaxKind["Bundle"] = 307] = "Bundle"; - SyntaxKind[SyntaxKind["JSDocTypeExpression"] = 308] = "JSDocTypeExpression"; - SyntaxKind[SyntaxKind["JSDocNameReference"] = 309] = "JSDocNameReference"; - SyntaxKind[SyntaxKind["JSDocMemberName"] = 310] = "JSDocMemberName"; - SyntaxKind[SyntaxKind["JSDocAllType"] = 311] = "JSDocAllType"; - SyntaxKind[SyntaxKind["JSDocNullableType"] = 312] = "JSDocNullableType"; - SyntaxKind[SyntaxKind["JSDocNonNullableType"] = 313] = "JSDocNonNullableType"; - SyntaxKind[SyntaxKind["JSDocOptionalType"] = 314] = "JSDocOptionalType"; - SyntaxKind[SyntaxKind["JSDocVariadicType"] = 315] = "JSDocVariadicType"; - SyntaxKind[SyntaxKind["JSDoc"] = 316] = "JSDoc"; - SyntaxKind[SyntaxKind["JSDocText"] = 317] = "JSDocText"; - SyntaxKind[SyntaxKind["JSDocTypeLiteral"] = 318] = "JSDocTypeLiteral"; - SyntaxKind[SyntaxKind["JSDocSignature"] = 319] = "JSDocSignature"; - SyntaxKind[SyntaxKind["JSDocLink"] = 320] = "JSDocLink"; - SyntaxKind[SyntaxKind["JSDocLinkCode"] = 321] = "JSDocLinkCode"; - SyntaxKind[SyntaxKind["JSDocLinkPlain"] = 322] = "JSDocLinkPlain"; - SyntaxKind[SyntaxKind["JSDocTag"] = 323] = "JSDocTag"; - SyntaxKind[SyntaxKind["JSDocAugmentsTag"] = 324] = "JSDocAugmentsTag"; - SyntaxKind[SyntaxKind["JSDocImplementsTag"] = 325] = "JSDocImplementsTag"; - SyntaxKind[SyntaxKind["JSDocDeprecatedTag"] = 326] = "JSDocDeprecatedTag"; - SyntaxKind[SyntaxKind["JSDocPublicTag"] = 327] = "JSDocPublicTag"; - SyntaxKind[SyntaxKind["JSDocPrivateTag"] = 328] = "JSDocPrivateTag"; - SyntaxKind[SyntaxKind["JSDocProtectedTag"] = 329] = "JSDocProtectedTag"; - SyntaxKind[SyntaxKind["JSDocReadonlyTag"] = 330] = "JSDocReadonlyTag"; - SyntaxKind[SyntaxKind["JSDocOverrideTag"] = 331] = "JSDocOverrideTag"; - SyntaxKind[SyntaxKind["JSDocCallbackTag"] = 332] = "JSDocCallbackTag"; - SyntaxKind[SyntaxKind["JSDocOverloadTag"] = 333] = "JSDocOverloadTag"; - SyntaxKind[SyntaxKind["JSDocParameterTag"] = 334] = "JSDocParameterTag"; - SyntaxKind[SyntaxKind["JSDocReturnTag"] = 335] = "JSDocReturnTag"; - SyntaxKind[SyntaxKind["JSDocThisTag"] = 336] = "JSDocThisTag"; - SyntaxKind[SyntaxKind["JSDocTypeTag"] = 337] = "JSDocTypeTag"; - SyntaxKind[SyntaxKind["JSDocTemplateTag"] = 338] = "JSDocTemplateTag"; - SyntaxKind[SyntaxKind["JSDocTypedefTag"] = 339] = "JSDocTypedefTag"; - SyntaxKind[SyntaxKind["JSDocSeeTag"] = 340] = "JSDocSeeTag"; - SyntaxKind[SyntaxKind["JSDocPropertyTag"] = 341] = "JSDocPropertyTag"; - SyntaxKind[SyntaxKind["JSDocSatisfiesTag"] = 342] = "JSDocSatisfiesTag"; - SyntaxKind[SyntaxKind["JSDocImportTag"] = 343] = "JSDocImportTag"; - SyntaxKind[SyntaxKind["SyntaxList"] = 344] = "SyntaxList"; - SyntaxKind[SyntaxKind["JSTypeAliasDeclaration"] = 345] = "JSTypeAliasDeclaration"; - SyntaxKind[SyntaxKind["JSExportAssignment"] = 346] = "JSExportAssignment"; - SyntaxKind[SyntaxKind["CommonJSExport"] = 347] = "CommonJSExport"; - SyntaxKind[SyntaxKind["JSImportDeclaration"] = 348] = "JSImportDeclaration"; - SyntaxKind[SyntaxKind["NotEmittedStatement"] = 349] = "NotEmittedStatement"; - SyntaxKind[SyntaxKind["PartiallyEmittedExpression"] = 350] = "PartiallyEmittedExpression"; - SyntaxKind[SyntaxKind["CommaListExpression"] = 351] = "CommaListExpression"; - SyntaxKind[SyntaxKind["SyntheticReferenceExpression"] = 352] = "SyntheticReferenceExpression"; - SyntaxKind[SyntaxKind["Count"] = 353] = "Count"; + SyntaxKind[SyntaxKind["DeferKeyword"] = 166] = "DeferKeyword"; + SyntaxKind[SyntaxKind["QualifiedName"] = 167] = "QualifiedName"; + SyntaxKind[SyntaxKind["ComputedPropertyName"] = 168] = "ComputedPropertyName"; + SyntaxKind[SyntaxKind["TypeParameter"] = 169] = "TypeParameter"; + SyntaxKind[SyntaxKind["Parameter"] = 170] = "Parameter"; + SyntaxKind[SyntaxKind["Decorator"] = 171] = "Decorator"; + SyntaxKind[SyntaxKind["PropertySignature"] = 172] = "PropertySignature"; + SyntaxKind[SyntaxKind["PropertyDeclaration"] = 173] = "PropertyDeclaration"; + SyntaxKind[SyntaxKind["MethodSignature"] = 174] = "MethodSignature"; + SyntaxKind[SyntaxKind["MethodDeclaration"] = 175] = "MethodDeclaration"; + SyntaxKind[SyntaxKind["ClassStaticBlockDeclaration"] = 176] = "ClassStaticBlockDeclaration"; + SyntaxKind[SyntaxKind["Constructor"] = 177] = "Constructor"; + SyntaxKind[SyntaxKind["GetAccessor"] = 178] = "GetAccessor"; + SyntaxKind[SyntaxKind["SetAccessor"] = 179] = "SetAccessor"; + SyntaxKind[SyntaxKind["CallSignature"] = 180] = "CallSignature"; + SyntaxKind[SyntaxKind["ConstructSignature"] = 181] = "ConstructSignature"; + SyntaxKind[SyntaxKind["IndexSignature"] = 182] = "IndexSignature"; + SyntaxKind[SyntaxKind["TypePredicate"] = 183] = "TypePredicate"; + SyntaxKind[SyntaxKind["TypeReference"] = 184] = "TypeReference"; + SyntaxKind[SyntaxKind["FunctionType"] = 185] = "FunctionType"; + SyntaxKind[SyntaxKind["ConstructorType"] = 186] = "ConstructorType"; + SyntaxKind[SyntaxKind["TypeQuery"] = 187] = "TypeQuery"; + SyntaxKind[SyntaxKind["TypeLiteral"] = 188] = "TypeLiteral"; + SyntaxKind[SyntaxKind["ArrayType"] = 189] = "ArrayType"; + SyntaxKind[SyntaxKind["TupleType"] = 190] = "TupleType"; + SyntaxKind[SyntaxKind["OptionalType"] = 191] = "OptionalType"; + SyntaxKind[SyntaxKind["RestType"] = 192] = "RestType"; + SyntaxKind[SyntaxKind["UnionType"] = 193] = "UnionType"; + SyntaxKind[SyntaxKind["IntersectionType"] = 194] = "IntersectionType"; + SyntaxKind[SyntaxKind["ConditionalType"] = 195] = "ConditionalType"; + SyntaxKind[SyntaxKind["InferType"] = 196] = "InferType"; + SyntaxKind[SyntaxKind["ParenthesizedType"] = 197] = "ParenthesizedType"; + SyntaxKind[SyntaxKind["ThisType"] = 198] = "ThisType"; + SyntaxKind[SyntaxKind["TypeOperator"] = 199] = "TypeOperator"; + SyntaxKind[SyntaxKind["IndexedAccessType"] = 200] = "IndexedAccessType"; + SyntaxKind[SyntaxKind["MappedType"] = 201] = "MappedType"; + SyntaxKind[SyntaxKind["LiteralType"] = 202] = "LiteralType"; + SyntaxKind[SyntaxKind["NamedTupleMember"] = 203] = "NamedTupleMember"; + SyntaxKind[SyntaxKind["TemplateLiteralType"] = 204] = "TemplateLiteralType"; + SyntaxKind[SyntaxKind["TemplateLiteralTypeSpan"] = 205] = "TemplateLiteralTypeSpan"; + SyntaxKind[SyntaxKind["ImportType"] = 206] = "ImportType"; + SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 207] = "ObjectBindingPattern"; + SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 208] = "ArrayBindingPattern"; + SyntaxKind[SyntaxKind["BindingElement"] = 209] = "BindingElement"; + SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 210] = "ArrayLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 211] = "ObjectLiteralExpression"; + SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 212] = "PropertyAccessExpression"; + SyntaxKind[SyntaxKind["ElementAccessExpression"] = 213] = "ElementAccessExpression"; + SyntaxKind[SyntaxKind["CallExpression"] = 214] = "CallExpression"; + SyntaxKind[SyntaxKind["NewExpression"] = 215] = "NewExpression"; + SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 216] = "TaggedTemplateExpression"; + SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 217] = "TypeAssertionExpression"; + SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 218] = "ParenthesizedExpression"; + SyntaxKind[SyntaxKind["FunctionExpression"] = 219] = "FunctionExpression"; + SyntaxKind[SyntaxKind["ArrowFunction"] = 220] = "ArrowFunction"; + SyntaxKind[SyntaxKind["DeleteExpression"] = 221] = "DeleteExpression"; + SyntaxKind[SyntaxKind["TypeOfExpression"] = 222] = "TypeOfExpression"; + SyntaxKind[SyntaxKind["VoidExpression"] = 223] = "VoidExpression"; + SyntaxKind[SyntaxKind["AwaitExpression"] = 224] = "AwaitExpression"; + SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 225] = "PrefixUnaryExpression"; + SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 226] = "PostfixUnaryExpression"; + SyntaxKind[SyntaxKind["BinaryExpression"] = 227] = "BinaryExpression"; + SyntaxKind[SyntaxKind["ConditionalExpression"] = 228] = "ConditionalExpression"; + SyntaxKind[SyntaxKind["TemplateExpression"] = 229] = "TemplateExpression"; + SyntaxKind[SyntaxKind["YieldExpression"] = 230] = "YieldExpression"; + SyntaxKind[SyntaxKind["SpreadElement"] = 231] = "SpreadElement"; + SyntaxKind[SyntaxKind["ClassExpression"] = 232] = "ClassExpression"; + SyntaxKind[SyntaxKind["OmittedExpression"] = 233] = "OmittedExpression"; + SyntaxKind[SyntaxKind["ExpressionWithTypeArguments"] = 234] = "ExpressionWithTypeArguments"; + SyntaxKind[SyntaxKind["AsExpression"] = 235] = "AsExpression"; + SyntaxKind[SyntaxKind["NonNullExpression"] = 236] = "NonNullExpression"; + SyntaxKind[SyntaxKind["MetaProperty"] = 237] = "MetaProperty"; + SyntaxKind[SyntaxKind["SyntheticExpression"] = 238] = "SyntheticExpression"; + SyntaxKind[SyntaxKind["SatisfiesExpression"] = 239] = "SatisfiesExpression"; + SyntaxKind[SyntaxKind["TemplateSpan"] = 240] = "TemplateSpan"; + SyntaxKind[SyntaxKind["SemicolonClassElement"] = 241] = "SemicolonClassElement"; + SyntaxKind[SyntaxKind["Block"] = 242] = "Block"; + SyntaxKind[SyntaxKind["EmptyStatement"] = 243] = "EmptyStatement"; + SyntaxKind[SyntaxKind["VariableStatement"] = 244] = "VariableStatement"; + SyntaxKind[SyntaxKind["ExpressionStatement"] = 245] = "ExpressionStatement"; + SyntaxKind[SyntaxKind["IfStatement"] = 246] = "IfStatement"; + SyntaxKind[SyntaxKind["DoStatement"] = 247] = "DoStatement"; + SyntaxKind[SyntaxKind["WhileStatement"] = 248] = "WhileStatement"; + SyntaxKind[SyntaxKind["ForStatement"] = 249] = "ForStatement"; + SyntaxKind[SyntaxKind["ForInStatement"] = 250] = "ForInStatement"; + SyntaxKind[SyntaxKind["ForOfStatement"] = 251] = "ForOfStatement"; + SyntaxKind[SyntaxKind["ContinueStatement"] = 252] = "ContinueStatement"; + SyntaxKind[SyntaxKind["BreakStatement"] = 253] = "BreakStatement"; + SyntaxKind[SyntaxKind["ReturnStatement"] = 254] = "ReturnStatement"; + SyntaxKind[SyntaxKind["WithStatement"] = 255] = "WithStatement"; + SyntaxKind[SyntaxKind["SwitchStatement"] = 256] = "SwitchStatement"; + SyntaxKind[SyntaxKind["LabeledStatement"] = 257] = "LabeledStatement"; + SyntaxKind[SyntaxKind["ThrowStatement"] = 258] = "ThrowStatement"; + SyntaxKind[SyntaxKind["TryStatement"] = 259] = "TryStatement"; + SyntaxKind[SyntaxKind["DebuggerStatement"] = 260] = "DebuggerStatement"; + SyntaxKind[SyntaxKind["VariableDeclaration"] = 261] = "VariableDeclaration"; + SyntaxKind[SyntaxKind["VariableDeclarationList"] = 262] = "VariableDeclarationList"; + SyntaxKind[SyntaxKind["FunctionDeclaration"] = 263] = "FunctionDeclaration"; + SyntaxKind[SyntaxKind["ClassDeclaration"] = 264] = "ClassDeclaration"; + SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 265] = "InterfaceDeclaration"; + SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 266] = "TypeAliasDeclaration"; + SyntaxKind[SyntaxKind["EnumDeclaration"] = 267] = "EnumDeclaration"; + SyntaxKind[SyntaxKind["ModuleDeclaration"] = 268] = "ModuleDeclaration"; + SyntaxKind[SyntaxKind["ModuleBlock"] = 269] = "ModuleBlock"; + SyntaxKind[SyntaxKind["CaseBlock"] = 270] = "CaseBlock"; + SyntaxKind[SyntaxKind["NamespaceExportDeclaration"] = 271] = "NamespaceExportDeclaration"; + SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 272] = "ImportEqualsDeclaration"; + SyntaxKind[SyntaxKind["ImportDeclaration"] = 273] = "ImportDeclaration"; + SyntaxKind[SyntaxKind["ImportClause"] = 274] = "ImportClause"; + SyntaxKind[SyntaxKind["NamespaceImport"] = 275] = "NamespaceImport"; + SyntaxKind[SyntaxKind["NamedImports"] = 276] = "NamedImports"; + SyntaxKind[SyntaxKind["ImportSpecifier"] = 277] = "ImportSpecifier"; + SyntaxKind[SyntaxKind["ExportAssignment"] = 278] = "ExportAssignment"; + SyntaxKind[SyntaxKind["ExportDeclaration"] = 279] = "ExportDeclaration"; + SyntaxKind[SyntaxKind["NamedExports"] = 280] = "NamedExports"; + SyntaxKind[SyntaxKind["NamespaceExport"] = 281] = "NamespaceExport"; + SyntaxKind[SyntaxKind["ExportSpecifier"] = 282] = "ExportSpecifier"; + SyntaxKind[SyntaxKind["MissingDeclaration"] = 283] = "MissingDeclaration"; + SyntaxKind[SyntaxKind["ExternalModuleReference"] = 284] = "ExternalModuleReference"; + SyntaxKind[SyntaxKind["JsxElement"] = 285] = "JsxElement"; + SyntaxKind[SyntaxKind["JsxSelfClosingElement"] = 286] = "JsxSelfClosingElement"; + SyntaxKind[SyntaxKind["JsxOpeningElement"] = 287] = "JsxOpeningElement"; + SyntaxKind[SyntaxKind["JsxClosingElement"] = 288] = "JsxClosingElement"; + SyntaxKind[SyntaxKind["JsxFragment"] = 289] = "JsxFragment"; + SyntaxKind[SyntaxKind["JsxOpeningFragment"] = 290] = "JsxOpeningFragment"; + SyntaxKind[SyntaxKind["JsxClosingFragment"] = 291] = "JsxClosingFragment"; + SyntaxKind[SyntaxKind["JsxAttribute"] = 292] = "JsxAttribute"; + SyntaxKind[SyntaxKind["JsxAttributes"] = 293] = "JsxAttributes"; + SyntaxKind[SyntaxKind["JsxSpreadAttribute"] = 294] = "JsxSpreadAttribute"; + SyntaxKind[SyntaxKind["JsxExpression"] = 295] = "JsxExpression"; + SyntaxKind[SyntaxKind["JsxNamespacedName"] = 296] = "JsxNamespacedName"; + SyntaxKind[SyntaxKind["CaseClause"] = 297] = "CaseClause"; + SyntaxKind[SyntaxKind["DefaultClause"] = 298] = "DefaultClause"; + SyntaxKind[SyntaxKind["HeritageClause"] = 299] = "HeritageClause"; + SyntaxKind[SyntaxKind["CatchClause"] = 300] = "CatchClause"; + SyntaxKind[SyntaxKind["ImportAttributes"] = 301] = "ImportAttributes"; + SyntaxKind[SyntaxKind["ImportAttribute"] = 302] = "ImportAttribute"; + SyntaxKind[SyntaxKind["PropertyAssignment"] = 303] = "PropertyAssignment"; + SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 304] = "ShorthandPropertyAssignment"; + SyntaxKind[SyntaxKind["SpreadAssignment"] = 305] = "SpreadAssignment"; + SyntaxKind[SyntaxKind["EnumMember"] = 306] = "EnumMember"; + SyntaxKind[SyntaxKind["SourceFile"] = 307] = "SourceFile"; + SyntaxKind[SyntaxKind["Bundle"] = 308] = "Bundle"; + SyntaxKind[SyntaxKind["JSDocTypeExpression"] = 309] = "JSDocTypeExpression"; + SyntaxKind[SyntaxKind["JSDocNameReference"] = 310] = "JSDocNameReference"; + SyntaxKind[SyntaxKind["JSDocMemberName"] = 311] = "JSDocMemberName"; + SyntaxKind[SyntaxKind["JSDocAllType"] = 312] = "JSDocAllType"; + SyntaxKind[SyntaxKind["JSDocNullableType"] = 313] = "JSDocNullableType"; + SyntaxKind[SyntaxKind["JSDocNonNullableType"] = 314] = "JSDocNonNullableType"; + SyntaxKind[SyntaxKind["JSDocOptionalType"] = 315] = "JSDocOptionalType"; + SyntaxKind[SyntaxKind["JSDocVariadicType"] = 316] = "JSDocVariadicType"; + SyntaxKind[SyntaxKind["JSDoc"] = 317] = "JSDoc"; + SyntaxKind[SyntaxKind["JSDocText"] = 318] = "JSDocText"; + SyntaxKind[SyntaxKind["JSDocTypeLiteral"] = 319] = "JSDocTypeLiteral"; + SyntaxKind[SyntaxKind["JSDocSignature"] = 320] = "JSDocSignature"; + SyntaxKind[SyntaxKind["JSDocLink"] = 321] = "JSDocLink"; + SyntaxKind[SyntaxKind["JSDocLinkCode"] = 322] = "JSDocLinkCode"; + SyntaxKind[SyntaxKind["JSDocLinkPlain"] = 323] = "JSDocLinkPlain"; + SyntaxKind[SyntaxKind["JSDocTag"] = 324] = "JSDocTag"; + SyntaxKind[SyntaxKind["JSDocAugmentsTag"] = 325] = "JSDocAugmentsTag"; + SyntaxKind[SyntaxKind["JSDocImplementsTag"] = 326] = "JSDocImplementsTag"; + SyntaxKind[SyntaxKind["JSDocDeprecatedTag"] = 327] = "JSDocDeprecatedTag"; + SyntaxKind[SyntaxKind["JSDocPublicTag"] = 328] = "JSDocPublicTag"; + SyntaxKind[SyntaxKind["JSDocPrivateTag"] = 329] = "JSDocPrivateTag"; + SyntaxKind[SyntaxKind["JSDocProtectedTag"] = 330] = "JSDocProtectedTag"; + SyntaxKind[SyntaxKind["JSDocReadonlyTag"] = 331] = "JSDocReadonlyTag"; + SyntaxKind[SyntaxKind["JSDocOverrideTag"] = 332] = "JSDocOverrideTag"; + SyntaxKind[SyntaxKind["JSDocCallbackTag"] = 333] = "JSDocCallbackTag"; + SyntaxKind[SyntaxKind["JSDocOverloadTag"] = 334] = "JSDocOverloadTag"; + SyntaxKind[SyntaxKind["JSDocParameterTag"] = 335] = "JSDocParameterTag"; + SyntaxKind[SyntaxKind["JSDocReturnTag"] = 336] = "JSDocReturnTag"; + SyntaxKind[SyntaxKind["JSDocThisTag"] = 337] = "JSDocThisTag"; + SyntaxKind[SyntaxKind["JSDocTypeTag"] = 338] = "JSDocTypeTag"; + SyntaxKind[SyntaxKind["JSDocTemplateTag"] = 339] = "JSDocTemplateTag"; + SyntaxKind[SyntaxKind["JSDocTypedefTag"] = 340] = "JSDocTypedefTag"; + SyntaxKind[SyntaxKind["JSDocSeeTag"] = 341] = "JSDocSeeTag"; + SyntaxKind[SyntaxKind["JSDocPropertyTag"] = 342] = "JSDocPropertyTag"; + SyntaxKind[SyntaxKind["JSDocSatisfiesTag"] = 343] = "JSDocSatisfiesTag"; + SyntaxKind[SyntaxKind["JSDocImportTag"] = 344] = "JSDocImportTag"; + SyntaxKind[SyntaxKind["SyntaxList"] = 345] = "SyntaxList"; + SyntaxKind[SyntaxKind["JSTypeAliasDeclaration"] = 346] = "JSTypeAliasDeclaration"; + SyntaxKind[SyntaxKind["JSExportAssignment"] = 347] = "JSExportAssignment"; + SyntaxKind[SyntaxKind["CommonJSExport"] = 348] = "CommonJSExport"; + SyntaxKind[SyntaxKind["JSImportDeclaration"] = 349] = "JSImportDeclaration"; + SyntaxKind[SyntaxKind["NotEmittedStatement"] = 350] = "NotEmittedStatement"; + SyntaxKind[SyntaxKind["PartiallyEmittedExpression"] = 351] = "PartiallyEmittedExpression"; + SyntaxKind[SyntaxKind["CommaListExpression"] = 352] = "CommaListExpression"; + SyntaxKind[SyntaxKind["SyntheticReferenceExpression"] = 353] = "SyntheticReferenceExpression"; + SyntaxKind[SyntaxKind["Count"] = 354] = "Count"; })(SyntaxKind || (SyntaxKind = {})); diff --git a/internal/api/encoder/encoder.go b/internal/api/encoder/encoder.go index 009f1fb640..2c40c6cb80 100644 --- a/internal/api/encoder/encoder.go +++ b/internal/api/encoder/encoder.go @@ -714,7 +714,7 @@ func getNodeDefinedData(node *ast.Node) uint32 { return uint32(boolToByte(n.IsTypeOnly)) << 24 case ast.KindImportClause: n := node.AsImportClause() - return uint32(boolToByte(n.IsTypeOnly)) << 24 + return uint32(boolToByte(n.PhaseModifier == ast.KindTypeKeyword))<<24 | uint32(boolToByte(n.PhaseModifier == ast.KindDeferKeyword))<<25 case ast.KindExportSpecifier: n := node.AsExportSpecifier() return uint32(boolToByte(n.IsTypeOnly)) << 24 diff --git a/internal/ast/ast.go b/internal/ast/ast.go index 848c717a96..718bbda8b2 100644 --- a/internal/ast/ast.go +++ b/internal/ast/ast.go @@ -312,6 +312,8 @@ func (n *Node) Text() string { return n.AsNumericLiteral().Text case KindBigIntLiteral: return n.AsBigIntLiteral().Text + case KindMetaProperty: + return n.AsMetaProperty().Name().Text() case KindNoSubstitutionTemplateLiteral: return n.AsNoSubstitutionTemplateLiteral().Text case KindTemplateHead: @@ -894,7 +896,7 @@ func (n *Node) IsTypeOnly() bool { case KindImportSpecifier: return n.AsImportSpecifier().IsTypeOnly case KindImportClause: - return n.AsImportClause().IsTypeOnly + return n.AsImportClause().PhaseModifier == KindTypeKeyword case KindExportDeclaration: return n.AsExportDeclaration().IsTypeOnly case KindExportSpecifier: @@ -4945,22 +4947,22 @@ type ImportClause struct { DeclarationBase ExportableBase compositeNodeBase - IsTypeOnly bool + PhaseModifier Kind // KindTypeKeyword | KindDeferKeyword NamedBindings *NamedImportBindings // NamedImportBindings. Optional, named bindings name *IdentifierNode // IdentifierNode. Optional, default binding } -func (f *NodeFactory) NewImportClause(isTypeOnly bool, name *IdentifierNode, namedBindings *NamedImportBindings) *Node { +func (f *NodeFactory) NewImportClause(phaseModifier Kind, name *IdentifierNode, namedBindings *NamedImportBindings) *Node { data := &ImportClause{} - data.IsTypeOnly = isTypeOnly + data.PhaseModifier = phaseModifier data.name = name data.NamedBindings = namedBindings return f.newNode(KindImportClause, data) } -func (f *NodeFactory) UpdateImportClause(node *ImportClause, isTypeOnly bool, name *IdentifierNode, namedBindings *NamedImportBindings) *Node { - if isTypeOnly != node.IsTypeOnly || name != node.name || namedBindings != node.NamedBindings { - return updateNode(f.NewImportClause(isTypeOnly, name, namedBindings), node.AsNode(), f.hooks) +func (f *NodeFactory) UpdateImportClause(node *ImportClause, phaseModifier Kind, name *IdentifierNode, namedBindings *NamedImportBindings) *Node { + if phaseModifier != node.PhaseModifier || name != node.name || namedBindings != node.NamedBindings { + return updateNode(f.NewImportClause(phaseModifier, name, namedBindings), node.AsNode(), f.hooks) } return node.AsNode() } @@ -4970,11 +4972,11 @@ func (node *ImportClause) ForEachChild(v Visitor) bool { } func (node *ImportClause) VisitEachChild(v *NodeVisitor) *Node { - return v.Factory.UpdateImportClause(node, node.IsTypeOnly, v.visitNode(node.name), v.visitNode(node.NamedBindings)) + return v.Factory.UpdateImportClause(node, node.PhaseModifier, v.visitNode(node.name), v.visitNode(node.NamedBindings)) } func (node *ImportClause) Clone(f NodeFactoryCoercible) *Node { - return cloneNode(f.AsNodeFactory().NewImportClause(node.IsTypeOnly, node.Name(), node.NamedBindings), node.AsNode(), f.AsNodeFactory().hooks) + return cloneNode(f.AsNodeFactory().NewImportClause(node.PhaseModifier, node.Name(), node.NamedBindings), node.AsNode(), f.AsNodeFactory().hooks) } func (node *ImportClause) Name() *DeclarationName { @@ -4982,7 +4984,7 @@ func (node *ImportClause) Name() *DeclarationName { } func (node *ImportClause) computeSubtreeFacts() SubtreeFacts { - if node.IsTypeOnly { + if node.PhaseModifier == KindTypeKeyword { return SubtreeContainsTypeScript } else { return propagateSubtreeFacts(node.name) | diff --git a/internal/ast/kind.go b/internal/ast/kind.go index 9f6bc22720..57cdaf6f98 100644 --- a/internal/ast/kind.go +++ b/internal/ast/kind.go @@ -180,7 +180,8 @@ const ( KindGlobalKeyword KindBigIntKeyword KindOverrideKeyword - KindOfKeyword // LastKeyword and LastToken and LastContextualKeyword + KindOfKeyword + KindDeferKeyword // LastKeyword and LastToken and LastContextualKeyword // Parse tree nodes // Names KindQualifiedName @@ -399,7 +400,7 @@ const ( KindFirstReservedWord = KindBreakKeyword KindLastReservedWord = KindWithKeyword KindFirstKeyword = KindBreakKeyword - KindLastKeyword = KindOfKeyword + KindLastKeyword = KindDeferKeyword KindFirstFutureReservedWord = KindImplementsKeyword KindLastFutureReservedWord = KindYieldKeyword KindFirstTypeNode = KindTypePredicate @@ -422,7 +423,7 @@ const ( KindFirstJSDocTagNode = KindJSDocTag KindLastJSDocTagNode = KindJSDocImportTag KindFirstContextualKeyword = KindAbstractKeyword - KindLastContextualKeyword = KindOfKeyword + KindLastContextualKeyword = KindDeferKeyword KindComment = KindSingleLineCommentTrivia | KindMultiLineCommentTrivia KindFirstTriviaToken = KindSingleLineCommentTrivia KindLastTriviaToken = KindConflictMarkerTrivia diff --git a/internal/ast/kind_stringer_generated.go b/internal/ast/kind_stringer_generated.go index ba139db8a9..ac4a204fba 100644 --- a/internal/ast/kind_stringer_generated.go +++ b/internal/ast/kind_stringer_generated.go @@ -174,200 +174,201 @@ func _() { _ = x[KindBigIntKeyword-163] _ = x[KindOverrideKeyword-164] _ = x[KindOfKeyword-165] - _ = x[KindQualifiedName-166] - _ = x[KindComputedPropertyName-167] - _ = x[KindTypeParameter-168] - _ = x[KindParameter-169] - _ = x[KindDecorator-170] - _ = x[KindPropertySignature-171] - _ = x[KindPropertyDeclaration-172] - _ = x[KindMethodSignature-173] - _ = x[KindMethodDeclaration-174] - _ = x[KindClassStaticBlockDeclaration-175] - _ = x[KindConstructor-176] - _ = x[KindGetAccessor-177] - _ = x[KindSetAccessor-178] - _ = x[KindCallSignature-179] - _ = x[KindConstructSignature-180] - _ = x[KindIndexSignature-181] - _ = x[KindTypePredicate-182] - _ = x[KindTypeReference-183] - _ = x[KindFunctionType-184] - _ = x[KindConstructorType-185] - _ = x[KindTypeQuery-186] - _ = x[KindTypeLiteral-187] - _ = x[KindArrayType-188] - _ = x[KindTupleType-189] - _ = x[KindOptionalType-190] - _ = x[KindRestType-191] - _ = x[KindUnionType-192] - _ = x[KindIntersectionType-193] - _ = x[KindConditionalType-194] - _ = x[KindInferType-195] - _ = x[KindParenthesizedType-196] - _ = x[KindThisType-197] - _ = x[KindTypeOperator-198] - _ = x[KindIndexedAccessType-199] - _ = x[KindMappedType-200] - _ = x[KindLiteralType-201] - _ = x[KindNamedTupleMember-202] - _ = x[KindTemplateLiteralType-203] - _ = x[KindTemplateLiteralTypeSpan-204] - _ = x[KindImportType-205] - _ = x[KindObjectBindingPattern-206] - _ = x[KindArrayBindingPattern-207] - _ = x[KindBindingElement-208] - _ = x[KindArrayLiteralExpression-209] - _ = x[KindObjectLiteralExpression-210] - _ = x[KindPropertyAccessExpression-211] - _ = x[KindElementAccessExpression-212] - _ = x[KindCallExpression-213] - _ = x[KindNewExpression-214] - _ = x[KindTaggedTemplateExpression-215] - _ = x[KindTypeAssertionExpression-216] - _ = x[KindParenthesizedExpression-217] - _ = x[KindFunctionExpression-218] - _ = x[KindArrowFunction-219] - _ = x[KindDeleteExpression-220] - _ = x[KindTypeOfExpression-221] - _ = x[KindVoidExpression-222] - _ = x[KindAwaitExpression-223] - _ = x[KindPrefixUnaryExpression-224] - _ = x[KindPostfixUnaryExpression-225] - _ = x[KindBinaryExpression-226] - _ = x[KindConditionalExpression-227] - _ = x[KindTemplateExpression-228] - _ = x[KindYieldExpression-229] - _ = x[KindSpreadElement-230] - _ = x[KindClassExpression-231] - _ = x[KindOmittedExpression-232] - _ = x[KindExpressionWithTypeArguments-233] - _ = x[KindAsExpression-234] - _ = x[KindNonNullExpression-235] - _ = x[KindMetaProperty-236] - _ = x[KindSyntheticExpression-237] - _ = x[KindSatisfiesExpression-238] - _ = x[KindTemplateSpan-239] - _ = x[KindSemicolonClassElement-240] - _ = x[KindBlock-241] - _ = x[KindEmptyStatement-242] - _ = x[KindVariableStatement-243] - _ = x[KindExpressionStatement-244] - _ = x[KindIfStatement-245] - _ = x[KindDoStatement-246] - _ = x[KindWhileStatement-247] - _ = x[KindForStatement-248] - _ = x[KindForInStatement-249] - _ = x[KindForOfStatement-250] - _ = x[KindContinueStatement-251] - _ = x[KindBreakStatement-252] - _ = x[KindReturnStatement-253] - _ = x[KindWithStatement-254] - _ = x[KindSwitchStatement-255] - _ = x[KindLabeledStatement-256] - _ = x[KindThrowStatement-257] - _ = x[KindTryStatement-258] - _ = x[KindDebuggerStatement-259] - _ = x[KindVariableDeclaration-260] - _ = x[KindVariableDeclarationList-261] - _ = x[KindFunctionDeclaration-262] - _ = x[KindClassDeclaration-263] - _ = x[KindInterfaceDeclaration-264] - _ = x[KindTypeAliasDeclaration-265] - _ = x[KindEnumDeclaration-266] - _ = x[KindModuleDeclaration-267] - _ = x[KindModuleBlock-268] - _ = x[KindCaseBlock-269] - _ = x[KindNamespaceExportDeclaration-270] - _ = x[KindImportEqualsDeclaration-271] - _ = x[KindImportDeclaration-272] - _ = x[KindImportClause-273] - _ = x[KindNamespaceImport-274] - _ = x[KindNamedImports-275] - _ = x[KindImportSpecifier-276] - _ = x[KindExportAssignment-277] - _ = x[KindExportDeclaration-278] - _ = x[KindNamedExports-279] - _ = x[KindNamespaceExport-280] - _ = x[KindExportSpecifier-281] - _ = x[KindMissingDeclaration-282] - _ = x[KindExternalModuleReference-283] - _ = x[KindJsxElement-284] - _ = x[KindJsxSelfClosingElement-285] - _ = x[KindJsxOpeningElement-286] - _ = x[KindJsxClosingElement-287] - _ = x[KindJsxFragment-288] - _ = x[KindJsxOpeningFragment-289] - _ = x[KindJsxClosingFragment-290] - _ = x[KindJsxAttribute-291] - _ = x[KindJsxAttributes-292] - _ = x[KindJsxSpreadAttribute-293] - _ = x[KindJsxExpression-294] - _ = x[KindJsxNamespacedName-295] - _ = x[KindCaseClause-296] - _ = x[KindDefaultClause-297] - _ = x[KindHeritageClause-298] - _ = x[KindCatchClause-299] - _ = x[KindImportAttributes-300] - _ = x[KindImportAttribute-301] - _ = x[KindPropertyAssignment-302] - _ = x[KindShorthandPropertyAssignment-303] - _ = x[KindSpreadAssignment-304] - _ = x[KindEnumMember-305] - _ = x[KindSourceFile-306] - _ = x[KindBundle-307] - _ = 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] + _ = x[KindDeferKeyword-166] + _ = x[KindQualifiedName-167] + _ = x[KindComputedPropertyName-168] + _ = x[KindTypeParameter-169] + _ = x[KindParameter-170] + _ = x[KindDecorator-171] + _ = x[KindPropertySignature-172] + _ = x[KindPropertyDeclaration-173] + _ = x[KindMethodSignature-174] + _ = x[KindMethodDeclaration-175] + _ = x[KindClassStaticBlockDeclaration-176] + _ = x[KindConstructor-177] + _ = x[KindGetAccessor-178] + _ = x[KindSetAccessor-179] + _ = x[KindCallSignature-180] + _ = x[KindConstructSignature-181] + _ = x[KindIndexSignature-182] + _ = x[KindTypePredicate-183] + _ = x[KindTypeReference-184] + _ = x[KindFunctionType-185] + _ = x[KindConstructorType-186] + _ = x[KindTypeQuery-187] + _ = x[KindTypeLiteral-188] + _ = x[KindArrayType-189] + _ = x[KindTupleType-190] + _ = x[KindOptionalType-191] + _ = x[KindRestType-192] + _ = x[KindUnionType-193] + _ = x[KindIntersectionType-194] + _ = x[KindConditionalType-195] + _ = x[KindInferType-196] + _ = x[KindParenthesizedType-197] + _ = x[KindThisType-198] + _ = x[KindTypeOperator-199] + _ = x[KindIndexedAccessType-200] + _ = x[KindMappedType-201] + _ = x[KindLiteralType-202] + _ = x[KindNamedTupleMember-203] + _ = x[KindTemplateLiteralType-204] + _ = x[KindTemplateLiteralTypeSpan-205] + _ = x[KindImportType-206] + _ = x[KindObjectBindingPattern-207] + _ = x[KindArrayBindingPattern-208] + _ = x[KindBindingElement-209] + _ = x[KindArrayLiteralExpression-210] + _ = x[KindObjectLiteralExpression-211] + _ = x[KindPropertyAccessExpression-212] + _ = x[KindElementAccessExpression-213] + _ = x[KindCallExpression-214] + _ = x[KindNewExpression-215] + _ = x[KindTaggedTemplateExpression-216] + _ = x[KindTypeAssertionExpression-217] + _ = x[KindParenthesizedExpression-218] + _ = x[KindFunctionExpression-219] + _ = x[KindArrowFunction-220] + _ = x[KindDeleteExpression-221] + _ = x[KindTypeOfExpression-222] + _ = x[KindVoidExpression-223] + _ = x[KindAwaitExpression-224] + _ = x[KindPrefixUnaryExpression-225] + _ = x[KindPostfixUnaryExpression-226] + _ = x[KindBinaryExpression-227] + _ = x[KindConditionalExpression-228] + _ = x[KindTemplateExpression-229] + _ = x[KindYieldExpression-230] + _ = x[KindSpreadElement-231] + _ = x[KindClassExpression-232] + _ = x[KindOmittedExpression-233] + _ = x[KindExpressionWithTypeArguments-234] + _ = x[KindAsExpression-235] + _ = x[KindNonNullExpression-236] + _ = x[KindMetaProperty-237] + _ = x[KindSyntheticExpression-238] + _ = x[KindSatisfiesExpression-239] + _ = x[KindTemplateSpan-240] + _ = x[KindSemicolonClassElement-241] + _ = x[KindBlock-242] + _ = x[KindEmptyStatement-243] + _ = x[KindVariableStatement-244] + _ = x[KindExpressionStatement-245] + _ = x[KindIfStatement-246] + _ = x[KindDoStatement-247] + _ = x[KindWhileStatement-248] + _ = x[KindForStatement-249] + _ = x[KindForInStatement-250] + _ = x[KindForOfStatement-251] + _ = x[KindContinueStatement-252] + _ = x[KindBreakStatement-253] + _ = x[KindReturnStatement-254] + _ = x[KindWithStatement-255] + _ = x[KindSwitchStatement-256] + _ = x[KindLabeledStatement-257] + _ = x[KindThrowStatement-258] + _ = x[KindTryStatement-259] + _ = x[KindDebuggerStatement-260] + _ = x[KindVariableDeclaration-261] + _ = x[KindVariableDeclarationList-262] + _ = x[KindFunctionDeclaration-263] + _ = x[KindClassDeclaration-264] + _ = x[KindInterfaceDeclaration-265] + _ = x[KindTypeAliasDeclaration-266] + _ = x[KindEnumDeclaration-267] + _ = x[KindModuleDeclaration-268] + _ = x[KindModuleBlock-269] + _ = x[KindCaseBlock-270] + _ = x[KindNamespaceExportDeclaration-271] + _ = x[KindImportEqualsDeclaration-272] + _ = x[KindImportDeclaration-273] + _ = x[KindImportClause-274] + _ = x[KindNamespaceImport-275] + _ = x[KindNamedImports-276] + _ = x[KindImportSpecifier-277] + _ = x[KindExportAssignment-278] + _ = x[KindExportDeclaration-279] + _ = x[KindNamedExports-280] + _ = x[KindNamespaceExport-281] + _ = x[KindExportSpecifier-282] + _ = x[KindMissingDeclaration-283] + _ = x[KindExternalModuleReference-284] + _ = x[KindJsxElement-285] + _ = x[KindJsxSelfClosingElement-286] + _ = x[KindJsxOpeningElement-287] + _ = x[KindJsxClosingElement-288] + _ = x[KindJsxFragment-289] + _ = x[KindJsxOpeningFragment-290] + _ = x[KindJsxClosingFragment-291] + _ = x[KindJsxAttribute-292] + _ = x[KindJsxAttributes-293] + _ = x[KindJsxSpreadAttribute-294] + _ = x[KindJsxExpression-295] + _ = x[KindJsxNamespacedName-296] + _ = x[KindCaseClause-297] + _ = x[KindDefaultClause-298] + _ = x[KindHeritageClause-299] + _ = x[KindCatchClause-300] + _ = x[KindImportAttributes-301] + _ = x[KindImportAttribute-302] + _ = x[KindPropertyAssignment-303] + _ = x[KindShorthandPropertyAssignment-304] + _ = 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] } -const _Kind_name = "KindUnknownKindEndOfFileKindSingleLineCommentTriviaKindMultiLineCommentTriviaKindNewLineTriviaKindWhitespaceTriviaKindConflictMarkerTriviaKindNonTextFileMarkerTriviaKindNumericLiteralKindBigIntLiteralKindStringLiteralKindJsxTextKindJsxTextAllWhiteSpacesKindRegularExpressionLiteralKindNoSubstitutionTemplateLiteralKindTemplateHeadKindTemplateMiddleKindTemplateTailKindOpenBraceTokenKindCloseBraceTokenKindOpenParenTokenKindCloseParenTokenKindOpenBracketTokenKindCloseBracketTokenKindDotTokenKindDotDotDotTokenKindSemicolonTokenKindCommaTokenKindQuestionDotTokenKindLessThanTokenKindLessThanSlashTokenKindGreaterThanTokenKindLessThanEqualsTokenKindGreaterThanEqualsTokenKindEqualsEqualsTokenKindExclamationEqualsTokenKindEqualsEqualsEqualsTokenKindExclamationEqualsEqualsTokenKindEqualsGreaterThanTokenKindPlusTokenKindMinusTokenKindAsteriskTokenKindAsteriskAsteriskTokenKindSlashTokenKindPercentTokenKindPlusPlusTokenKindMinusMinusTokenKindLessThanLessThanTokenKindGreaterThanGreaterThanTokenKindGreaterThanGreaterThanGreaterThanTokenKindAmpersandTokenKindBarTokenKindCaretTokenKindExclamationTokenKindTildeTokenKindAmpersandAmpersandTokenKindBarBarTokenKindQuestionTokenKindColonTokenKindAtTokenKindQuestionQuestionTokenKindBacktickTokenKindHashTokenKindEqualsTokenKindPlusEqualsTokenKindMinusEqualsTokenKindAsteriskEqualsTokenKindAsteriskAsteriskEqualsTokenKindSlashEqualsTokenKindPercentEqualsTokenKindLessThanLessThanEqualsTokenKindGreaterThanGreaterThanEqualsTokenKindGreaterThanGreaterThanGreaterThanEqualsTokenKindAmpersandEqualsTokenKindBarEqualsTokenKindBarBarEqualsTokenKindAmpersandAmpersandEqualsTokenKindQuestionQuestionEqualsTokenKindCaretEqualsTokenKindIdentifierKindPrivateIdentifierKindJSDocCommentTextTokenKindBreakKeywordKindCaseKeywordKindCatchKeywordKindClassKeywordKindConstKeywordKindContinueKeywordKindDebuggerKeywordKindDefaultKeywordKindDeleteKeywordKindDoKeywordKindElseKeywordKindEnumKeywordKindExportKeywordKindExtendsKeywordKindFalseKeywordKindFinallyKeywordKindForKeywordKindFunctionKeywordKindIfKeywordKindImportKeywordKindInKeywordKindInstanceOfKeywordKindNewKeywordKindNullKeywordKindReturnKeywordKindSuperKeywordKindSwitchKeywordKindThisKeywordKindThrowKeywordKindTrueKeywordKindTryKeywordKindTypeOfKeywordKindVarKeywordKindVoidKeywordKindWhileKeywordKindWithKeywordKindImplementsKeywordKindInterfaceKeywordKindLetKeywordKindPackageKeywordKindPrivateKeywordKindProtectedKeywordKindPublicKeywordKindStaticKeywordKindYieldKeywordKindAbstractKeywordKindAccessorKeywordKindAsKeywordKindAssertsKeywordKindAssertKeywordKindAnyKeywordKindAsyncKeywordKindAwaitKeywordKindBooleanKeywordKindConstructorKeywordKindDeclareKeywordKindGetKeywordKindImmediateKeywordKindInferKeywordKindIntrinsicKeywordKindIsKeywordKindKeyOfKeywordKindModuleKeywordKindNamespaceKeywordKindNeverKeywordKindOutKeywordKindReadonlyKeywordKindRequireKeywordKindNumberKeywordKindObjectKeywordKindSatisfiesKeywordKindSetKeywordKindStringKeywordKindSymbolKeywordKindTypeKeywordKindUndefinedKeywordKindUniqueKeywordKindUnknownKeywordKindUsingKeywordKindFromKeywordKindGlobalKeywordKindBigIntKeywordKindOverrideKeywordKindOfKeywordKindQualifiedNameKindComputedPropertyNameKindTypeParameterKindParameterKindDecoratorKindPropertySignatureKindPropertyDeclarationKindMethodSignatureKindMethodDeclarationKindClassStaticBlockDeclarationKindConstructorKindGetAccessorKindSetAccessorKindCallSignatureKindConstructSignatureKindIndexSignatureKindTypePredicateKindTypeReferenceKindFunctionTypeKindConstructorTypeKindTypeQueryKindTypeLiteralKindArrayTypeKindTupleTypeKindOptionalTypeKindRestTypeKindUnionTypeKindIntersectionTypeKindConditionalTypeKindInferTypeKindParenthesizedTypeKindThisTypeKindTypeOperatorKindIndexedAccessTypeKindMappedTypeKindLiteralTypeKindNamedTupleMemberKindTemplateLiteralTypeKindTemplateLiteralTypeSpanKindImportTypeKindObjectBindingPatternKindArrayBindingPatternKindBindingElementKindArrayLiteralExpressionKindObjectLiteralExpressionKindPropertyAccessExpressionKindElementAccessExpressionKindCallExpressionKindNewExpressionKindTaggedTemplateExpressionKindTypeAssertionExpressionKindParenthesizedExpressionKindFunctionExpressionKindArrowFunctionKindDeleteExpressionKindTypeOfExpressionKindVoidExpressionKindAwaitExpressionKindPrefixUnaryExpressionKindPostfixUnaryExpressionKindBinaryExpressionKindConditionalExpressionKindTemplateExpressionKindYieldExpressionKindSpreadElementKindClassExpressionKindOmittedExpressionKindExpressionWithTypeArgumentsKindAsExpressionKindNonNullExpressionKindMetaPropertyKindSyntheticExpressionKindSatisfiesExpressionKindTemplateSpanKindSemicolonClassElementKindBlockKindEmptyStatementKindVariableStatementKindExpressionStatementKindIfStatementKindDoStatementKindWhileStatementKindForStatementKindForInStatementKindForOfStatementKindContinueStatementKindBreakStatementKindReturnStatementKindWithStatementKindSwitchStatementKindLabeledStatementKindThrowStatementKindTryStatementKindDebuggerStatementKindVariableDeclarationKindVariableDeclarationListKindFunctionDeclarationKindClassDeclarationKindInterfaceDeclarationKindTypeAliasDeclarationKindEnumDeclarationKindModuleDeclarationKindModuleBlockKindCaseBlockKindNamespaceExportDeclarationKindImportEqualsDeclarationKindImportDeclarationKindImportClauseKindNamespaceImportKindNamedImportsKindImportSpecifierKindExportAssignmentKindExportDeclarationKindNamedExportsKindNamespaceExportKindExportSpecifierKindMissingDeclarationKindExternalModuleReferenceKindJsxElementKindJsxSelfClosingElementKindJsxOpeningElementKindJsxClosingElementKindJsxFragmentKindJsxOpeningFragmentKindJsxClosingFragmentKindJsxAttributeKindJsxAttributesKindJsxSpreadAttributeKindJsxExpressionKindJsxNamespacedNameKindCaseClauseKindDefaultClauseKindHeritageClauseKindCatchClauseKindImportAttributesKindImportAttributeKindPropertyAssignmentKindShorthandPropertyAssignmentKindSpreadAssignmentKindEnumMemberKindSourceFileKindBundleKindJSDocTypeExpressionKindJSDocNameReferenceKindJSDocMemberNameKindJSDocAllTypeKindJSDocNullableTypeKindJSDocNonNullableTypeKindJSDocOptionalTypeKindJSDocVariadicTypeKindJSDocKindJSDocTextKindJSDocTypeLiteralKindJSDocSignatureKindJSDocLinkKindJSDocLinkCodeKindJSDocLinkPlainKindJSDocTagKindJSDocAugmentsTagKindJSDocImplementsTagKindJSDocDeprecatedTagKindJSDocPublicTagKindJSDocPrivateTagKindJSDocProtectedTagKindJSDocReadonlyTagKindJSDocOverrideTagKindJSDocCallbackTagKindJSDocOverloadTagKindJSDocParameterTagKindJSDocReturnTagKindJSDocThisTagKindJSDocTypeTagKindJSDocTemplateTagKindJSDocTypedefTagKindJSDocSeeTagKindJSDocPropertyTagKindJSDocSatisfiesTagKindJSDocImportTagKindSyntaxListKindJSTypeAliasDeclarationKindJSExportAssignmentKindCommonJSExportKindJSImportDeclarationKindNotEmittedStatementKindPartiallyEmittedExpressionKindCommaListExpressionKindSyntheticReferenceExpressionKindNotEmittedTypeElementKindCount" +const _Kind_name = "KindUnknownKindEndOfFileKindSingleLineCommentTriviaKindMultiLineCommentTriviaKindNewLineTriviaKindWhitespaceTriviaKindConflictMarkerTriviaKindNonTextFileMarkerTriviaKindNumericLiteralKindBigIntLiteralKindStringLiteralKindJsxTextKindJsxTextAllWhiteSpacesKindRegularExpressionLiteralKindNoSubstitutionTemplateLiteralKindTemplateHeadKindTemplateMiddleKindTemplateTailKindOpenBraceTokenKindCloseBraceTokenKindOpenParenTokenKindCloseParenTokenKindOpenBracketTokenKindCloseBracketTokenKindDotTokenKindDotDotDotTokenKindSemicolonTokenKindCommaTokenKindQuestionDotTokenKindLessThanTokenKindLessThanSlashTokenKindGreaterThanTokenKindLessThanEqualsTokenKindGreaterThanEqualsTokenKindEqualsEqualsTokenKindExclamationEqualsTokenKindEqualsEqualsEqualsTokenKindExclamationEqualsEqualsTokenKindEqualsGreaterThanTokenKindPlusTokenKindMinusTokenKindAsteriskTokenKindAsteriskAsteriskTokenKindSlashTokenKindPercentTokenKindPlusPlusTokenKindMinusMinusTokenKindLessThanLessThanTokenKindGreaterThanGreaterThanTokenKindGreaterThanGreaterThanGreaterThanTokenKindAmpersandTokenKindBarTokenKindCaretTokenKindExclamationTokenKindTildeTokenKindAmpersandAmpersandTokenKindBarBarTokenKindQuestionTokenKindColonTokenKindAtTokenKindQuestionQuestionTokenKindBacktickTokenKindHashTokenKindEqualsTokenKindPlusEqualsTokenKindMinusEqualsTokenKindAsteriskEqualsTokenKindAsteriskAsteriskEqualsTokenKindSlashEqualsTokenKindPercentEqualsTokenKindLessThanLessThanEqualsTokenKindGreaterThanGreaterThanEqualsTokenKindGreaterThanGreaterThanGreaterThanEqualsTokenKindAmpersandEqualsTokenKindBarEqualsTokenKindBarBarEqualsTokenKindAmpersandAmpersandEqualsTokenKindQuestionQuestionEqualsTokenKindCaretEqualsTokenKindIdentifierKindPrivateIdentifierKindJSDocCommentTextTokenKindBreakKeywordKindCaseKeywordKindCatchKeywordKindClassKeywordKindConstKeywordKindContinueKeywordKindDebuggerKeywordKindDefaultKeywordKindDeleteKeywordKindDoKeywordKindElseKeywordKindEnumKeywordKindExportKeywordKindExtendsKeywordKindFalseKeywordKindFinallyKeywordKindForKeywordKindFunctionKeywordKindIfKeywordKindImportKeywordKindInKeywordKindInstanceOfKeywordKindNewKeywordKindNullKeywordKindReturnKeywordKindSuperKeywordKindSwitchKeywordKindThisKeywordKindThrowKeywordKindTrueKeywordKindTryKeywordKindTypeOfKeywordKindVarKeywordKindVoidKeywordKindWhileKeywordKindWithKeywordKindImplementsKeywordKindInterfaceKeywordKindLetKeywordKindPackageKeywordKindPrivateKeywordKindProtectedKeywordKindPublicKeywordKindStaticKeywordKindYieldKeywordKindAbstractKeywordKindAccessorKeywordKindAsKeywordKindAssertsKeywordKindAssertKeywordKindAnyKeywordKindAsyncKeywordKindAwaitKeywordKindBooleanKeywordKindConstructorKeywordKindDeclareKeywordKindGetKeywordKindImmediateKeywordKindInferKeywordKindIntrinsicKeywordKindIsKeywordKindKeyOfKeywordKindModuleKeywordKindNamespaceKeywordKindNeverKeywordKindOutKeywordKindReadonlyKeywordKindRequireKeywordKindNumberKeywordKindObjectKeywordKindSatisfiesKeywordKindSetKeywordKindStringKeywordKindSymbolKeywordKindTypeKeywordKindUndefinedKeywordKindUniqueKeywordKindUnknownKeywordKindUsingKeywordKindFromKeywordKindGlobalKeywordKindBigIntKeywordKindOverrideKeywordKindOfKeywordKindDeferKeywordKindQualifiedNameKindComputedPropertyNameKindTypeParameterKindParameterKindDecoratorKindPropertySignatureKindPropertyDeclarationKindMethodSignatureKindMethodDeclarationKindClassStaticBlockDeclarationKindConstructorKindGetAccessorKindSetAccessorKindCallSignatureKindConstructSignatureKindIndexSignatureKindTypePredicateKindTypeReferenceKindFunctionTypeKindConstructorTypeKindTypeQueryKindTypeLiteralKindArrayTypeKindTupleTypeKindOptionalTypeKindRestTypeKindUnionTypeKindIntersectionTypeKindConditionalTypeKindInferTypeKindParenthesizedTypeKindThisTypeKindTypeOperatorKindIndexedAccessTypeKindMappedTypeKindLiteralTypeKindNamedTupleMemberKindTemplateLiteralTypeKindTemplateLiteralTypeSpanKindImportTypeKindObjectBindingPatternKindArrayBindingPatternKindBindingElementKindArrayLiteralExpressionKindObjectLiteralExpressionKindPropertyAccessExpressionKindElementAccessExpressionKindCallExpressionKindNewExpressionKindTaggedTemplateExpressionKindTypeAssertionExpressionKindParenthesizedExpressionKindFunctionExpressionKindArrowFunctionKindDeleteExpressionKindTypeOfExpressionKindVoidExpressionKindAwaitExpressionKindPrefixUnaryExpressionKindPostfixUnaryExpressionKindBinaryExpressionKindConditionalExpressionKindTemplateExpressionKindYieldExpressionKindSpreadElementKindClassExpressionKindOmittedExpressionKindExpressionWithTypeArgumentsKindAsExpressionKindNonNullExpressionKindMetaPropertyKindSyntheticExpressionKindSatisfiesExpressionKindTemplateSpanKindSemicolonClassElementKindBlockKindEmptyStatementKindVariableStatementKindExpressionStatementKindIfStatementKindDoStatementKindWhileStatementKindForStatementKindForInStatementKindForOfStatementKindContinueStatementKindBreakStatementKindReturnStatementKindWithStatementKindSwitchStatementKindLabeledStatementKindThrowStatementKindTryStatementKindDebuggerStatementKindVariableDeclarationKindVariableDeclarationListKindFunctionDeclarationKindClassDeclarationKindInterfaceDeclarationKindTypeAliasDeclarationKindEnumDeclarationKindModuleDeclarationKindModuleBlockKindCaseBlockKindNamespaceExportDeclarationKindImportEqualsDeclarationKindImportDeclarationKindImportClauseKindNamespaceImportKindNamedImportsKindImportSpecifierKindExportAssignmentKindExportDeclarationKindNamedExportsKindNamespaceExportKindExportSpecifierKindMissingDeclarationKindExternalModuleReferenceKindJsxElementKindJsxSelfClosingElementKindJsxOpeningElementKindJsxClosingElementKindJsxFragmentKindJsxOpeningFragmentKindJsxClosingFragmentKindJsxAttributeKindJsxAttributesKindJsxSpreadAttributeKindJsxExpressionKindJsxNamespacedNameKindCaseClauseKindDefaultClauseKindHeritageClauseKindCatchClauseKindImportAttributesKindImportAttributeKindPropertyAssignmentKindShorthandPropertyAssignmentKindSpreadAssignmentKindEnumMemberKindSourceFileKindBundleKindJSDocTypeExpressionKindJSDocNameReferenceKindJSDocMemberNameKindJSDocAllTypeKindJSDocNullableTypeKindJSDocNonNullableTypeKindJSDocOptionalTypeKindJSDocVariadicTypeKindJSDocKindJSDocTextKindJSDocTypeLiteralKindJSDocSignatureKindJSDocLinkKindJSDocLinkCodeKindJSDocLinkPlainKindJSDocTagKindJSDocAugmentsTagKindJSDocImplementsTagKindJSDocDeprecatedTagKindJSDocPublicTagKindJSDocPrivateTagKindJSDocProtectedTagKindJSDocReadonlyTagKindJSDocOverrideTagKindJSDocCallbackTagKindJSDocOverloadTagKindJSDocParameterTagKindJSDocReturnTagKindJSDocThisTagKindJSDocTypeTagKindJSDocTemplateTagKindJSDocTypedefTagKindJSDocSeeTagKindJSDocPropertyTagKindJSDocSatisfiesTagKindJSDocImportTagKindSyntaxListKindJSTypeAliasDeclarationKindJSExportAssignmentKindCommonJSExportKindJSImportDeclarationKindNotEmittedStatementKindPartiallyEmittedExpressionKindCommaListExpressionKindSyntheticReferenceExpressionKindNotEmittedTypeElementKindCount" -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, 3141, 3165, 3182, 3195, 3208, 3229, 3252, 3271, 3292, 3323, 3338, 3353, 3368, 3385, 3407, 3425, 3442, 3459, 3475, 3494, 3507, 3522, 3535, 3548, 3564, 3576, 3589, 3609, 3628, 3641, 3662, 3674, 3690, 3711, 3725, 3740, 3760, 3783, 3810, 3824, 3848, 3871, 3889, 3915, 3942, 3970, 3997, 4015, 4032, 4060, 4087, 4114, 4136, 4153, 4173, 4193, 4211, 4230, 4255, 4281, 4301, 4326, 4348, 4367, 4384, 4403, 4424, 4455, 4471, 4492, 4508, 4531, 4554, 4570, 4595, 4604, 4622, 4643, 4666, 4681, 4696, 4714, 4730, 4748, 4766, 4787, 4805, 4824, 4841, 4860, 4880, 4898, 4914, 4935, 4958, 4985, 5008, 5028, 5052, 5076, 5095, 5116, 5131, 5144, 5174, 5201, 5222, 5238, 5257, 5273, 5292, 5312, 5333, 5349, 5368, 5387, 5409, 5436, 5450, 5475, 5496, 5517, 5532, 5554, 5576, 5592, 5609, 5631, 5648, 5669, 5683, 5700, 5718, 5733, 5753, 5772, 5794, 5825, 5845, 5859, 5873, 5883, 5906, 5928, 5947, 5963, 5984, 6008, 6029, 6050, 6059, 6072, 6092, 6110, 6123, 6140, 6158, 6170, 6190, 6212, 6234, 6252, 6271, 6292, 6312, 6332, 6352, 6372, 6393, 6411, 6427, 6443, 6463, 6482, 6497, 6517, 6538, 6556, 6570, 6596, 6618, 6636, 6659, 6682, 6712, 6735, 6767, 6792, 6801} +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} func (i Kind) String() string { if i < 0 || i >= Kind(len(_Kind_index)-1) { diff --git a/internal/ast/utilities.go b/internal/ast/utilities.go index 1c65dee66c..53e17552be 100644 --- a/internal/ast/utilities.go +++ b/internal/ast/utilities.go @@ -1893,8 +1893,11 @@ func IsExpressionNode(node *Node) bool { KindClassExpression, KindArrowFunction, KindVoidExpression, KindDeleteExpression, KindTypeOfExpression, KindPrefixUnaryExpression, KindPostfixUnaryExpression, KindBinaryExpression, KindConditionalExpression, KindSpreadElement, KindTemplateExpression, KindOmittedExpression, KindJsxElement, KindJsxSelfClosingElement, - KindJsxFragment, KindYieldExpression, KindAwaitExpression, KindMetaProperty: + KindJsxFragment, KindYieldExpression, KindAwaitExpression: return true + case KindMetaProperty: + // `import.defer` in `import.defer(...)` is not an expression + return !IsImportCall(node.Parent) || node.Parent.AsCallExpression().Expression != node case KindExpressionWithTypeArguments: return !IsHeritageClause(node.Parent) case KindQualifiedName: @@ -2076,7 +2079,11 @@ func IsSuperCall(node *Node) bool { } func IsImportCall(node *Node) bool { - return IsCallExpression(node) && node.AsCallExpression().Expression.Kind == KindImportKeyword + if !IsCallExpression(node) { + return false + } + e := node.AsCallExpression().Expression + return e.Kind == KindImportKeyword || IsMetaProperty(e) && e.AsMetaProperty().KeywordToken == KindImportKeyword && e.Text() == "defer" } func IsComputedNonLiteralName(name *Node) bool { @@ -2641,7 +2648,7 @@ func GetNodeAtPosition(file *SourceFile, position int, includeJSDoc bool) *Node return false }) } - if child == nil { + if child == nil || IsMetaProperty(child) { return current } current = child @@ -2840,13 +2847,11 @@ func GetLeftmostAccessExpression(expr *Node) *Node { func IsTypeOnlyImportDeclaration(node *Node) bool { switch node.Kind { case KindImportSpecifier: - return node.AsImportSpecifier().IsTypeOnly || node.Parent.Parent.AsImportClause().IsTypeOnly + return node.IsTypeOnly() || node.Parent.Parent.IsTypeOnly() case KindNamespaceImport: - return node.Parent.AsImportClause().IsTypeOnly - case KindImportClause: - return node.AsImportClause().IsTypeOnly - case KindImportEqualsDeclaration: - return node.AsImportEqualsDeclaration().IsTypeOnly + return node.Parent.IsTypeOnly() + case KindImportClause, KindImportEqualsDeclaration: + return node.IsTypeOnly() } return false } @@ -2874,11 +2879,11 @@ func IsExclusivelyTypeOnlyImportOrExport(node *Node) bool { return node.AsExportDeclaration().IsTypeOnly case KindImportDeclaration, KindJSImportDeclaration: if importClause := node.AsImportDeclaration().ImportClause; importClause != nil { - return importClause.AsImportClause().IsTypeOnly + return importClause.AsImportClause().IsTypeOnly() } case KindJSDocImportTag: if importClause := node.AsJSDocImportTag().ImportClause; importClause != nil { - return importClause.AsImportClause().IsTypeOnly + return importClause.AsImportClause().IsTypeOnly() } } return false @@ -3509,9 +3514,9 @@ func IsTypeDeclaration(node *Node) bool { case KindTypeParameter, KindClassDeclaration, KindInterfaceDeclaration, KindTypeAliasDeclaration, KindJSTypeAliasDeclaration, KindEnumDeclaration: return true case KindImportClause: - return node.AsImportClause().IsTypeOnly + return node.AsImportClause().PhaseModifier == KindTypeKeyword case KindImportSpecifier: - return node.Parent.Parent.AsImportClause().IsTypeOnly + return node.Parent.Parent.AsImportClause().PhaseModifier == KindTypeKeyword case KindExportSpecifier: return node.Parent.Parent.AsExportDeclaration().IsTypeOnly default: diff --git a/internal/checker/checker.go b/internal/checker/checker.go index c6f59fa216..0d5f42bc19 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -7015,7 +7015,7 @@ func (c *Checker) getQuickTypeOfExpression(node *ast.Node) *Type { return nil // Optimize for the common case of a call to a function with a single non-generic call // signature where we can just fetch the return type without checking the arguments. - case ast.IsCallExpression(expr) && expr.Expression().Kind != ast.KindSuperKeyword && !ast.IsRequireCall(expr, true /*requireStringLiteralLikeArgument*/) && !c.isSymbolOrSymbolForCall(expr): + case ast.IsCallExpression(expr) && expr.Expression().Kind != ast.KindSuperKeyword && !ast.IsRequireCall(expr, true /*requireStringLiteralLikeArgument*/) && !c.isSymbolOrSymbolForCall(expr) && !ast.IsImportCall(expr): if isCallChain(expr) { return c.getReturnTypeOfSingleNonGenericSignatureOfCallChain(expr) } @@ -7411,7 +7411,7 @@ func (c *Checker) checkExpressionWorker(node *ast.Node, checkMode CheckMode) *Ty case ast.KindElementAccessExpression: return c.checkIndexedAccess(node, checkMode) case ast.KindCallExpression: - if node.AsCallExpression().Expression.Kind == ast.KindImportKeyword { + if ast.IsImportCall(node) { return c.checkImportCallExpression(node) } return c.checkCallExpression(node, checkMode) @@ -10304,6 +10304,10 @@ func (c *Checker) checkMetaProperty(node *ast.Node) *Type { case ast.KindNewKeyword: return c.checkNewTargetMetaProperty(node) case ast.KindImportKeyword: + if node.Name().Text() == "defer" { + debug.Assert(!ast.IsCallExpression(node.Parent) || node.Parent.AsCallExpression().Expression != node, "Trying to get the type of `import.defer` in `import.defer(...)`") + return c.errorType + } return c.checkImportMetaProperty(node) } panic("Unhandled case in checkMetaProperty") @@ -30387,7 +30391,12 @@ func (c *Checker) getSymbolAtLocation(node *ast.Node, ignoreErrors bool) *ast.Sy return parent.Symbol() } return nil - case ast.KindImportKeyword, ast.KindNewKeyword: + case ast.KindImportKeyword: + if ast.IsMetaProperty(node.Parent) && node.Parent.Text() == "defer" { + return nil + } + fallthrough + case ast.KindNewKeyword: if ast.IsMetaProperty(parent) { return c.checkMetaPropertyKeyword(parent).symbol } diff --git a/internal/checker/grammarchecks.go b/internal/checker/grammarchecks.go index 62330c5ebf..75943613bf 100644 --- a/internal/checker/grammarchecks.go +++ b/internal/checker/grammarchecks.go @@ -1881,7 +1881,17 @@ func (c *Checker) checkGrammarMetaProperty(node *ast.MetaProperty) bool { } case ast.KindImportKeyword: if nameText != "meta" { - return c.grammarErrorOnNode(nodeName, diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, nameText, scanner.TokenToString(node.KeywordToken), "meta") + isCallee := ast.IsCallExpression(node.Parent) && node.Parent.AsCallExpression().Expression == node.AsNode() + if nameText == "defer" { + if !isCallee { + return c.grammarErrorAtPos(node.AsNode(), node.AsNode().End(), 0, diagnostics.X_0_expected, "(") + } + } else { + if isCallee { + return c.grammarErrorOnNode(nodeName, diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer, nameText) + } + return c.grammarErrorOnNode(nodeName, diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, nameText, scanner.TokenToString(node.KeywordToken), "meta") + } } } @@ -2156,11 +2166,24 @@ func (c *Checker) checkGrammarBigIntLiteral(node *ast.BigIntLiteral) bool { } func (c *Checker) checkGrammarImportClause(node *ast.ImportClause) bool { - if node.Flags&ast.NodeFlagsJSDoc == 0 && node.IsTypeOnly && node.Name() != nil && node.NamedBindings != nil { - return c.grammarErrorOnNode(&node.Node, diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both) - } - if node.IsTypeOnly && node.NamedBindings != nil && node.NamedBindings.Kind == ast.KindNamedImports { - return c.checkGrammarTypeOnlyNamedImportsOrExports(node.NamedBindings) + switch node.PhaseModifier { + case ast.KindTypeKeyword: + if node.Flags&ast.NodeFlagsJSDoc == 0 && node.Name() != nil && node.NamedBindings != nil { + return c.grammarErrorOnNode(&node.Node, diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both) + } + if node.NamedBindings != nil && node.NamedBindings.Kind == ast.KindNamedImports { + return c.checkGrammarTypeOnlyNamedImportsOrExports(node.NamedBindings) + } + case ast.KindDeferKeyword: + if node.Name() != nil { + return c.grammarErrorOnNode(&node.Node, diagnostics.Default_imports_are_not_allowed_in_a_deferred_import) + } + if node.NamedBindings != nil && node.NamedBindings.Kind == ast.KindNamedImports { + return c.grammarErrorOnNode(&node.Node, diagnostics.Named_imports_are_not_allowed_in_a_deferred_import) + } + if c.moduleKind != core.ModuleKindESNext && c.moduleKind != core.ModuleKindPreserve { + return c.grammarErrorOnNode(&node.Node, diagnostics.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve) + } } return false } @@ -2197,7 +2220,11 @@ func (c *Checker) checkGrammarImportCallExpression(node *ast.Node) bool { return c.grammarErrorOnNode(node, getVerbatimModuleSyntaxErrorMessage(node)) } - if c.moduleKind == core.ModuleKindES2015 { + if node.Expression().Kind == ast.KindMetaProperty { + if c.moduleKind != core.ModuleKindESNext && c.moduleKind != core.ModuleKindPreserve { + return c.grammarErrorOnNode(node, diagnostics.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve) + } + } else if c.moduleKind == core.ModuleKindES2015 { return c.grammarErrorOnNode(node, diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_node18_node20_or_nodenext) } diff --git a/internal/ls/autoimportfixes.go b/internal/ls/autoimportfixes.go index ca5c05eda4..4aa8104bb1 100644 --- a/internal/ls/autoimportfixes.go +++ b/internal/ls/autoimportfixes.go @@ -63,7 +63,7 @@ func (ct *changeTracker) doAddExistingFix( importClause := clause.AsImportClause() // promoteFromTypeOnly = true if we need to promote the entire original clause from type only - promoteFromTypeOnly := importClause.IsTypeOnly && core.Some(append(namedImports, defaultImport), func(i *Import) bool { + promoteFromTypeOnly := importClause.IsTypeOnly() && core.Some(append(namedImports, defaultImport), func(i *Import) bool { if i == nil { return false } @@ -89,7 +89,7 @@ func (ct *changeTracker) doAddExistingFix( identifier = ct.NodeFactory.NewIdentifier(namedImport.propertyName).AsIdentifier().AsNode() } return ct.NodeFactory.NewImportSpecifier( - (!importClause.IsTypeOnly || promoteFromTypeOnly) && shouldUseTypeOnly(namedImport.addAsTypeOnly, preferences), + (!importClause.IsTypeOnly() || promoteFromTypeOnly) && shouldUseTypeOnly(namedImport.addAsTypeOnly, preferences), identifier, ct.NodeFactory.NewIdentifier(namedImport.name), ) @@ -245,7 +245,7 @@ func (ct *changeTracker) makeImport(defaultImport *ast.IdentifierNode, namedImpo } var importClause *ast.Node if defaultImport != nil || newNamedImports != nil { - importClause = ct.NodeFactory.NewImportClause(isTypeOnly, defaultImport, newNamedImports) + importClause = ct.NodeFactory.NewImportClause(core.IfElse(isTypeOnly, ast.KindTypeKeyword, ast.KindUnknown), defaultImport, newNamedImports) } return ct.NodeFactory.NewImportDeclaration( /*modifiers*/ nil, importClause, moduleSpecifier, nil /*attributes*/) } @@ -300,7 +300,7 @@ func (ct *changeTracker) getNewImports( declaration = ct.NodeFactory.NewImportDeclaration( /*modifiers*/ nil, ct.NodeFactory.NewImportClause( - shouldUseTypeOnly(namespaceLikeImport.addAsTypeOnly, preferences), + /*phaseModifier*/ core.IfElse(shouldUseTypeOnly(namespaceLikeImport.addAsTypeOnly, preferences), ast.KindTypeKeyword, ast.KindUnknown), /*name*/ nil, ct.NodeFactory.NewNamespaceImport(ct.NodeFactory.NewIdentifier(namespaceLikeImport.name)), ), diff --git a/internal/ls/autoimports.go b/internal/ls/autoimports.go index 7c1d586a28..b61abc8dc0 100644 --- a/internal/ls/autoimports.go +++ b/internal/ls/autoimports.go @@ -941,7 +941,7 @@ func (info *FixAddToExistingImportInfo) getAddToExistingImportFix(isValidTypeOnl namedBindings := importClause.NamedBindings // A type-only import may not have both a default and named imports, so the only way a name can // be added to an existing type-only import is adding a named import to existing named bindings. - if importClause.IsTypeOnly && !(info.importKind == ImportKindNamed && namedBindings != nil) { + if importClause.IsTypeOnly() && !(info.importKind == ImportKindNamed && namedBindings != nil) { return nil } diff --git a/internal/parser/jsdoc.go b/internal/parser/jsdoc.go index f3f7fd6912..db6a24f4d8 100644 --- a/internal/parser/jsdoc.go +++ b/internal/parser/jsdoc.go @@ -829,7 +829,7 @@ func (p *Parser) parseImportTag(start int, tagName *ast.IdentifierNode, margin i identifier = p.parseIdentifier() } - importClause := p.tryParseImportClause(identifier, afterImportTagPos, true /*isTypeOnly*/, true /*skipJSDocLeadingAsterisks*/) + importClause := p.tryParseImportClause(identifier, afterImportTagPos, ast.KindTypeKeyword, true /*skipJSDocLeadingAsterisks*/) moduleSpecifier := p.parseModuleSpecifier() attributes := p.tryParseImportAttributes() diff --git a/internal/parser/parser.go b/internal/parser/parser.go index f9d6d814df..ef87829bb6 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -2100,22 +2100,36 @@ func (p *Parser) parseImportDeclarationOrImportEqualsDeclaration(pos int, hasJSD if p.isIdentifier() { identifier = p.parseIdentifier() } - isTypeOnly := false + phaseModifier := ast.KindUnknown if identifier != nil && identifier.AsIdentifier().Text == "type" && (p.token != ast.KindFromKeyword || p.isIdentifier() && p.lookAhead((*Parser).nextTokenIsFromKeywordOrEqualsToken)) && (p.isIdentifier() || p.tokenAfterImportDefinitelyProducesImportDeclaration()) { - isTypeOnly = true + phaseModifier = ast.KindTypeKeyword identifier = nil if p.isIdentifier() { identifier = p.parseIdentifier() } + } else if identifier != nil && identifier.AsIdentifier().Text == "defer" { + var shouldParseAsDeferModifier bool + if p.token == ast.KindFromKeyword { + shouldParseAsDeferModifier = !p.lookAhead((*Parser).nextTokenIsTokenStringLiteral) + } else { + shouldParseAsDeferModifier = p.token != ast.KindCommaToken && p.token != ast.KindEqualsToken + } + if shouldParseAsDeferModifier { + phaseModifier = ast.KindDeferKeyword + identifier = nil + if p.isIdentifier() { + identifier = p.parseIdentifier() + } + } } - if identifier != nil && !p.tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() { - importEquals := p.checkJSSyntax(p.parseImportEqualsDeclaration(pos, hasJSDoc, modifiers, identifier, isTypeOnly)) + if identifier != nil && !p.tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() && phaseModifier != ast.KindDeferKeyword { + importEquals := p.checkJSSyntax(p.parseImportEqualsDeclaration(pos, hasJSDoc, modifiers, identifier, phaseModifier == ast.KindTypeKeyword)) p.statementHasAwaitIdentifier = saveHasAwaitIdentifier // Import= declaration is always parsed in an Await context, no need to reparse return importEquals } - importClause := p.tryParseImportClause(identifier, afterImportPos, isTypeOnly, false /*skipJSDocLeadingAsterisks*/) + importClause := p.tryParseImportClause(identifier, afterImportPos, phaseModifier, false /*skipJSDocLeadingAsterisks*/) p.statementHasAwaitIdentifier = saveHasAwaitIdentifier // import clause is always parsed in an Await context moduleSpecifier := p.parseModuleSpecifier() attributes := p.tryParseImportAttributes() @@ -2180,19 +2194,19 @@ func (p *Parser) parseModuleSpecifier() *ast.Expression { return p.parseExpression() } -func (p *Parser) tryParseImportClause(identifier *ast.Node, pos int, isTypeOnly bool, skipJSDocLeadingAsterisks bool) *ast.Node { +func (p *Parser) tryParseImportClause(identifier *ast.Node, pos int, phaseModifier ast.Kind, skipJSDocLeadingAsterisks bool) *ast.Node { // ImportDeclaration: // import ImportClause from ModuleSpecifier ; // import ModuleSpecifier; if identifier != nil || p.token == ast.KindAsteriskToken || p.token == ast.KindOpenBraceToken { - importClause := p.parseImportClause(identifier, pos, isTypeOnly, skipJSDocLeadingAsterisks) + importClause := p.parseImportClause(identifier, pos, phaseModifier, skipJSDocLeadingAsterisks) p.parseExpected(ast.KindFromKeyword) return importClause } return nil } -func (p *Parser) parseImportClause(identifier *ast.Node, pos int, isTypeOnly bool, skipJSDocLeadingAsterisks bool) *ast.Node { +func (p *Parser) parseImportClause(identifier *ast.Node, pos int, phaseModifier ast.Kind, skipJSDocLeadingAsterisks bool) *ast.Node { // ImportClause: // ImportedDefaultBinding // NameSpaceImport @@ -2216,7 +2230,7 @@ func (p *Parser) parseImportClause(identifier *ast.Node, pos int, isTypeOnly boo p.scanner.SetSkipJSDocLeadingAsterisks(false) } } - result := p.finishNode(p.factory.NewImportClause(isTypeOnly, identifier, namedBindings), pos) + result := p.finishNode(p.factory.NewImportClause(phaseModifier, identifier, namedBindings), pos) p.statementHasAwaitIdentifier = saveHasAwaitIdentifier return result } @@ -5016,7 +5030,13 @@ func (p *Parser) parseLeftHandSideExpressionOrHigher() *ast.Expression { p.nextToken() // advance past the 'import' p.nextToken() // advance past the dot expression = p.finishNode(p.factory.NewMetaProperty(ast.KindImportKeyword, p.parseIdentifierName()), pos) - p.sourceFlags |= ast.NodeFlagsPossiblyContainsImportMeta + if expression.Text() == "defer" { + if p.token == ast.KindOpenParenToken || p.token == ast.KindLessThanToken { + p.sourceFlags |= ast.NodeFlagsPossiblyContainsDynamicImport + } + } else { + p.sourceFlags |= ast.NodeFlagsPossiblyContainsImportMeta + } } else { expression = p.parseMemberExpressionOrHigher() } @@ -5879,7 +5899,7 @@ func (p *Parser) isStartOfStatement() bool { case ast.KindConstKeyword, ast.KindExportKeyword: return p.isStartOfDeclaration() case ast.KindAsyncKeyword, ast.KindDeclareKeyword, ast.KindInterfaceKeyword, ast.KindModuleKeyword, ast.KindNamespaceKeyword, - ast.KindTypeKeyword, ast.KindGlobalKeyword: + ast.KindTypeKeyword, ast.KindGlobalKeyword, ast.KindDeferKeyword: // When these don't start a declaration, they're an identifier in an expression statement return true case ast.KindAccessorKeyword, ast.KindPublicKeyword, ast.KindPrivateKeyword, ast.KindProtectedKeyword, ast.KindStaticKeyword, @@ -5928,7 +5948,7 @@ func (p *Parser) scanStartOfDeclaration() bool { // I {} // // could be legal, it would add complexity for very little gain. - case ast.KindInterfaceKeyword, ast.KindTypeKeyword: + case ast.KindInterfaceKeyword, ast.KindTypeKeyword, ast.KindDeferKeyword: return p.nextTokenIsIdentifierOnSameLine() case ast.KindModuleKeyword, ast.KindNamespaceKeyword: return p.nextTokenIsIdentifierOrStringLiteralOnSameLine() @@ -5951,7 +5971,7 @@ func (p *Parser) scanStartOfDeclaration() bool { return p.token == ast.KindOpenBraceToken || p.token == ast.KindIdentifier || p.token == ast.KindExportKeyword case ast.KindImportKeyword: p.nextToken() - return p.token == ast.KindStringLiteral || p.token == ast.KindAsteriskToken || p.token == ast.KindOpenBraceToken || tokenIsIdentifierOrKeyword(p.token) + return p.token == ast.KindDeferKeyword || p.token == ast.KindStringLiteral || p.token == ast.KindAsteriskToken || p.token == ast.KindOpenBraceToken || tokenIsIdentifierOrKeyword(p.token) case ast.KindExportKeyword: p.nextToken() if p.token == ast.KindEqualsToken || p.token == ast.KindAsteriskToken || p.token == ast.KindOpenBraceToken || diff --git a/internal/parser/reparser.go b/internal/parser/reparser.go index 326bbc12e3..446e461985 100644 --- a/internal/parser/reparser.go +++ b/internal/parser/reparser.go @@ -116,7 +116,7 @@ func (p *Parser) reparseUnhosted(tag *ast.Node, parent *ast.Node, jsDoc *ast.Nod break } importClause := p.factory.DeepCloneReparse(importTag.ImportClause) - importClause.AsImportClause().IsTypeOnly = true + importClause.AsImportClause().PhaseModifier = ast.KindTypeKeyword importDeclaration := p.factory.NewJSImportDeclaration( p.factory.DeepCloneReparseModifiers(importTag.Modifiers()), importClause, diff --git a/internal/printer/printer.go b/internal/printer/printer.go index f9581f9e10..5020826015 100644 --- a/internal/printer/printer.go +++ b/internal/printer/printer.go @@ -3661,8 +3661,8 @@ func (p *Printer) emitImportDeclaration(node *ast.ImportDeclaration) { func (p *Printer) emitImportClause(node *ast.ImportClause) { state := p.enterNode(node.AsNode()) - if node.IsTypeOnly { - p.emitToken(ast.KindTypeKeyword, node.Pos(), WriteKindKeyword, node.AsNode()) + if node.PhaseModifier != ast.KindUnknown { + p.emitToken(node.PhaseModifier, node.Pos(), WriteKindKeyword, node.AsNode()) p.writeSpace() } if name := node.Name(); name != nil { diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index ec6efc7b01..58bb1d81c8 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -51,6 +51,7 @@ var textToKeyword = map[string]ast.Kind{ "debugger": ast.KindDebuggerKeyword, "declare": ast.KindDeclareKeyword, "default": ast.KindDefaultKeyword, + "defer": ast.KindDeferKeyword, "delete": ast.KindDeleteKeyword, "do": ast.KindDoKeyword, "else": ast.KindElseKeyword, diff --git a/internal/transformers/declarations/transform.go b/internal/transformers/declarations/transform.go index 02bb0d9d41..6217557d5f 100644 --- a/internal/transformers/declarations/transform.go +++ b/internal/transformers/declarations/transform.go @@ -1666,6 +1666,10 @@ func (tx *DeclarationTransformer) transformImportDeclaration(decl *ast.ImportDec tx.tryGetResolutionModeOverride(decl.Attributes), ) } + phaseModifier := decl.ImportClause.AsImportClause().PhaseModifier + if phaseModifier == ast.KindDeferKeyword { + phaseModifier = ast.KindUnknown + } // The `importClause` visibility corresponds to the default's visibility. var visibleDefaultBinding *ast.Node if decl.ImportClause != nil && decl.ImportClause.Name() != nil && tx.resolver.IsDeclarationVisible(decl.ImportClause) { @@ -1681,7 +1685,7 @@ func (tx *DeclarationTransformer) transformImportDeclaration(decl *ast.ImportDec decl.Modifiers(), tx.Factory().UpdateImportClause( decl.ImportClause.AsImportClause(), - decl.ImportClause.AsImportClause().IsTypeOnly, + phaseModifier, visibleDefaultBinding, /*namedBindings*/ nil, ), @@ -1703,7 +1707,7 @@ func (tx *DeclarationTransformer) transformImportDeclaration(decl *ast.ImportDec decl.Modifiers(), tx.Factory().UpdateImportClause( decl.ImportClause.AsImportClause(), - decl.ImportClause.AsImportClause().IsTypeOnly, + phaseModifier, visibleDefaultBinding, namedBindings, ), @@ -1731,7 +1735,7 @@ func (tx *DeclarationTransformer) transformImportDeclaration(decl *ast.ImportDec decl.Modifiers(), tx.Factory().UpdateImportClause( decl.ImportClause.AsImportClause(), - decl.ImportClause.AsImportClause().IsTypeOnly, + phaseModifier, visibleDefaultBinding, namedImports, ), diff --git a/internal/transformers/jsxtransforms/jsx.go b/internal/transformers/jsxtransforms/jsx.go index 1b8be9984f..3372a23339 100644 --- a/internal/transformers/jsxtransforms/jsx.go +++ b/internal/transformers/jsxtransforms/jsx.go @@ -235,7 +235,7 @@ func (tx *JSXTransformer) visitSourceFile(file *ast.SourceFile) *ast.Node { for importSource, importSpecifiersMap := range tx.utilizedImplicitRuntimeImports { s := tx.Factory().NewImportDeclaration( nil, - tx.Factory().NewImportClause(false, nil, tx.Factory().NewNamedImports(tx.Factory().NewNodeList(getSortedSpecifiers(importSpecifiersMap)))), + tx.Factory().NewImportClause(ast.KindUnknown, nil, tx.Factory().NewNamedImports(tx.Factory().NewNodeList(getSortedSpecifiers(importSpecifiersMap)))), tx.Factory().NewStringLiteral(importSource), nil, ) diff --git a/internal/transformers/moduletransforms/esmodule.go b/internal/transformers/moduletransforms/esmodule.go index 30338a1951..5d32b40664 100644 --- a/internal/transformers/moduletransforms/esmodule.go +++ b/internal/transformers/moduletransforms/esmodule.go @@ -215,8 +215,8 @@ func (tx *ESModuleTransformer) visitExportDeclaration(node *ast.ExportDeclaratio importDecl := tx.Factory().NewImportDeclaration( nil, /*modifiers*/ tx.Factory().NewImportClause( - false, /*isTypeOnly*/ - nil, /*name*/ + ast.KindUnknown, /*phaseModifier*/ + nil, /*name*/ tx.Factory().NewNamespaceImport(synthName), ), updatedModuleSpecifier, @@ -308,8 +308,8 @@ func (tx *ESModuleTransformer) createRequireCall(node *ast.Node /*ImportDeclarat importStatement := tx.Factory().NewImportDeclaration( nil, /*modifiers*/ tx.Factory().NewImportClause( - false, /*isTypeOnly*/ - nil, /*name*/ + ast.KindUnknown, /*phaseModifier*/ + nil, /*name*/ tx.Factory().NewNamedImports( tx.Factory().NewNodeList([]*ast.Node{ tx.Factory().NewImportSpecifier( diff --git a/internal/transformers/moduletransforms/externalmoduleinfo.go b/internal/transformers/moduletransforms/externalmoduleinfo.go index 382aa91c62..5e85d015c3 100644 --- a/internal/transformers/moduletransforms/externalmoduleinfo.go +++ b/internal/transformers/moduletransforms/externalmoduleinfo.go @@ -292,7 +292,7 @@ func createExternalHelpersImportDeclarationIfNeeded(emitContext *printer.EmitCon externalHelpersImportDeclaration := emitContext.Factory.NewImportDeclaration( nil, /*modifiers*/ - emitContext.Factory.NewImportClause(false /*isTypeOnly*/, nil /*name*/, namedBindings), + emitContext.Factory.NewImportClause(ast.KindUnknown /*phaseModifier*/, nil /*name*/, namedBindings), emitContext.Factory.NewStringLiteral(externalHelpersModuleNameText), nil, /*attributes*/ ) diff --git a/internal/transformers/tstransforms/importelision.go b/internal/transformers/tstransforms/importelision.go index df2a5e8f06..81d05e0046 100644 --- a/internal/transformers/tstransforms/importelision.go +++ b/internal/transformers/tstransforms/importelision.go @@ -53,7 +53,7 @@ func (tx *ImportElisionTransformer) visit(node *ast.Node) *ast.Node { // all import bindings were elided return nil } - return tx.Factory().UpdateImportClause(n, false /*isTypeOnly*/, name, namedBindings) + return tx.Factory().UpdateImportClause(n, n.PhaseModifier, name, namedBindings) case ast.KindNamespaceImport: if !tx.shouldEmitAliasDeclaration(node) { // elide unused imports diff --git a/internal/transformers/tstransforms/typeeraser.go b/internal/transformers/tstransforms/typeeraser.go index 79528eb344..f2aadbed97 100644 --- a/internal/transformers/tstransforms/typeeraser.go +++ b/internal/transformers/tstransforms/typeeraser.go @@ -269,7 +269,7 @@ func (tx *TypeEraserTransformer) visit(node *ast.Node) *ast.Node { case ast.KindImportClause: n := node.AsImportClause() - if n.IsTypeOnly { + if n.IsTypeOnly() { // Always elide type-only imports return nil } @@ -279,7 +279,7 @@ func (tx *TypeEraserTransformer) visit(node *ast.Node) *ast.Node { // all import bindings were elided return nil } - return tx.Factory().UpdateImportClause(n, false /*isTypeOnly*/, name, namedBindings) + return tx.Factory().UpdateImportClause(n, n.PhaseModifier, name, namedBindings) case ast.KindNamedImports: n := node.AsNamedImports() diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).errors.txt b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).errors.txt index 047f031b14..bdf61f9266 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).errors.txt @@ -1,5 +1,4 @@ -b.ts(1,1): error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'. -b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? +b.ts(1,1): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ==== a.ts (0 errors) ==== @@ -7,12 +6,10 @@ b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'impo console.log("foo from a"); } -==== b.ts (2 errors) ==== +==== b.ts (1 errors) ==== import.defer("./a.js").then(ns => { - ~~~~~~~~~~~~ -!!! error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'. - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ns.foo(); }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).errors.txt.diff deleted file mode 100644 index f3fc19f962..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).errors.txt.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.dynamicImportDefer(module=commonjs).errors.txt -+++ new.dynamicImportDefer(module=commonjs).errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,1): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+b.ts(1,1): error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'. -+b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - - ==== a.ts (0 errors) ==== -@@= skipped -5, +6 lines =@@ - console.log("foo from a"); - } - --==== b.ts (1 errors) ==== -+==== b.ts (2 errors) ==== - import.defer("./a.js").then(ns => { -- ~~~~~~~~~~~~~~~~~~~~~~ --!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+ ~~~~~~~~~~~~ -+!!! error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'. -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - ns.foo(); - }); - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).symbols b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).symbols index d743f863f2..291ceeb4fb 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).symbols +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).symbols @@ -12,10 +12,15 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { +>import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) ns.foo(); +>ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) +>foo : Symbol(foo, Decl(a.ts, 0, 0)) }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).symbols.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).symbols.diff deleted file mode 100644 index bb6a38359c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).symbols.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.dynamicImportDefer(module=commonjs).symbols -+++ new.dynamicImportDefer(module=commonjs).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) -->"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) -->then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) - - ns.foo(); -->ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) -->foo : Symbol(foo, Decl(a.ts, 0, 0)) - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).types b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).types index 5c941e8ec2..d1ab662fb2 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).types +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).types @@ -14,21 +14,20 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { ->import.defer("./a.js").then(ns => { ns.foo();}) : any ->import.defer("./a.js").then : any ->import.defer("./a.js") : any ->import.defer : any +>import.defer("./a.js").then(ns => { ns.foo();}) : Promise +>import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>import.defer("./a.js") : Promise >defer : any >"./a.js" : "./a.js" ->then : any ->ns => { ns.foo();} : (ns: any) => void ->ns : any +>then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>ns => { ns.foo();} : (ns: typeof import("a")) => void +>ns : typeof import("a") ns.foo(); ->ns.foo() : any ->ns.foo : any ->ns : any ->foo : any +>ns.foo() : void +>ns.foo : () => void +>ns : typeof import("a") +>foo : () => void }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).types.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).types.diff deleted file mode 100644 index 6a9581c019..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=commonjs).types.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.dynamicImportDefer(module=commonjs).types -+++ new.dynamicImportDefer(module=commonjs).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then(ns => { ns.foo();}) : Promise -->import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->import.defer("./a.js") : Promise -+>import.defer("./a.js").then(ns => { ns.foo();}) : any -+>import.defer("./a.js").then : any -+>import.defer("./a.js") : any -+>import.defer : any - >defer : any - >"./a.js" : "./a.js" -->then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->ns => { ns.foo();} : (ns: typeof import("a")) => void -->ns : typeof import("a") -+>then : any -+>ns => { ns.foo();} : (ns: any) => void -+>ns : any - - ns.foo(); -->ns.foo() : void -->ns.foo : () => void -->ns : typeof import("a") -->foo : () => void -+>ns.foo() : any -+>ns.foo : any -+>ns : any -+>foo : any - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).errors.txt b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).errors.txt index 047f031b14..bdf61f9266 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).errors.txt @@ -1,5 +1,4 @@ -b.ts(1,1): error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'. -b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? +b.ts(1,1): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ==== a.ts (0 errors) ==== @@ -7,12 +6,10 @@ b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'impo console.log("foo from a"); } -==== b.ts (2 errors) ==== +==== b.ts (1 errors) ==== import.defer("./a.js").then(ns => { - ~~~~~~~~~~~~ -!!! error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'. - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ns.foo(); }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).errors.txt.diff deleted file mode 100644 index 24d6ae79bb..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).errors.txt.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.dynamicImportDefer(module=es2015).errors.txt -+++ new.dynamicImportDefer(module=es2015).errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,1): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+b.ts(1,1): error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'. -+b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - - ==== a.ts (0 errors) ==== -@@= skipped -5, +6 lines =@@ - console.log("foo from a"); - } - --==== b.ts (1 errors) ==== -+==== b.ts (2 errors) ==== - import.defer("./a.js").then(ns => { -- ~~~~~~~~~~~~~~~~~~~~~~ --!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+ ~~~~~~~~~~~~ -+!!! error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'. -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - ns.foo(); - }); - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).symbols b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).symbols index d743f863f2..291ceeb4fb 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).symbols +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).symbols @@ -12,10 +12,15 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { +>import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) ns.foo(); +>ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) +>foo : Symbol(foo, Decl(a.ts, 0, 0)) }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).symbols.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).symbols.diff deleted file mode 100644 index a3e29c41fb..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).symbols.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.dynamicImportDefer(module=es2015).symbols -+++ new.dynamicImportDefer(module=es2015).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) -->"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) -->then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) - - ns.foo(); -->ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) -->foo : Symbol(foo, Decl(a.ts, 0, 0)) - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).types b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).types index 5c941e8ec2..d1ab662fb2 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).types +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).types @@ -14,21 +14,20 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { ->import.defer("./a.js").then(ns => { ns.foo();}) : any ->import.defer("./a.js").then : any ->import.defer("./a.js") : any ->import.defer : any +>import.defer("./a.js").then(ns => { ns.foo();}) : Promise +>import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>import.defer("./a.js") : Promise >defer : any >"./a.js" : "./a.js" ->then : any ->ns => { ns.foo();} : (ns: any) => void ->ns : any +>then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>ns => { ns.foo();} : (ns: typeof import("a")) => void +>ns : typeof import("a") ns.foo(); ->ns.foo() : any ->ns.foo : any ->ns : any ->foo : any +>ns.foo() : void +>ns.foo : () => void +>ns : typeof import("a") +>foo : () => void }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).types.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).types.diff deleted file mode 100644 index 7e6f62019b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2015).types.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.dynamicImportDefer(module=es2015).types -+++ new.dynamicImportDefer(module=es2015).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then(ns => { ns.foo();}) : Promise -->import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->import.defer("./a.js") : Promise -+>import.defer("./a.js").then(ns => { ns.foo();}) : any -+>import.defer("./a.js").then : any -+>import.defer("./a.js") : any -+>import.defer : any - >defer : any - >"./a.js" : "./a.js" -->then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->ns => { ns.foo();} : (ns: typeof import("a")) => void -->ns : typeof import("a") -+>then : any -+>ns => { ns.foo();} : (ns: any) => void -+>ns : any - - ns.foo(); -->ns.foo() : void -->ns.foo : () => void -->ns : typeof import("a") -->foo : () => void -+>ns.foo() : any -+>ns.foo : any -+>ns : any -+>foo : any - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).errors.txt b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).errors.txt index 41ce75c7e9..bdf61f9266 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).errors.txt @@ -1,4 +1,4 @@ -b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? +b.ts(1,1): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ==== a.ts (0 errors) ==== @@ -8,8 +8,8 @@ b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'impo ==== b.ts (1 errors) ==== import.defer("./a.js").then(ns => { - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ns.foo(); }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).errors.txt.diff deleted file mode 100644 index 5911513c5d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).errors.txt.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.dynamicImportDefer(module=es2020).errors.txt -+++ new.dynamicImportDefer(module=es2020).errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,1): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - - ==== a.ts (0 errors) ==== -@@= skipped -7, +7 lines =@@ - - ==== b.ts (1 errors) ==== - import.defer("./a.js").then(ns => { -- ~~~~~~~~~~~~~~~~~~~~~~ --!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - ns.foo(); - }); - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).symbols b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).symbols index d743f863f2..291ceeb4fb 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).symbols +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).symbols @@ -12,10 +12,15 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { +>import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) ns.foo(); +>ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) +>foo : Symbol(foo, Decl(a.ts, 0, 0)) }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).symbols.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).symbols.diff deleted file mode 100644 index 2d2914a2bc..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).symbols.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.dynamicImportDefer(module=es2020).symbols -+++ new.dynamicImportDefer(module=es2020).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) -->"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) -->then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) - - ns.foo(); -->ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) -->foo : Symbol(foo, Decl(a.ts, 0, 0)) - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).types b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).types index 5c941e8ec2..d1ab662fb2 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).types +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).types @@ -14,21 +14,20 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { ->import.defer("./a.js").then(ns => { ns.foo();}) : any ->import.defer("./a.js").then : any ->import.defer("./a.js") : any ->import.defer : any +>import.defer("./a.js").then(ns => { ns.foo();}) : Promise +>import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>import.defer("./a.js") : Promise >defer : any >"./a.js" : "./a.js" ->then : any ->ns => { ns.foo();} : (ns: any) => void ->ns : any +>then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>ns => { ns.foo();} : (ns: typeof import("a")) => void +>ns : typeof import("a") ns.foo(); ->ns.foo() : any ->ns.foo : any ->ns : any ->foo : any +>ns.foo() : void +>ns.foo : () => void +>ns : typeof import("a") +>foo : () => void }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).types.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).types.diff deleted file mode 100644 index c580a9654b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=es2020).types.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.dynamicImportDefer(module=es2020).types -+++ new.dynamicImportDefer(module=es2020).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then(ns => { ns.foo();}) : Promise -->import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->import.defer("./a.js") : Promise -+>import.defer("./a.js").then(ns => { ns.foo();}) : any -+>import.defer("./a.js").then : any -+>import.defer("./a.js") : any -+>import.defer : any - >defer : any - >"./a.js" : "./a.js" -->then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->ns => { ns.foo();} : (ns: typeof import("a")) => void -->ns : typeof import("a") -+>then : any -+>ns => { ns.foo();} : (ns: any) => void -+>ns : any - - ns.foo(); -->ns.foo() : void -->ns.foo : () => void -->ns : typeof import("a") -->foo : () => void -+>ns.foo() : any -+>ns.foo : any -+>ns : any -+>foo : any - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).errors.txt b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).errors.txt deleted file mode 100644 index 41ce75c7e9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).errors.txt +++ /dev/null @@ -1,15 +0,0 @@ -b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - -==== a.ts (0 errors) ==== - export function foo() { - console.log("foo from a"); - } - -==== b.ts (1 errors) ==== - import.defer("./a.js").then(ns => { - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - ns.foo(); - }); - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).errors.txt.diff deleted file mode 100644 index 08f576580b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).errors.txt.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.dynamicImportDefer(module=esnext).errors.txt -+++ new.dynamicImportDefer(module=esnext).errors.txt -@@= skipped -0, +0 lines =@@ -- -+b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -+ -+ -+==== a.ts (0 errors) ==== -+ export function foo() { -+ console.log("foo from a"); -+ } -+ -+==== b.ts (1 errors) ==== -+ import.defer("./a.js").then(ns => { -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -+ ns.foo(); -+ }); -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).symbols b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).symbols index d743f863f2..291ceeb4fb 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).symbols +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).symbols @@ -12,10 +12,15 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { +>import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) ns.foo(); +>ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) +>foo : Symbol(foo, Decl(a.ts, 0, 0)) }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).symbols.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).symbols.diff deleted file mode 100644 index 0ab0a2ea2c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).symbols.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.dynamicImportDefer(module=esnext).symbols -+++ new.dynamicImportDefer(module=esnext).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) -->"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) -->then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) - - ns.foo(); -->ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) -->foo : Symbol(foo, Decl(a.ts, 0, 0)) - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).types b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).types index 5c941e8ec2..d1ab662fb2 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).types +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).types @@ -14,21 +14,20 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { ->import.defer("./a.js").then(ns => { ns.foo();}) : any ->import.defer("./a.js").then : any ->import.defer("./a.js") : any ->import.defer : any +>import.defer("./a.js").then(ns => { ns.foo();}) : Promise +>import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>import.defer("./a.js") : Promise >defer : any >"./a.js" : "./a.js" ->then : any ->ns => { ns.foo();} : (ns: any) => void ->ns : any +>then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>ns => { ns.foo();} : (ns: typeof import("a")) => void +>ns : typeof import("a") ns.foo(); ->ns.foo() : any ->ns.foo : any ->ns : any ->foo : any +>ns.foo() : void +>ns.foo : () => void +>ns : typeof import("a") +>foo : () => void }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).types.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).types.diff deleted file mode 100644 index b298869fa2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=esnext).types.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.dynamicImportDefer(module=esnext).types -+++ new.dynamicImportDefer(module=esnext).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then(ns => { ns.foo();}) : Promise -->import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->import.defer("./a.js") : Promise -+>import.defer("./a.js").then(ns => { ns.foo();}) : any -+>import.defer("./a.js").then : any -+>import.defer("./a.js") : any -+>import.defer : any - >defer : any - >"./a.js" : "./a.js" -->then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->ns => { ns.foo();} : (ns: typeof import("a")) => void -->ns : typeof import("a") -+>then : any -+>ns => { ns.foo();} : (ns: any) => void -+>ns : any - - ns.foo(); -->ns.foo() : void -->ns.foo : () => void -->ns : typeof import("a") -->foo : () => void -+>ns.foo() : any -+>ns.foo : any -+>ns : any -+>foo : any - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).errors.txt index 5e61810e78..bdf61f9266 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).errors.txt @@ -1,5 +1,4 @@ -b.ts(1,1): error TS1470: The 'import.meta' meta-property is not allowed in files which will build into CommonJS output. -b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? +b.ts(1,1): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ==== a.ts (0 errors) ==== @@ -7,12 +6,10 @@ b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'impo console.log("foo from a"); } -==== b.ts (2 errors) ==== +==== b.ts (1 errors) ==== import.defer("./a.js").then(ns => { - ~~~~~~~~~~~~ -!!! error TS1470: The 'import.meta' meta-property is not allowed in files which will build into CommonJS output. - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ns.foo(); }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).errors.txt.diff deleted file mode 100644 index 2bb7e40d7d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).errors.txt.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.dynamicImportDefer(module=nodenext).errors.txt -+++ new.dynamicImportDefer(module=nodenext).errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,1): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+b.ts(1,1): error TS1470: The 'import.meta' meta-property is not allowed in files which will build into CommonJS output. -+b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - - ==== a.ts (0 errors) ==== -@@= skipped -5, +6 lines =@@ - console.log("foo from a"); - } - --==== b.ts (1 errors) ==== -+==== b.ts (2 errors) ==== - import.defer("./a.js").then(ns => { -- ~~~~~~~~~~~~~~~~~~~~~~ --!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+ ~~~~~~~~~~~~ -+!!! error TS1470: The 'import.meta' meta-property is not allowed in files which will build into CommonJS output. -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - ns.foo(); - }); - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).symbols b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).symbols index d743f863f2..291ceeb4fb 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).symbols +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).symbols @@ -12,10 +12,15 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { +>import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) ns.foo(); +>ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) +>foo : Symbol(foo, Decl(a.ts, 0, 0)) }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).symbols.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).symbols.diff deleted file mode 100644 index bd20c32b6c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).symbols.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.dynamicImportDefer(module=nodenext).symbols -+++ new.dynamicImportDefer(module=nodenext).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) -->"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) -->then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) - - ns.foo(); -->ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) -->foo : Symbol(foo, Decl(a.ts, 0, 0)) - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).types b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).types index 5c941e8ec2..977b76f603 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).types +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).types @@ -14,21 +14,20 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { ->import.defer("./a.js").then(ns => { ns.foo();}) : any ->import.defer("./a.js").then : any ->import.defer("./a.js") : any ->import.defer : any +>import.defer("./a.js").then(ns => { ns.foo();}) : Promise +>import.defer("./a.js").then : (onfulfilled?: (value: { foo(): void; default: typeof import("a"); }) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>import.defer("./a.js") : Promise<{ foo(): void; default: typeof import("a"); }> >defer : any >"./a.js" : "./a.js" ->then : any ->ns => { ns.foo();} : (ns: any) => void ->ns : any +>then : (onfulfilled?: (value: { foo(): void; default: typeof import("a"); }) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>ns => { ns.foo();} : (ns: { foo(): void; default: typeof import("a"); }) => void +>ns : { foo(): void; default: typeof import("a"); } ns.foo(); ->ns.foo() : any ->ns.foo : any ->ns : any ->foo : any +>ns.foo() : void +>ns.foo : () => void +>ns : { foo(): void; default: typeof import("a"); } +>foo : () => void }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).types.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).types.diff deleted file mode 100644 index 0bd2ede9a5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=nodenext).types.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.dynamicImportDefer(module=nodenext).types -+++ new.dynamicImportDefer(module=nodenext).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then(ns => { ns.foo();}) : Promise -->import.defer("./a.js").then : (onfulfilled?: (value: { foo(): void; default: typeof import("a"); }) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->import.defer("./a.js") : Promise<{ foo(): void; default: typeof import("a"); }> -+>import.defer("./a.js").then(ns => { ns.foo();}) : any -+>import.defer("./a.js").then : any -+>import.defer("./a.js") : any -+>import.defer : any - >defer : any - >"./a.js" : "./a.js" -->then : (onfulfilled?: (value: { foo(): void; default: typeof import("a"); }) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->ns => { ns.foo();} : (ns: { foo(): void; default: typeof import("a"); }) => void -->ns : { foo(): void; default: typeof import("a"); } -+>then : any -+>ns => { ns.foo();} : (ns: any) => void -+>ns : any - - ns.foo(); -->ns.foo() : void -->ns.foo : () => void -->ns : { foo(): void; default: typeof import("a"); } -->foo : () => void -+>ns.foo() : any -+>ns.foo : any -+>ns : any -+>foo : any - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).errors.txt b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).errors.txt deleted file mode 100644 index 41ce75c7e9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).errors.txt +++ /dev/null @@ -1,15 +0,0 @@ -b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - -==== a.ts (0 errors) ==== - export function foo() { - console.log("foo from a"); - } - -==== b.ts (1 errors) ==== - import.defer("./a.js").then(ns => { - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - ns.foo(); - }); - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).errors.txt.diff deleted file mode 100644 index c4884f20f1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).errors.txt.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.dynamicImportDefer(module=preserve).errors.txt -+++ new.dynamicImportDefer(module=preserve).errors.txt -@@= skipped -0, +0 lines =@@ -- -+b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -+ -+ -+==== a.ts (0 errors) ==== -+ export function foo() { -+ console.log("foo from a"); -+ } -+ -+==== b.ts (1 errors) ==== -+ import.defer("./a.js").then(ns => { -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -+ ns.foo(); -+ }); -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).symbols b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).symbols index d743f863f2..291ceeb4fb 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).symbols +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).symbols @@ -12,10 +12,15 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { +>import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) ns.foo(); +>ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) >ns : Symbol(ns, Decl(b.ts, 0, 28)) +>foo : Symbol(foo, Decl(a.ts, 0, 0)) }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).symbols.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).symbols.diff deleted file mode 100644 index b83e079ff0..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).symbols.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.dynamicImportDefer(module=preserve).symbols -+++ new.dynamicImportDefer(module=preserve).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) -->"./a.js" : Symbol("a", Decl(a.ts, 0, 0)) -->then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) - - ns.foo(); -->ns.foo : Symbol(foo, Decl(a.ts, 0, 0)) - >ns : Symbol(ns, Decl(b.ts, 0, 28)) -->foo : Symbol(foo, Decl(a.ts, 0, 0)) - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).types b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).types index 5c941e8ec2..d1ab662fb2 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).types +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).types @@ -14,21 +14,20 @@ export function foo() { === b.ts === import.defer("./a.js").then(ns => { ->import.defer("./a.js").then(ns => { ns.foo();}) : any ->import.defer("./a.js").then : any ->import.defer("./a.js") : any ->import.defer : any +>import.defer("./a.js").then(ns => { ns.foo();}) : Promise +>import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>import.defer("./a.js") : Promise >defer : any >"./a.js" : "./a.js" ->then : any ->ns => { ns.foo();} : (ns: any) => void ->ns : any +>then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>ns => { ns.foo();} : (ns: typeof import("a")) => void +>ns : typeof import("a") ns.foo(); ->ns.foo() : any ->ns.foo : any ->ns : any ->foo : any +>ns.foo() : void +>ns.foo : () => void +>ns : typeof import("a") +>foo : () => void }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).types.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).types.diff deleted file mode 100644 index aca1c77160..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDefer(module=preserve).types.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.dynamicImportDefer(module=preserve).types -+++ new.dynamicImportDefer(module=preserve).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import.defer("./a.js").then(ns => { -->import.defer("./a.js").then(ns => { ns.foo();}) : Promise -->import.defer("./a.js").then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->import.defer("./a.js") : Promise -+>import.defer("./a.js").then(ns => { ns.foo();}) : any -+>import.defer("./a.js").then : any -+>import.defer("./a.js") : any -+>import.defer : any - >defer : any - >"./a.js" : "./a.js" -->then : (onfulfilled?: (value: typeof import("a")) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise -->ns => { ns.foo();} : (ns: typeof import("a")) => void -->ns : typeof import("a") -+>then : any -+>ns => { ns.foo();} : (ns: any) => void -+>ns : any - - ns.foo(); -->ns.foo() : void -->ns.foo : () => void -->ns : typeof import("a") -->foo : () => void -+>ns.foo() : any -+>ns.foo : any -+>ns : any -+>foo : any - - }); diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDeferInvalidStandalone.errors.txt b/testdata/baselines/reference/submodule/conformance/dynamicImportDeferInvalidStandalone.errors.txt index 444384fb22..fb28ea715a 100644 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDeferInvalidStandalone.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/dynamicImportDeferInvalidStandalone.errors.txt @@ -1,22 +1,22 @@ -b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -b.ts(3,9): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -b.ts(5,17): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -b.ts(7,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? +b.ts(1,13): error TS1005: '(' expected. +b.ts(3,14): error TS1005: '(' expected. +b.ts(5,22): error TS1005: '(' expected. +b.ts(7,13): error TS1005: '(' expected. ==== b.ts (4 errors) ==== import.defer; - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? + +!!! error TS1005: '(' expected. (import.defer)("a"); - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? + +!!! error TS1005: '(' expected. Function(import.defer); - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? + +!!! error TS1005: '(' expected. import.defer - ~~~~~ -!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? \ No newline at end of file + +!!! error TS1005: '(' expected. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dynamicImportDeferInvalidStandalone.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/dynamicImportDeferInvalidStandalone.errors.txt.diff deleted file mode 100644 index b61a6a6ae3..0000000000 --- a/testdata/baselines/reference/submodule/conformance/dynamicImportDeferInvalidStandalone.errors.txt.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.dynamicImportDeferInvalidStandalone.errors.txt -+++ new.dynamicImportDeferInvalidStandalone.errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,13): error TS1005: '(' expected. --b.ts(3,14): error TS1005: '(' expected. --b.ts(5,22): error TS1005: '(' expected. --b.ts(7,13): error TS1005: '(' expected. -+b.ts(1,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -+b.ts(3,9): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -+b.ts(5,17): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? -+b.ts(7,8): error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - - ==== b.ts (4 errors) ==== - import.defer; -- --!!! error TS1005: '(' expected. -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - (import.defer)("a"); -- --!!! error TS1005: '(' expected. -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - Function(import.defer); -- --!!! error TS1005: '(' expected. -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - import.defer -- --!!! error TS1005: '(' expected. -+ ~~~~~ -+!!! error TS17012: 'defer' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferComments.errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferComments.errors.txt index ff4f566096..56b486f834 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferComments.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferComments.errors.txt @@ -1,26 +1,11 @@ -b.ts(1,32): error TS1005: '=' expected. -b.ts(1,40): error TS2304: Cannot find name 'as'. -b.ts(1,49): error TS1005: ';' expected. -b.ts(1,49): error TS2304: Cannot find name 'aNs'. -b.ts(1,59): error TS1434: Unexpected keyword or identifier. -b.ts(1,59): error TS2304: Cannot find name 'from'. +b.ts(1,70): error TS2307: Cannot find module 'a' or its corresponding type declarations. ==== a.ts (0 errors) ==== export {}; -==== b.ts (6 errors) ==== +==== b.ts (1 errors) ==== /*1*/ import /*2*/ defer /*3*/ * /*4*/ as /*5*/ aNs /*6*/ from /*7*/ "a" /*8*/; - ~ -!!! error TS1005: '=' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. - ~~~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'aNs'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. + ~~~ +!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferComments.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferComments.errors.txt.diff index 2a5d428880..9cf02c2d3d 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferComments.errors.txt.diff +++ b/testdata/baselines/reference/submodule/conformance/importDeferComments.errors.txt.diff @@ -2,29 +2,14 @@ +++ new.importDeferComments.errors.txt @@= skipped -0, +0 lines =@@ - -+b.ts(1,32): error TS1005: '=' expected. -+b.ts(1,40): error TS2304: Cannot find name 'as'. -+b.ts(1,49): error TS1005: ';' expected. -+b.ts(1,49): error TS2304: Cannot find name 'aNs'. -+b.ts(1,59): error TS1434: Unexpected keyword or identifier. -+b.ts(1,59): error TS2304: Cannot find name 'from'. ++b.ts(1,70): error TS2307: Cannot find module 'a' or its corresponding type declarations. + + +==== a.ts (0 errors) ==== + export {}; + -+==== b.ts (6 errors) ==== ++==== b.ts (1 errors) ==== + /*1*/ import /*2*/ defer /*3*/ * /*4*/ as /*5*/ aNs /*6*/ from /*7*/ "a" /*8*/; -+ ~ -+!!! error TS1005: '=' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. -+ ~~~ -+!!! error TS1005: ';' expected. -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. ++ ~~~ ++!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferComments.js b/testdata/baselines/reference/submodule/conformance/importDeferComments.js index 1cc0b76b41..3e7980dbc1 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferComments.js +++ b/testdata/baselines/reference/submodule/conformance/importDeferComments.js @@ -10,7 +10,4 @@ export {}; //// [a.js] export {}; //// [b.js] - * /*4*/ as; /*5*/ -aNs; /*6*/ -from; /*7*/ -"a" /*8*/; +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/importDeferComments.js.diff b/testdata/baselines/reference/submodule/conformance/importDeferComments.js.diff deleted file mode 100644 index 3cc524326d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferComments.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.importDeferComments.js -+++ new.importDeferComments.js -@@= skipped -9, +9 lines =@@ - //// [a.js] - export {}; - //// [b.js] --export {}; -+ * /*4*/ as; /*5*/ -+aNs; /*6*/ -+from; /*7*/ -+"a" /*8*/; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferComments.symbols b/testdata/baselines/reference/submodule/conformance/importDeferComments.symbols index c409bcae8c..fec1187392 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferComments.symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferComments.symbols @@ -6,5 +6,5 @@ export {}; === b.ts === /*1*/ import /*2*/ defer /*3*/ * /*4*/ as /*5*/ aNs /*6*/ from /*7*/ "a" /*8*/; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 24)) diff --git a/testdata/baselines/reference/submodule/conformance/importDeferComments.symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferComments.symbols.diff deleted file mode 100644 index bb584157e2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferComments.symbols.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.importDeferComments.symbols -+++ new.importDeferComments.symbols -@@= skipped -5, +5 lines =@@ - - === b.ts === - /*1*/ import /*2*/ defer /*3*/ * /*4*/ as /*5*/ aNs /*6*/ from /*7*/ "a" /*8*/; -->aNs : Symbol(aNs, Decl(b.ts, 0, 24)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) diff --git a/testdata/baselines/reference/submodule/conformance/importDeferComments.types b/testdata/baselines/reference/submodule/conformance/importDeferComments.types index 0535519e58..1a030171c0 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferComments.types +++ b/testdata/baselines/reference/submodule/conformance/importDeferComments.types @@ -6,12 +6,5 @@ export {}; === b.ts === /*1*/ import /*2*/ defer /*3*/ * /*4*/ as /*5*/ aNs /*6*/ from /*7*/ "a" /*8*/; ->defer : any -> : any ->* /*4*/ as : number -> : any ->as : any >aNs : any ->from : any ->"a" : "a" diff --git a/testdata/baselines/reference/submodule/conformance/importDeferComments.types.diff b/testdata/baselines/reference/submodule/conformance/importDeferComments.types.diff index 81b051e43d..9a344a8478 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferComments.types.diff +++ b/testdata/baselines/reference/submodule/conformance/importDeferComments.types.diff @@ -5,11 +5,4 @@ === b.ts === /*1*/ import /*2*/ defer /*3*/ * /*4*/ as /*5*/ aNs /*6*/ from /*7*/ "a" /*8*/; ->aNs : typeof aNs -+>defer : any -+> : any -+>* /*4*/ as : number -+> : any -+>as : any +>aNs : any -+>from : any -+>"a" : "a" diff --git a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.errors.txt deleted file mode 100644 index f2197642db..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.errors.txt +++ /dev/null @@ -1,33 +0,0 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,16): error TS2304: Cannot find name 'as'. -b.ts(1,19): error TS1005: ';' expected. -b.ts(1,19): error TS2304: Cannot find name 'ns'. -b.ts(1,22): error TS1434: Unexpected keyword or identifier. -b.ts(1,22): error TS2304: Cannot find name 'from'. -b.ts(3,24): error TS2503: Cannot find namespace 'ns'. - - -==== a.ts (0 errors) ==== - export interface Foo { - x: number; - } - -==== b.ts (7 errors) ==== - import defer * as ns from "./a.js"; - ~ -!!! error TS1005: '=' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. - ~~ -!!! error TS1005: ';' expected. - ~~ -!!! error TS2304: Cannot find name 'ns'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. - - export type X = { foo: ns.Foo }; - ~~ -!!! error TS2503: Cannot find namespace 'ns'. - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.errors.txt.diff deleted file mode 100644 index bd03a889b2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.errors.txt.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.importDeferDeclaration.errors.txt -+++ new.importDeferDeclaration.errors.txt -@@= skipped -0, +0 lines =@@ -- -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,16): error TS2304: Cannot find name 'as'. -+b.ts(1,19): error TS1005: ';' expected. -+b.ts(1,19): error TS2304: Cannot find name 'ns'. -+b.ts(1,22): error TS1434: Unexpected keyword or identifier. -+b.ts(1,22): error TS2304: Cannot find name 'from'. -+b.ts(3,24): error TS2503: Cannot find namespace 'ns'. -+ -+ -+==== a.ts (0 errors) ==== -+ export interface Foo { -+ x: number; -+ } -+ -+==== b.ts (7 errors) ==== -+ import defer * as ns from "./a.js"; -+ ~ -+!!! error TS1005: '=' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. -+ ~~ -+!!! error TS1005: ';' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'ns'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. -+ -+ export type X = { foo: ns.Foo }; -+ ~~ -+!!! error TS2503: Cannot find namespace 'ns'. -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.js b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.js index 76d0f7cdf9..55175f4b65 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.js +++ b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.js @@ -14,10 +14,6 @@ export type X = { foo: ns.Foo }; //// [a.js] export {}; //// [b.js] - * as; -ns; -from; -"./a.js"; export {}; @@ -26,6 +22,7 @@ export interface Foo { x: number; } //// [b.d.ts] +import * as ns from "./a.js"; export type X = { foo: ns.Foo; }; diff --git a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.js.diff b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.js.diff deleted file mode 100644 index 6870f66b26..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.importDeferDeclaration.js -+++ new.importDeferDeclaration.js -@@= skipped -13, +13 lines =@@ - //// [a.js] - export {}; - //// [b.js] -+ * as; -+ns; -+from; -+"./a.js"; - export {}; - - -@@= skipped -8, +12 lines =@@ - x: number; - } - //// [b.d.ts] --import * as ns from "./a.js"; - export type X = { - foo: ns.Foo; - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.symbols b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.symbols index cde1621d98..9518404d16 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.symbols @@ -10,11 +10,11 @@ export interface Foo { === b.ts === import defer * as ns from "./a.js"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>ns : Symbol(ns, Decl(b.ts, 0, 12)) export type X = { foo: ns.Foo }; >X : Symbol(X, Decl(b.ts, 0, 35)) >foo : Symbol(foo, Decl(b.ts, 2, 17)) ->ns : Symbol(ns) ->Foo : Symbol(ns.Foo) +>ns : Symbol(ns, Decl(b.ts, 0, 12)) +>Foo : Symbol(ns.Foo, Decl(a.ts, 0, 0)) diff --git a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.symbols.diff deleted file mode 100644 index 0d94c1d8f1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.symbols.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.importDeferDeclaration.symbols -+++ new.importDeferDeclaration.symbols -@@= skipped -9, +9 lines =@@ - - === b.ts === - import defer * as ns from "./a.js"; -->ns : Symbol(ns, Decl(b.ts, 0, 12)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - export type X = { foo: ns.Foo }; - >X : Symbol(X, Decl(b.ts, 0, 35)) - >foo : Symbol(foo, Decl(b.ts, 2, 17)) -->ns : Symbol(ns, Decl(b.ts, 0, 12)) -->Foo : Symbol(ns.Foo, Decl(a.ts, 0, 0)) -+>ns : Symbol(ns) -+>Foo : Symbol(ns.Foo) diff --git a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.types b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.types index 72743922ec..a66185477d 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.types +++ b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.types @@ -8,14 +8,7 @@ export interface Foo { === b.ts === import defer * as ns from "./a.js"; ->defer : any -> : any ->* as : number -> : any ->as : any ->ns : any ->from : any ->"./a.js" : "./a.js" +>ns : typeof ns export type X = { foo: ns.Foo }; >X : X diff --git a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.types.diff b/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.types.diff deleted file mode 100644 index 3a8bca7261..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferDeclaration.types.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.importDeferDeclaration.types -+++ new.importDeferDeclaration.types -@@= skipped -7, +7 lines =@@ - - === b.ts === - import defer * as ns from "./a.js"; -->ns : typeof ns -+>defer : any -+> : any -+>* as : number -+> : any -+>as : any -+>ns : any -+>from : any -+>"./a.js" : "./a.js" - - export type X = { foo: ns.Foo }; - >X : X \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.errors.txt index 514c4ff861..5a82911a23 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.errors.txt @@ -1,14 +1,11 @@ -b.ts(1,19): error TS1141: String literal expected. -b.ts(1,24): error TS1005: ';' expected. +b.ts(1,8): error TS18058: Default imports are not allowed in a deferred import. ==== a.ts (0 errors) ==== export default 2; -==== b.ts (2 errors) ==== +==== b.ts (1 errors) ==== import defer from from "./a.js"; - ~~~~ -!!! error TS1141: String literal expected. - ~~~~~~~~ -!!! error TS1005: ';' expected. + ~~~~~~~~~~ +!!! error TS18058: Default imports are not allowed in a deferred import. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.errors.txt.diff deleted file mode 100644 index 83b7734f4a..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.errors.txt.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.importDeferFromInvalid.errors.txt -+++ new.importDeferFromInvalid.errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,8): error TS18058: Default imports are not allowed in a deferred import. -+b.ts(1,19): error TS1141: String literal expected. -+b.ts(1,24): error TS1005: ';' expected. - - - ==== a.ts (0 errors) ==== - export default 2; - --==== b.ts (1 errors) ==== -+==== b.ts (2 errors) ==== - import defer from from "./a.js"; -- ~~~~~~~~~~ --!!! error TS18058: Default imports are not allowed in a deferred import. -+ ~~~~ -+!!! error TS1141: String literal expected. -+ ~~~~~~~~ -+!!! error TS1005: ';' expected. - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.js b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.js index 56ecb26e5a..3ca6148749 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.js +++ b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.js @@ -10,5 +10,4 @@ import defer from from "./a.js"; //// [a.js] export default 2; //// [b.js] -"./a.js"; export {}; diff --git a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.js.diff b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.js.diff deleted file mode 100644 index a4ac952753..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.importDeferFromInvalid.js -+++ new.importDeferFromInvalid.js -@@= skipped -9, +9 lines =@@ - //// [a.js] - export default 2; - //// [b.js] -+"./a.js"; - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.symbols b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.symbols index b3d6c68c4f..6060cd3a13 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.symbols @@ -6,5 +6,5 @@ export default 2; === b.ts === import defer from from "./a.js"; ->defer : Symbol(defer, Decl(b.ts, 0, 6)) +>from : Symbol(from, Decl(b.ts, 0, 6)) diff --git a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.symbols.diff deleted file mode 100644 index 5c4a23f0e6..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.symbols.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.importDeferFromInvalid.symbols -+++ new.importDeferFromInvalid.symbols -@@= skipped -5, +5 lines =@@ - - === b.ts === - import defer from from "./a.js"; -->from : Symbol(from, Decl(b.ts, 0, 6)) -+>defer : Symbol(defer, Decl(b.ts, 0, 6)) diff --git a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.types b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.types index d37e7dadd3..71e1f02605 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.types +++ b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.types @@ -6,7 +6,5 @@ export default 2; === b.ts === import defer from from "./a.js"; ->defer : any ->from : any ->"./a.js" : "./a.js" +>from : 2 diff --git a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.types.diff b/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.types.diff deleted file mode 100644 index c8413a65d8..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferFromInvalid.types.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.importDeferFromInvalid.types -+++ new.importDeferFromInvalid.types -@@= skipped -5, +5 lines =@@ - - === b.ts === - import defer from from "./a.js"; -->from : 2 -+>defer : any -+>from : any -+>"./a.js" : "./a.js" diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.errors.txt index 85d6fe7874..98b01b7145 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.errors.txt @@ -1,8 +1,5 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,14): error TS2503: Cannot find namespace 'foo'. -b.ts(1,18): error TS1005: ';' expected. -b.ts(1,18): error TS2304: Cannot find name 'from'. -b.ts(3,1): error TS2304: Cannot find name 'foo'. +b.ts(1,8): error TS18058: Default imports are not allowed in a deferred import. +b.ts(1,23): error TS2307: Cannot find module 'a' or its corresponding type declarations. ==== a.ts (0 errors) ==== @@ -10,17 +7,11 @@ b.ts(3,1): error TS2304: Cannot find name 'foo'. console.log("foo from a"); } -==== b.ts (5 errors) ==== +==== b.ts (2 errors) ==== import defer foo from "a"; - ~~~ -!!! error TS1005: '=' expected. - ~~~ -!!! error TS2503: Cannot find namespace 'foo'. - ~~~~ -!!! error TS1005: ';' expected. - ~~~~ -!!! error TS2304: Cannot find name 'from'. + ~~~~~~~~~ +!!! error TS18058: Default imports are not allowed in a deferred import. + ~~~ +!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. - foo(); - ~~~ -!!! error TS2304: Cannot find name 'foo'. \ No newline at end of file + foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.errors.txt.diff index 3cf4427984..380c23e525 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.errors.txt.diff +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.errors.txt.diff @@ -1,33 +1,21 @@ --- old.importDeferInvalidDefault.errors.txt +++ new.importDeferInvalidDefault.errors.txt @@= skipped -0, +0 lines =@@ --b.ts(1,8): error TS18058: Default imports are not allowed in a deferred import. -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,14): error TS2503: Cannot find namespace 'foo'. -+b.ts(1,18): error TS1005: ';' expected. -+b.ts(1,18): error TS2304: Cannot find name 'from'. -+b.ts(3,1): error TS2304: Cannot find name 'foo'. + b.ts(1,8): error TS18058: Default imports are not allowed in a deferred import. ++b.ts(1,23): error TS2307: Cannot find module 'a' or its corresponding type declarations. ==== a.ts (0 errors) ==== -@@= skipped -5, +9 lines =@@ +@@= skipped -5, +6 lines =@@ console.log("foo from a"); } -==== b.ts (1 errors) ==== -+==== b.ts (5 errors) ==== ++==== b.ts (2 errors) ==== import defer foo from "a"; -- ~~~~~~~~~ --!!! error TS18058: Default imports are not allowed in a deferred import. -+ ~~~ -+!!! error TS1005: '=' expected. -+ ~~~ -+!!! error TS2503: Cannot find namespace 'foo'. -+ ~~~~ -+!!! error TS1005: ';' expected. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. + ~~~~~~~~~ + !!! error TS18058: Default imports are not allowed in a deferred import. ++ ~~~ ++!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. - foo(); -+ ~~~ -+!!! error TS2304: Cannot find name 'foo'. \ No newline at end of file + foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.js b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.js index 3ef7569e46..e0f3491c63 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.js +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.js @@ -15,6 +15,5 @@ export default function foo() { console.log("foo from a"); } //// [b.js] -from; -"a"; +import defer foo from "a"; foo(); diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.js.diff b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.js.diff deleted file mode 100644 index cf18f63001..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.importDeferInvalidDefault.js -+++ new.importDeferInvalidDefault.js -@@= skipped -14, +14 lines =@@ - console.log("foo from a"); - } - //// [b.js] --import defer foo from "a"; -+from; -+"a"; - foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.symbols b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.symbols index 7aff09c746..dd548fc593 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.symbols @@ -12,6 +12,8 @@ export default function foo() { === b.ts === import defer foo from "a"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>foo : Symbol(foo, Decl(b.ts, 0, 6)) foo(); +>foo : Symbol(foo, Decl(b.ts, 0, 6)) + diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.symbols.diff deleted file mode 100644 index 8323066273..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.symbols.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.importDeferInvalidDefault.symbols -+++ new.importDeferInvalidDefault.symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer foo from "a"; -->foo : Symbol(foo, Decl(b.ts, 0, 6)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - foo(); -->foo : Symbol(foo, Decl(b.ts, 0, 6)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.types b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.types index a0e1a83b2f..a9b9e63190 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.types +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.types @@ -14,10 +14,7 @@ export default function foo() { === b.ts === import defer foo from "a"; ->defer : any >foo : any ->from : any ->"a" : "a" foo(); >foo() : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.types.diff b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.types.diff index ce62a48481..f0c844e7c9 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.types.diff +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidDefault.types.diff @@ -5,10 +5,7 @@ === b.ts === import defer foo from "a"; ->foo : () => void -+>defer : any +>foo : any -+>from : any -+>"a" : "a" foo(); ->foo() : void diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.errors.txt index 65e2aa11dd..4670b0cf31 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.errors.txt @@ -1,8 +1,5 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,16): error TS2304: Cannot find name 'foo'. -b.ts(1,22): error TS1434: Unexpected keyword or identifier. -b.ts(1,22): error TS2304: Cannot find name 'from'. -b.ts(3,1): error TS2304: Cannot find name 'foo'. +b.ts(1,8): error TS18059: Named imports are not allowed in a deferred import. +b.ts(1,27): error TS2307: Cannot find module 'a' or its corresponding type declarations. ==== a.ts (0 errors) ==== @@ -10,17 +7,11 @@ b.ts(3,1): error TS2304: Cannot find name 'foo'. console.log("foo from a"); } -==== b.ts (5 errors) ==== +==== b.ts (2 errors) ==== import defer { foo } from "a"; - ~ -!!! error TS1005: '=' expected. - ~~~ -!!! error TS2304: Cannot find name 'foo'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. + ~~~~~~~~~~~~~ +!!! error TS18059: Named imports are not allowed in a deferred import. + ~~~ +!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. - foo(); - ~~~ -!!! error TS2304: Cannot find name 'foo'. \ No newline at end of file + foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.errors.txt.diff index fd9ab8ee53..4f150de2ce 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.errors.txt.diff +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.errors.txt.diff @@ -1,33 +1,21 @@ --- old.importDeferInvalidNamed.errors.txt +++ new.importDeferInvalidNamed.errors.txt @@= skipped -0, +0 lines =@@ --b.ts(1,8): error TS18059: Named imports are not allowed in a deferred import. -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,16): error TS2304: Cannot find name 'foo'. -+b.ts(1,22): error TS1434: Unexpected keyword or identifier. -+b.ts(1,22): error TS2304: Cannot find name 'from'. -+b.ts(3,1): error TS2304: Cannot find name 'foo'. + b.ts(1,8): error TS18059: Named imports are not allowed in a deferred import. ++b.ts(1,27): error TS2307: Cannot find module 'a' or its corresponding type declarations. ==== a.ts (0 errors) ==== -@@= skipped -5, +9 lines =@@ +@@= skipped -5, +6 lines =@@ console.log("foo from a"); } -==== b.ts (1 errors) ==== -+==== b.ts (5 errors) ==== ++==== b.ts (2 errors) ==== import defer { foo } from "a"; -- ~~~~~~~~~~~~~ --!!! error TS18059: Named imports are not allowed in a deferred import. -+ ~ -+!!! error TS1005: '=' expected. -+ ~~~ -+!!! error TS2304: Cannot find name 'foo'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. + ~~~~~~~~~~~~~ + !!! error TS18059: Named imports are not allowed in a deferred import. ++ ~~~ ++!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. - foo(); -+ ~~~ -+!!! error TS2304: Cannot find name 'foo'. \ No newline at end of file + foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.js b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.js index b007a9b528..8f92f52fa0 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.js +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.js @@ -15,9 +15,5 @@ export function foo() { console.log("foo from a"); } //// [b.js] -{ - foo; -} -from; -"a"; +import defer { foo } from "a"; foo(); diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.js.diff b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.js.diff deleted file mode 100644 index a5b3b47cb5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.importDeferInvalidNamed.js -+++ new.importDeferInvalidNamed.js -@@= skipped -14, +14 lines =@@ - console.log("foo from a"); - } - //// [b.js] --import defer { foo } from "a"; -+{ -+ foo; -+} -+from; -+"a"; - foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.symbols b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.symbols index 7568b6ab81..77f3959cd7 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.symbols @@ -12,6 +12,8 @@ export function foo() { === b.ts === import defer { foo } from "a"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>foo : Symbol(foo, Decl(b.ts, 0, 14)) foo(); +>foo : Symbol(foo, Decl(b.ts, 0, 14)) + diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.symbols.diff deleted file mode 100644 index f88b7ba200..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.symbols.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.importDeferInvalidNamed.symbols -+++ new.importDeferInvalidNamed.symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer { foo } from "a"; -->foo : Symbol(foo, Decl(b.ts, 0, 14)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - foo(); -->foo : Symbol(foo, Decl(b.ts, 0, 14)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.types b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.types index fed70aa3c7..6263341dcc 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.types +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.types @@ -14,11 +14,7 @@ export function foo() { === b.ts === import defer { foo } from "a"; ->defer : any -> : any >foo : any ->from : any ->"a" : "a" foo(); >foo() : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.types.diff b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.types.diff index 61dd9e198e..5b1085115d 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.types.diff +++ b/testdata/baselines/reference/submodule/conformance/importDeferInvalidNamed.types.diff @@ -5,11 +5,7 @@ === b.ts === import defer { foo } from "a"; ->foo : () => void -+>defer : any -+> : any +>foo : any -+>from : any -+>"a" : "a" foo(); ->foo() : void diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).errors.txt index e7c04cb2ea..74c011b13a 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).errors.txt @@ -1,10 +1,4 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,16): error TS2304: Cannot find name 'as'. -b.ts(1,19): error TS1005: ';' expected. -b.ts(1,19): error TS2304: Cannot find name 'aNs'. -b.ts(1,23): error TS1434: Unexpected keyword or identifier. -b.ts(1,23): error TS2304: Cannot find name 'from'. -b.ts(3,1): error TS2304: Cannot find name 'aNs'. +b.ts(1,8): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ==== a.ts (0 errors) ==== @@ -12,21 +6,9 @@ b.ts(3,1): error TS2304: Cannot find name 'aNs'. console.log("foo from a"); } -==== b.ts (7 errors) ==== +==== b.ts (1 errors) ==== import defer * as aNs from "./a.js"; - ~ -!!! error TS1005: '=' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. - ~~~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'aNs'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. + ~~~~~~~~~~~~~~ +!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. - aNs.foo(); - ~~~ -!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file + aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).errors.txt.diff deleted file mode 100644 index e52068586c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).errors.txt.diff +++ /dev/null @@ -1,39 +0,0 @@ ---- old.importDeferNamespace(module=commonjs).errors.txt -+++ new.importDeferNamespace(module=commonjs).errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,8): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,16): error TS2304: Cannot find name 'as'. -+b.ts(1,19): error TS1005: ';' expected. -+b.ts(1,19): error TS2304: Cannot find name 'aNs'. -+b.ts(1,23): error TS1434: Unexpected keyword or identifier. -+b.ts(1,23): error TS2304: Cannot find name 'from'. -+b.ts(3,1): error TS2304: Cannot find name 'aNs'. - - - ==== a.ts (0 errors) ==== -@@= skipped -5, +11 lines =@@ - console.log("foo from a"); - } - --==== b.ts (1 errors) ==== -+==== b.ts (7 errors) ==== - import defer * as aNs from "./a.js"; -- ~~~~~~~~~~~~~~ --!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+ ~ -+!!! error TS1005: '=' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. -+ ~~~ -+!!! error TS1005: ';' expected. -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. - - aNs.foo(); -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).js b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).js index f05106969d..181c471732 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).js +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).js @@ -18,8 +18,7 @@ function foo() { console.log("foo from a"); } //// [b.js] - * as; -aNs; -from; -"./a.js"; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const aNs = require("./a.js"); aNs.foo(); diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).js.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).js.diff deleted file mode 100644 index 1eb0aef9d2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.importDeferNamespace(module=commonjs).js -+++ new.importDeferNamespace(module=commonjs).js -@@= skipped -17, +17 lines =@@ - console.log("foo from a"); - } - //// [b.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --const aNs = require("./a.js"); -+ * as; -+aNs; -+from; -+"./a.js"; - aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).symbols b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).symbols index 2cbec9e857..eca0a04a77 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).symbols @@ -12,6 +12,10 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) aNs.foo(); +>aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) +>foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) + diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).symbols.diff deleted file mode 100644 index 9aa19f6746..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).symbols.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.importDeferNamespace(module=commonjs).symbols -+++ new.importDeferNamespace(module=commonjs).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - aNs.foo(); -->aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -->foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).types b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).types index 0222a6c0b7..ea6e0a8783 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).types +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).types @@ -14,18 +14,11 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : any -> : any ->* as : number -> : any ->as : any ->aNs : any ->from : any ->"./a.js" : "./a.js" +>aNs : typeof aNs aNs.foo(); ->aNs.foo() : any ->aNs.foo : any ->aNs : any ->foo : any +>aNs.foo() : void +>aNs.foo : () => void +>aNs : typeof aNs +>foo : () => void diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).types.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).types.diff deleted file mode 100644 index 378f536ccd..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=commonjs).types.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.importDeferNamespace(module=commonjs).types -+++ new.importDeferNamespace(module=commonjs).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : typeof aNs -+>defer : any -+> : any -+>* as : number -+> : any -+>as : any -+>aNs : any -+>from : any -+>"./a.js" : "./a.js" - - aNs.foo(); -->aNs.foo() : void -->aNs.foo : () => void -->aNs : typeof aNs -->foo : () => void -+>aNs.foo() : any -+>aNs.foo : any -+>aNs : any -+>foo : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).errors.txt index e7c04cb2ea..74c011b13a 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).errors.txt @@ -1,10 +1,4 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,16): error TS2304: Cannot find name 'as'. -b.ts(1,19): error TS1005: ';' expected. -b.ts(1,19): error TS2304: Cannot find name 'aNs'. -b.ts(1,23): error TS1434: Unexpected keyword or identifier. -b.ts(1,23): error TS2304: Cannot find name 'from'. -b.ts(3,1): error TS2304: Cannot find name 'aNs'. +b.ts(1,8): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ==== a.ts (0 errors) ==== @@ -12,21 +6,9 @@ b.ts(3,1): error TS2304: Cannot find name 'aNs'. console.log("foo from a"); } -==== b.ts (7 errors) ==== +==== b.ts (1 errors) ==== import defer * as aNs from "./a.js"; - ~ -!!! error TS1005: '=' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. - ~~~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'aNs'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. + ~~~~~~~~~~~~~~ +!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. - aNs.foo(); - ~~~ -!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file + aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).errors.txt.diff deleted file mode 100644 index 67c18b2aee..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).errors.txt.diff +++ /dev/null @@ -1,39 +0,0 @@ ---- old.importDeferNamespace(module=es2015).errors.txt -+++ new.importDeferNamespace(module=es2015).errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,8): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,16): error TS2304: Cannot find name 'as'. -+b.ts(1,19): error TS1005: ';' expected. -+b.ts(1,19): error TS2304: Cannot find name 'aNs'. -+b.ts(1,23): error TS1434: Unexpected keyword or identifier. -+b.ts(1,23): error TS2304: Cannot find name 'from'. -+b.ts(3,1): error TS2304: Cannot find name 'aNs'. - - - ==== a.ts (0 errors) ==== -@@= skipped -5, +11 lines =@@ - console.log("foo from a"); - } - --==== b.ts (1 errors) ==== -+==== b.ts (7 errors) ==== - import defer * as aNs from "./a.js"; -- ~~~~~~~~~~~~~~ --!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+ ~ -+!!! error TS1005: '=' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. -+ ~~~ -+!!! error TS1005: ';' expected. -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. - - aNs.foo(); -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).js b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).js index 7af1257323..29d60657fd 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).js +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).js @@ -15,8 +15,5 @@ export function foo() { console.log("foo from a"); } //// [b.js] - * as; -aNs; -from; -"./a.js"; +import defer * as aNs from "./a.js"; aNs.foo(); diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).js.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).js.diff deleted file mode 100644 index 1ecd218075..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.importDeferNamespace(module=es2015).js -+++ new.importDeferNamespace(module=es2015).js -@@= skipped -14, +14 lines =@@ - console.log("foo from a"); - } - //// [b.js] --import defer * as aNs from "./a.js"; -+ * as; -+aNs; -+from; -+"./a.js"; - aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).symbols b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).symbols index 2cbec9e857..eca0a04a77 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).symbols @@ -12,6 +12,10 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) aNs.foo(); +>aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) +>foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) + diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).symbols.diff deleted file mode 100644 index 443be51f7c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).symbols.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.importDeferNamespace(module=es2015).symbols -+++ new.importDeferNamespace(module=es2015).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - aNs.foo(); -->aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -->foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).types b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).types index 0222a6c0b7..ea6e0a8783 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).types +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).types @@ -14,18 +14,11 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : any -> : any ->* as : number -> : any ->as : any ->aNs : any ->from : any ->"./a.js" : "./a.js" +>aNs : typeof aNs aNs.foo(); ->aNs.foo() : any ->aNs.foo : any ->aNs : any ->foo : any +>aNs.foo() : void +>aNs.foo : () => void +>aNs : typeof aNs +>foo : () => void diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).types.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).types.diff deleted file mode 100644 index 01baae6f5e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2015).types.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.importDeferNamespace(module=es2015).types -+++ new.importDeferNamespace(module=es2015).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : typeof aNs -+>defer : any -+> : any -+>* as : number -+> : any -+>as : any -+>aNs : any -+>from : any -+>"./a.js" : "./a.js" - - aNs.foo(); -->aNs.foo() : void -->aNs.foo : () => void -->aNs : typeof aNs -->foo : () => void -+>aNs.foo() : any -+>aNs.foo : any -+>aNs : any -+>foo : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).errors.txt index e7c04cb2ea..74c011b13a 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).errors.txt @@ -1,10 +1,4 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,16): error TS2304: Cannot find name 'as'. -b.ts(1,19): error TS1005: ';' expected. -b.ts(1,19): error TS2304: Cannot find name 'aNs'. -b.ts(1,23): error TS1434: Unexpected keyword or identifier. -b.ts(1,23): error TS2304: Cannot find name 'from'. -b.ts(3,1): error TS2304: Cannot find name 'aNs'. +b.ts(1,8): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ==== a.ts (0 errors) ==== @@ -12,21 +6,9 @@ b.ts(3,1): error TS2304: Cannot find name 'aNs'. console.log("foo from a"); } -==== b.ts (7 errors) ==== +==== b.ts (1 errors) ==== import defer * as aNs from "./a.js"; - ~ -!!! error TS1005: '=' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. - ~~~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'aNs'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. + ~~~~~~~~~~~~~~ +!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. - aNs.foo(); - ~~~ -!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file + aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).errors.txt.diff deleted file mode 100644 index 9e243d63de..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).errors.txt.diff +++ /dev/null @@ -1,39 +0,0 @@ ---- old.importDeferNamespace(module=es2020).errors.txt -+++ new.importDeferNamespace(module=es2020).errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,8): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,16): error TS2304: Cannot find name 'as'. -+b.ts(1,19): error TS1005: ';' expected. -+b.ts(1,19): error TS2304: Cannot find name 'aNs'. -+b.ts(1,23): error TS1434: Unexpected keyword or identifier. -+b.ts(1,23): error TS2304: Cannot find name 'from'. -+b.ts(3,1): error TS2304: Cannot find name 'aNs'. - - - ==== a.ts (0 errors) ==== -@@= skipped -5, +11 lines =@@ - console.log("foo from a"); - } - --==== b.ts (1 errors) ==== -+==== b.ts (7 errors) ==== - import defer * as aNs from "./a.js"; -- ~~~~~~~~~~~~~~ --!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+ ~ -+!!! error TS1005: '=' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. -+ ~~~ -+!!! error TS1005: ';' expected. -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. - - aNs.foo(); -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).js b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).js index 7af1257323..29d60657fd 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).js +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).js @@ -15,8 +15,5 @@ export function foo() { console.log("foo from a"); } //// [b.js] - * as; -aNs; -from; -"./a.js"; +import defer * as aNs from "./a.js"; aNs.foo(); diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).js.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).js.diff deleted file mode 100644 index 95908d1e41..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.importDeferNamespace(module=es2020).js -+++ new.importDeferNamespace(module=es2020).js -@@= skipped -14, +14 lines =@@ - console.log("foo from a"); - } - //// [b.js] --import defer * as aNs from "./a.js"; -+ * as; -+aNs; -+from; -+"./a.js"; - aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).symbols b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).symbols index 2cbec9e857..eca0a04a77 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).symbols @@ -12,6 +12,10 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) aNs.foo(); +>aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) +>foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) + diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).symbols.diff deleted file mode 100644 index 8266815978..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).symbols.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.importDeferNamespace(module=es2020).symbols -+++ new.importDeferNamespace(module=es2020).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - aNs.foo(); -->aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -->foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).types b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).types index 0222a6c0b7..ea6e0a8783 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).types +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).types @@ -14,18 +14,11 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : any -> : any ->* as : number -> : any ->as : any ->aNs : any ->from : any ->"./a.js" : "./a.js" +>aNs : typeof aNs aNs.foo(); ->aNs.foo() : any ->aNs.foo : any ->aNs : any ->foo : any +>aNs.foo() : void +>aNs.foo : () => void +>aNs : typeof aNs +>foo : () => void diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).types.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).types.diff deleted file mode 100644 index 0f72fbf8c9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=es2020).types.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.importDeferNamespace(module=es2020).types -+++ new.importDeferNamespace(module=es2020).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : typeof aNs -+>defer : any -+> : any -+>* as : number -+> : any -+>as : any -+>aNs : any -+>from : any -+>"./a.js" : "./a.js" - - aNs.foo(); -->aNs.foo() : void -->aNs.foo : () => void -->aNs : typeof aNs -->foo : () => void -+>aNs.foo() : any -+>aNs.foo : any -+>aNs : any -+>foo : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).errors.txt deleted file mode 100644 index e7c04cb2ea..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).errors.txt +++ /dev/null @@ -1,32 +0,0 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,16): error TS2304: Cannot find name 'as'. -b.ts(1,19): error TS1005: ';' expected. -b.ts(1,19): error TS2304: Cannot find name 'aNs'. -b.ts(1,23): error TS1434: Unexpected keyword or identifier. -b.ts(1,23): error TS2304: Cannot find name 'from'. -b.ts(3,1): error TS2304: Cannot find name 'aNs'. - - -==== a.ts (0 errors) ==== - export function foo() { - console.log("foo from a"); - } - -==== b.ts (7 errors) ==== - import defer * as aNs from "./a.js"; - ~ -!!! error TS1005: '=' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. - ~~~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'aNs'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. - - aNs.foo(); - ~~~ -!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).errors.txt.diff deleted file mode 100644 index 449519efed..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).errors.txt.diff +++ /dev/null @@ -1,36 +0,0 @@ ---- old.importDeferNamespace(module=esnext).errors.txt -+++ new.importDeferNamespace(module=esnext).errors.txt -@@= skipped -0, +0 lines =@@ -- -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,16): error TS2304: Cannot find name 'as'. -+b.ts(1,19): error TS1005: ';' expected. -+b.ts(1,19): error TS2304: Cannot find name 'aNs'. -+b.ts(1,23): error TS1434: Unexpected keyword or identifier. -+b.ts(1,23): error TS2304: Cannot find name 'from'. -+b.ts(3,1): error TS2304: Cannot find name 'aNs'. -+ -+ -+==== a.ts (0 errors) ==== -+ export function foo() { -+ console.log("foo from a"); -+ } -+ -+==== b.ts (7 errors) ==== -+ import defer * as aNs from "./a.js"; -+ ~ -+!!! error TS1005: '=' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. -+ ~~~ -+!!! error TS1005: ';' expected. -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. -+ -+ aNs.foo(); -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).js b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).js index 7af1257323..29d60657fd 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).js @@ -15,8 +15,5 @@ export function foo() { console.log("foo from a"); } //// [b.js] - * as; -aNs; -from; -"./a.js"; +import defer * as aNs from "./a.js"; aNs.foo(); diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).js.diff deleted file mode 100644 index 972ced87e4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.importDeferNamespace(module=esnext).js -+++ new.importDeferNamespace(module=esnext).js -@@= skipped -14, +14 lines =@@ - console.log("foo from a"); - } - //// [b.js] --import defer * as aNs from "./a.js"; -+ * as; -+aNs; -+from; -+"./a.js"; - aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).symbols b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).symbols index 2cbec9e857..eca0a04a77 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).symbols @@ -12,6 +12,10 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) aNs.foo(); +>aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) +>foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) + diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).symbols.diff deleted file mode 100644 index 9cd4a2287f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).symbols.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.importDeferNamespace(module=esnext).symbols -+++ new.importDeferNamespace(module=esnext).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - aNs.foo(); -->aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -->foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).types b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).types index 0222a6c0b7..ea6e0a8783 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).types +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).types @@ -14,18 +14,11 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : any -> : any ->* as : number -> : any ->as : any ->aNs : any ->from : any ->"./a.js" : "./a.js" +>aNs : typeof aNs aNs.foo(); ->aNs.foo() : any ->aNs.foo : any ->aNs : any ->foo : any +>aNs.foo() : void +>aNs.foo : () => void +>aNs : typeof aNs +>foo : () => void diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).types.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).types.diff deleted file mode 100644 index 0144add4ff..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=esnext).types.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.importDeferNamespace(module=esnext).types -+++ new.importDeferNamespace(module=esnext).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : typeof aNs -+>defer : any -+> : any -+>* as : number -+> : any -+>as : any -+>aNs : any -+>from : any -+>"./a.js" : "./a.js" - - aNs.foo(); -->aNs.foo() : void -->aNs.foo : () => void -->aNs : typeof aNs -->foo : () => void -+>aNs.foo() : any -+>aNs.foo : any -+>aNs : any -+>foo : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).errors.txt index e7c04cb2ea..74c011b13a 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).errors.txt @@ -1,10 +1,4 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,16): error TS2304: Cannot find name 'as'. -b.ts(1,19): error TS1005: ';' expected. -b.ts(1,19): error TS2304: Cannot find name 'aNs'. -b.ts(1,23): error TS1434: Unexpected keyword or identifier. -b.ts(1,23): error TS2304: Cannot find name 'from'. -b.ts(3,1): error TS2304: Cannot find name 'aNs'. +b.ts(1,8): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. ==== a.ts (0 errors) ==== @@ -12,21 +6,9 @@ b.ts(3,1): error TS2304: Cannot find name 'aNs'. console.log("foo from a"); } -==== b.ts (7 errors) ==== +==== b.ts (1 errors) ==== import defer * as aNs from "./a.js"; - ~ -!!! error TS1005: '=' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. - ~~~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'aNs'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. + ~~~~~~~~~~~~~~ +!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. - aNs.foo(); - ~~~ -!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file + aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).errors.txt.diff deleted file mode 100644 index 3d0318c3ae..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).errors.txt.diff +++ /dev/null @@ -1,39 +0,0 @@ ---- old.importDeferNamespace(module=nodenext).errors.txt -+++ new.importDeferNamespace(module=nodenext).errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,8): error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,16): error TS2304: Cannot find name 'as'. -+b.ts(1,19): error TS1005: ';' expected. -+b.ts(1,19): error TS2304: Cannot find name 'aNs'. -+b.ts(1,23): error TS1434: Unexpected keyword or identifier. -+b.ts(1,23): error TS2304: Cannot find name 'from'. -+b.ts(3,1): error TS2304: Cannot find name 'aNs'. - - - ==== a.ts (0 errors) ==== -@@= skipped -5, +11 lines =@@ - console.log("foo from a"); - } - --==== b.ts (1 errors) ==== -+==== b.ts (7 errors) ==== - import defer * as aNs from "./a.js"; -- ~~~~~~~~~~~~~~ --!!! error TS18060: Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'. -+ ~ -+!!! error TS1005: '=' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. -+ ~~~ -+!!! error TS1005: ';' expected. -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. - - aNs.foo(); -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).js index 78265562c9..95cd4ac60d 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).js @@ -19,9 +19,39 @@ function foo() { } //// [b.js] "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); Object.defineProperty(exports, "__esModule", { value: true }); - * as; -aNs; -from; -"./a.js"; +const aNs = __importStar(require("./a.js")); aNs.foo(); diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).js.diff deleted file mode 100644 index 624e566704..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).js.diff +++ /dev/null @@ -1,46 +0,0 @@ ---- old.importDeferNamespace(module=nodenext).js -+++ new.importDeferNamespace(module=nodenext).js -@@= skipped -18, +18 lines =@@ - } - //// [b.js] - "use strict"; --var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- var desc = Object.getOwnPropertyDescriptor(m, k); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || (function () { -- var ownKeys = function(o) { -- ownKeys = Object.getOwnPropertyNames || function (o) { -- var ar = []; -- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; -- return ar; -- }; -- return ownKeys(o); -- }; -- return function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); -- __setModuleDefault(result, mod); -- return result; -- }; --})(); - Object.defineProperty(exports, "__esModule", { value: true }); --const aNs = __importStar(require("./a.js")); -+ * as; -+aNs; -+from; -+"./a.js"; - aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).symbols b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).symbols index 2cbec9e857..eca0a04a77 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).symbols @@ -12,6 +12,10 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) aNs.foo(); +>aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) +>foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) + diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).symbols.diff deleted file mode 100644 index 5ff422bbd3..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).symbols.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.importDeferNamespace(module=nodenext).symbols -+++ new.importDeferNamespace(module=nodenext).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - aNs.foo(); -->aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -->foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).types b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).types index 0222a6c0b7..ea6e0a8783 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).types +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).types @@ -14,18 +14,11 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : any -> : any ->* as : number -> : any ->as : any ->aNs : any ->from : any ->"./a.js" : "./a.js" +>aNs : typeof aNs aNs.foo(); ->aNs.foo() : any ->aNs.foo : any ->aNs : any ->foo : any +>aNs.foo() : void +>aNs.foo : () => void +>aNs : typeof aNs +>foo : () => void diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).types.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).types.diff deleted file mode 100644 index d4fd725371..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=nodenext).types.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.importDeferNamespace(module=nodenext).types -+++ new.importDeferNamespace(module=nodenext).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : typeof aNs -+>defer : any -+> : any -+>* as : number -+> : any -+>as : any -+>aNs : any -+>from : any -+>"./a.js" : "./a.js" - - aNs.foo(); -->aNs.foo() : void -->aNs.foo : () => void -->aNs : typeof aNs -->foo : () => void -+>aNs.foo() : any -+>aNs.foo : any -+>aNs : any -+>foo : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).errors.txt deleted file mode 100644 index e7c04cb2ea..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).errors.txt +++ /dev/null @@ -1,32 +0,0 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,16): error TS2304: Cannot find name 'as'. -b.ts(1,19): error TS1005: ';' expected. -b.ts(1,19): error TS2304: Cannot find name 'aNs'. -b.ts(1,23): error TS1434: Unexpected keyword or identifier. -b.ts(1,23): error TS2304: Cannot find name 'from'. -b.ts(3,1): error TS2304: Cannot find name 'aNs'. - - -==== a.ts (0 errors) ==== - export function foo() { - console.log("foo from a"); - } - -==== b.ts (7 errors) ==== - import defer * as aNs from "./a.js"; - ~ -!!! error TS1005: '=' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. - ~~~ -!!! error TS1005: ';' expected. - ~~~ -!!! error TS2304: Cannot find name 'aNs'. - ~~~~ -!!! error TS1434: Unexpected keyword or identifier. - ~~~~ -!!! error TS2304: Cannot find name 'from'. - - aNs.foo(); - ~~~ -!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).errors.txt.diff deleted file mode 100644 index 6b68da8b87..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).errors.txt.diff +++ /dev/null @@ -1,36 +0,0 @@ ---- old.importDeferNamespace(module=preserve).errors.txt -+++ new.importDeferNamespace(module=preserve).errors.txt -@@= skipped -0, +0 lines =@@ -- -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,16): error TS2304: Cannot find name 'as'. -+b.ts(1,19): error TS1005: ';' expected. -+b.ts(1,19): error TS2304: Cannot find name 'aNs'. -+b.ts(1,23): error TS1434: Unexpected keyword or identifier. -+b.ts(1,23): error TS2304: Cannot find name 'from'. -+b.ts(3,1): error TS2304: Cannot find name 'aNs'. -+ -+ -+==== a.ts (0 errors) ==== -+ export function foo() { -+ console.log("foo from a"); -+ } -+ -+==== b.ts (7 errors) ==== -+ import defer * as aNs from "./a.js"; -+ ~ -+!!! error TS1005: '=' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. -+ ~~~ -+!!! error TS1005: ';' expected. -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. -+ ~~~~ -+!!! error TS1434: Unexpected keyword or identifier. -+ ~~~~ -+!!! error TS2304: Cannot find name 'from'. -+ -+ aNs.foo(); -+ ~~~ -+!!! error TS2304: Cannot find name 'aNs'. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).js b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).js index 7af1257323..29d60657fd 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).js +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).js @@ -15,8 +15,5 @@ export function foo() { console.log("foo from a"); } //// [b.js] - * as; -aNs; -from; -"./a.js"; +import defer * as aNs from "./a.js"; aNs.foo(); diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).js.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).js.diff deleted file mode 100644 index 23c2597f5d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.importDeferNamespace(module=preserve).js -+++ new.importDeferNamespace(module=preserve).js -@@= skipped -14, +14 lines =@@ - console.log("foo from a"); - } - //// [b.js] --import defer * as aNs from "./a.js"; -+ * as; -+aNs; -+from; -+"./a.js"; - aNs.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).symbols b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).symbols index 2cbec9e857..eca0a04a77 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).symbols @@ -12,6 +12,10 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) aNs.foo(); +>aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) +>aNs : Symbol(aNs, Decl(b.ts, 0, 12)) +>foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) + diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).symbols.diff deleted file mode 100644 index 7acf641179..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).symbols.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.importDeferNamespace(module=preserve).symbols -+++ new.importDeferNamespace(module=preserve).symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) - - aNs.foo(); -->aNs.foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -->aNs : Symbol(aNs, Decl(b.ts, 0, 12)) -->foo : Symbol(aNs.foo, Decl(a.ts, 0, 0)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).types b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).types index 0222a6c0b7..ea6e0a8783 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).types +++ b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).types @@ -14,18 +14,11 @@ export function foo() { === b.ts === import defer * as aNs from "./a.js"; ->defer : any -> : any ->* as : number -> : any ->as : any ->aNs : any ->from : any ->"./a.js" : "./a.js" +>aNs : typeof aNs aNs.foo(); ->aNs.foo() : any ->aNs.foo : any ->aNs : any ->foo : any +>aNs.foo() : void +>aNs.foo : () => void +>aNs : typeof aNs +>foo : () => void diff --git a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).types.diff b/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).types.diff deleted file mode 100644 index abca7ace49..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferNamespace(module=preserve).types.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.importDeferNamespace(module=preserve).types -+++ new.importDeferNamespace(module=preserve).types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import defer * as aNs from "./a.js"; -->aNs : typeof aNs -+>defer : any -+> : any -+>* as : number -+> : any -+>as : any -+>aNs : any -+>from : any -+>"./a.js" : "./a.js" - - aNs.foo(); -->aNs.foo() : void -->aNs.foo : () => void -->aNs : typeof aNs -->foo : () => void -+>aNs.foo() : any -+>aNs.foo : any -+>aNs : any -+>foo : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.errors.txt b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.errors.txt index f53672cf84..2387d3e34a 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.errors.txt @@ -1,7 +1,5 @@ -b.ts(1,14): error TS1005: '=' expected. -b.ts(1,14): error TS2503: Cannot find namespace 'type'. -b.ts(1,19): error TS1005: ';' expected. -b.ts(1,21): error TS2304: Cannot find name 'as'. +b.ts(1,19): error TS1005: 'from' expected. +b.ts(1,19): error TS1141: String literal expected. b.ts(1,24): error TS1005: ';' expected. b.ts(1,24): error TS2304: Cannot find name 'ns1'. b.ts(1,28): error TS1434: Unexpected keyword or identifier. @@ -13,16 +11,12 @@ b.ts(1,28): error TS2304: Cannot find name 'from'. console.log("foo from a"); } -==== b.ts (8 errors) ==== +==== b.ts (6 errors) ==== import defer type * as ns1 from "a"; - ~~~~ -!!! error TS1005: '=' expected. - ~~~~ -!!! error TS2503: Cannot find namespace 'type'. ~ -!!! error TS1005: ';' expected. - ~~ -!!! error TS2304: Cannot find name 'as'. +!!! error TS1005: 'from' expected. + ~~~~ +!!! error TS1141: String literal expected. ~~~ !!! error TS1005: ';' expected. ~~~ diff --git a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.errors.txt.diff deleted file mode 100644 index a904c142a6..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.errors.txt.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.importDeferTypeConflict2.errors.txt -+++ new.importDeferTypeConflict2.errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,19): error TS1005: 'from' expected. --b.ts(1,19): error TS1141: String literal expected. -+b.ts(1,14): error TS1005: '=' expected. -+b.ts(1,14): error TS2503: Cannot find namespace 'type'. -+b.ts(1,19): error TS1005: ';' expected. -+b.ts(1,21): error TS2304: Cannot find name 'as'. - b.ts(1,24): error TS1005: ';' expected. - b.ts(1,24): error TS2304: Cannot find name 'ns1'. - b.ts(1,28): error TS1434: Unexpected keyword or identifier. -@@= skipped -10, +12 lines =@@ - console.log("foo from a"); - } - --==== b.ts (6 errors) ==== -+==== b.ts (8 errors) ==== - import defer type * as ns1 from "a"; -+ ~~~~ -+!!! error TS1005: '=' expected. -+ ~~~~ -+!!! error TS2503: Cannot find namespace 'type'. - ~ --!!! error TS1005: 'from' expected. -- ~~~~ --!!! error TS1141: String literal expected. -+!!! error TS1005: ';' expected. -+ ~~ -+!!! error TS2304: Cannot find name 'as'. - ~~~ - !!! error TS1005: ';' expected. - ~~~ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.js b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.js index e9b6d90e8f..1c06d70469 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.js +++ b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.js @@ -14,7 +14,7 @@ export function foo() { console.log("foo from a"); } //// [b.js] - * as; ns1; from; "a"; +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.js.diff b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.js.diff deleted file mode 100644 index 3085bf87d1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.importDeferTypeConflict2.js -+++ new.importDeferTypeConflict2.js -@@= skipped -13, +13 lines =@@ - console.log("foo from a"); - } - //// [b.js] -+ * as; - ns1; - from; - "a"; --export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.symbols b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.symbols index 8378d25d21..ea867e3cfd 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.symbols +++ b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.symbols @@ -12,5 +12,5 @@ export function foo() { === b.ts === import defer type * as ns1 from "a"; ->defer : Symbol(defer, Decl(b.ts, 0, 0)) +>type : Symbol(type, Decl(b.ts, 0, 6)) diff --git a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.symbols.diff b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.symbols.diff deleted file mode 100644 index 4c2d75c2a8..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.symbols.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.importDeferTypeConflict2.symbols -+++ new.importDeferTypeConflict2.symbols -@@= skipped -11, +11 lines =@@ - - === b.ts === - import defer type * as ns1 from "a"; -->type : Symbol(type, Decl(b.ts, 0, 6)) -+>defer : Symbol(defer, Decl(b.ts, 0, 0)) diff --git a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.types b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.types index 94413ecd00..5c106b971d 100644 --- a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.types +++ b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.types @@ -14,7 +14,6 @@ export function foo() { === b.ts === import defer type * as ns1 from "a"; ->defer : any >type : any >* as : number > : any diff --git a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.types.diff b/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.types.diff deleted file mode 100644 index c8ff22b7ed..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importDeferTypeConflict2.types.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.importDeferTypeConflict2.types -+++ new.importDeferTypeConflict2.types -@@= skipped -13, +13 lines =@@ - - === b.ts === - import defer type * as ns1 from "a"; -+>defer : any - >type : any - >* as : number - > : any \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importMetaPropertyInvalidInCall.errors.txt b/testdata/baselines/reference/submodule/conformance/importMetaPropertyInvalidInCall.errors.txt index bffc65bd50..6ab3da5017 100644 --- a/testdata/baselines/reference/submodule/conformance/importMetaPropertyInvalidInCall.errors.txt +++ b/testdata/baselines/reference/submodule/conformance/importMetaPropertyInvalidInCall.errors.txt @@ -1,11 +1,11 @@ -b.ts(1,8): error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? +b.ts(1,8): error TS18061: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'? b.ts(2,8): error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? ==== b.ts (2 errors) ==== import.foo(); ~~~ -!!! error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? +!!! error TS18061: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'? import.foo; ~~~ !!! error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? diff --git a/testdata/baselines/reference/submodule/conformance/importMetaPropertyInvalidInCall.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/importMetaPropertyInvalidInCall.errors.txt.diff deleted file mode 100644 index 90d35231eb..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importMetaPropertyInvalidInCall.errors.txt.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.importMetaPropertyInvalidInCall.errors.txt -+++ new.importMetaPropertyInvalidInCall.errors.txt -@@= skipped -0, +0 lines =@@ --b.ts(1,8): error TS18061: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'? -+b.ts(1,8): error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - b.ts(2,8): error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - - - ==== b.ts (2 errors) ==== - import.foo(); - ~~~ --!!! error TS18061: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'? -+!!! error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? - import.foo; - ~~~ - !!! error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? \ No newline at end of file