From 03f7c4b2846e4197a50c6af68c5f49563510594c Mon Sep 17 00:00:00 2001 From: Oleksandr Tarasiuk Date: Wed, 30 Sep 2026 20:00:36 +0300 Subject: [PATCH 1/2] feat(61216): support source phase imports --- .../src/api/node/encoder.generated.ts | 2 +- .../typescript/src/api/node/node.generated.ts | 2 +- packages/typescript/src/ast/ast.generated.ts | 8 +- packages/typescript/src/ast/is.generated.ts | 3 +- packages/typescript/src/ast/scanner.ts | 1 + .../typescript/src/enums/syntaxKind.enum.ts | 375 ++++++++--------- packages/typescript/src/enums/syntaxKind.ts | 395 +++++++++--------- packages/typescript/test/async/api.test.ts | 25 ++ packages/typescript/test/sync/api.test.ts | 25 ++ tools/scripts/tsc/ast.json | 10 +- tsc/internal/api/encoder/decoder_generated.go | 5 +- tsc/internal/api/encoder/decoder_test.go | 14 + tsc/internal/api/encoder/encoder_generated.go | 2 + tsc/internal/api/enum_values_generated.go | 1 + tsc/internal/api/session.go | 3 +- tsc/internal/ast/ast.go | 2 +- tsc/internal/ast/ast_generated.go | 4 +- tsc/internal/ast/kind_generated.go | 13 +- tsc/internal/ast/kind_stringer_generated.go | 375 ++++++++--------- tsc/internal/ast/utilities.go | 32 +- tsc/internal/bundled/embed_generated.go | 3 + tsc/internal/bundled/libs/lib.esnext.d.ts | 1 + .../bundled/libs/lib.esnext.modulesource.d.ts | 21 + tsc/internal/bundled/libs_generated.go | 1 + tsc/internal/checker/checker.go | 27 +- tsc/internal/checker/grammarchecks.go | 42 +- tsc/internal/compiler/fileloader.go | 10 +- tsc/internal/compiler/program.go | 14 +- tsc/internal/compiler/program_test.go | 57 +++ tsc/internal/core/compileroptions.go | 8 + .../diagnosticMessages.generated.json | 8 +- .../diagnostics/diagnosticMessages.json | 24 ++ .../diagnostics/diagnostics_generated.go | 18 + .../tests/autoImport_sourcePhase_test.go | 32 ++ .../tests/goToDefinition_sourcePhase_test.go | 43 ++ .../goToSourceDefinitionImportSource_test.go | 37 ++ .../tests/organizeImports_sourcePhase_test.go | 117 ++++++ .../tests/referencesImportSource2_test.go | 33 ++ .../tests/referencesImportSource_test.go | 43 ++ tsc/internal/ls/autoimport/fix.go | 3 + tsc/internal/ls/organizeimports.go | 24 +- tsc/internal/ls/sourcedefinition.go | 6 +- tsc/internal/parser/parser.go | 78 +++- tsc/internal/parser/parser_test.go | 179 ++++++++ tsc/internal/printer/printer.go | 4 +- tsc/internal/scanner/scanner.go | 1 + tsc/internal/scanner/scanner_test.go | 12 + .../moduletransforms/commonjsmodule.go | 2 +- tsc/internal/tsoptions/enummaps.go | 1 + ...eplacement(libreplacement=true).trace.json | 13 + ...importMetaPropertyInvalidInCall.errors.txt | 4 +- .../importSource1(module=esnext).js | 17 + .../importSource1(module=esnext).symbols | 20 + .../importSource1(module=esnext).types | 19 + .../importSource1(module=preserve).js | 17 + .../importSource1(module=preserve).symbols | 20 + .../importSource1(module=preserve).types | 19 + .../reference/conformance/importSource10.js | 16 + .../conformance/importSource10.symbols | 16 + .../conformance/importSource10.types | 19 + .../conformance/importSource11.errors.txt | 107 +++++ .../conformance/importSource11.symbols | 85 ++++ .../conformance/importSource11.types | 153 +++++++ .../conformance/importSource12.symbols | 19 + .../conformance/importSource12.types | 22 + .../conformance/importSource13.errors.txt | 15 + .../reference/conformance/importSource13.js | 26 ++ .../conformance/importSource13.symbols | 30 ++ .../conformance/importSource13.types | 30 ++ .../reference/conformance/importSource14.js | 20 + .../conformance/importSource14.symbols | 10 + .../conformance/importSource14.types | 13 + ...importSource15(module=commonjs).errors.txt | 18 + .../importSource15(module=commonjs).symbols | 13 + .../importSource15(module=commonjs).types | 16 + ...importSource15(module=nodenext).errors.txt | 15 + .../importSource15(module=nodenext).symbols | 13 + .../importSource15(module=nodenext).types | 16 + ...ext,nouncheckedsideeffectimports=false).js | 48 +++ ...ouncheckedsideeffectimports=false).symbols | 58 +++ ...,nouncheckedsideeffectimports=false).types | 67 +++ ...next,nouncheckedsideeffectimports=true).js | 48 +++ ...nouncheckedsideeffectimports=true).symbols | 58 +++ ...t,nouncheckedsideeffectimports=true).types | 67 +++ ...ext,nouncheckedsideeffectimports=false).js | 48 +++ ...ouncheckedsideeffectimports=false).symbols | 58 +++ ...,nouncheckedsideeffectimports=false).types | 67 +++ ...next,nouncheckedsideeffectimports=true).js | 48 +++ ...nouncheckedsideeffectimports=true).symbols | 58 +++ ...t,nouncheckedsideeffectimports=true).types | 67 +++ ...rve,nouncheckedsideeffectimports=false).js | 48 +++ ...ouncheckedsideeffectimports=false).symbols | 58 +++ ...,nouncheckedsideeffectimports=false).types | 67 +++ ...erve,nouncheckedsideeffectimports=true).js | 48 +++ ...nouncheckedsideeffectimports=true).symbols | 58 +++ ...e,nouncheckedsideeffectimports=true).types | 67 +++ .../conformance/importSource17.errors.txt | 61 +++ .../reference/conformance/importSource17.js | 31 ++ .../conformance/importSource17.symbols | 40 ++ .../conformance/importSource17.types | 72 ++++ .../conformance/importSource18.errors.txt | 9 + .../reference/conformance/importSource18.js | 12 + .../conformance/importSource18.symbols | 11 + .../conformance/importSource18.types | 14 + .../reference/conformance/importSource19.js | 33 ++ .../conformance/importSource19.symbols | 42 ++ .../conformance/importSource19.types | 41 ++ .../importSource2(module=esnext).js | 43 ++ .../importSource2(module=esnext).symbols | 59 +++ .../importSource2(module=esnext).types | 70 ++++ .../importSource2(module=preserve).js | 39 ++ .../importSource2(module=preserve).symbols | 59 +++ .../importSource2(module=preserve).types | 70 ++++ .../importSource20(module=nodenext).js | 33 ++ .../importSource20(module=nodenext).symbols | 32 ++ .../importSource20(module=nodenext).types | 35 ++ .../importSource20(module=preserve).js | 33 ++ .../importSource20(module=preserve).symbols | 32 ++ .../importSource20(module=preserve).types | 35 ++ ...ortSource21(verbatimmodulesyntax=false).js | 19 + ...urce21(verbatimmodulesyntax=false).symbols | 20 + ...Source21(verbatimmodulesyntax=false).types | 20 + ...portSource21(verbatimmodulesyntax=true).js | 21 + ...ource21(verbatimmodulesyntax=true).symbols | 20 + ...tSource21(verbatimmodulesyntax=true).types | 20 + .../reference/conformance/importSource3.js | 70 ++++ .../conformance/importSource3.symbols | 81 ++++ .../reference/conformance/importSource3.types | 80 ++++ .../conformance/importSource4.errors.txt | 45 ++ .../reference/conformance/importSource4.js | 37 ++ .../conformance/importSource4.symbols | 28 ++ .../reference/conformance/importSource4.types | 33 ++ .../conformance/importSource5.errors.txt | 71 ++++ .../reference/conformance/importSource5.js | 57 +++ .../conformance/importSource5.symbols | 36 ++ .../reference/conformance/importSource5.types | 89 ++++ .../conformance/importSource6.errors.txt | 15 + .../reference/conformance/importSource6.js | 18 + .../conformance/importSource6.symbols | 13 + .../reference/conformance/importSource6.types | 16 + .../reference/conformance/importSource7.js | 20 + .../conformance/importSource7.symbols | 27 ++ .../reference/conformance/importSource7.types | 27 ++ .../reference/conformance/importSource8.js | 12 + .../conformance/importSource8.symbols | 13 + .../reference/conformance/importSource8.types | 17 + .../reference/conformance/importSource9.js | 44 ++ .../conformance/importSource9.symbols | 40 ++ .../reference/conformance/importSource9.types | 41 ++ .../goToDefinition_sourcePhase.baseline.jsonc | 29 ++ .../referencesImportSource.baseline.jsonc | 75 ++++ .../referencesImportSource2.baseline.jsonc | 42 ++ .../referencesImportSource.baseline.jsonc | 53 +++ .../referencesImportSource2.baseline.jsonc | 25 ++ .../goToDefinition_sourcePhase.baseline.jsonc | 85 ++++ ...ourceDefinitionImportSource.baseline.jsonc | 113 +++++ .../goToDefinition_sourcePhase.baseline.jsonc | 85 ++++ ...ourceDefinitionImportSource.baseline.jsonc | 113 +++++ ...ig-with-incorrect-compiler-option-value.js | 2 +- .../reference/tsc/commandLine/help-all.js | 2 +- .../reference/tsc/commandLine/help.js | 2 +- ...when-host-cannot-provide-terminal-width.js | 2 +- ...tatus.DiagnosticsPresent_OutputsSkipped.js | 4 +- ...-config-file-absent-with---ignoreConfig.js | 2 +- ...out-any-options-when-config-file-absent.js | 2 +- ...ig-with-incorrect-compiler-option-value.js | 2 +- ...h-interval-option-without-tsconfig.json.js | 2 +- .../watch-handles-tsconfig-deleted.js | 2 +- .../Parse invalid option of library flags.js | 2 +- .../conformance/importSource/importSource1.ts | 11 + .../importSource/importSource10.ts | 11 + .../importSource/importSource11.ts | 58 +++ .../importSource/importSource12.ts | 18 + .../importSource/importSource13.ts | 13 + .../importSource/importSource14.ts | 12 + .../importSource/importSource15.ts | 14 + .../importSource/importSource16.ts | 21 + .../importSource/importSource17.ts | 18 + .../importSource/importSource18.ts | 8 + .../importSource/importSource19.ts | 21 + .../conformance/importSource/importSource2.ts | 25 ++ .../importSource/importSource20.ts | 20 + .../importSource/importSource21.ts | 11 + .../conformance/importSource/importSource3.ts | 42 ++ .../conformance/importSource/importSource4.ts | 21 + .../conformance/importSource/importSource5.ts | 29 ++ .../conformance/importSource/importSource6.ts | 9 + .../conformance/importSource/importSource7.ts | 15 + .../conformance/importSource/importSource8.ts | 8 + .../conformance/importSource/importSource9.ts | 21 + 190 files changed, 6336 insertions(+), 655 deletions(-) create mode 100644 tsc/internal/bundled/libs/lib.esnext.modulesource.d.ts create mode 100644 tsc/internal/fourslash/tests/autoImport_sourcePhase_test.go create mode 100644 tsc/internal/fourslash/tests/goToDefinition_sourcePhase_test.go create mode 100644 tsc/internal/fourslash/tests/goToSourceDefinitionImportSource_test.go create mode 100644 tsc/internal/fourslash/tests/organizeImports_sourcePhase_test.go create mode 100644 tsc/internal/fourslash/tests/referencesImportSource2_test.go create mode 100644 tsc/internal/fourslash/tests/referencesImportSource_test.go create mode 100644 tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource10.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource10.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource10.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource11.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource11.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource11.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource12.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource12.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource13.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource13.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource13.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource13.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource14.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource14.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource14.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource17.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource17.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource17.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource17.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource18.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource18.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource18.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource18.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource19.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource19.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource19.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource3.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource3.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource3.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource4.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource4.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource4.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource4.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource5.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource5.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource5.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource5.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource6.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/importSource6.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource6.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource6.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource7.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource7.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource7.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource8.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource8.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource8.types create mode 100644 tsc/testdata/baselines/reference/conformance/importSource9.js create mode 100644 tsc/testdata/baselines/reference/conformance/importSource9.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importSource9.types create mode 100644 tsc/testdata/baselines/reference/fourslash/findAllReferences/goToDefinition_sourcePhase.baseline.jsonc create mode 100644 tsc/testdata/baselines/reference/fourslash/findAllReferences/referencesImportSource.baseline.jsonc create mode 100644 tsc/testdata/baselines/reference/fourslash/findAllReferences/referencesImportSource2.baseline.jsonc create mode 100644 tsc/testdata/baselines/reference/fourslash/findRenameLocations/referencesImportSource.baseline.jsonc create mode 100644 tsc/testdata/baselines/reference/fourslash/findRenameLocations/referencesImportSource2.baseline.jsonc create mode 100644 tsc/testdata/baselines/reference/fourslash/goToDefinition/goToDefinition_sourcePhase.baseline.jsonc create mode 100644 tsc/testdata/baselines/reference/fourslash/goToDefinition/goToSourceDefinitionImportSource.baseline.jsonc create mode 100644 tsc/testdata/baselines/reference/fourslash/goToSourceDefinition/goToDefinition_sourcePhase.baseline.jsonc create mode 100644 tsc/testdata/baselines/reference/fourslash/goToSourceDefinition/goToSourceDefinitionImportSource.baseline.jsonc create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource1.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource10.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource11.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource12.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource13.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource14.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource15.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource16.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource17.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource18.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource19.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource2.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource20.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource21.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource3.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource4.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource5.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource6.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource7.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource8.ts create mode 100644 tsc/testdata/tests/cases/conformance/importSource/importSource9.ts diff --git a/packages/typescript/src/api/node/encoder.generated.ts b/packages/typescript/src/api/node/encoder.generated.ts index df5572d9690aa..7b9c4de1425f6 100644 --- a/packages/typescript/src/api/node/encoder.generated.ts +++ b/packages/typescript/src/api/node/encoder.generated.ts @@ -91,7 +91,7 @@ export function getNodeCommonData(node: Node): number { case SyntaxKind.ImportType: return ((node as ImportTypeNode).isTypeOf ? 1 : 0) << 24; case SyntaxKind.ImportClause: - return ((node as ImportClause).phaseModifier === SyntaxKind.TypeKeyword ? 1 : (node as ImportClause).phaseModifier === SyntaxKind.DeferKeyword ? 2 : 0) << 24; + return ((node as ImportClause).phaseModifier === SyntaxKind.TypeKeyword ? 1 : (node as ImportClause).phaseModifier === SyntaxKind.DeferKeyword ? 2 : (node as ImportClause).phaseModifier === SyntaxKind.SourceKeyword ? 3 : 0) << 24; case SyntaxKind.ImportSpecifier: return ((node as ImportSpecifier).isTypeOnly ? 1 : 0) << 24; case SyntaxKind.JSDocTypeLiteral: diff --git a/packages/typescript/src/api/node/node.generated.ts b/packages/typescript/src/api/node/node.generated.ts index a5f2991ae0054..0f69dbc63abd3 100644 --- a/packages/typescript/src/api/node/node.generated.ts +++ b/packages/typescript/src/api/node/node.generated.ts @@ -590,7 +590,7 @@ export class RemoteNode extends RemoteNodeBase implements Node { case SyntaxKind.ImportClause: { const idx = (this.data >> 24) & 0x3; if (idx === 0) return undefined; - return idx === 1 ? SyntaxKind.TypeKeyword : idx === 2 ? SyntaxKind.DeferKeyword : undefined; + return idx === 1 ? SyntaxKind.TypeKeyword : idx === 2 ? SyntaxKind.DeferKeyword : idx === 3 ? SyntaxKind.SourceKeyword : undefined; } } } diff --git a/packages/typescript/src/ast/ast.generated.ts b/packages/typescript/src/ast/ast.generated.ts index 819fd5fd13c6f..723093189f812 100644 --- a/packages/typescript/src/ast/ast.generated.ts +++ b/packages/typescript/src/ast/ast.generated.ts @@ -159,7 +159,8 @@ export type KeywordSyntaxKind = | SyntaxKind.BigIntKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.OfKeyword - | SyntaxKind.DeferKeyword; + | SyntaxKind.DeferKeyword + | SyntaxKind.SourceKeyword; export type ModifierSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AccessorKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.ConstKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.ExportKeyword | SyntaxKind.InKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.StaticKeyword; export type KeywordTypeSyntaxKind = SyntaxKind.AnyKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VoidKeyword; export type KeywordExpressionSyntaxKind = SyntaxKind.NullKeyword | SyntaxKind.TrueKeyword | SyntaxKind.FalseKeyword | SyntaxKind.ThisKeyword | SyntaxKind.SuperKeyword | SyntaxKind.ImportKeyword; @@ -330,7 +331,8 @@ export type TokenSyntaxKind = | SyntaxKind.BigIntKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.OfKeyword - | SyntaxKind.DeferKeyword; + | SyntaxKind.DeferKeyword + | SyntaxKind.SourceKeyword; export type JsxTokenSyntaxKind = SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFile | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken; export type JSDocNodeSyntaxKind = | SyntaxKind.JSDocTypeExpression @@ -369,7 +371,7 @@ export type JSDocNodeSyntaxKind = | SyntaxKind.JSDocThrowsTag | SyntaxKind.JSDocSatisfiesTag | SyntaxKind.JSDocImportTag; -export type ImportPhaseModifierSyntaxKind = SyntaxKind.TypeKeyword | SyntaxKind.DeferKeyword; +export type ImportPhaseModifierSyntaxKind = SyntaxKind.TypeKeyword | SyntaxKind.DeferKeyword | SyntaxKind.SourceKeyword; export type PostfixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken; export type PrefixUnaryOperator = SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.TildeToken | SyntaxKind.ExclamationToken | SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken; export type AssignmentOperator = SyntaxKind.EqualsToken | CompoundAssignmentOperator; diff --git a/packages/typescript/src/ast/is.generated.ts b/packages/typescript/src/ast/is.generated.ts index 7e529557d817c..ca0e420be64b2 100644 --- a/packages/typescript/src/ast/is.generated.ts +++ b/packages/typescript/src/ast/is.generated.ts @@ -2773,7 +2773,8 @@ export function isJsxTokenKind(kind: SyntaxKind): kind is JsxTokenSyntaxKind { export function isImportPhaseModifierKind(kind: SyntaxKind): kind is ImportPhaseModifierSyntaxKind { return kind === SyntaxKind.TypeKeyword - || kind === SyntaxKind.DeferKeyword; + || kind === SyntaxKind.DeferKeyword + || kind === SyntaxKind.SourceKeyword; } export function isPostfixUnaryOperator(kind: SyntaxKind): kind is PostfixUnaryOperator { diff --git a/packages/typescript/src/ast/scanner.ts b/packages/typescript/src/ast/scanner.ts index df3a7415cec5d..7b103bad149ca 100644 --- a/packages/typescript/src/ast/scanner.ts +++ b/packages/typescript/src/ast/scanner.ts @@ -149,6 +149,7 @@ export const textToKeywordObj: Record = { return: SyntaxKind.ReturnKeyword, satisfies: SyntaxKind.SatisfiesKeyword, set: SyntaxKind.SetKeyword, + source: SyntaxKind.SourceKeyword, static: SyntaxKind.StaticKeyword, string: SyntaxKind.StringKeyword, super: SyntaxKind.SuperKeyword, diff --git a/packages/typescript/src/enums/syntaxKind.enum.ts b/packages/typescript/src/enums/syntaxKind.enum.ts index 5406e8d451380..fd5ff126a0aba 100644 --- a/packages/typescript/src/enums/syntaxKind.enum.ts +++ b/packages/typescript/src/enums/syntaxKind.enum.ts @@ -168,191 +168,192 @@ export enum SyntaxKind { OverrideKeyword = 164, OfKeyword = 165, DeferKeyword = 166, - QualifiedName = 167, - ComputedPropertyName = 168, - TypeParameter = 169, - Parameter = 170, - Decorator = 171, - PropertySignature = 172, - PropertyDeclaration = 173, - MethodSignature = 174, - MethodDeclaration = 175, - ClassStaticBlockDeclaration = 176, - Constructor = 177, - GetAccessor = 178, - SetAccessor = 179, - CallSignature = 180, - ConstructSignature = 181, - IndexSignature = 182, - TypePredicate = 183, - TypeReference = 184, - FunctionType = 185, - ConstructorType = 186, - TypeQuery = 187, - TypeLiteral = 188, - ArrayType = 189, - TupleType = 190, - OptionalType = 191, - RestType = 192, - UnionType = 193, - IntersectionType = 194, - ConditionalType = 195, - InferType = 196, - ParenthesizedType = 197, - ThisType = 198, - TypeOperator = 199, - IndexedAccessType = 200, - MappedType = 201, - LiteralType = 202, - NamedTupleMember = 203, - TemplateLiteralType = 204, - TemplateLiteralTypeSpan = 205, - ImportType = 206, - ObjectBindingPattern = 207, - ArrayBindingPattern = 208, - BindingElement = 209, - ArrayLiteralExpression = 210, - ObjectLiteralExpression = 211, - PropertyAccessExpression = 212, - ElementAccessExpression = 213, - CallExpression = 214, - NewExpression = 215, - TaggedTemplateExpression = 216, - TypeAssertionExpression = 217, - ParenthesizedExpression = 218, - FunctionExpression = 219, - ArrowFunction = 220, - DeleteExpression = 221, - TypeOfExpression = 222, - VoidExpression = 223, - AwaitExpression = 224, - PrefixUnaryExpression = 225, - PostfixUnaryExpression = 226, - BinaryExpression = 227, - ConditionalExpression = 228, - TemplateExpression = 229, - YieldExpression = 230, - SpreadElement = 231, - ClassExpression = 232, - OmittedExpression = 233, - ExpressionWithTypeArguments = 234, - AsExpression = 235, - NonNullExpression = 236, - MetaProperty = 237, - SyntheticExpression = 238, - SatisfiesExpression = 239, - TemplateSpan = 240, - SemicolonClassElement = 241, - Block = 242, - EmptyStatement = 243, - VariableStatement = 244, - ExpressionStatement = 245, - IfStatement = 246, - DoStatement = 247, - WhileStatement = 248, - ForStatement = 249, - ForInStatement = 250, - ForOfStatement = 251, - ContinueStatement = 252, - BreakStatement = 253, - ReturnStatement = 254, - WithStatement = 255, - SwitchStatement = 256, - LabeledStatement = 257, - ThrowStatement = 258, - TryStatement = 259, - DebuggerStatement = 260, - VariableDeclaration = 261, - VariableDeclarationList = 262, - FunctionDeclaration = 263, - ClassDeclaration = 264, - InterfaceDeclaration = 265, - TypeAliasDeclaration = 266, - EnumDeclaration = 267, - ModuleDeclaration = 268, - ModuleBlock = 269, - CaseBlock = 270, - NamespaceExportDeclaration = 271, - ImportEqualsDeclaration = 272, - ImportDeclaration = 273, - ImportClause = 274, - NamespaceImport = 275, - NamedImports = 276, - ImportSpecifier = 277, - ExportAssignment = 278, - ExportDeclaration = 279, - NamedExports = 280, - NamespaceExport = 281, - ExportSpecifier = 282, - MissingDeclaration = 283, - ExternalModuleReference = 284, - JsxElement = 285, - JsxSelfClosingElement = 286, - JsxOpeningElement = 287, - JsxClosingElement = 288, - JsxFragment = 289, - JsxOpeningFragment = 290, - JsxClosingFragment = 291, - JsxAttribute = 292, - JsxAttributes = 293, - JsxSpreadAttribute = 294, - JsxExpression = 295, - JsxNamespacedName = 296, - CaseClause = 297, - DefaultClause = 298, - HeritageClause = 299, - CatchClause = 300, - ImportAttributes = 301, - ImportAttribute = 302, - PropertyAssignment = 303, - ShorthandPropertyAssignment = 304, - SpreadAssignment = 305, - EnumMember = 306, - SourceFile = 307, - JSDocTypeExpression = 308, - JSDocNameReference = 309, - JSDocAllType = 310, - JSDocNullableType = 311, - JSDocNonNullableType = 312, - JSDocOptionalType = 313, - JSDocVariadicType = 314, - JSDoc = 315, - JSDocText = 316, - JSDocTypeLiteral = 317, - JSDocSignature = 318, - JSDocLink = 319, - JSDocLinkCode = 320, - JSDocLinkPlain = 321, - JSDocUnknownTag = 322, - JSDocAugmentsTag = 323, - JSDocImplementsTag = 324, - JSDocDeprecatedTag = 325, - JSDocPublicTag = 326, - JSDocPrivateTag = 327, - JSDocProtectedTag = 328, - JSDocReadonlyTag = 329, - JSDocOverrideTag = 330, - JSDocCallbackTag = 331, - JSDocOverloadTag = 332, - JSDocParameterTag = 333, - JSDocReturnTag = 334, - JSDocThisTag = 335, - JSDocTypeTag = 336, - JSDocTemplateTag = 337, - JSDocTypedefTag = 338, - JSDocSeeTag = 339, - JSDocPropertyTag = 340, - JSDocThrowsTag = 341, - JSDocSatisfiesTag = 342, - JSDocImportTag = 343, - SyntaxList = 344, - JSTypeAliasDeclaration = 345, - JSImportDeclaration = 346, - NotEmittedStatement = 347, - PartiallyEmittedExpression = 348, - SyntheticReferenceExpression = 349, - NotEmittedTypeElement = 350, - Count = 351, + SourceKeyword = 167, + QualifiedName = 168, + ComputedPropertyName = 169, + TypeParameter = 170, + Parameter = 171, + Decorator = 172, + PropertySignature = 173, + PropertyDeclaration = 174, + MethodSignature = 175, + MethodDeclaration = 176, + ClassStaticBlockDeclaration = 177, + Constructor = 178, + GetAccessor = 179, + SetAccessor = 180, + CallSignature = 181, + ConstructSignature = 182, + IndexSignature = 183, + TypePredicate = 184, + TypeReference = 185, + FunctionType = 186, + ConstructorType = 187, + TypeQuery = 188, + TypeLiteral = 189, + ArrayType = 190, + TupleType = 191, + OptionalType = 192, + RestType = 193, + UnionType = 194, + IntersectionType = 195, + ConditionalType = 196, + InferType = 197, + ParenthesizedType = 198, + ThisType = 199, + TypeOperator = 200, + IndexedAccessType = 201, + MappedType = 202, + LiteralType = 203, + NamedTupleMember = 204, + TemplateLiteralType = 205, + TemplateLiteralTypeSpan = 206, + ImportType = 207, + ObjectBindingPattern = 208, + ArrayBindingPattern = 209, + BindingElement = 210, + ArrayLiteralExpression = 211, + ObjectLiteralExpression = 212, + PropertyAccessExpression = 213, + ElementAccessExpression = 214, + CallExpression = 215, + NewExpression = 216, + TaggedTemplateExpression = 217, + TypeAssertionExpression = 218, + ParenthesizedExpression = 219, + FunctionExpression = 220, + ArrowFunction = 221, + DeleteExpression = 222, + TypeOfExpression = 223, + VoidExpression = 224, + AwaitExpression = 225, + PrefixUnaryExpression = 226, + PostfixUnaryExpression = 227, + BinaryExpression = 228, + ConditionalExpression = 229, + TemplateExpression = 230, + YieldExpression = 231, + SpreadElement = 232, + ClassExpression = 233, + OmittedExpression = 234, + ExpressionWithTypeArguments = 235, + AsExpression = 236, + NonNullExpression = 237, + MetaProperty = 238, + SyntheticExpression = 239, + SatisfiesExpression = 240, + TemplateSpan = 241, + SemicolonClassElement = 242, + Block = 243, + EmptyStatement = 244, + VariableStatement = 245, + ExpressionStatement = 246, + IfStatement = 247, + DoStatement = 248, + WhileStatement = 249, + ForStatement = 250, + ForInStatement = 251, + ForOfStatement = 252, + ContinueStatement = 253, + BreakStatement = 254, + ReturnStatement = 255, + WithStatement = 256, + SwitchStatement = 257, + LabeledStatement = 258, + ThrowStatement = 259, + TryStatement = 260, + DebuggerStatement = 261, + VariableDeclaration = 262, + VariableDeclarationList = 263, + FunctionDeclaration = 264, + ClassDeclaration = 265, + InterfaceDeclaration = 266, + TypeAliasDeclaration = 267, + EnumDeclaration = 268, + ModuleDeclaration = 269, + ModuleBlock = 270, + CaseBlock = 271, + NamespaceExportDeclaration = 272, + ImportEqualsDeclaration = 273, + ImportDeclaration = 274, + ImportClause = 275, + NamespaceImport = 276, + NamedImports = 277, + ImportSpecifier = 278, + ExportAssignment = 279, + ExportDeclaration = 280, + NamedExports = 281, + NamespaceExport = 282, + ExportSpecifier = 283, + MissingDeclaration = 284, + ExternalModuleReference = 285, + JsxElement = 286, + JsxSelfClosingElement = 287, + JsxOpeningElement = 288, + JsxClosingElement = 289, + JsxFragment = 290, + JsxOpeningFragment = 291, + JsxClosingFragment = 292, + JsxAttribute = 293, + JsxAttributes = 294, + JsxSpreadAttribute = 295, + JsxExpression = 296, + JsxNamespacedName = 297, + CaseClause = 298, + DefaultClause = 299, + HeritageClause = 300, + CatchClause = 301, + ImportAttributes = 302, + ImportAttribute = 303, + PropertyAssignment = 304, + ShorthandPropertyAssignment = 305, + SpreadAssignment = 306, + EnumMember = 307, + SourceFile = 308, + JSDocTypeExpression = 309, + JSDocNameReference = 310, + JSDocAllType = 311, + JSDocNullableType = 312, + JSDocNonNullableType = 313, + JSDocOptionalType = 314, + JSDocVariadicType = 315, + JSDoc = 316, + JSDocText = 317, + JSDocTypeLiteral = 318, + JSDocSignature = 319, + JSDocLink = 320, + JSDocLinkCode = 321, + JSDocLinkPlain = 322, + JSDocUnknownTag = 323, + JSDocAugmentsTag = 324, + JSDocImplementsTag = 325, + JSDocDeprecatedTag = 326, + JSDocPublicTag = 327, + JSDocPrivateTag = 328, + JSDocProtectedTag = 329, + JSDocReadonlyTag = 330, + JSDocOverrideTag = 331, + JSDocCallbackTag = 332, + JSDocOverloadTag = 333, + JSDocParameterTag = 334, + JSDocReturnTag = 335, + JSDocThisTag = 336, + JSDocTypeTag = 337, + JSDocTemplateTag = 338, + JSDocTypedefTag = 339, + JSDocSeeTag = 340, + JSDocPropertyTag = 341, + JSDocThrowsTag = 342, + JSDocSatisfiesTag = 343, + JSDocImportTag = 344, + SyntaxList = 345, + JSTypeAliasDeclaration = 346, + JSImportDeclaration = 347, + NotEmittedStatement = 348, + PartiallyEmittedExpression = 349, + SyntheticReferenceExpression = 350, + NotEmittedTypeElement = 351, + Count = 352, FirstAssignment = EqualsToken, LastAssignment = CaretEqualsToken, FirstCompoundAssignment = PlusEqualsToken, @@ -360,7 +361,7 @@ export enum SyntaxKind { FirstReservedWord = BreakKeyword, LastReservedWord = WithKeyword, FirstKeyword = BreakKeyword, - LastKeyword = DeferKeyword, + LastKeyword = SourceKeyword, FirstFutureReservedWord = ImplementsKeyword, LastFutureReservedWord = YieldKeyword, FirstTypeNode = TypePredicate, @@ -383,7 +384,7 @@ export enum SyntaxKind { FirstJSDocTagNode = JSDocUnknownTag, LastJSDocTagNode = JSDocImportTag, FirstContextualKeyword = AbstractKeyword, - LastContextualKeyword = DeferKeyword, + LastContextualKeyword = SourceKeyword, LastUnaryOperator = TildeToken, FirstTriviaToken = SingleLineCommentTrivia, LastTriviaToken = ConflictMarkerTrivia, diff --git a/packages/typescript/src/enums/syntaxKind.ts b/packages/typescript/src/enums/syntaxKind.ts index f1076f6dcbdf5..a49d7107802e6 100644 --- a/packages/typescript/src/enums/syntaxKind.ts +++ b/packages/typescript/src/enums/syntaxKind.ts @@ -168,191 +168,192 @@ export var SyntaxKind: any; SyntaxKind[SyntaxKind["OverrideKeyword"] = 164] = "OverrideKeyword"; SyntaxKind[SyntaxKind["OfKeyword"] = 165] = "OfKeyword"; 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["JSDocTypeExpression"] = 308] = "JSDocTypeExpression"; - SyntaxKind[SyntaxKind["JSDocNameReference"] = 309] = "JSDocNameReference"; - SyntaxKind[SyntaxKind["JSDocAllType"] = 310] = "JSDocAllType"; - SyntaxKind[SyntaxKind["JSDocNullableType"] = 311] = "JSDocNullableType"; - SyntaxKind[SyntaxKind["JSDocNonNullableType"] = 312] = "JSDocNonNullableType"; - SyntaxKind[SyntaxKind["JSDocOptionalType"] = 313] = "JSDocOptionalType"; - SyntaxKind[SyntaxKind["JSDocVariadicType"] = 314] = "JSDocVariadicType"; - SyntaxKind[SyntaxKind["JSDoc"] = 315] = "JSDoc"; - SyntaxKind[SyntaxKind["JSDocText"] = 316] = "JSDocText"; - SyntaxKind[SyntaxKind["JSDocTypeLiteral"] = 317] = "JSDocTypeLiteral"; - SyntaxKind[SyntaxKind["JSDocSignature"] = 318] = "JSDocSignature"; - SyntaxKind[SyntaxKind["JSDocLink"] = 319] = "JSDocLink"; - SyntaxKind[SyntaxKind["JSDocLinkCode"] = 320] = "JSDocLinkCode"; - SyntaxKind[SyntaxKind["JSDocLinkPlain"] = 321] = "JSDocLinkPlain"; - SyntaxKind[SyntaxKind["JSDocUnknownTag"] = 322] = "JSDocUnknownTag"; - SyntaxKind[SyntaxKind["JSDocAugmentsTag"] = 323] = "JSDocAugmentsTag"; - SyntaxKind[SyntaxKind["JSDocImplementsTag"] = 324] = "JSDocImplementsTag"; - SyntaxKind[SyntaxKind["JSDocDeprecatedTag"] = 325] = "JSDocDeprecatedTag"; - SyntaxKind[SyntaxKind["JSDocPublicTag"] = 326] = "JSDocPublicTag"; - SyntaxKind[SyntaxKind["JSDocPrivateTag"] = 327] = "JSDocPrivateTag"; - SyntaxKind[SyntaxKind["JSDocProtectedTag"] = 328] = "JSDocProtectedTag"; - SyntaxKind[SyntaxKind["JSDocReadonlyTag"] = 329] = "JSDocReadonlyTag"; - SyntaxKind[SyntaxKind["JSDocOverrideTag"] = 330] = "JSDocOverrideTag"; - SyntaxKind[SyntaxKind["JSDocCallbackTag"] = 331] = "JSDocCallbackTag"; - SyntaxKind[SyntaxKind["JSDocOverloadTag"] = 332] = "JSDocOverloadTag"; - SyntaxKind[SyntaxKind["JSDocParameterTag"] = 333] = "JSDocParameterTag"; - SyntaxKind[SyntaxKind["JSDocReturnTag"] = 334] = "JSDocReturnTag"; - SyntaxKind[SyntaxKind["JSDocThisTag"] = 335] = "JSDocThisTag"; - SyntaxKind[SyntaxKind["JSDocTypeTag"] = 336] = "JSDocTypeTag"; - SyntaxKind[SyntaxKind["JSDocTemplateTag"] = 337] = "JSDocTemplateTag"; - SyntaxKind[SyntaxKind["JSDocTypedefTag"] = 338] = "JSDocTypedefTag"; - SyntaxKind[SyntaxKind["JSDocSeeTag"] = 339] = "JSDocSeeTag"; - SyntaxKind[SyntaxKind["JSDocPropertyTag"] = 340] = "JSDocPropertyTag"; - SyntaxKind[SyntaxKind["JSDocThrowsTag"] = 341] = "JSDocThrowsTag"; - SyntaxKind[SyntaxKind["JSDocSatisfiesTag"] = 342] = "JSDocSatisfiesTag"; - SyntaxKind[SyntaxKind["JSDocImportTag"] = 343] = "JSDocImportTag"; - SyntaxKind[SyntaxKind["SyntaxList"] = 344] = "SyntaxList"; - SyntaxKind[SyntaxKind["JSTypeAliasDeclaration"] = 345] = "JSTypeAliasDeclaration"; - SyntaxKind[SyntaxKind["JSImportDeclaration"] = 346] = "JSImportDeclaration"; - SyntaxKind[SyntaxKind["NotEmittedStatement"] = 347] = "NotEmittedStatement"; - SyntaxKind[SyntaxKind["PartiallyEmittedExpression"] = 348] = "PartiallyEmittedExpression"; - SyntaxKind[SyntaxKind["SyntheticReferenceExpression"] = 349] = "SyntheticReferenceExpression"; - SyntaxKind[SyntaxKind["NotEmittedTypeElement"] = 350] = "NotEmittedTypeElement"; - SyntaxKind[SyntaxKind["Count"] = 351] = "Count"; + SyntaxKind[SyntaxKind["SourceKeyword"] = 167] = "SourceKeyword"; + SyntaxKind[SyntaxKind["QualifiedName"] = 168] = "QualifiedName"; + SyntaxKind[SyntaxKind["ComputedPropertyName"] = 169] = "ComputedPropertyName"; + SyntaxKind[SyntaxKind["TypeParameter"] = 170] = "TypeParameter"; + SyntaxKind[SyntaxKind["Parameter"] = 171] = "Parameter"; + SyntaxKind[SyntaxKind["Decorator"] = 172] = "Decorator"; + SyntaxKind[SyntaxKind["PropertySignature"] = 173] = "PropertySignature"; + SyntaxKind[SyntaxKind["PropertyDeclaration"] = 174] = "PropertyDeclaration"; + SyntaxKind[SyntaxKind["MethodSignature"] = 175] = "MethodSignature"; + SyntaxKind[SyntaxKind["MethodDeclaration"] = 176] = "MethodDeclaration"; + SyntaxKind[SyntaxKind["ClassStaticBlockDeclaration"] = 177] = "ClassStaticBlockDeclaration"; + SyntaxKind[SyntaxKind["Constructor"] = 178] = "Constructor"; + SyntaxKind[SyntaxKind["GetAccessor"] = 179] = "GetAccessor"; + SyntaxKind[SyntaxKind["SetAccessor"] = 180] = "SetAccessor"; + SyntaxKind[SyntaxKind["CallSignature"] = 181] = "CallSignature"; + SyntaxKind[SyntaxKind["ConstructSignature"] = 182] = "ConstructSignature"; + SyntaxKind[SyntaxKind["IndexSignature"] = 183] = "IndexSignature"; + SyntaxKind[SyntaxKind["TypePredicate"] = 184] = "TypePredicate"; + SyntaxKind[SyntaxKind["TypeReference"] = 185] = "TypeReference"; + SyntaxKind[SyntaxKind["FunctionType"] = 186] = "FunctionType"; + SyntaxKind[SyntaxKind["ConstructorType"] = 187] = "ConstructorType"; + SyntaxKind[SyntaxKind["TypeQuery"] = 188] = "TypeQuery"; + SyntaxKind[SyntaxKind["TypeLiteral"] = 189] = "TypeLiteral"; + SyntaxKind[SyntaxKind["ArrayType"] = 190] = "ArrayType"; + SyntaxKind[SyntaxKind["TupleType"] = 191] = "TupleType"; + SyntaxKind[SyntaxKind["OptionalType"] = 192] = "OptionalType"; + SyntaxKind[SyntaxKind["RestType"] = 193] = "RestType"; + SyntaxKind[SyntaxKind["UnionType"] = 194] = "UnionType"; + SyntaxKind[SyntaxKind["IntersectionType"] = 195] = "IntersectionType"; + SyntaxKind[SyntaxKind["ConditionalType"] = 196] = "ConditionalType"; + SyntaxKind[SyntaxKind["InferType"] = 197] = "InferType"; + SyntaxKind[SyntaxKind["ParenthesizedType"] = 198] = "ParenthesizedType"; + SyntaxKind[SyntaxKind["ThisType"] = 199] = "ThisType"; + SyntaxKind[SyntaxKind["TypeOperator"] = 200] = "TypeOperator"; + SyntaxKind[SyntaxKind["IndexedAccessType"] = 201] = "IndexedAccessType"; + SyntaxKind[SyntaxKind["MappedType"] = 202] = "MappedType"; + SyntaxKind[SyntaxKind["LiteralType"] = 203] = "LiteralType"; + SyntaxKind[SyntaxKind["NamedTupleMember"] = 204] = "NamedTupleMember"; + SyntaxKind[SyntaxKind["TemplateLiteralType"] = 205] = "TemplateLiteralType"; + SyntaxKind[SyntaxKind["TemplateLiteralTypeSpan"] = 206] = "TemplateLiteralTypeSpan"; + SyntaxKind[SyntaxKind["ImportType"] = 207] = "ImportType"; + SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 208] = "ObjectBindingPattern"; + SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 209] = "ArrayBindingPattern"; + SyntaxKind[SyntaxKind["BindingElement"] = 210] = "BindingElement"; + SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 211] = "ArrayLiteralExpression"; + SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 212] = "ObjectLiteralExpression"; + SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 213] = "PropertyAccessExpression"; + SyntaxKind[SyntaxKind["ElementAccessExpression"] = 214] = "ElementAccessExpression"; + SyntaxKind[SyntaxKind["CallExpression"] = 215] = "CallExpression"; + SyntaxKind[SyntaxKind["NewExpression"] = 216] = "NewExpression"; + SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 217] = "TaggedTemplateExpression"; + SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 218] = "TypeAssertionExpression"; + SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 219] = "ParenthesizedExpression"; + SyntaxKind[SyntaxKind["FunctionExpression"] = 220] = "FunctionExpression"; + SyntaxKind[SyntaxKind["ArrowFunction"] = 221] = "ArrowFunction"; + SyntaxKind[SyntaxKind["DeleteExpression"] = 222] = "DeleteExpression"; + SyntaxKind[SyntaxKind["TypeOfExpression"] = 223] = "TypeOfExpression"; + SyntaxKind[SyntaxKind["VoidExpression"] = 224] = "VoidExpression"; + SyntaxKind[SyntaxKind["AwaitExpression"] = 225] = "AwaitExpression"; + SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 226] = "PrefixUnaryExpression"; + SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 227] = "PostfixUnaryExpression"; + SyntaxKind[SyntaxKind["BinaryExpression"] = 228] = "BinaryExpression"; + SyntaxKind[SyntaxKind["ConditionalExpression"] = 229] = "ConditionalExpression"; + SyntaxKind[SyntaxKind["TemplateExpression"] = 230] = "TemplateExpression"; + SyntaxKind[SyntaxKind["YieldExpression"] = 231] = "YieldExpression"; + SyntaxKind[SyntaxKind["SpreadElement"] = 232] = "SpreadElement"; + SyntaxKind[SyntaxKind["ClassExpression"] = 233] = "ClassExpression"; + SyntaxKind[SyntaxKind["OmittedExpression"] = 234] = "OmittedExpression"; + SyntaxKind[SyntaxKind["ExpressionWithTypeArguments"] = 235] = "ExpressionWithTypeArguments"; + SyntaxKind[SyntaxKind["AsExpression"] = 236] = "AsExpression"; + SyntaxKind[SyntaxKind["NonNullExpression"] = 237] = "NonNullExpression"; + SyntaxKind[SyntaxKind["MetaProperty"] = 238] = "MetaProperty"; + SyntaxKind[SyntaxKind["SyntheticExpression"] = 239] = "SyntheticExpression"; + SyntaxKind[SyntaxKind["SatisfiesExpression"] = 240] = "SatisfiesExpression"; + SyntaxKind[SyntaxKind["TemplateSpan"] = 241] = "TemplateSpan"; + SyntaxKind[SyntaxKind["SemicolonClassElement"] = 242] = "SemicolonClassElement"; + SyntaxKind[SyntaxKind["Block"] = 243] = "Block"; + SyntaxKind[SyntaxKind["EmptyStatement"] = 244] = "EmptyStatement"; + SyntaxKind[SyntaxKind["VariableStatement"] = 245] = "VariableStatement"; + SyntaxKind[SyntaxKind["ExpressionStatement"] = 246] = "ExpressionStatement"; + SyntaxKind[SyntaxKind["IfStatement"] = 247] = "IfStatement"; + SyntaxKind[SyntaxKind["DoStatement"] = 248] = "DoStatement"; + SyntaxKind[SyntaxKind["WhileStatement"] = 249] = "WhileStatement"; + SyntaxKind[SyntaxKind["ForStatement"] = 250] = "ForStatement"; + SyntaxKind[SyntaxKind["ForInStatement"] = 251] = "ForInStatement"; + SyntaxKind[SyntaxKind["ForOfStatement"] = 252] = "ForOfStatement"; + SyntaxKind[SyntaxKind["ContinueStatement"] = 253] = "ContinueStatement"; + SyntaxKind[SyntaxKind["BreakStatement"] = 254] = "BreakStatement"; + SyntaxKind[SyntaxKind["ReturnStatement"] = 255] = "ReturnStatement"; + SyntaxKind[SyntaxKind["WithStatement"] = 256] = "WithStatement"; + SyntaxKind[SyntaxKind["SwitchStatement"] = 257] = "SwitchStatement"; + SyntaxKind[SyntaxKind["LabeledStatement"] = 258] = "LabeledStatement"; + SyntaxKind[SyntaxKind["ThrowStatement"] = 259] = "ThrowStatement"; + SyntaxKind[SyntaxKind["TryStatement"] = 260] = "TryStatement"; + SyntaxKind[SyntaxKind["DebuggerStatement"] = 261] = "DebuggerStatement"; + SyntaxKind[SyntaxKind["VariableDeclaration"] = 262] = "VariableDeclaration"; + SyntaxKind[SyntaxKind["VariableDeclarationList"] = 263] = "VariableDeclarationList"; + SyntaxKind[SyntaxKind["FunctionDeclaration"] = 264] = "FunctionDeclaration"; + SyntaxKind[SyntaxKind["ClassDeclaration"] = 265] = "ClassDeclaration"; + SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 266] = "InterfaceDeclaration"; + SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 267] = "TypeAliasDeclaration"; + SyntaxKind[SyntaxKind["EnumDeclaration"] = 268] = "EnumDeclaration"; + SyntaxKind[SyntaxKind["ModuleDeclaration"] = 269] = "ModuleDeclaration"; + SyntaxKind[SyntaxKind["ModuleBlock"] = 270] = "ModuleBlock"; + SyntaxKind[SyntaxKind["CaseBlock"] = 271] = "CaseBlock"; + SyntaxKind[SyntaxKind["NamespaceExportDeclaration"] = 272] = "NamespaceExportDeclaration"; + SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 273] = "ImportEqualsDeclaration"; + SyntaxKind[SyntaxKind["ImportDeclaration"] = 274] = "ImportDeclaration"; + SyntaxKind[SyntaxKind["ImportClause"] = 275] = "ImportClause"; + SyntaxKind[SyntaxKind["NamespaceImport"] = 276] = "NamespaceImport"; + SyntaxKind[SyntaxKind["NamedImports"] = 277] = "NamedImports"; + SyntaxKind[SyntaxKind["ImportSpecifier"] = 278] = "ImportSpecifier"; + SyntaxKind[SyntaxKind["ExportAssignment"] = 279] = "ExportAssignment"; + SyntaxKind[SyntaxKind["ExportDeclaration"] = 280] = "ExportDeclaration"; + SyntaxKind[SyntaxKind["NamedExports"] = 281] = "NamedExports"; + SyntaxKind[SyntaxKind["NamespaceExport"] = 282] = "NamespaceExport"; + SyntaxKind[SyntaxKind["ExportSpecifier"] = 283] = "ExportSpecifier"; + SyntaxKind[SyntaxKind["MissingDeclaration"] = 284] = "MissingDeclaration"; + SyntaxKind[SyntaxKind["ExternalModuleReference"] = 285] = "ExternalModuleReference"; + SyntaxKind[SyntaxKind["JsxElement"] = 286] = "JsxElement"; + SyntaxKind[SyntaxKind["JsxSelfClosingElement"] = 287] = "JsxSelfClosingElement"; + SyntaxKind[SyntaxKind["JsxOpeningElement"] = 288] = "JsxOpeningElement"; + SyntaxKind[SyntaxKind["JsxClosingElement"] = 289] = "JsxClosingElement"; + SyntaxKind[SyntaxKind["JsxFragment"] = 290] = "JsxFragment"; + SyntaxKind[SyntaxKind["JsxOpeningFragment"] = 291] = "JsxOpeningFragment"; + SyntaxKind[SyntaxKind["JsxClosingFragment"] = 292] = "JsxClosingFragment"; + SyntaxKind[SyntaxKind["JsxAttribute"] = 293] = "JsxAttribute"; + SyntaxKind[SyntaxKind["JsxAttributes"] = 294] = "JsxAttributes"; + SyntaxKind[SyntaxKind["JsxSpreadAttribute"] = 295] = "JsxSpreadAttribute"; + SyntaxKind[SyntaxKind["JsxExpression"] = 296] = "JsxExpression"; + SyntaxKind[SyntaxKind["JsxNamespacedName"] = 297] = "JsxNamespacedName"; + SyntaxKind[SyntaxKind["CaseClause"] = 298] = "CaseClause"; + SyntaxKind[SyntaxKind["DefaultClause"] = 299] = "DefaultClause"; + SyntaxKind[SyntaxKind["HeritageClause"] = 300] = "HeritageClause"; + SyntaxKind[SyntaxKind["CatchClause"] = 301] = "CatchClause"; + SyntaxKind[SyntaxKind["ImportAttributes"] = 302] = "ImportAttributes"; + SyntaxKind[SyntaxKind["ImportAttribute"] = 303] = "ImportAttribute"; + SyntaxKind[SyntaxKind["PropertyAssignment"] = 304] = "PropertyAssignment"; + SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 305] = "ShorthandPropertyAssignment"; + SyntaxKind[SyntaxKind["SpreadAssignment"] = 306] = "SpreadAssignment"; + SyntaxKind[SyntaxKind["EnumMember"] = 307] = "EnumMember"; + SyntaxKind[SyntaxKind["SourceFile"] = 308] = "SourceFile"; + SyntaxKind[SyntaxKind["JSDocTypeExpression"] = 309] = "JSDocTypeExpression"; + SyntaxKind[SyntaxKind["JSDocNameReference"] = 310] = "JSDocNameReference"; + 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["JSDocUnknownTag"] = 323] = "JSDocUnknownTag"; + 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["JSDocThrowsTag"] = 342] = "JSDocThrowsTag"; + SyntaxKind[SyntaxKind["JSDocSatisfiesTag"] = 343] = "JSDocSatisfiesTag"; + SyntaxKind[SyntaxKind["JSDocImportTag"] = 344] = "JSDocImportTag"; + SyntaxKind[SyntaxKind["SyntaxList"] = 345] = "SyntaxList"; + SyntaxKind[SyntaxKind["JSTypeAliasDeclaration"] = 346] = "JSTypeAliasDeclaration"; + SyntaxKind[SyntaxKind["JSImportDeclaration"] = 347] = "JSImportDeclaration"; + SyntaxKind[SyntaxKind["NotEmittedStatement"] = 348] = "NotEmittedStatement"; + SyntaxKind[SyntaxKind["PartiallyEmittedExpression"] = 349] = "PartiallyEmittedExpression"; + SyntaxKind[SyntaxKind["SyntheticReferenceExpression"] = 350] = "SyntheticReferenceExpression"; + SyntaxKind[SyntaxKind["NotEmittedTypeElement"] = 351] = "NotEmittedTypeElement"; + SyntaxKind[SyntaxKind["Count"] = 352] = "Count"; SyntaxKind[SyntaxKind["FirstAssignment"] = 63] = "FirstAssignment"; SyntaxKind[SyntaxKind["LastAssignment"] = 78] = "LastAssignment"; SyntaxKind[SyntaxKind["FirstCompoundAssignment"] = 64] = "FirstCompoundAssignment"; @@ -360,30 +361,30 @@ export var SyntaxKind: any; SyntaxKind[SyntaxKind["FirstReservedWord"] = 82] = "FirstReservedWord"; SyntaxKind[SyntaxKind["LastReservedWord"] = 117] = "LastReservedWord"; SyntaxKind[SyntaxKind["FirstKeyword"] = 82] = "FirstKeyword"; - SyntaxKind[SyntaxKind["LastKeyword"] = 166] = "LastKeyword"; + SyntaxKind[SyntaxKind["LastKeyword"] = 167] = "LastKeyword"; SyntaxKind[SyntaxKind["FirstFutureReservedWord"] = 118] = "FirstFutureReservedWord"; SyntaxKind[SyntaxKind["LastFutureReservedWord"] = 126] = "LastFutureReservedWord"; - SyntaxKind[SyntaxKind["FirstTypeNode"] = 183] = "FirstTypeNode"; - SyntaxKind[SyntaxKind["LastTypeNode"] = 206] = "LastTypeNode"; + SyntaxKind[SyntaxKind["FirstTypeNode"] = 184] = "FirstTypeNode"; + SyntaxKind[SyntaxKind["LastTypeNode"] = 207] = "LastTypeNode"; SyntaxKind[SyntaxKind["FirstPunctuation"] = 18] = "FirstPunctuation"; SyntaxKind[SyntaxKind["LastPunctuation"] = 78] = "LastPunctuation"; SyntaxKind[SyntaxKind["FirstToken"] = 0] = "FirstToken"; - SyntaxKind[SyntaxKind["LastToken"] = 166] = "LastToken"; + SyntaxKind[SyntaxKind["LastToken"] = 167] = "LastToken"; SyntaxKind[SyntaxKind["FirstLiteralToken"] = 8] = "FirstLiteralToken"; SyntaxKind[SyntaxKind["LastLiteralToken"] = 14] = "LastLiteralToken"; SyntaxKind[SyntaxKind["FirstTemplateToken"] = 14] = "FirstTemplateToken"; SyntaxKind[SyntaxKind["LastTemplateToken"] = 17] = "LastTemplateToken"; SyntaxKind[SyntaxKind["FirstBinaryOperator"] = 29] = "FirstBinaryOperator"; SyntaxKind[SyntaxKind["LastBinaryOperator"] = 78] = "LastBinaryOperator"; - SyntaxKind[SyntaxKind["FirstStatement"] = 244] = "FirstStatement"; - SyntaxKind[SyntaxKind["LastStatement"] = 260] = "LastStatement"; - SyntaxKind[SyntaxKind["FirstNode"] = 167] = "FirstNode"; - SyntaxKind[SyntaxKind["FirstJSDocNode"] = 308] = "FirstJSDocNode"; - SyntaxKind[SyntaxKind["LastJSDocNode"] = 343] = "LastJSDocNode"; - SyntaxKind[SyntaxKind["FirstJSDocTagNode"] = 322] = "FirstJSDocTagNode"; - SyntaxKind[SyntaxKind["LastJSDocTagNode"] = 343] = "LastJSDocTagNode"; + SyntaxKind[SyntaxKind["FirstStatement"] = 245] = "FirstStatement"; + SyntaxKind[SyntaxKind["LastStatement"] = 261] = "LastStatement"; + SyntaxKind[SyntaxKind["FirstNode"] = 168] = "FirstNode"; + SyntaxKind[SyntaxKind["FirstJSDocNode"] = 309] = "FirstJSDocNode"; + SyntaxKind[SyntaxKind["LastJSDocNode"] = 344] = "LastJSDocNode"; + SyntaxKind[SyntaxKind["FirstJSDocTagNode"] = 323] = "FirstJSDocTagNode"; + SyntaxKind[SyntaxKind["LastJSDocTagNode"] = 344] = "LastJSDocTagNode"; SyntaxKind[SyntaxKind["FirstContextualKeyword"] = 127] = "FirstContextualKeyword"; - SyntaxKind[SyntaxKind["LastContextualKeyword"] = 166] = "LastContextualKeyword"; + SyntaxKind[SyntaxKind["LastContextualKeyword"] = 167] = "LastContextualKeyword"; SyntaxKind[SyntaxKind["LastUnaryOperator"] = 54] = "LastUnaryOperator"; SyntaxKind[SyntaxKind["FirstTriviaToken"] = 2] = "FirstTriviaToken"; SyntaxKind[SyntaxKind["LastTriviaToken"] = 6] = "LastTriviaToken"; diff --git a/packages/typescript/test/async/api.test.ts b/packages/typescript/test/async/api.test.ts index 4abec037a51cd..3a11fbb186240 100644 --- a/packages/typescript/test/async/api.test.ts +++ b/packages/typescript/test/async/api.test.ts @@ -786,6 +786,31 @@ describe("API", { concurrency }, () => { ); }); + test("source imports do not request module resolution", async () => { + await using api = spawnAPI({ + "/src/index.ts": `import source a from "pkg"; +import.source("missing"); +import { value } from "pkg";`, + "/pkg.d.ts": "export const value: number;", + }); + const compilerOptions = { noLib: true, module: ModuleKind.ESNext }; + const requests: string[] = []; + const resolver = await api.createModuleResolver(compilerOptions, { + resolveModuleName: async name => { + requests.push(name); + return { resolvedFileName: "/pkg.d.ts" }; + }, + }); + const program = await api.createProgram(["/src/index.ts"], compilerOptions, { moduleResolver: resolver }); + assert.deepEqual(requests, ["pkg"]); + const file = await program.getSourceFile("/src/index.ts"); + assert.ok(file); + const source = cast(cast(file.statements[0], isImportDeclaration).moduleSpecifier, isStringLiteral); + const evaluation = cast(cast(file.statements[2], isImportDeclaration).moduleSpecifier, isStringLiteral); + assert.equal(await program.getResolvedModuleFromModuleSpecifier(source), undefined); + assert.equal((await program.getResolvedModuleFromModuleSpecifier(evaluation))?.resolvedFileName, "/pkg.d.ts"); + }); + test("module resolver callbacks can delegate to another resolver", async () => { await using api = spawnAPI({ "/src/index.ts": `import "custom"; import "native";`, diff --git a/packages/typescript/test/sync/api.test.ts b/packages/typescript/test/sync/api.test.ts index e12633b6d64fd..73a3dc67645d1 100644 --- a/packages/typescript/test/sync/api.test.ts +++ b/packages/typescript/test/sync/api.test.ts @@ -774,6 +774,31 @@ describe("API", { concurrency }, () => { ); }); + test("source imports do not request module resolution", () => { + using api = spawnAPI({ + "/src/index.ts": `import source a from "pkg"; +import.source("missing"); +import { value } from "pkg";`, + "/pkg.d.ts": "export const value: number;", + }); + const compilerOptions = { noLib: true, module: ModuleKind.ESNext }; + const requests: string[] = []; + const resolver = api.createModuleResolver(compilerOptions, { + resolveModuleName: name => { + requests.push(name); + return { resolvedFileName: "/pkg.d.ts" }; + }, + }); + const program = api.createProgram(["/src/index.ts"], compilerOptions, { moduleResolver: resolver }); + assert.deepEqual(requests, ["pkg"]); + const file = program.getSourceFile("/src/index.ts"); + assert.ok(file); + const source = cast(cast(file.statements[0], isImportDeclaration).moduleSpecifier, isStringLiteral); + const evaluation = cast(cast(file.statements[2], isImportDeclaration).moduleSpecifier, isStringLiteral); + assert.equal(program.getResolvedModuleFromModuleSpecifier(source), undefined); + assert.equal((program.getResolvedModuleFromModuleSpecifier(evaluation))?.resolvedFileName, "/pkg.d.ts"); + }); + test("module resolver callbacks can delegate to another resolver", () => { using api = spawnAPI({ "/src/index.ts": `import "custom"; import "native";`, diff --git a/tools/scripts/tsc/ast.json b/tools/scripts/tsc/ast.json index 361aebfb37b88..a133915a10665 100644 --- a/tools/scripts/tsc/ast.json +++ b/tools/scripts/tsc/ast.json @@ -195,8 +195,9 @@ "BigIntKeyword", "OverrideKeyword", "OfKeyword", + "DeferKeyword", { - "name": "DeferKeyword", + "name": "SourceKeyword", "comment": "LastKeyword and LastToken and LastContextualKeyword" }, { @@ -478,7 +479,7 @@ }, { "name": "LastKeyword", - "value": "DeferKeyword" + "value": "SourceKeyword" }, { "name": "FirstFutureReservedWord", @@ -570,7 +571,7 @@ }, { "name": "LastContextualKeyword", - "value": "DeferKeyword" + "value": "SourceKeyword" }, { "name": "LastUnaryOperator", @@ -678,7 +679,8 @@ }, "ImportPhaseModifierSyntaxKind": [ "TypeKeyword", - "DeferKeyword" + "DeferKeyword", + "SourceKeyword" ], "PostfixUnaryOperator": [ "PlusPlusToken", diff --git a/tsc/internal/api/encoder/decoder_generated.go b/tsc/internal/api/encoder/decoder_generated.go index ff5b23cc06f22..612340abfb34c 100644 --- a/tsc/internal/api/encoder/decoder_generated.go +++ b/tsc/internal/api/encoder/decoder_generated.go @@ -210,7 +210,8 @@ func (d *astDecoder) createChildrenNode(kind ast.Kind, data uint32, childIndices ast.KindGlobalKeyword, ast.KindOverrideKeyword, ast.KindOfKeyword, - ast.KindDeferKeyword: + ast.KindDeferKeyword, + ast.KindSourceKeyword: return d.factory.NewToken(kind), nil case ast.KindQualifiedName: it := newChildIter(childIndices) @@ -1095,6 +1096,8 @@ func (d *astDecoder) createChildrenNode(kind ast.Kind, data uint32, childIndices phaseModifier = ast.KindTypeKeyword case 2: phaseModifier = ast.KindDeferKeyword + case 3: + phaseModifier = ast.KindSourceKeyword } it := newChildIter(childIndices) name := d.nodeAt(it.nextIf(mask, 0)) diff --git a/tsc/internal/api/encoder/decoder_test.go b/tsc/internal/api/encoder/decoder_test.go index b7b3c7a52495c..f0cd9786bc19b 100644 --- a/tsc/internal/api/encoder/decoder_test.go +++ b/tsc/internal/api/encoder/decoder_test.go @@ -181,6 +181,20 @@ func TestDecodeSourceFile_ImportDeclaration(t *testing.T) { assert.Equal(t, spec.Name().AsIdentifier().Text, "bar") } +func TestDecodeSourceFile_SourcePhaseImport(t *testing.T) { + t.Parallel() + sf := parseSourceFile(`import source a from "./a.wasm";`) + buf, _, err := encoder.EncodeSourceFile(sf) + assert.NilError(t, err) + + decoded, err := encoder.DecodeSourceFile(buf) + assert.NilError(t, err) + + clause := decoded.Statements.Nodes[0].AsImportDeclaration().ImportClause.AsImportClause() + assert.Equal(t, clause.PhaseModifier, ast.KindSourceKeyword) + assert.Equal(t, clause.Name().Text(), "a") +} + func TestDecodeSourceFile_IfStatement(t *testing.T) { t.Parallel() sf := parseSourceFile("if (true) { } else { }") diff --git a/tsc/internal/api/encoder/encoder_generated.go b/tsc/internal/api/encoder/encoder_generated.go index b4a9021b6cd0b..3f695dabfb03a 100644 --- a/tsc/internal/api/encoder/encoder_generated.go +++ b/tsc/internal/api/encoder/encoder_generated.go @@ -643,6 +643,8 @@ func getNodeCommonData(node *ast.Node) uint32 { phaseModifierIdx = 1 case ast.KindDeferKeyword: phaseModifierIdx = 2 + case ast.KindSourceKeyword: + phaseModifierIdx = 3 } return phaseModifierIdx << 24 case ast.KindImportSpecifier: diff --git a/tsc/internal/api/enum_values_generated.go b/tsc/internal/api/enum_values_generated.go index e67e47cb07b69..c465304508a2f 100644 --- a/tsc/internal/api/enum_values_generated.go +++ b/tsc/internal/api/enum_values_generated.go @@ -497,6 +497,7 @@ func main() { "OverrideKeyword": toInt32(ast.KindOverrideKeyword), "OfKeyword": toInt32(ast.KindOfKeyword), "DeferKeyword": toInt32(ast.KindDeferKeyword), + "SourceKeyword": toInt32(ast.KindSourceKeyword), "QualifiedName": toInt32(ast.KindQualifiedName), "ComputedPropertyName": toInt32(ast.KindComputedPropertyName), "TypeParameter": toInt32(ast.KindTypeParameter), diff --git a/tsc/internal/api/session.go b/tsc/internal/api/session.go index 754450e2f071d..f4a252be46abc 100644 --- a/tsc/internal/api/session.go +++ b/tsc/internal/api/session.go @@ -2521,8 +2521,7 @@ func (s *Session) handleGetResolvedModuleFromModuleSpecifier(ctx context.Context if sourceFile == nil { return nil, fmt.Errorf("%w: moduleSpecifier must have a SourceFile ancestor or sourceFile must be provided", ErrClientError) } - mode := program.GetModeForUsageLocation(sourceFile, node) - return newResolvedModuleResponse(program.GetResolvedModule(sourceFile, node.Text(), mode)), nil + return newResolvedModuleResponse(program.GetResolvedModuleFromModuleSpecifier(sourceFile, node)), nil } // @gen-proto-nullable diff --git a/tsc/internal/ast/ast.go b/tsc/internal/ast/ast.go index 019958477f182..f76f15c395862 100644 --- a/tsc/internal/ast/ast.go +++ b/tsc/internal/ast/ast.go @@ -2133,7 +2133,7 @@ func (node *CallExpression) computeSubtreeFacts() SubtreeFacts { propagateSubtreeFacts(node.QuestionDotToken) | propagateEraseableSyntaxListSubtreeFacts(node.TypeArguments) | propagateNodeListSubtreeFacts(node.Arguments, propagateSubtreeFacts) | - core.IfElse(node.Expression.Kind == KindImportKeyword, SubtreeContainsDynamicImport, SubtreeFactsNone) + core.IfElse(IsImportCall(node.AsNode()), SubtreeContainsDynamicImport, SubtreeFactsNone) } func (node *CallExpression) propagateSubtreeFacts() SubtreeFacts { diff --git a/tsc/internal/ast/ast_generated.go b/tsc/internal/ast/ast_generated.go index 44663320bbe2a..f1c27cfe8403e 100644 --- a/tsc/internal/ast/ast_generated.go +++ b/tsc/internal/ast/ast_generated.go @@ -608,7 +608,7 @@ func (node *Token) Clone(f NodeFactoryCoercible) *Node { func IsToken(node *Node) bool { switch node.Kind { - case KindUnknown, KindEndOfFile, KindSingleLineCommentTrivia, KindMultiLineCommentTrivia, KindNewLineTrivia, KindWhitespaceTrivia, KindConflictMarkerTrivia, KindNonTextFileMarkerTrivia, KindNumericLiteral, KindBigIntLiteral, KindStringLiteral, KindJsxText, KindJsxTextAllWhiteSpaces, KindRegularExpressionLiteral, KindNoSubstitutionTemplateLiteral, KindTemplateHead, KindTemplateMiddle, KindTemplateTail, KindOpenBraceToken, KindCloseBraceToken, KindOpenParenToken, KindCloseParenToken, KindOpenBracketToken, KindCloseBracketToken, KindDotToken, KindDotDotDotToken, KindSemicolonToken, KindCommaToken, KindQuestionDotToken, KindLessThanToken, KindLessThanSlashToken, KindGreaterThanToken, KindLessThanEqualsToken, KindGreaterThanEqualsToken, KindEqualsEqualsToken, KindExclamationEqualsToken, KindEqualsEqualsEqualsToken, KindExclamationEqualsEqualsToken, KindEqualsGreaterThanToken, KindPlusToken, KindMinusToken, KindAsteriskToken, KindAsteriskAsteriskToken, KindSlashToken, KindPercentToken, KindPlusPlusToken, KindMinusMinusToken, KindLessThanLessThanToken, KindGreaterThanGreaterThanToken, KindGreaterThanGreaterThanGreaterThanToken, KindAmpersandToken, KindBarToken, KindCaretToken, KindExclamationToken, KindTildeToken, KindAmpersandAmpersandToken, KindBarBarToken, KindQuestionToken, KindColonToken, KindAtToken, KindQuestionQuestionToken, KindBacktickToken, KindHashToken, KindEqualsToken, KindPlusEqualsToken, KindMinusEqualsToken, KindAsteriskEqualsToken, KindAsteriskAsteriskEqualsToken, KindSlashEqualsToken, KindPercentEqualsToken, KindLessThanLessThanEqualsToken, KindGreaterThanGreaterThanEqualsToken, KindGreaterThanGreaterThanGreaterThanEqualsToken, KindAmpersandEqualsToken, KindBarEqualsToken, KindBarBarEqualsToken, KindAmpersandAmpersandEqualsToken, KindQuestionQuestionEqualsToken, KindCaretEqualsToken, KindIdentifier, KindPrivateIdentifier, KindJSDocCommentTextToken, KindBreakKeyword, KindCaseKeyword, KindCatchKeyword, KindClassKeyword, KindConstKeyword, KindContinueKeyword, KindDebuggerKeyword, KindDefaultKeyword, KindDeleteKeyword, KindDoKeyword, KindElseKeyword, KindEnumKeyword, KindExportKeyword, KindExtendsKeyword, KindFalseKeyword, KindFinallyKeyword, KindForKeyword, KindFunctionKeyword, KindIfKeyword, KindImportKeyword, KindInKeyword, KindInstanceOfKeyword, KindNewKeyword, KindNullKeyword, KindReturnKeyword, KindSuperKeyword, KindSwitchKeyword, KindThisKeyword, KindThrowKeyword, KindTrueKeyword, KindTryKeyword, KindTypeOfKeyword, KindVarKeyword, KindVoidKeyword, KindWhileKeyword, KindWithKeyword, KindImplementsKeyword, KindInterfaceKeyword, KindLetKeyword, KindPackageKeyword, KindPrivateKeyword, KindProtectedKeyword, KindPublicKeyword, KindStaticKeyword, KindYieldKeyword, KindAbstractKeyword, KindAccessorKeyword, KindAsKeyword, KindAssertsKeyword, KindAssertKeyword, KindAnyKeyword, KindAsyncKeyword, KindAwaitKeyword, KindBooleanKeyword, KindConstructorKeyword, KindDeclareKeyword, KindGetKeyword, KindImmediateKeyword, KindInferKeyword, KindIntrinsicKeyword, KindIsKeyword, KindKeyOfKeyword, KindModuleKeyword, KindNamespaceKeyword, KindNeverKeyword, KindOutKeyword, KindReadonlyKeyword, KindRequireKeyword, KindNumberKeyword, KindObjectKeyword, KindSatisfiesKeyword, KindSetKeyword, KindStringKeyword, KindSymbolKeyword, KindTypeKeyword, KindUndefinedKeyword, KindUniqueKeyword, KindUnknownKeyword, KindUsingKeyword, KindFromKeyword, KindGlobalKeyword, KindBigIntKeyword, KindOverrideKeyword, KindOfKeyword, KindDeferKeyword: + case KindUnknown, KindEndOfFile, KindSingleLineCommentTrivia, KindMultiLineCommentTrivia, KindNewLineTrivia, KindWhitespaceTrivia, KindConflictMarkerTrivia, KindNonTextFileMarkerTrivia, KindNumericLiteral, KindBigIntLiteral, KindStringLiteral, KindJsxText, KindJsxTextAllWhiteSpaces, KindRegularExpressionLiteral, KindNoSubstitutionTemplateLiteral, KindTemplateHead, KindTemplateMiddle, KindTemplateTail, KindOpenBraceToken, KindCloseBraceToken, KindOpenParenToken, KindCloseParenToken, KindOpenBracketToken, KindCloseBracketToken, KindDotToken, KindDotDotDotToken, KindSemicolonToken, KindCommaToken, KindQuestionDotToken, KindLessThanToken, KindLessThanSlashToken, KindGreaterThanToken, KindLessThanEqualsToken, KindGreaterThanEqualsToken, KindEqualsEqualsToken, KindExclamationEqualsToken, KindEqualsEqualsEqualsToken, KindExclamationEqualsEqualsToken, KindEqualsGreaterThanToken, KindPlusToken, KindMinusToken, KindAsteriskToken, KindAsteriskAsteriskToken, KindSlashToken, KindPercentToken, KindPlusPlusToken, KindMinusMinusToken, KindLessThanLessThanToken, KindGreaterThanGreaterThanToken, KindGreaterThanGreaterThanGreaterThanToken, KindAmpersandToken, KindBarToken, KindCaretToken, KindExclamationToken, KindTildeToken, KindAmpersandAmpersandToken, KindBarBarToken, KindQuestionToken, KindColonToken, KindAtToken, KindQuestionQuestionToken, KindBacktickToken, KindHashToken, KindEqualsToken, KindPlusEqualsToken, KindMinusEqualsToken, KindAsteriskEqualsToken, KindAsteriskAsteriskEqualsToken, KindSlashEqualsToken, KindPercentEqualsToken, KindLessThanLessThanEqualsToken, KindGreaterThanGreaterThanEqualsToken, KindGreaterThanGreaterThanGreaterThanEqualsToken, KindAmpersandEqualsToken, KindBarEqualsToken, KindBarBarEqualsToken, KindAmpersandAmpersandEqualsToken, KindQuestionQuestionEqualsToken, KindCaretEqualsToken, KindIdentifier, KindPrivateIdentifier, KindJSDocCommentTextToken, KindBreakKeyword, KindCaseKeyword, KindCatchKeyword, KindClassKeyword, KindConstKeyword, KindContinueKeyword, KindDebuggerKeyword, KindDefaultKeyword, KindDeleteKeyword, KindDoKeyword, KindElseKeyword, KindEnumKeyword, KindExportKeyword, KindExtendsKeyword, KindFalseKeyword, KindFinallyKeyword, KindForKeyword, KindFunctionKeyword, KindIfKeyword, KindImportKeyword, KindInKeyword, KindInstanceOfKeyword, KindNewKeyword, KindNullKeyword, KindReturnKeyword, KindSuperKeyword, KindSwitchKeyword, KindThisKeyword, KindThrowKeyword, KindTrueKeyword, KindTryKeyword, KindTypeOfKeyword, KindVarKeyword, KindVoidKeyword, KindWhileKeyword, KindWithKeyword, KindImplementsKeyword, KindInterfaceKeyword, KindLetKeyword, KindPackageKeyword, KindPrivateKeyword, KindProtectedKeyword, KindPublicKeyword, KindStaticKeyword, KindYieldKeyword, KindAbstractKeyword, KindAccessorKeyword, KindAsKeyword, KindAssertsKeyword, KindAssertKeyword, KindAnyKeyword, KindAsyncKeyword, KindAwaitKeyword, KindBooleanKeyword, KindConstructorKeyword, KindDeclareKeyword, KindGetKeyword, KindImmediateKeyword, KindInferKeyword, KindIntrinsicKeyword, KindIsKeyword, KindKeyOfKeyword, KindModuleKeyword, KindNamespaceKeyword, KindNeverKeyword, KindOutKeyword, KindReadonlyKeyword, KindRequireKeyword, KindNumberKeyword, KindObjectKeyword, KindSatisfiesKeyword, KindSetKeyword, KindStringKeyword, KindSymbolKeyword, KindTypeKeyword, KindUndefinedKeyword, KindUniqueKeyword, KindUnknownKeyword, KindUsingKeyword, KindFromKeyword, KindGlobalKeyword, KindBigIntKeyword, KindOverrideKeyword, KindOfKeyword, KindDeferKeyword, KindSourceKeyword: return true } return false @@ -9877,7 +9877,7 @@ func IsJSDocNodeKind(kind Kind) bool { func IsImportPhaseModifierKind(kind Kind) bool { switch kind { - case KindTypeKeyword, KindDeferKeyword: + case KindTypeKeyword, KindDeferKeyword, KindSourceKeyword: return true } return false diff --git a/tsc/internal/ast/kind_generated.go b/tsc/internal/ast/kind_generated.go index c74eb65e60c18..23f2c9ccf9de6 100644 --- a/tsc/internal/ast/kind_generated.go +++ b/tsc/internal/ast/kind_generated.go @@ -182,7 +182,8 @@ const ( KindBigIntKeyword KindOverrideKeyword KindOfKeyword - KindDeferKeyword // LastKeyword and LastToken and LastContextualKeyword + KindDeferKeyword + KindSourceKeyword // LastKeyword and LastToken and LastContextualKeyword // Parse tree nodes // Names KindQualifiedName @@ -395,7 +396,7 @@ const ( KindFirstReservedWord = KindBreakKeyword KindLastReservedWord = KindWithKeyword KindFirstKeyword = KindBreakKeyword - KindLastKeyword = KindDeferKeyword + KindLastKeyword = KindSourceKeyword KindFirstFutureReservedWord = KindImplementsKeyword KindLastFutureReservedWord = KindYieldKeyword KindFirstTypeNode = KindTypePredicate @@ -418,7 +419,7 @@ const ( KindFirstJSDocTagNode = KindJSDocUnknownTag KindLastJSDocTagNode = KindJSDocImportTag KindFirstContextualKeyword = KindAbstractKeyword - KindLastContextualKeyword = KindDeferKeyword + KindLastContextualKeyword = KindSourceKeyword KindLastUnaryOperator = KindTildeToken KindFirstTriviaToken = KindSingleLineCommentTrivia KindLastTriviaToken = KindConflictMarkerTrivia @@ -429,14 +430,14 @@ type ( LiteralSyntaxKind = Kind // KindNumericLiteral | KindBigIntLiteral | KindStringLiteral | KindJsxText | KindJsxTextAllWhiteSpaces | KindRegularExpressionLiteral | KindNoSubstitutionTemplateLiteral PseudoLiteralSyntaxKind = Kind // KindTemplateHead | KindTemplateMiddle | KindTemplateTail PunctuationSyntaxKind = Kind // KindOpenBraceToken | KindCloseBraceToken | KindOpenParenToken | KindCloseParenToken | KindOpenBracketToken | KindCloseBracketToken | KindDotToken | KindDotDotDotToken | KindSemicolonToken | KindCommaToken | KindQuestionDotToken | KindLessThanToken | KindLessThanSlashToken | KindGreaterThanToken | KindLessThanEqualsToken | KindGreaterThanEqualsToken | KindEqualsEqualsToken | KindExclamationEqualsToken | KindEqualsEqualsEqualsToken | KindExclamationEqualsEqualsToken | KindEqualsGreaterThanToken | KindPlusToken | KindMinusToken | KindAsteriskToken | KindAsteriskAsteriskToken | KindSlashToken | KindPercentToken | KindPlusPlusToken | KindMinusMinusToken | KindLessThanLessThanToken | KindGreaterThanGreaterThanToken | KindGreaterThanGreaterThanGreaterThanToken | KindAmpersandToken | KindBarToken | KindCaretToken | KindExclamationToken | KindTildeToken | KindAmpersandAmpersandToken | KindBarBarToken | KindQuestionToken | KindColonToken | KindAtToken | KindQuestionQuestionToken | KindBacktickToken | KindHashToken | KindEqualsToken | KindPlusEqualsToken | KindMinusEqualsToken | KindAsteriskEqualsToken | KindAsteriskAsteriskEqualsToken | KindSlashEqualsToken | KindPercentEqualsToken | KindLessThanLessThanEqualsToken | KindGreaterThanGreaterThanEqualsToken | KindGreaterThanGreaterThanGreaterThanEqualsToken | KindAmpersandEqualsToken | KindBarEqualsToken | KindBarBarEqualsToken | KindAmpersandAmpersandEqualsToken | KindQuestionQuestionEqualsToken | KindCaretEqualsToken - KeywordSyntaxKind = Kind // KindBreakKeyword | KindCaseKeyword | KindCatchKeyword | KindClassKeyword | KindConstKeyword | KindContinueKeyword | KindDebuggerKeyword | KindDefaultKeyword | KindDeleteKeyword | KindDoKeyword | KindElseKeyword | KindEnumKeyword | KindExportKeyword | KindExtendsKeyword | KindFalseKeyword | KindFinallyKeyword | KindForKeyword | KindFunctionKeyword | KindIfKeyword | KindImportKeyword | KindInKeyword | KindInstanceOfKeyword | KindNewKeyword | KindNullKeyword | KindReturnKeyword | KindSuperKeyword | KindSwitchKeyword | KindThisKeyword | KindThrowKeyword | KindTrueKeyword | KindTryKeyword | KindTypeOfKeyword | KindVarKeyword | KindVoidKeyword | KindWhileKeyword | KindWithKeyword | KindImplementsKeyword | KindInterfaceKeyword | KindLetKeyword | KindPackageKeyword | KindPrivateKeyword | KindProtectedKeyword | KindPublicKeyword | KindStaticKeyword | KindYieldKeyword | KindAbstractKeyword | KindAccessorKeyword | KindAsKeyword | KindAssertsKeyword | KindAssertKeyword | KindAnyKeyword | KindAsyncKeyword | KindAwaitKeyword | KindBooleanKeyword | KindConstructorKeyword | KindDeclareKeyword | KindGetKeyword | KindImmediateKeyword | KindInferKeyword | KindIntrinsicKeyword | KindIsKeyword | KindKeyOfKeyword | KindModuleKeyword | KindNamespaceKeyword | KindNeverKeyword | KindOutKeyword | KindReadonlyKeyword | KindRequireKeyword | KindNumberKeyword | KindObjectKeyword | KindSatisfiesKeyword | KindSetKeyword | KindStringKeyword | KindSymbolKeyword | KindTypeKeyword | KindUndefinedKeyword | KindUniqueKeyword | KindUnknownKeyword | KindUsingKeyword | KindFromKeyword | KindGlobalKeyword | KindBigIntKeyword | KindOverrideKeyword | KindOfKeyword | KindDeferKeyword + KeywordSyntaxKind = Kind // KindBreakKeyword | KindCaseKeyword | KindCatchKeyword | KindClassKeyword | KindConstKeyword | KindContinueKeyword | KindDebuggerKeyword | KindDefaultKeyword | KindDeleteKeyword | KindDoKeyword | KindElseKeyword | KindEnumKeyword | KindExportKeyword | KindExtendsKeyword | KindFalseKeyword | KindFinallyKeyword | KindForKeyword | KindFunctionKeyword | KindIfKeyword | KindImportKeyword | KindInKeyword | KindInstanceOfKeyword | KindNewKeyword | KindNullKeyword | KindReturnKeyword | KindSuperKeyword | KindSwitchKeyword | KindThisKeyword | KindThrowKeyword | KindTrueKeyword | KindTryKeyword | KindTypeOfKeyword | KindVarKeyword | KindVoidKeyword | KindWhileKeyword | KindWithKeyword | KindImplementsKeyword | KindInterfaceKeyword | KindLetKeyword | KindPackageKeyword | KindPrivateKeyword | KindProtectedKeyword | KindPublicKeyword | KindStaticKeyword | KindYieldKeyword | KindAbstractKeyword | KindAccessorKeyword | KindAsKeyword | KindAssertsKeyword | KindAssertKeyword | KindAnyKeyword | KindAsyncKeyword | KindAwaitKeyword | KindBooleanKeyword | KindConstructorKeyword | KindDeclareKeyword | KindGetKeyword | KindImmediateKeyword | KindInferKeyword | KindIntrinsicKeyword | KindIsKeyword | KindKeyOfKeyword | KindModuleKeyword | KindNamespaceKeyword | KindNeverKeyword | KindOutKeyword | KindReadonlyKeyword | KindRequireKeyword | KindNumberKeyword | KindObjectKeyword | KindSatisfiesKeyword | KindSetKeyword | KindStringKeyword | KindSymbolKeyword | KindTypeKeyword | KindUndefinedKeyword | KindUniqueKeyword | KindUnknownKeyword | KindUsingKeyword | KindFromKeyword | KindGlobalKeyword | KindBigIntKeyword | KindOverrideKeyword | KindOfKeyword | KindDeferKeyword | KindSourceKeyword ModifierSyntaxKind = Kind // KindAbstractKeyword | KindAccessorKeyword | KindAsyncKeyword | KindConstKeyword | KindDeclareKeyword | KindDefaultKeyword | KindExportKeyword | KindInKeyword | KindPrivateKeyword | KindProtectedKeyword | KindPublicKeyword | KindReadonlyKeyword | KindOutKeyword | KindOverrideKeyword | KindStaticKeyword KeywordTypeSyntaxKind = Kind // KindAnyKeyword | KindBigIntKeyword | KindBooleanKeyword | KindIntrinsicKeyword | KindNeverKeyword | KindNumberKeyword | KindObjectKeyword | KindStringKeyword | KindSymbolKeyword | KindUndefinedKeyword | KindUnknownKeyword | KindVoidKeyword KeywordExpressionSyntaxKind = Kind // KindNullKeyword | KindTrueKeyword | KindFalseKeyword | KindThisKeyword | KindSuperKeyword | KindImportKeyword - TokenSyntaxKind = Kind // KindUnknown | KindEndOfFile | KindSingleLineCommentTrivia | KindMultiLineCommentTrivia | KindNewLineTrivia | KindWhitespaceTrivia | KindConflictMarkerTrivia | KindNonTextFileMarkerTrivia | KindNumericLiteral | KindBigIntLiteral | KindStringLiteral | KindJsxText | KindJsxTextAllWhiteSpaces | KindRegularExpressionLiteral | KindNoSubstitutionTemplateLiteral | KindTemplateHead | KindTemplateMiddle | KindTemplateTail | KindOpenBraceToken | KindCloseBraceToken | KindOpenParenToken | KindCloseParenToken | KindOpenBracketToken | KindCloseBracketToken | KindDotToken | KindDotDotDotToken | KindSemicolonToken | KindCommaToken | KindQuestionDotToken | KindLessThanToken | KindLessThanSlashToken | KindGreaterThanToken | KindLessThanEqualsToken | KindGreaterThanEqualsToken | KindEqualsEqualsToken | KindExclamationEqualsToken | KindEqualsEqualsEqualsToken | KindExclamationEqualsEqualsToken | KindEqualsGreaterThanToken | KindPlusToken | KindMinusToken | KindAsteriskToken | KindAsteriskAsteriskToken | KindSlashToken | KindPercentToken | KindPlusPlusToken | KindMinusMinusToken | KindLessThanLessThanToken | KindGreaterThanGreaterThanToken | KindGreaterThanGreaterThanGreaterThanToken | KindAmpersandToken | KindBarToken | KindCaretToken | KindExclamationToken | KindTildeToken | KindAmpersandAmpersandToken | KindBarBarToken | KindQuestionToken | KindColonToken | KindAtToken | KindQuestionQuestionToken | KindBacktickToken | KindHashToken | KindEqualsToken | KindPlusEqualsToken | KindMinusEqualsToken | KindAsteriskEqualsToken | KindAsteriskAsteriskEqualsToken | KindSlashEqualsToken | KindPercentEqualsToken | KindLessThanLessThanEqualsToken | KindGreaterThanGreaterThanEqualsToken | KindGreaterThanGreaterThanGreaterThanEqualsToken | KindAmpersandEqualsToken | KindBarEqualsToken | KindBarBarEqualsToken | KindAmpersandAmpersandEqualsToken | KindQuestionQuestionEqualsToken | KindCaretEqualsToken | KindIdentifier | KindPrivateIdentifier | KindJSDocCommentTextToken | KindBreakKeyword | KindCaseKeyword | KindCatchKeyword | KindClassKeyword | KindConstKeyword | KindContinueKeyword | KindDebuggerKeyword | KindDefaultKeyword | KindDeleteKeyword | KindDoKeyword | KindElseKeyword | KindEnumKeyword | KindExportKeyword | KindExtendsKeyword | KindFalseKeyword | KindFinallyKeyword | KindForKeyword | KindFunctionKeyword | KindIfKeyword | KindImportKeyword | KindInKeyword | KindInstanceOfKeyword | KindNewKeyword | KindNullKeyword | KindReturnKeyword | KindSuperKeyword | KindSwitchKeyword | KindThisKeyword | KindThrowKeyword | KindTrueKeyword | KindTryKeyword | KindTypeOfKeyword | KindVarKeyword | KindVoidKeyword | KindWhileKeyword | KindWithKeyword | KindImplementsKeyword | KindInterfaceKeyword | KindLetKeyword | KindPackageKeyword | KindPrivateKeyword | KindProtectedKeyword | KindPublicKeyword | KindStaticKeyword | KindYieldKeyword | KindAbstractKeyword | KindAccessorKeyword | KindAsKeyword | KindAssertsKeyword | KindAssertKeyword | KindAnyKeyword | KindAsyncKeyword | KindAwaitKeyword | KindBooleanKeyword | KindConstructorKeyword | KindDeclareKeyword | KindGetKeyword | KindImmediateKeyword | KindInferKeyword | KindIntrinsicKeyword | KindIsKeyword | KindKeyOfKeyword | KindModuleKeyword | KindNamespaceKeyword | KindNeverKeyword | KindOutKeyword | KindReadonlyKeyword | KindRequireKeyword | KindNumberKeyword | KindObjectKeyword | KindSatisfiesKeyword | KindSetKeyword | KindStringKeyword | KindSymbolKeyword | KindTypeKeyword | KindUndefinedKeyword | KindUniqueKeyword | KindUnknownKeyword | KindUsingKeyword | KindFromKeyword | KindGlobalKeyword | KindBigIntKeyword | KindOverrideKeyword | KindOfKeyword | KindDeferKeyword + TokenSyntaxKind = Kind // KindUnknown | KindEndOfFile | KindSingleLineCommentTrivia | KindMultiLineCommentTrivia | KindNewLineTrivia | KindWhitespaceTrivia | KindConflictMarkerTrivia | KindNonTextFileMarkerTrivia | KindNumericLiteral | KindBigIntLiteral | KindStringLiteral | KindJsxText | KindJsxTextAllWhiteSpaces | KindRegularExpressionLiteral | KindNoSubstitutionTemplateLiteral | KindTemplateHead | KindTemplateMiddle | KindTemplateTail | KindOpenBraceToken | KindCloseBraceToken | KindOpenParenToken | KindCloseParenToken | KindOpenBracketToken | KindCloseBracketToken | KindDotToken | KindDotDotDotToken | KindSemicolonToken | KindCommaToken | KindQuestionDotToken | KindLessThanToken | KindLessThanSlashToken | KindGreaterThanToken | KindLessThanEqualsToken | KindGreaterThanEqualsToken | KindEqualsEqualsToken | KindExclamationEqualsToken | KindEqualsEqualsEqualsToken | KindExclamationEqualsEqualsToken | KindEqualsGreaterThanToken | KindPlusToken | KindMinusToken | KindAsteriskToken | KindAsteriskAsteriskToken | KindSlashToken | KindPercentToken | KindPlusPlusToken | KindMinusMinusToken | KindLessThanLessThanToken | KindGreaterThanGreaterThanToken | KindGreaterThanGreaterThanGreaterThanToken | KindAmpersandToken | KindBarToken | KindCaretToken | KindExclamationToken | KindTildeToken | KindAmpersandAmpersandToken | KindBarBarToken | KindQuestionToken | KindColonToken | KindAtToken | KindQuestionQuestionToken | KindBacktickToken | KindHashToken | KindEqualsToken | KindPlusEqualsToken | KindMinusEqualsToken | KindAsteriskEqualsToken | KindAsteriskAsteriskEqualsToken | KindSlashEqualsToken | KindPercentEqualsToken | KindLessThanLessThanEqualsToken | KindGreaterThanGreaterThanEqualsToken | KindGreaterThanGreaterThanGreaterThanEqualsToken | KindAmpersandEqualsToken | KindBarEqualsToken | KindBarBarEqualsToken | KindAmpersandAmpersandEqualsToken | KindQuestionQuestionEqualsToken | KindCaretEqualsToken | KindIdentifier | KindPrivateIdentifier | KindJSDocCommentTextToken | KindBreakKeyword | KindCaseKeyword | KindCatchKeyword | KindClassKeyword | KindConstKeyword | KindContinueKeyword | KindDebuggerKeyword | KindDefaultKeyword | KindDeleteKeyword | KindDoKeyword | KindElseKeyword | KindEnumKeyword | KindExportKeyword | KindExtendsKeyword | KindFalseKeyword | KindFinallyKeyword | KindForKeyword | KindFunctionKeyword | KindIfKeyword | KindImportKeyword | KindInKeyword | KindInstanceOfKeyword | KindNewKeyword | KindNullKeyword | KindReturnKeyword | KindSuperKeyword | KindSwitchKeyword | KindThisKeyword | KindThrowKeyword | KindTrueKeyword | KindTryKeyword | KindTypeOfKeyword | KindVarKeyword | KindVoidKeyword | KindWhileKeyword | KindWithKeyword | KindImplementsKeyword | KindInterfaceKeyword | KindLetKeyword | KindPackageKeyword | KindPrivateKeyword | KindProtectedKeyword | KindPublicKeyword | KindStaticKeyword | KindYieldKeyword | KindAbstractKeyword | KindAccessorKeyword | KindAsKeyword | KindAssertsKeyword | KindAssertKeyword | KindAnyKeyword | KindAsyncKeyword | KindAwaitKeyword | KindBooleanKeyword | KindConstructorKeyword | KindDeclareKeyword | KindGetKeyword | KindImmediateKeyword | KindInferKeyword | KindIntrinsicKeyword | KindIsKeyword | KindKeyOfKeyword | KindModuleKeyword | KindNamespaceKeyword | KindNeverKeyword | KindOutKeyword | KindReadonlyKeyword | KindRequireKeyword | KindNumberKeyword | KindObjectKeyword | KindSatisfiesKeyword | KindSetKeyword | KindStringKeyword | KindSymbolKeyword | KindTypeKeyword | KindUndefinedKeyword | KindUniqueKeyword | KindUnknownKeyword | KindUsingKeyword | KindFromKeyword | KindGlobalKeyword | KindBigIntKeyword | KindOverrideKeyword | KindOfKeyword | KindDeferKeyword | KindSourceKeyword JsxTokenSyntaxKind = Kind // KindLessThanSlashToken | KindEndOfFile | KindConflictMarkerTrivia | KindJsxText | KindJsxTextAllWhiteSpaces | KindOpenBraceToken | KindLessThanToken JSDocNodeSyntaxKind = Kind // KindJSDocTypeExpression | KindJSDocNameReference | KindJSDocAllType | KindJSDocNullableType | KindJSDocNonNullableType | KindJSDocOptionalType | KindJSDocVariadicType | KindJSDoc | KindJSDocText | KindJSDocTypeLiteral | KindJSDocSignature | KindJSDocLink | KindJSDocLinkCode | KindJSDocLinkPlain | KindJSDocUnknownTag | KindJSDocAugmentsTag | KindJSDocImplementsTag | KindJSDocDeprecatedTag | KindJSDocPublicTag | KindJSDocPrivateTag | KindJSDocProtectedTag | KindJSDocReadonlyTag | KindJSDocOverrideTag | KindJSDocCallbackTag | KindJSDocOverloadTag | KindJSDocParameterTag | KindJSDocReturnTag | KindJSDocThisTag | KindJSDocTypeTag | KindJSDocTemplateTag | KindJSDocTypedefTag | KindJSDocSeeTag | KindJSDocPropertyTag | KindJSDocThrowsTag | KindJSDocSatisfiesTag | KindJSDocImportTag - ImportPhaseModifierSyntaxKind = Kind // KindTypeKeyword | KindDeferKeyword + ImportPhaseModifierSyntaxKind = Kind // KindTypeKeyword | KindDeferKeyword | KindSourceKeyword PostfixUnaryOperator = Kind // KindPlusPlusToken | KindMinusMinusToken PrefixUnaryOperator = Kind // KindPlusToken | KindMinusToken | KindTildeToken | KindExclamationToken | KindPlusPlusToken | KindMinusMinusToken AssignmentOperator = Kind // KindEqualsToken | KindPlusEqualsToken | KindMinusEqualsToken | KindAsteriskAsteriskEqualsToken | KindAsteriskEqualsToken | KindSlashEqualsToken | KindPercentEqualsToken | KindAmpersandEqualsToken | KindBarEqualsToken | KindCaretEqualsToken | KindLessThanLessThanEqualsToken | KindGreaterThanGreaterThanGreaterThanEqualsToken | KindGreaterThanGreaterThanEqualsToken | KindBarBarEqualsToken | KindAmpersandAmpersandEqualsToken | KindQuestionQuestionEqualsToken diff --git a/tsc/internal/ast/kind_stringer_generated.go b/tsc/internal/ast/kind_stringer_generated.go index b80f1ba531982..9600c3d090453 100644 --- a/tsc/internal/ast/kind_stringer_generated.go +++ b/tsc/internal/ast/kind_stringer_generated.go @@ -175,196 +175,197 @@ func _() { _ = x[KindOverrideKeyword-164] _ = x[KindOfKeyword-165] _ = 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[KindJSDocTypeExpression-308] - _ = x[KindJSDocNameReference-309] - _ = x[KindJSDocAllType-310] - _ = x[KindJSDocNullableType-311] - _ = x[KindJSDocNonNullableType-312] - _ = x[KindJSDocOptionalType-313] - _ = x[KindJSDocVariadicType-314] - _ = x[KindJSDoc-315] - _ = x[KindJSDocText-316] - _ = x[KindJSDocTypeLiteral-317] - _ = x[KindJSDocSignature-318] - _ = x[KindJSDocLink-319] - _ = x[KindJSDocLinkCode-320] - _ = x[KindJSDocLinkPlain-321] - _ = x[KindJSDocUnknownTag-322] - _ = x[KindJSDocAugmentsTag-323] - _ = x[KindJSDocImplementsTag-324] - _ = x[KindJSDocDeprecatedTag-325] - _ = x[KindJSDocPublicTag-326] - _ = x[KindJSDocPrivateTag-327] - _ = x[KindJSDocProtectedTag-328] - _ = x[KindJSDocReadonlyTag-329] - _ = x[KindJSDocOverrideTag-330] - _ = x[KindJSDocCallbackTag-331] - _ = x[KindJSDocOverloadTag-332] - _ = x[KindJSDocParameterTag-333] - _ = x[KindJSDocReturnTag-334] - _ = x[KindJSDocThisTag-335] - _ = x[KindJSDocTypeTag-336] - _ = x[KindJSDocTemplateTag-337] - _ = x[KindJSDocTypedefTag-338] - _ = x[KindJSDocSeeTag-339] - _ = x[KindJSDocPropertyTag-340] - _ = x[KindJSDocThrowsTag-341] - _ = x[KindJSDocSatisfiesTag-342] - _ = x[KindJSDocImportTag-343] - _ = x[KindSyntaxList-344] - _ = x[KindJSTypeAliasDeclaration-345] - _ = x[KindJSImportDeclaration-346] - _ = x[KindNotEmittedStatement-347] - _ = x[KindPartiallyEmittedExpression-348] - _ = x[KindSyntheticReferenceExpression-349] - _ = x[KindNotEmittedTypeElement-350] - _ = x[KindCount-351] + _ = x[KindSourceKeyword-167] + _ = x[KindQualifiedName-168] + _ = x[KindComputedPropertyName-169] + _ = x[KindTypeParameter-170] + _ = x[KindParameter-171] + _ = x[KindDecorator-172] + _ = x[KindPropertySignature-173] + _ = x[KindPropertyDeclaration-174] + _ = x[KindMethodSignature-175] + _ = x[KindMethodDeclaration-176] + _ = x[KindClassStaticBlockDeclaration-177] + _ = x[KindConstructor-178] + _ = x[KindGetAccessor-179] + _ = x[KindSetAccessor-180] + _ = x[KindCallSignature-181] + _ = x[KindConstructSignature-182] + _ = x[KindIndexSignature-183] + _ = x[KindTypePredicate-184] + _ = x[KindTypeReference-185] + _ = x[KindFunctionType-186] + _ = x[KindConstructorType-187] + _ = x[KindTypeQuery-188] + _ = x[KindTypeLiteral-189] + _ = x[KindArrayType-190] + _ = x[KindTupleType-191] + _ = x[KindOptionalType-192] + _ = x[KindRestType-193] + _ = x[KindUnionType-194] + _ = x[KindIntersectionType-195] + _ = x[KindConditionalType-196] + _ = x[KindInferType-197] + _ = x[KindParenthesizedType-198] + _ = x[KindThisType-199] + _ = x[KindTypeOperator-200] + _ = x[KindIndexedAccessType-201] + _ = x[KindMappedType-202] + _ = x[KindLiteralType-203] + _ = x[KindNamedTupleMember-204] + _ = x[KindTemplateLiteralType-205] + _ = x[KindTemplateLiteralTypeSpan-206] + _ = x[KindImportType-207] + _ = x[KindObjectBindingPattern-208] + _ = x[KindArrayBindingPattern-209] + _ = x[KindBindingElement-210] + _ = x[KindArrayLiteralExpression-211] + _ = x[KindObjectLiteralExpression-212] + _ = x[KindPropertyAccessExpression-213] + _ = x[KindElementAccessExpression-214] + _ = x[KindCallExpression-215] + _ = x[KindNewExpression-216] + _ = x[KindTaggedTemplateExpression-217] + _ = x[KindTypeAssertionExpression-218] + _ = x[KindParenthesizedExpression-219] + _ = x[KindFunctionExpression-220] + _ = x[KindArrowFunction-221] + _ = x[KindDeleteExpression-222] + _ = x[KindTypeOfExpression-223] + _ = x[KindVoidExpression-224] + _ = x[KindAwaitExpression-225] + _ = x[KindPrefixUnaryExpression-226] + _ = x[KindPostfixUnaryExpression-227] + _ = x[KindBinaryExpression-228] + _ = x[KindConditionalExpression-229] + _ = x[KindTemplateExpression-230] + _ = x[KindYieldExpression-231] + _ = x[KindSpreadElement-232] + _ = x[KindClassExpression-233] + _ = x[KindOmittedExpression-234] + _ = x[KindExpressionWithTypeArguments-235] + _ = x[KindAsExpression-236] + _ = x[KindNonNullExpression-237] + _ = x[KindMetaProperty-238] + _ = x[KindSyntheticExpression-239] + _ = x[KindSatisfiesExpression-240] + _ = x[KindTemplateSpan-241] + _ = x[KindSemicolonClassElement-242] + _ = x[KindBlock-243] + _ = x[KindEmptyStatement-244] + _ = x[KindVariableStatement-245] + _ = x[KindExpressionStatement-246] + _ = x[KindIfStatement-247] + _ = x[KindDoStatement-248] + _ = x[KindWhileStatement-249] + _ = x[KindForStatement-250] + _ = x[KindForInStatement-251] + _ = x[KindForOfStatement-252] + _ = x[KindContinueStatement-253] + _ = x[KindBreakStatement-254] + _ = x[KindReturnStatement-255] + _ = x[KindWithStatement-256] + _ = x[KindSwitchStatement-257] + _ = x[KindLabeledStatement-258] + _ = x[KindThrowStatement-259] + _ = x[KindTryStatement-260] + _ = x[KindDebuggerStatement-261] + _ = x[KindVariableDeclaration-262] + _ = x[KindVariableDeclarationList-263] + _ = x[KindFunctionDeclaration-264] + _ = x[KindClassDeclaration-265] + _ = x[KindInterfaceDeclaration-266] + _ = x[KindTypeAliasDeclaration-267] + _ = x[KindEnumDeclaration-268] + _ = x[KindModuleDeclaration-269] + _ = x[KindModuleBlock-270] + _ = x[KindCaseBlock-271] + _ = x[KindNamespaceExportDeclaration-272] + _ = x[KindImportEqualsDeclaration-273] + _ = x[KindImportDeclaration-274] + _ = x[KindImportClause-275] + _ = x[KindNamespaceImport-276] + _ = x[KindNamedImports-277] + _ = x[KindImportSpecifier-278] + _ = x[KindExportAssignment-279] + _ = x[KindExportDeclaration-280] + _ = x[KindNamedExports-281] + _ = x[KindNamespaceExport-282] + _ = x[KindExportSpecifier-283] + _ = x[KindMissingDeclaration-284] + _ = x[KindExternalModuleReference-285] + _ = x[KindJsxElement-286] + _ = x[KindJsxSelfClosingElement-287] + _ = x[KindJsxOpeningElement-288] + _ = x[KindJsxClosingElement-289] + _ = x[KindJsxFragment-290] + _ = x[KindJsxOpeningFragment-291] + _ = x[KindJsxClosingFragment-292] + _ = x[KindJsxAttribute-293] + _ = x[KindJsxAttributes-294] + _ = x[KindJsxSpreadAttribute-295] + _ = x[KindJsxExpression-296] + _ = x[KindJsxNamespacedName-297] + _ = x[KindCaseClause-298] + _ = x[KindDefaultClause-299] + _ = x[KindHeritageClause-300] + _ = x[KindCatchClause-301] + _ = x[KindImportAttributes-302] + _ = x[KindImportAttribute-303] + _ = x[KindPropertyAssignment-304] + _ = x[KindShorthandPropertyAssignment-305] + _ = x[KindSpreadAssignment-306] + _ = x[KindEnumMember-307] + _ = x[KindSourceFile-308] + _ = x[KindJSDocTypeExpression-309] + _ = x[KindJSDocNameReference-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[KindJSDocUnknownTag-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[KindJSDocThrowsTag-342] + _ = x[KindJSDocSatisfiesTag-343] + _ = x[KindJSDocImportTag-344] + _ = x[KindSyntaxList-345] + _ = x[KindJSTypeAliasDeclaration-346] + _ = x[KindJSImportDeclaration-347] + _ = x[KindNotEmittedStatement-348] + _ = x[KindPartiallyEmittedExpression-349] + _ = x[KindSyntheticReferenceExpression-350] + _ = x[KindNotEmittedTypeElement-351] + _ = x[KindCount-352] } -const _Kind_name = "KindUnknownKindEndOfFileKindSingleLineCommentTriviaKindMultiLineCommentTriviaKindNewLineTriviaKindWhitespaceTriviaKindConflictMarkerTriviaKindNonTextFileMarkerTriviaKindNumericLiteralKindBigIntLiteralKindStringLiteralKindJsxTextKindJsxTextAllWhiteSpacesKindRegularExpressionLiteralKindNoSubstitutionTemplateLiteralKindTemplateHeadKindTemplateMiddleKindTemplateTailKindOpenBraceTokenKindCloseBraceTokenKindOpenParenTokenKindCloseParenTokenKindOpenBracketTokenKindCloseBracketTokenKindDotTokenKindDotDotDotTokenKindSemicolonTokenKindCommaTokenKindQuestionDotTokenKindLessThanTokenKindLessThanSlashTokenKindGreaterThanTokenKindLessThanEqualsTokenKindGreaterThanEqualsTokenKindEqualsEqualsTokenKindExclamationEqualsTokenKindEqualsEqualsEqualsTokenKindExclamationEqualsEqualsTokenKindEqualsGreaterThanTokenKindPlusTokenKindMinusTokenKindAsteriskTokenKindAsteriskAsteriskTokenKindSlashTokenKindPercentTokenKindPlusPlusTokenKindMinusMinusTokenKindLessThanLessThanTokenKindGreaterThanGreaterThanTokenKindGreaterThanGreaterThanGreaterThanTokenKindAmpersandTokenKindBarTokenKindCaretTokenKindExclamationTokenKindTildeTokenKindAmpersandAmpersandTokenKindBarBarTokenKindQuestionTokenKindColonTokenKindAtTokenKindQuestionQuestionTokenKindBacktickTokenKindHashTokenKindEqualsTokenKindPlusEqualsTokenKindMinusEqualsTokenKindAsteriskEqualsTokenKindAsteriskAsteriskEqualsTokenKindSlashEqualsTokenKindPercentEqualsTokenKindLessThanLessThanEqualsTokenKindGreaterThanGreaterThanEqualsTokenKindGreaterThanGreaterThanGreaterThanEqualsTokenKindAmpersandEqualsTokenKindBarEqualsTokenKindBarBarEqualsTokenKindAmpersandAmpersandEqualsTokenKindQuestionQuestionEqualsTokenKindCaretEqualsTokenKindIdentifierKindPrivateIdentifierKindJSDocCommentTextTokenKindBreakKeywordKindCaseKeywordKindCatchKeywordKindClassKeywordKindConstKeywordKindContinueKeywordKindDebuggerKeywordKindDefaultKeywordKindDeleteKeywordKindDoKeywordKindElseKeywordKindEnumKeywordKindExportKeywordKindExtendsKeywordKindFalseKeywordKindFinallyKeywordKindForKeywordKindFunctionKeywordKindIfKeywordKindImportKeywordKindInKeywordKindInstanceOfKeywordKindNewKeywordKindNullKeywordKindReturnKeywordKindSuperKeywordKindSwitchKeywordKindThisKeywordKindThrowKeywordKindTrueKeywordKindTryKeywordKindTypeOfKeywordKindVarKeywordKindVoidKeywordKindWhileKeywordKindWithKeywordKindImplementsKeywordKindInterfaceKeywordKindLetKeywordKindPackageKeywordKindPrivateKeywordKindProtectedKeywordKindPublicKeywordKindStaticKeywordKindYieldKeywordKindAbstractKeywordKindAccessorKeywordKindAsKeywordKindAssertsKeywordKindAssertKeywordKindAnyKeywordKindAsyncKeywordKindAwaitKeywordKindBooleanKeywordKindConstructorKeywordKindDeclareKeywordKindGetKeywordKindImmediateKeywordKindInferKeywordKindIntrinsicKeywordKindIsKeywordKindKeyOfKeywordKindModuleKeywordKindNamespaceKeywordKindNeverKeywordKindOutKeywordKindReadonlyKeywordKindRequireKeywordKindNumberKeywordKindObjectKeywordKindSatisfiesKeywordKindSetKeywordKindStringKeywordKindSymbolKeywordKindTypeKeywordKindUndefinedKeywordKindUniqueKeywordKindUnknownKeywordKindUsingKeywordKindFromKeywordKindGlobalKeywordKindBigIntKeywordKindOverrideKeywordKindOfKeywordKindDeferKeywordKindQualifiedNameKindComputedPropertyNameKindTypeParameterKindParameterKindDecoratorKindPropertySignatureKindPropertyDeclarationKindMethodSignatureKindMethodDeclarationKindClassStaticBlockDeclarationKindConstructorKindGetAccessorKindSetAccessorKindCallSignatureKindConstructSignatureKindIndexSignatureKindTypePredicateKindTypeReferenceKindFunctionTypeKindConstructorTypeKindTypeQueryKindTypeLiteralKindArrayTypeKindTupleTypeKindOptionalTypeKindRestTypeKindUnionTypeKindIntersectionTypeKindConditionalTypeKindInferTypeKindParenthesizedTypeKindThisTypeKindTypeOperatorKindIndexedAccessTypeKindMappedTypeKindLiteralTypeKindNamedTupleMemberKindTemplateLiteralTypeKindTemplateLiteralTypeSpanKindImportTypeKindObjectBindingPatternKindArrayBindingPatternKindBindingElementKindArrayLiteralExpressionKindObjectLiteralExpressionKindPropertyAccessExpressionKindElementAccessExpressionKindCallExpressionKindNewExpressionKindTaggedTemplateExpressionKindTypeAssertionExpressionKindParenthesizedExpressionKindFunctionExpressionKindArrowFunctionKindDeleteExpressionKindTypeOfExpressionKindVoidExpressionKindAwaitExpressionKindPrefixUnaryExpressionKindPostfixUnaryExpressionKindBinaryExpressionKindConditionalExpressionKindTemplateExpressionKindYieldExpressionKindSpreadElementKindClassExpressionKindOmittedExpressionKindExpressionWithTypeArgumentsKindAsExpressionKindNonNullExpressionKindMetaPropertyKindSyntheticExpressionKindSatisfiesExpressionKindTemplateSpanKindSemicolonClassElementKindBlockKindEmptyStatementKindVariableStatementKindExpressionStatementKindIfStatementKindDoStatementKindWhileStatementKindForStatementKindForInStatementKindForOfStatementKindContinueStatementKindBreakStatementKindReturnStatementKindWithStatementKindSwitchStatementKindLabeledStatementKindThrowStatementKindTryStatementKindDebuggerStatementKindVariableDeclarationKindVariableDeclarationListKindFunctionDeclarationKindClassDeclarationKindInterfaceDeclarationKindTypeAliasDeclarationKindEnumDeclarationKindModuleDeclarationKindModuleBlockKindCaseBlockKindNamespaceExportDeclarationKindImportEqualsDeclarationKindImportDeclarationKindImportClauseKindNamespaceImportKindNamedImportsKindImportSpecifierKindExportAssignmentKindExportDeclarationKindNamedExportsKindNamespaceExportKindExportSpecifierKindMissingDeclarationKindExternalModuleReferenceKindJsxElementKindJsxSelfClosingElementKindJsxOpeningElementKindJsxClosingElementKindJsxFragmentKindJsxOpeningFragmentKindJsxClosingFragmentKindJsxAttributeKindJsxAttributesKindJsxSpreadAttributeKindJsxExpressionKindJsxNamespacedNameKindCaseClauseKindDefaultClauseKindHeritageClauseKindCatchClauseKindImportAttributesKindImportAttributeKindPropertyAssignmentKindShorthandPropertyAssignmentKindSpreadAssignmentKindEnumMemberKindSourceFileKindJSDocTypeExpressionKindJSDocNameReferenceKindJSDocAllTypeKindJSDocNullableTypeKindJSDocNonNullableTypeKindJSDocOptionalTypeKindJSDocVariadicTypeKindJSDocKindJSDocTextKindJSDocTypeLiteralKindJSDocSignatureKindJSDocLinkKindJSDocLinkCodeKindJSDocLinkPlainKindJSDocUnknownTagKindJSDocAugmentsTagKindJSDocImplementsTagKindJSDocDeprecatedTagKindJSDocPublicTagKindJSDocPrivateTagKindJSDocProtectedTagKindJSDocReadonlyTagKindJSDocOverrideTagKindJSDocCallbackTagKindJSDocOverloadTagKindJSDocParameterTagKindJSDocReturnTagKindJSDocThisTagKindJSDocTypeTagKindJSDocTemplateTagKindJSDocTypedefTagKindJSDocSeeTagKindJSDocPropertyTagKindJSDocThrowsTagKindJSDocSatisfiesTagKindJSDocImportTagKindSyntaxListKindJSTypeAliasDeclarationKindJSImportDeclarationKindNotEmittedStatementKindPartiallyEmittedExpressionKindSyntheticReferenceExpressionKindNotEmittedTypeElementKindCount" +const _Kind_name = "KindUnknownKindEndOfFileKindSingleLineCommentTriviaKindMultiLineCommentTriviaKindNewLineTriviaKindWhitespaceTriviaKindConflictMarkerTriviaKindNonTextFileMarkerTriviaKindNumericLiteralKindBigIntLiteralKindStringLiteralKindJsxTextKindJsxTextAllWhiteSpacesKindRegularExpressionLiteralKindNoSubstitutionTemplateLiteralKindTemplateHeadKindTemplateMiddleKindTemplateTailKindOpenBraceTokenKindCloseBraceTokenKindOpenParenTokenKindCloseParenTokenKindOpenBracketTokenKindCloseBracketTokenKindDotTokenKindDotDotDotTokenKindSemicolonTokenKindCommaTokenKindQuestionDotTokenKindLessThanTokenKindLessThanSlashTokenKindGreaterThanTokenKindLessThanEqualsTokenKindGreaterThanEqualsTokenKindEqualsEqualsTokenKindExclamationEqualsTokenKindEqualsEqualsEqualsTokenKindExclamationEqualsEqualsTokenKindEqualsGreaterThanTokenKindPlusTokenKindMinusTokenKindAsteriskTokenKindAsteriskAsteriskTokenKindSlashTokenKindPercentTokenKindPlusPlusTokenKindMinusMinusTokenKindLessThanLessThanTokenKindGreaterThanGreaterThanTokenKindGreaterThanGreaterThanGreaterThanTokenKindAmpersandTokenKindBarTokenKindCaretTokenKindExclamationTokenKindTildeTokenKindAmpersandAmpersandTokenKindBarBarTokenKindQuestionTokenKindColonTokenKindAtTokenKindQuestionQuestionTokenKindBacktickTokenKindHashTokenKindEqualsTokenKindPlusEqualsTokenKindMinusEqualsTokenKindAsteriskEqualsTokenKindAsteriskAsteriskEqualsTokenKindSlashEqualsTokenKindPercentEqualsTokenKindLessThanLessThanEqualsTokenKindGreaterThanGreaterThanEqualsTokenKindGreaterThanGreaterThanGreaterThanEqualsTokenKindAmpersandEqualsTokenKindBarEqualsTokenKindBarBarEqualsTokenKindAmpersandAmpersandEqualsTokenKindQuestionQuestionEqualsTokenKindCaretEqualsTokenKindIdentifierKindPrivateIdentifierKindJSDocCommentTextTokenKindBreakKeywordKindCaseKeywordKindCatchKeywordKindClassKeywordKindConstKeywordKindContinueKeywordKindDebuggerKeywordKindDefaultKeywordKindDeleteKeywordKindDoKeywordKindElseKeywordKindEnumKeywordKindExportKeywordKindExtendsKeywordKindFalseKeywordKindFinallyKeywordKindForKeywordKindFunctionKeywordKindIfKeywordKindImportKeywordKindInKeywordKindInstanceOfKeywordKindNewKeywordKindNullKeywordKindReturnKeywordKindSuperKeywordKindSwitchKeywordKindThisKeywordKindThrowKeywordKindTrueKeywordKindTryKeywordKindTypeOfKeywordKindVarKeywordKindVoidKeywordKindWhileKeywordKindWithKeywordKindImplementsKeywordKindInterfaceKeywordKindLetKeywordKindPackageKeywordKindPrivateKeywordKindProtectedKeywordKindPublicKeywordKindStaticKeywordKindYieldKeywordKindAbstractKeywordKindAccessorKeywordKindAsKeywordKindAssertsKeywordKindAssertKeywordKindAnyKeywordKindAsyncKeywordKindAwaitKeywordKindBooleanKeywordKindConstructorKeywordKindDeclareKeywordKindGetKeywordKindImmediateKeywordKindInferKeywordKindIntrinsicKeywordKindIsKeywordKindKeyOfKeywordKindModuleKeywordKindNamespaceKeywordKindNeverKeywordKindOutKeywordKindReadonlyKeywordKindRequireKeywordKindNumberKeywordKindObjectKeywordKindSatisfiesKeywordKindSetKeywordKindStringKeywordKindSymbolKeywordKindTypeKeywordKindUndefinedKeywordKindUniqueKeywordKindUnknownKeywordKindUsingKeywordKindFromKeywordKindGlobalKeywordKindBigIntKeywordKindOverrideKeywordKindOfKeywordKindDeferKeywordKindSourceKeywordKindQualifiedNameKindComputedPropertyNameKindTypeParameterKindParameterKindDecoratorKindPropertySignatureKindPropertyDeclarationKindMethodSignatureKindMethodDeclarationKindClassStaticBlockDeclarationKindConstructorKindGetAccessorKindSetAccessorKindCallSignatureKindConstructSignatureKindIndexSignatureKindTypePredicateKindTypeReferenceKindFunctionTypeKindConstructorTypeKindTypeQueryKindTypeLiteralKindArrayTypeKindTupleTypeKindOptionalTypeKindRestTypeKindUnionTypeKindIntersectionTypeKindConditionalTypeKindInferTypeKindParenthesizedTypeKindThisTypeKindTypeOperatorKindIndexedAccessTypeKindMappedTypeKindLiteralTypeKindNamedTupleMemberKindTemplateLiteralTypeKindTemplateLiteralTypeSpanKindImportTypeKindObjectBindingPatternKindArrayBindingPatternKindBindingElementKindArrayLiteralExpressionKindObjectLiteralExpressionKindPropertyAccessExpressionKindElementAccessExpressionKindCallExpressionKindNewExpressionKindTaggedTemplateExpressionKindTypeAssertionExpressionKindParenthesizedExpressionKindFunctionExpressionKindArrowFunctionKindDeleteExpressionKindTypeOfExpressionKindVoidExpressionKindAwaitExpressionKindPrefixUnaryExpressionKindPostfixUnaryExpressionKindBinaryExpressionKindConditionalExpressionKindTemplateExpressionKindYieldExpressionKindSpreadElementKindClassExpressionKindOmittedExpressionKindExpressionWithTypeArgumentsKindAsExpressionKindNonNullExpressionKindMetaPropertyKindSyntheticExpressionKindSatisfiesExpressionKindTemplateSpanKindSemicolonClassElementKindBlockKindEmptyStatementKindVariableStatementKindExpressionStatementKindIfStatementKindDoStatementKindWhileStatementKindForStatementKindForInStatementKindForOfStatementKindContinueStatementKindBreakStatementKindReturnStatementKindWithStatementKindSwitchStatementKindLabeledStatementKindThrowStatementKindTryStatementKindDebuggerStatementKindVariableDeclarationKindVariableDeclarationListKindFunctionDeclarationKindClassDeclarationKindInterfaceDeclarationKindTypeAliasDeclarationKindEnumDeclarationKindModuleDeclarationKindModuleBlockKindCaseBlockKindNamespaceExportDeclarationKindImportEqualsDeclarationKindImportDeclarationKindImportClauseKindNamespaceImportKindNamedImportsKindImportSpecifierKindExportAssignmentKindExportDeclarationKindNamedExportsKindNamespaceExportKindExportSpecifierKindMissingDeclarationKindExternalModuleReferenceKindJsxElementKindJsxSelfClosingElementKindJsxOpeningElementKindJsxClosingElementKindJsxFragmentKindJsxOpeningFragmentKindJsxClosingFragmentKindJsxAttributeKindJsxAttributesKindJsxSpreadAttributeKindJsxExpressionKindJsxNamespacedNameKindCaseClauseKindDefaultClauseKindHeritageClauseKindCatchClauseKindImportAttributesKindImportAttributeKindPropertyAssignmentKindShorthandPropertyAssignmentKindSpreadAssignmentKindEnumMemberKindSourceFileKindJSDocTypeExpressionKindJSDocNameReferenceKindJSDocAllTypeKindJSDocNullableTypeKindJSDocNonNullableTypeKindJSDocOptionalTypeKindJSDocVariadicTypeKindJSDocKindJSDocTextKindJSDocTypeLiteralKindJSDocSignatureKindJSDocLinkKindJSDocLinkCodeKindJSDocLinkPlainKindJSDocUnknownTagKindJSDocAugmentsTagKindJSDocImplementsTagKindJSDocDeprecatedTagKindJSDocPublicTagKindJSDocPrivateTagKindJSDocProtectedTagKindJSDocReadonlyTagKindJSDocOverrideTagKindJSDocCallbackTagKindJSDocOverloadTagKindJSDocParameterTagKindJSDocReturnTagKindJSDocThisTagKindJSDocTypeTagKindJSDocTemplateTagKindJSDocTypedefTagKindJSDocSeeTagKindJSDocPropertyTagKindJSDocThrowsTagKindJSDocSatisfiesTagKindJSDocImportTagKindSyntaxListKindJSTypeAliasDeclarationKindJSImportDeclarationKindNotEmittedStatementKindPartiallyEmittedExpressionKindSyntheticReferenceExpressionKindNotEmittedTypeElementKindCount" -var _Kind_index = [...]uint16{0, 11, 24, 51, 77, 94, 114, 138, 165, 183, 200, 217, 228, 253, 281, 314, 330, 348, 364, 382, 401, 419, 438, 458, 479, 491, 509, 527, 541, 561, 578, 600, 620, 643, 669, 690, 716, 743, 775, 801, 814, 828, 845, 870, 884, 900, 917, 936, 961, 992, 1034, 1052, 1064, 1078, 1098, 1112, 1139, 1154, 1171, 1185, 1196, 1221, 1238, 1251, 1266, 1285, 1305, 1328, 1359, 1379, 1401, 1432, 1469, 1517, 1541, 1559, 1580, 1613, 1644, 1664, 1678, 1699, 1724, 1740, 1755, 1771, 1787, 1803, 1822, 1841, 1859, 1876, 1889, 1904, 1919, 1936, 1954, 1970, 1988, 2002, 2021, 2034, 2051, 2064, 2085, 2099, 2114, 2131, 2147, 2164, 2179, 2195, 2210, 2224, 2241, 2255, 2270, 2286, 2301, 2322, 2342, 2356, 2374, 2392, 2412, 2429, 2446, 2462, 2481, 2500, 2513, 2531, 2548, 2562, 2578, 2594, 2612, 2634, 2652, 2666, 2686, 2702, 2722, 2735, 2751, 2768, 2788, 2804, 2818, 2837, 2855, 2872, 2889, 2909, 2923, 2940, 2957, 2972, 2992, 3009, 3027, 3043, 3058, 3075, 3092, 3111, 3124, 3140, 3157, 3181, 3198, 3211, 3224, 3245, 3268, 3287, 3308, 3339, 3354, 3369, 3384, 3401, 3423, 3441, 3458, 3475, 3491, 3510, 3523, 3538, 3551, 3564, 3580, 3592, 3605, 3625, 3644, 3657, 3678, 3690, 3706, 3727, 3741, 3756, 3776, 3799, 3826, 3840, 3864, 3887, 3905, 3931, 3958, 3986, 4013, 4031, 4048, 4076, 4103, 4130, 4152, 4169, 4189, 4209, 4227, 4246, 4271, 4297, 4317, 4342, 4364, 4383, 4400, 4419, 4440, 4471, 4487, 4508, 4524, 4547, 4570, 4586, 4611, 4620, 4638, 4659, 4682, 4697, 4712, 4730, 4746, 4764, 4782, 4803, 4821, 4840, 4857, 4876, 4896, 4914, 4930, 4951, 4974, 5001, 5024, 5044, 5068, 5092, 5111, 5132, 5147, 5160, 5190, 5217, 5238, 5254, 5273, 5289, 5308, 5328, 5349, 5365, 5384, 5403, 5425, 5452, 5466, 5491, 5512, 5533, 5548, 5570, 5592, 5608, 5625, 5647, 5664, 5685, 5699, 5716, 5734, 5749, 5769, 5788, 5810, 5841, 5861, 5875, 5889, 5912, 5934, 5950, 5971, 5995, 6016, 6037, 6046, 6059, 6079, 6097, 6110, 6127, 6145, 6164, 6184, 6206, 6228, 6246, 6265, 6286, 6306, 6326, 6346, 6366, 6387, 6405, 6421, 6437, 6457, 6476, 6491, 6511, 6529, 6550, 6568, 6582, 6608, 6631, 6654, 6684, 6716, 6741, 6750} +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, 3174, 3198, 3215, 3228, 3241, 3262, 3285, 3304, 3325, 3356, 3371, 3386, 3401, 3418, 3440, 3458, 3475, 3492, 3508, 3527, 3540, 3555, 3568, 3581, 3597, 3609, 3622, 3642, 3661, 3674, 3695, 3707, 3723, 3744, 3758, 3773, 3793, 3816, 3843, 3857, 3881, 3904, 3922, 3948, 3975, 4003, 4030, 4048, 4065, 4093, 4120, 4147, 4169, 4186, 4206, 4226, 4244, 4263, 4288, 4314, 4334, 4359, 4381, 4400, 4417, 4436, 4457, 4488, 4504, 4525, 4541, 4564, 4587, 4603, 4628, 4637, 4655, 4676, 4699, 4714, 4729, 4747, 4763, 4781, 4799, 4820, 4838, 4857, 4874, 4893, 4913, 4931, 4947, 4968, 4991, 5018, 5041, 5061, 5085, 5109, 5128, 5149, 5164, 5177, 5207, 5234, 5255, 5271, 5290, 5306, 5325, 5345, 5366, 5382, 5401, 5420, 5442, 5469, 5483, 5508, 5529, 5550, 5565, 5587, 5609, 5625, 5642, 5664, 5681, 5702, 5716, 5733, 5751, 5766, 5786, 5805, 5827, 5858, 5878, 5892, 5906, 5929, 5951, 5967, 5988, 6012, 6033, 6054, 6063, 6076, 6096, 6114, 6127, 6144, 6162, 6181, 6201, 6223, 6245, 6263, 6282, 6303, 6323, 6343, 6363, 6383, 6404, 6422, 6438, 6454, 6474, 6493, 6508, 6528, 6546, 6567, 6585, 6599, 6625, 6648, 6671, 6701, 6733, 6758, 6767} func (i Kind) String() string { idx := int(i) - 0 diff --git a/tsc/internal/ast/utilities.go b/tsc/internal/ast/utilities.go index 4a554a6f6755f..20492fbb54eb1 100644 --- a/tsc/internal/ast/utilities.go +++ b/tsc/internal/ast/utilities.go @@ -2006,7 +2006,7 @@ func IsExpressionNode(node *Node) bool { KindJsxFragment, KindYieldExpression, KindAwaitExpression: return true case KindMetaProperty: - // `import.defer` in `import.defer(...)` is not an expression + // `import.` in `import.(...)` is not an expression return !IsImportCall(node.Parent) || node.Parent.Expression() != node case KindExpressionWithTypeArguments: return !IsHeritageClause(node.Parent) @@ -2147,7 +2147,35 @@ func IsImportCall(node *Node) bool { return false } e := node.Expression() - return e.Kind == KindImportKeyword || IsMetaProperty(e) && e.AsMetaProperty().KeywordToken == KindImportKeyword && e.Text() == "defer" + return e.Kind == KindImportKeyword || IsImportPhaseMetaProperty(e) +} + +func IsImportPhaseMetaProperty(node *Node) bool { + return IsImportDeferMetaProperty(node) || IsImportSourceMetaProperty(node) +} + +func IsImportDeferMetaProperty(node *Node) bool { + return isImportMetaProperty(node, "defer") +} + +func IsImportSourceMetaProperty(node *Node) bool { + return isImportMetaProperty(node, "source") +} + +func isImportMetaProperty(node *Node, name string) bool { + return IsMetaProperty(node) && node.AsMetaProperty().KeywordToken == KindImportKeyword && node.AsMetaProperty().Name().Text() == name +} + +func IsSourcePhaseImport(node *Node) bool { + if IsImportDeclaration(node) { + clause := node.AsImportDeclaration().ImportClause + return clause != nil && clause.AsImportClause().PhaseModifier == KindSourceKeyword + } + return IsSourcePhaseImportCall(node) +} + +func IsSourcePhaseImportCall(node *Node) bool { + return IsCallExpression(node) && IsImportSourceMetaProperty(node.Expression()) } func IsComputedNonLiteralName(name *Node) bool { diff --git a/tsc/internal/bundled/embed_generated.go b/tsc/internal/bundled/embed_generated.go index e55a97325120b..73cf39a0a1ac6 100644 --- a/tsc/internal/bundled/embed_generated.go +++ b/tsc/internal/bundled/embed_generated.go @@ -219,6 +219,8 @@ var ( libs_lib_esnext_full_d_ts string //go:embed libs/lib.esnext.intl.d.ts libs_lib_esnext_intl_d_ts string + //go:embed libs/lib.esnext.modulesource.d.ts + libs_lib_esnext_modulesource_d_ts string //go:embed libs/lib.esnext.sharedmemory.d.ts libs_lib_esnext_sharedmemory_d_ts string //go:embed libs/lib.esnext.temporal.d.ts @@ -342,6 +344,7 @@ var embeddedContents = map[string]string{ "libs/lib.esnext.disposable.d.ts": libs_lib_esnext_disposable_d_ts, "libs/lib.esnext.full.d.ts": libs_lib_esnext_full_d_ts, "libs/lib.esnext.intl.d.ts": libs_lib_esnext_intl_d_ts, + "libs/lib.esnext.modulesource.d.ts": libs_lib_esnext_modulesource_d_ts, "libs/lib.esnext.sharedmemory.d.ts": libs_lib_esnext_sharedmemory_d_ts, "libs/lib.esnext.temporal.d.ts": libs_lib_esnext_temporal_d_ts, "libs/lib.scripthost.d.ts": libs_lib_scripthost_d_ts, diff --git a/tsc/internal/bundled/libs/lib.esnext.d.ts b/tsc/internal/bundled/libs/lib.esnext.d.ts index 07582b0de9614..7fc86e730dc5e 100644 --- a/tsc/internal/bundled/libs/lib.esnext.d.ts +++ b/tsc/internal/bundled/libs/lib.esnext.d.ts @@ -21,3 +21,4 @@ and limitations under the License. /// /// /// +/// diff --git a/tsc/internal/bundled/libs/lib.esnext.modulesource.d.ts b/tsc/internal/bundled/libs/lib.esnext.modulesource.d.ts new file mode 100644 index 0000000000000..25327ccd92f99 --- /dev/null +++ b/tsc/internal/bundled/libs/lib.esnext.modulesource.d.ts @@ -0,0 +1,21 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABILITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + + +/// + +interface AbstractModuleSource { + readonly [Symbol.toStringTag]: string; +} diff --git a/tsc/internal/bundled/libs_generated.go b/tsc/internal/bundled/libs_generated.go index c0c0dece8ffeb..021f5ba194e04 100644 --- a/tsc/internal/bundled/libs_generated.go +++ b/tsc/internal/bundled/libs_generated.go @@ -111,6 +111,7 @@ var LibNames = []string{ "lib.esnext.disposable.d.ts", "lib.esnext.full.d.ts", "lib.esnext.intl.d.ts", + "lib.esnext.modulesource.d.ts", "lib.esnext.sharedmemory.d.ts", "lib.esnext.temporal.d.ts", "lib.scripthost.d.ts", diff --git a/tsc/internal/checker/checker.go b/tsc/internal/checker/checker.go index 415c8ecdf73f2..9de1502c5c9bd 100644 --- a/tsc/internal/checker/checker.go +++ b/tsc/internal/checker/checker.go @@ -849,6 +849,7 @@ type Checker struct { getGlobalPromiseType func() *Type getGlobalPromiseTypeChecked func() *Type getGlobalPromiseLikeType func() *Type + getGlobalAbstractModuleSourceType func() *Type getGlobalPromiseConstructorSymbol func() *ast.Symbol getGlobalPromiseConstructorSymbolOrNil func() *ast.Symbol getGlobalOmitSymbol func() *ast.Symbol @@ -1090,6 +1091,7 @@ func NewChecker(program Program, tracer *Tracer) (*Checker, *sync.Mutex) { c.getGlobalPromiseType = c.getGlobalTypeResolver("Promise", 1 /*arity*/, false /*reportErrors*/) c.getGlobalPromiseTypeChecked = c.getGlobalTypeResolver("Promise", 1 /*arity*/, true /*reportErrors*/) c.getGlobalPromiseLikeType = c.getGlobalTypeResolver("PromiseLike", 1 /*arity*/, true /*reportErrors*/) + c.getGlobalAbstractModuleSourceType = c.getGlobalTypeResolver("AbstractModuleSource", 0 /*arity*/, true /*reportErrors*/) c.getGlobalPromiseConstructorSymbol = c.getGlobalValueSymbolResolver("Promise", true /*reportErrors*/) c.getGlobalPromiseConstructorSymbolOrNil = c.getGlobalValueSymbolResolver("Promise", false /*reportErrors*/) c.getGlobalOmitSymbol = c.getGlobalTypeAliasResolver("Omit", 2 /*arity*/, true /*reportErrors*/) @@ -8473,6 +8475,9 @@ func (c *Checker) checkImportCallExpression(node *ast.Node) *Type { } importAttributesType = c.getTypeOfPropertyOfType(optionsType, "with") } + if ast.IsSourcePhaseImportCall(node) { + return c.createPromiseReturnType(node, c.getGlobalAbstractModuleSourceType()) + } // resolveExternalModuleName will return undefined if the moduleReferenceExpression is not a string literal moduleSymbol := c.resolveExternalModuleName(node, specifier, false /*ignoreErrors*/, importAttributesType) if moduleSymbol != nil { @@ -10956,8 +10961,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.Expression() != node, "Trying to get the type of `import.defer` in `import.defer(...)`") + if ast.IsImportPhaseMetaProperty(node.AsNode()) { + if ast.IsCallExpression(node.Parent) { + debug.Assert(node.Parent.Expression() != node, "Trying to get the type of a phase import meta-property in its call") + } return c.errorType } return c.checkImportMetaProperty(node) @@ -14755,6 +14762,17 @@ func (c *Checker) getTypeOnlyDeclarationOfEntityName(name *ast.Node) *ast.Node { } func (c *Checker) getTargetOfImportClause(node *ast.Node) *ast.Symbol { + if node.AsImportClause().PhaseModifier == ast.KindSourceKeyword { + alias := c.getSymbolOfDeclaration(node) + links := c.aliasSymbolLinks.Get(alias) + if links.immediateTarget == nil { + symbol := c.newSymbol(ast.SymbolFlagsFunctionScopedVariable, node.Name().Text()) + symbol.Declarations = alias.Declarations + c.valueSymbolLinks.Get(symbol).resolvedType = c.getGlobalAbstractModuleSourceType() + links.immediateTarget = symbol + } + return links.immediateTarget + } moduleSymbol := c.resolveExternalModuleName(node, getModuleSpecifierFromNode(node.Parent), false /*ignoreErrors*/, c.getTypeFromImportAttributes(ast.GetImportAttributes(node.Parent))) if moduleSymbol != nil { return c.getTargetOfModuleDefault(moduleSymbol, node, true /*dontResolveAlias*/) @@ -15364,6 +15382,9 @@ func (c *Checker) getCannotResolveModuleNameErrorForSpecificModule(moduleName *a func (c *Checker) resolveExternalModuleNameWorker(location *ast.Node, moduleReferenceExpression *ast.Node, moduleNotFoundError *diagnostics.Message, ignoreErrors bool, isForAugmentation bool, importAttributesType *Type) *ast.Symbol { if ast.IsStringLiteralLike(moduleReferenceExpression) { + if ast.IsSourcePhaseImport(moduleReferenceExpression.Parent) { + return nil + } return c.resolveExternalModule(location, moduleReferenceExpression.Text(), moduleNotFoundError, core.IfElse(!ignoreErrors, moduleReferenceExpression, nil), isForAugmentation, importAttributesType) } return nil @@ -32220,7 +32241,7 @@ func (c *Checker) getSymbolAtLocation(node *ast.Node, ignoreErrors bool) *ast.Sy } return nil case ast.KindImportKeyword: - if ast.IsMetaProperty(node.Parent) && node.Parent.Text() == "defer" { + if ast.IsImportPhaseMetaProperty(node.Parent) { return nil } fallthrough diff --git a/tsc/internal/checker/grammarchecks.go b/tsc/internal/checker/grammarchecks.go index b49cfa29f6b7a..077e1d0deb06a 100644 --- a/tsc/internal/checker/grammarchecks.go +++ b/tsc/internal/checker/grammarchecks.go @@ -1822,13 +1822,13 @@ func (c *Checker) checkGrammarMetaProperty(node *ast.MetaProperty) bool { case ast.KindImportKeyword: if nameText != "meta" { isCallee := ast.IsCallExpression(node.Parent) && node.Parent.Expression() == node.AsNode() - if nameText == "defer" { + if ast.IsImportPhaseMetaProperty(node.AsNode()) { 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_import_Did_you_mean_meta_defer_or_source, 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") } @@ -2113,9 +2113,25 @@ func (c *Checker) checkGrammarImportClause(node *ast.ImportClause) bool { 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) + if c.moduleKind.SupportsDeferredImports() { + break + } + return c.grammarErrorOnNode(&node.Node, diagnostics.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve) + case ast.KindSourceKeyword: + if node.NamedBindings != nil { + return c.grammarErrorOnNode(&node.Node, diagnostics.Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import) + } + if node.Name() == nil { + return c.grammarErrorOnNode(&node.Node, diagnostics.A_source_phase_import_must_specify_a_local_binding) + } + if c.moduleKind.SupportsSourcePhaseImports() { + moduleSpecifier := getModuleSpecifierFromNode(node.Parent) + if c.getEmitSyntaxForModuleSpecifierExpression(moduleSpecifier) == core.ModuleKindCommonJS { + return c.grammarErrorOnNode(&node.Node, diagnostics.Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls) + } + break } + return c.grammarErrorOnNode(&node.Node, diagnostics.Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve) } return false } @@ -2159,15 +2175,25 @@ func (c *Checker) checkGrammarImportCallExpression(node *ast.Node) bool { return c.grammarErrorOnNode(node, getVerbatimModuleSyntaxErrorMessage(node)) } - 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) + switch { + case ast.IsImportSourceMetaProperty(node.Expression()): + if c.moduleKind.SupportsSourcePhaseImports() { + break } - } else if c.moduleKind == core.ModuleKindES2015 { + return c.grammarErrorOnNode(node, diagnostics.Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve) + case ast.IsImportDeferMetaProperty(node.Expression()): + if c.moduleKind.SupportsDeferredImports() { + break + } + return c.grammarErrorOnNode(node, diagnostics.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve) + case 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) } nodeAsCall := node.AsCallExpression() + if ast.IsSourcePhaseImportCall(node) && nodeAsCall.QuestionDotToken != nil { + return c.grammarErrorOnNode(nodeAsCall.QuestionDotToken, diagnostics.Optional_chaining_cannot_be_used_with_import_source) + } if nodeAsCall.TypeArguments != nil { return c.grammarErrorOnNode(node, diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments) } diff --git a/tsc/internal/compiler/fileloader.go b/tsc/internal/compiler/fileloader.go index 9782b2664506e..14662760dd852 100644 --- a/tsc/internal/compiler/fileloader.go +++ b/tsc/internal/compiler/fileloader.go @@ -881,7 +881,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { for index, entry := range moduleNames { moduleName := entry.Text() - if moduleName == "" { + if moduleName == "" || ast.IsSourcePhaseImport(entry.Parent) { continue } @@ -1089,12 +1089,14 @@ func getEmitSyntaxForUsageLocationWorker(fileName string, meta ast.SourceFileMet return core.ModuleKindCommonJS } fileEmitMode := ast.GetEmitModuleFormatOfFileWorker(fileName, options, meta) - if ast.IsImportCall(ast.WalkUpParenthesizedExpressions(usage.Parent)) { + if call := ast.WalkUpParenthesizedExpressions(usage.Parent); ast.IsImportCall(call) { + if ast.IsSourcePhaseImportCall(call) { + return core.ModuleKindESNext + } if ast.ShouldTransformImportCall(fileName, options, fileEmitMode) { return core.ModuleKindCommonJS - } else { - return core.ModuleKindESNext } + return core.ModuleKindESNext } // If we're in --module preserve on an input file, we know that an import // is an import. But if this is a declaration file, we'd prefer to use the diff --git a/tsc/internal/compiler/program.go b/tsc/internal/compiler/program.go index c0fb38b3bff6f..8769dfbea0acf 100644 --- a/tsc/internal/compiler/program.go +++ b/tsc/internal/compiler/program.go @@ -467,7 +467,8 @@ func (p *Program) canReplaceFileInProgram(file1 *ast.SourceFile, file2 *ast.Sour file1.UsesUriStyleNodeCoreModules == file2.UsesUriStyleNodeCoreModules && slices.EqualFunc(file1.Imports(), file2.Imports(), func(n1 *ast.Node, n2 *ast.Node) bool { return equalModuleSpecifiers(n1, n2) && - p.GetModeForUsageLocation(file1, n1) == p.GetModeForUsageLocation(file2, n2) + p.GetModeForUsageLocation(file1, n1) == p.GetModeForUsageLocation(file2, n2) && + ast.IsSourcePhaseImport(n1.Parent) == ast.IsSourcePhaseImport(n2.Parent) }) && slices.EqualFunc(file1.ModuleAugmentations, file2.ModuleAugmentations, equalModuleAugmentationNames) && slices.Equal(file1.AmbientModuleNames, file2.AmbientModuleNames) && @@ -641,6 +642,9 @@ func (p *Program) GetResolvedModuleFromModuleSpecifier(file ast.HasFileName, mod if !ast.IsStringLiteralLike(moduleSpecifier) { panic("moduleSpecifier must be a StringLiteralLike") } + if ast.IsSourcePhaseImport(moduleSpecifier.Parent) { + return nil + } mode := p.GetModeForUsageLocation(file, moduleSpecifier) return p.GetResolvedModule(file, moduleSpecifier.Text(), mode) } @@ -2242,7 +2246,7 @@ func (p *Program) collectPackageNames() *packageNamesInfo { continue } for _, imp := range file.Imports() { - if tspath.IsExternalModuleNameRelative(imp.Text()) { + if ast.IsSourcePhaseImport(imp.Parent) || tspath.IsExternalModuleNameRelative(imp.Text()) { continue } if resolvedModules, ok := p.resolvedModules[file.Path()]; ok { @@ -2419,6 +2423,7 @@ var plainJSErrors = collections.NewSetFromItems( diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block.Code(), diagnostics.A_set_accessor_cannot_have_rest_parameter.Code(), diagnostics.A_set_accessor_must_have_exactly_one_parameter.Code(), + diagnostics.A_source_phase_import_must_specify_a_local_binding.Code(), diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module.Code(), diagnostics.An_export_declaration_cannot_have_modifiers.Code(), diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module.Code(), @@ -2442,11 +2447,15 @@ var plainJSErrors = collections.NewSetFromItems( diagnostics.Jump_target_cannot_cross_function_boundary.Code(), diagnostics.Line_terminator_not_permitted_before_arrow.Code(), diagnostics.Modifiers_cannot_appear_here.Code(), + diagnostics.Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import.Code(), diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement.Code(), diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement.Code(), + diagnostics.Optional_chaining_cannot_be_used_with_import_source.Code(), diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies.Code(), diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.Code(), diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier.Code(), + diagnostics.Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls.Code(), + diagnostics.Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve.Code(), diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain.Code(), diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async.Code(), diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer.Code(), @@ -2455,6 +2464,7 @@ var plainJSErrors = collections.NewSetFromItems( diagnostics.Variable_declaration_list_cannot_be_empty.Code(), diagnostics.X_0_and_1_operations_cannot_be_mixed_without_parentheses.Code(), diagnostics.X_0_expected.Code(), + diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source.Code(), diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2.Code(), diagnostics.X_0_list_cannot_be_empty.Code(), diagnostics.X_0_modifier_already_seen.Code(), diff --git a/tsc/internal/compiler/program_test.go b/tsc/internal/compiler/program_test.go index 185d83e20570d..5303253958aa4 100644 --- a/tsc/internal/compiler/program_test.go +++ b/tsc/internal/compiler/program_test.go @@ -332,6 +332,7 @@ var esnextLibs = []string{ "lib.esnext.decorators.d.ts", "lib.esnext.disposable.d.ts", "lib.esnext.intl.d.ts", + "lib.esnext.modulesource.d.ts", "lib.esnext.sharedmemory.d.ts", "lib.esnext.temporal.d.ts", "lib.decorators.d.ts", @@ -477,6 +478,62 @@ func TestProgram(t *testing.T) { } } +func TestImportSourceProgram(t *testing.T) { + t.Parallel() + for _, test := range []struct { + name string + source string + evaluation string + }{ + {"static", `import source a from "./a.js";`, `import { a as value } from "./a.js";`}, + {"dynamic", `import.source("./a.js");`, `import("./a.js");`}, + } { + t.Run(test.name, func(t *testing.T) { + t.Parallel() + content := test.source + `import source b from "missing"; import.source("other");` + files := map[string]any{ + "/src/tsconfig.json": `{"compilerOptions":{"module":"esnext","noLib":true},"files":["index.ts"]}`, + "/src/index.ts": content, + "/src/a.ts": "export const a = 1;", + } + host := NewCompilerHost("/", vfstest.FromMap(files, true), "", nil, nil, nil) + config, diagnostics := tsoptions.GetParsedCommandLineOfConfigFile("/src/tsconfig.json", nil, nil, host, nil) + assert.Equal(t, len(diagnostics), 0) + program := NewProgram(ProgramOptions{Config: config, Host: host}) + file := program.GetSourceFile("/src/index.ts") + assert.Assert(t, program.GetSourceFile("/src/a.ts") == nil) + assert.Equal(t, len(program.GetResolvedModules()[file.Path()]), 0) + assert.Equal(t, program.GetUnresolvedImports().Len(), 0) + assert.Equal(t, program.collectPackageNames().unresolved.Len(), 0) + + files["/src/index.ts"] = test.evaluation + strings.TrimPrefix(content, test.source) + host = NewCompilerHost("/", vfstest.FromMap(files, true), "", nil, nil, nil) + program, file, reused := program.UpdateProgram("/src/index.ts", host, nil, nil) + assert.Assert(t, !reused) + assert.Assert(t, program.GetSourceFile("/src/a.ts") != nil) + for _, specifier := range file.Imports() { + resolved := program.GetResolvedModuleFromModuleSpecifier(file, specifier) + assert.Equal(t, resolved.IsResolved(), !ast.IsSourcePhaseImport(specifier.Parent)) + } + + files["/src/index.ts"] = content + host = NewCompilerHost("/", vfstest.FromMap(files, true), "", nil, nil, nil) + program, _, reused = program.UpdateProgram("/src/index.ts", host, nil, nil) + assert.Assert(t, !reused) + assert.Assert(t, program.GetSourceFile("/src/a.ts") == nil) + + files["/src/index.ts"] = test.evaluation + content + host = NewCompilerHost("/", vfstest.FromMap(files, true), "", nil, nil, nil) + program = NewProgram(ProgramOptions{Config: config, Host: host}) + file = program.GetSourceFile("/src/index.ts") + for _, specifier := range file.Imports() { + resolved := program.GetResolvedModuleFromModuleSpecifier(file, specifier) + assert.Equal(t, resolved.IsResolved(), !ast.IsSourcePhaseImport(specifier.Parent)) + } + }) + } +} + func TestIncludeProcessorDiagnosticsWithMissingFileCasing(t *testing.T) { t.Parallel() diff --git a/tsc/internal/core/compileroptions.go b/tsc/internal/core/compileroptions.go index ca14ab0b2540e..77f7e8b09c868 100644 --- a/tsc/internal/core/compileroptions.go +++ b/tsc/internal/core/compileroptions.go @@ -422,6 +422,14 @@ func (moduleKind ModuleKind) SupportsImportAttributes() bool { moduleKind == ModuleKindESNext } +func (moduleKind ModuleKind) SupportsDeferredImports() bool { + return moduleKind == ModuleKindESNext || moduleKind == ModuleKindPreserve +} + +func (moduleKind ModuleKind) SupportsSourcePhaseImports() bool { + return moduleKind == ModuleKindESNext || moduleKind == ModuleKindNodeNext || moduleKind == ModuleKindPreserve +} + type ResolutionMode = ModuleKind // ModuleKindNone | ModuleKindCommonJS | ModuleKindESNext const ( diff --git a/tsc/internal/diagnostics/diagnosticMessages.generated.json b/tsc/internal/diagnostics/diagnosticMessages.generated.json index 9ca4c7bdf1d77..b606a968624a1 100644 --- a/tsc/internal/diagnostics/diagnosticMessages.generated.json +++ b/tsc/internal/diagnostics/diagnosticMessages.generated.json @@ -2213,5 +2213,11 @@ "Organize_Imports_95206": "Organize Imports", "Remove_Unused_Imports_95207": "Remove Unused Imports", "Sort_Imports_95208": "Sort Imports", - "JSDoc_comment_95209": "JSDoc comment" + "JSDoc_comment_95209": "JSDoc comment", + "A_source_phase_import_must_specify_a_local_binding_100069": "A source phase import must specify a local binding.", + "Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import_100070": "Named and namespace imports are not allowed in a source phase import.", + "Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_100071": "Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'.", + "Optional_chaining_cannot_be_used_with_import_source_100072": "Optional chaining cannot be used with 'import.source'.", + "_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source_100073": "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?", + "Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_100074": "Source phase imports are not allowed on statements that compile to CommonJS 'require' calls." } diff --git a/tsc/internal/diagnostics/diagnosticMessages.json b/tsc/internal/diagnostics/diagnosticMessages.json index edc52a66cb04a..33f70279a3bbc 100644 --- a/tsc/internal/diagnostics/diagnosticMessages.json +++ b/tsc/internal/diagnostics/diagnosticMessages.json @@ -8895,5 +8895,29 @@ "Diagnostic directive {0} returned by the content mapper has an invalid 'unusedExpectDirectiveIndex'.": { "category": "Message", "code": 18110 + }, + "A source phase import must specify a local binding.": { + "category": "Error", + "code": 100069 + }, + "Named and namespace imports are not allowed in a source phase import.": { + "category": "Error", + "code": 100070 + }, + "Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'.": { + "category": "Error", + "code": 100071 + }, + "Optional chaining cannot be used with 'import.source'.": { + "category": "Error", + "code": 100072 + }, + "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?": { + "category": "Error", + "code": 100073 + }, + "Source phase imports are not allowed on statements that compile to CommonJS 'require' calls.": { + "category": "Error", + "code": 100074 } } diff --git a/tsc/internal/diagnostics/diagnostics_generated.go b/tsc/internal/diagnostics/diagnostics_generated.go index cd93d383cdbc0..01e4e4bf88893 100644 --- a/tsc/internal/diagnostics/diagnostics_generated.go +++ b/tsc/internal/diagnostics/diagnostics_generated.go @@ -4432,6 +4432,18 @@ var Sort_Imports = &Message{code: 95208, category: CategoryMessage, key: "Sort_I var JSDoc_comment = &Message{code: 95209, category: CategoryMessage, key: "JSDoc_comment_95209", text: "JSDoc comment"} +var A_source_phase_import_must_specify_a_local_binding = &Message{code: 100069, category: CategoryError, key: "A_source_phase_import_must_specify_a_local_binding_100069", text: "A source phase import must specify a local binding."} + +var Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import = &Message{code: 100070, category: CategoryError, key: "Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import_100070", text: "Named and namespace imports are not allowed in a source phase import."} + +var Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve = &Message{code: 100071, category: CategoryError, key: "Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_100071", text: "Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."} + +var Optional_chaining_cannot_be_used_with_import_source = &Message{code: 100072, category: CategoryError, key: "Optional_chaining_cannot_be_used_with_import_source_100072", text: "Optional chaining cannot be used with 'import.source'."} + +var X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source = &Message{code: 100073, category: CategoryError, key: "_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source_100073", text: "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?"} + +var Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls = &Message{code: 100074, category: CategoryError, key: "Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_100074", text: "Source phase imports are not allowed on statements that compile to CommonJS 'require' calls."} + var allMessages = [...]**Message{ &Unterminated_string_literal, &Identifier_expected, @@ -6648,4 +6660,10 @@ var allMessages = [...]**Message{ &Remove_Unused_Imports, &Sort_Imports, &JSDoc_comment, + &A_source_phase_import_must_specify_a_local_binding, + &Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import, + &Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve, + &Optional_chaining_cannot_be_used_with_import_source, + &X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source, + &Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls, } diff --git a/tsc/internal/fourslash/tests/autoImport_sourcePhase_test.go b/tsc/internal/fourslash/tests/autoImport_sourcePhase_test.go new file mode 100644 index 0000000000000..d2517f3ee5459 --- /dev/null +++ b/tsc/internal/fourslash/tests/autoImport_sourcePhase_test.go @@ -0,0 +1,32 @@ +package fourslash_test + +import ( + "testing" + + "github.com/microsoft/TypeScript/tsc/internal/fourslash" + "github.com/microsoft/TypeScript/tsc/internal/testutil" +) + +func TestAutoImportDoesNotAddToSourcePhaseImport(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `// @module: esnext +// @Filename: /a.ts +const a = 0; +export default a; +export const b = 1; + +// @Filename: /b.ts +import source a from "./a"; +a; +b/**/` + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) + defer done() + f.GoToMarker(t, "") + f.VerifyImportFixAtPosition(t, []string{ + `import source a from "./a"; +import { b } from "./a"; +a; +b`, + }, nil /*preferences*/) +} diff --git a/tsc/internal/fourslash/tests/goToDefinition_sourcePhase_test.go b/tsc/internal/fourslash/tests/goToDefinition_sourcePhase_test.go new file mode 100644 index 0000000000000..195eb3e52a683 --- /dev/null +++ b/tsc/internal/fourslash/tests/goToDefinition_sourcePhase_test.go @@ -0,0 +1,43 @@ +package fourslash_test + +import ( + "testing" + + "github.com/microsoft/TypeScript/tsc/internal/fourslash" + "github.com/microsoft/TypeScript/tsc/internal/testutil" +) + +func TestGoToDefinition_sourcePhase(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `// @module: esnext +// @target: esnext + +// @filename: /b.ts +import source b from "./a.wasm"; +[|/*bUse*/b|]; +export { b }; + +// @filename: /c.ts +import source c from "./a.wasm"; +[|/*cUse*/c|]; + +// @filename: /d.ts +import { /*dImport*/b as d } from "./b"; +/*dUse*/d; + +// @filename: /e.ts +export { b as /*eExport*/e } from "./b"; + +// @filename: /f.ts +import { e as f } from "./e"; +/*fUse*/f; +import * as ns from "./e"; +ns./*property*/e;` + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) + defer done() + f.VerifyNoErrors(t) + f.VerifyBaselineGoToDefinition(t, true, "bUse", "cUse", "dImport", "dUse", "eExport", "fUse", "property") + f.VerifyBaselineGoToSourceDefinition(t, "bUse", "cUse", "dImport", "dUse", "eExport", "fUse", "property") + f.VerifyBaselineFindAllReferences(t, "bUse", "cUse") +} diff --git a/tsc/internal/fourslash/tests/goToSourceDefinitionImportSource_test.go b/tsc/internal/fourslash/tests/goToSourceDefinitionImportSource_test.go new file mode 100644 index 0000000000000..7ac5080fcfb6e --- /dev/null +++ b/tsc/internal/fourslash/tests/goToSourceDefinitionImportSource_test.go @@ -0,0 +1,37 @@ +package fourslash_test + +import ( + "testing" + + "github.com/microsoft/TypeScript/tsc/internal/fourslash" + "github.com/microsoft/TypeScript/tsc/internal/testutil" +) + +func TestGoToSourceDefinitionImportSource(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `// @module: esnext +// @target: esnext +// @allowJs: true + +// @filename: /a.js +const x = 1; +export default function f() {} +const g = 2; + +// @filename: /a.wasm +wasm + +// @filename: /b.ts +import /*f*/f from "./a.js"; +/*fUse*/f(); +import source /*g*/g from "/*js*/./a.js"; +/*gUse*/g; +import source /*h*/h from "/*wasm*/./a.wasm"; +/*hUse*/h; +import.source("/*dynamic*/./a.js");` + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) + defer done() + f.VerifyBaselineGoToDefinition(t, true, "f", "fUse", "g", "gUse", "h", "hUse", "js", "wasm", "dynamic") + f.VerifyBaselineGoToSourceDefinition(t, "f", "fUse", "g", "gUse", "h", "hUse", "js", "wasm", "dynamic") +} diff --git a/tsc/internal/fourslash/tests/organizeImports_sourcePhase_test.go b/tsc/internal/fourslash/tests/organizeImports_sourcePhase_test.go new file mode 100644 index 0000000000000..15947ff91d9b5 --- /dev/null +++ b/tsc/internal/fourslash/tests/organizeImports_sourcePhase_test.go @@ -0,0 +1,117 @@ +package fourslash_test + +import ( + "testing" + + "github.com/microsoft/TypeScript/tsc/internal/fourslash" + "github.com/microsoft/TypeScript/tsc/internal/ls/lsutil" + "github.com/microsoft/TypeScript/tsc/internal/lsp/lsproto" + "github.com/microsoft/TypeScript/tsc/internal/testutil" +) + +func TestOrganizeImports_sourcePhaseImportsAreNotCoalesced(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `import source b from "lib"; +import source a from "lib"; +a; b;` + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) + defer done() + f.VerifyOrganizeImports( + t, + `import source a from "lib"; +import source b from "lib"; +a; b;`, + lsproto.CodeActionKindSourceSortImportsTs, + &lsutil.UserPreferences{OrganizeImportsSort: lsutil.OrganizeImportsSortOrdinalIgnoreCase}, + ) +} + +func TestOrganizeImports_sourceAndEvaluationPhaseImportsAreNotCoalesced(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `import { c } from "lib"; +import source b from "lib"; +import { a } from "lib"; +a; b; c;` + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) + defer done() + f.VerifyOrganizeImports( + t, + `import source b from "lib"; +import { a, c } from "lib"; +a; b; c;`, + lsproto.CodeActionKindSourceSortImportsTs, + &lsutil.UserPreferences{OrganizeImportsSort: lsutil.OrganizeImportsSortOrdinalIgnoreCase}, + ) +} + +func TestOrganizeImports_sourcePhaseImportSorting(t *testing.T) { + t.Parallel() + const imports = `import source a from "lib"; +import source b from "lib"; +import source c from "lib"; +import source d from "lib"; +import source e from "lib"; +import source f from "lib"; +import source g from "lib"; +import source h from "lib"; +import source i from "lib"; +import source j from "lib"; +import source k from "lib"; +import source l from "lib"; +import source m from "lib"; +` + for _, test := range []struct { + name string + content string + expected string + }{ + { + name: "case insensitive bindings", + content: `import { b, D } from "B"; +import "a"; +import source C from "lib"; +import source a from "lib";`, + expected: `import { b, D } from "B"; +import "a"; +import source a from "lib"; +import source C from "lib";`, + }, + { + name: "case sensitive bindings", + content: `import { D, b } from "a"; +import "B"; +import source a from "lib"; +import source C from "lib";`, + expected: `import { D, b } from "a"; +import "B"; +import source C from "lib"; +import source a from "lib";`, + }, + { + name: "no named imports", + content: `import source a from "lib"; +import source B from "lib";`, + expected: `import source B from "lib"; +import source a from "lib";`, + }, + { + name: "mixed import kinds", + content: `import { n } from "lib"; +` + imports + `import * as o from "lib"; +import type { T } from "lib";`, + expected: `import type { T } from "lib"; +import * as o from "lib"; +` + imports + `import { n } from "lib";`, + }, + } { + t.Run(test.name, func(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, test.content) + defer done() + f.VerifyOrganizeImports(t, test.expected+"\n", lsproto.CodeActionKindSourceSortImportsTs, &lsutil.UserPreferences{OrganizeImportsSort: lsutil.OrganizeImportsSortAuto}) + }) + } +} diff --git a/tsc/internal/fourslash/tests/referencesImportSource2_test.go b/tsc/internal/fourslash/tests/referencesImportSource2_test.go new file mode 100644 index 0000000000000..95f442b1d78fb --- /dev/null +++ b/tsc/internal/fourslash/tests/referencesImportSource2_test.go @@ -0,0 +1,33 @@ +package fourslash_test + +import ( + "testing" + + "github.com/microsoft/TypeScript/tsc/internal/fourslash" + "github.com/microsoft/TypeScript/tsc/internal/testutil" +) + +func TestReferencesImportSource2(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `// @module: esnext +// @target: esnext +// @allowJs: true + +// @filename: /a.js +export default function /*a*/f() {} + +// @filename: /b.ts +import /*b*/f from "./a.js"; +f(); + +// @filename: /c.ts +import source /*c*/f from "/*module*/./a.js"; +f; +import.source("./a.js");` + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) + defer done() + f.VerifyNoErrors(t) + f.VerifyBaselineFindAllReferences(t, "a", "b", "c", "module") + f.VerifyBaselineRename(t, nil /*preferences*/, "a", "b", "c") +} diff --git a/tsc/internal/fourslash/tests/referencesImportSource_test.go b/tsc/internal/fourslash/tests/referencesImportSource_test.go new file mode 100644 index 0000000000000..801040d55fcd7 --- /dev/null +++ b/tsc/internal/fourslash/tests/referencesImportSource_test.go @@ -0,0 +1,43 @@ +package fourslash_test + +import ( + "testing" + + "github.com/microsoft/TypeScript/tsc/internal/fourslash" + "github.com/microsoft/TypeScript/tsc/internal/testutil" +) + +func TestReferencesImportSource(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `// @module: esnext +// @target: esnext + +// @filename: /a.d.ts +declare module "m" { + export default function /*a*/f(): void; +} + +// @filename: /b.ts +import /*b*/f from "m"; +/*bUse*/f(); + +// @filename: /c.ts +import source /*c*/f from "m"; +/*cUse*/f; +export { f }; + +// @filename: /d.ts +import { /*d*/f } from "./c"; +/*dUse*/f; + +// @filename: /e.ts +import source /*e*/g from "m"; +/*eUse*/g; +import.source("m");` + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) + defer done() + f.VerifyNoErrors(t) + f.VerifyBaselineFindAllReferences(t, "a", "b", "c", "cUse", "d", "e") + f.VerifyBaselineRename(t, nil /*preferences*/, "a", "b", "c", "cUse", "d", "e") +} diff --git a/tsc/internal/ls/autoimport/fix.go b/tsc/internal/ls/autoimport/fix.go index 46423f35f8e3e..d0a4dcb4ed9a8 100644 --- a/tsc/internal/ls/autoimport/fix.go +++ b/tsc/internal/ls/autoimport/fix.go @@ -748,6 +748,9 @@ func (v *View) tryAddToExistingImport( continue } importClause := importClauseNode.AsImportClause() + if importClause.PhaseModifier == ast.KindSourceKeyword { + continue + } namedBindings := importClause.NamedBindings // A type-only import may not have both a default and named imports, so the only way a name can diff --git a/tsc/internal/ls/organizeimports.go b/tsc/internal/ls/organizeimports.go index cea586875facd..0a4b4e2125abe 100644 --- a/tsc/internal/ls/organizeimports.go +++ b/tsc/internal/ls/organizeimports.go @@ -171,7 +171,7 @@ func organizeImportsWorker( for _, importGroup := range grouped { coalesced := coalesceImportsWorker(importGroup, comparer.moduleSpecifierComparer, specifierComparer, sourceFile, changeTracker) if shouldSort { - slices.SortFunc(coalesced, func(a, b *ast.Statement) int { + slices.SortStableFunc(coalesced, func(a, b *ast.Statement) int { return lsutil.CompareImportsOrRequireStatements(a, b, comparer.moduleSpecifierComparer) }) } @@ -473,6 +473,21 @@ func coalesceImportsWorker( if categorized.importWithoutClause != nil { coalescedImports = append(coalescedImports, categorized.importWithoutClause) } + slices.SortStableFunc(categorized.sourcePhaseImports, func(a, b *ast.Statement) int { + a = a.AsImportDeclaration().ImportClause + b = b.AsImportDeclaration().ImportClause + if a.Name() == nil && b.Name() == nil { + return 0 + } + if a.Name() == nil { + return 1 + } + if b.Name() == nil { + return -1 + } + return specifierComparer(a, b) + }) + coalescedImports = append(coalescedImports, categorized.sourcePhaseImports...) factory := ast.NewNodeFactory(ast.NodeFactoryHooks{}) @@ -634,6 +649,7 @@ func coalesceImportsWorker( type categorizedImports struct { importWithoutClause *ast.Statement + sourcePhaseImports []*ast.Statement typeOnlyImports importGroup regularImports importGroup } @@ -650,6 +666,7 @@ func (g importGroup) isEmpty() bool { func getCategorizedImports(importDecls []*ast.Statement) categorizedImports { var importWithoutClause *ast.Statement + var sourcePhaseImports []*ast.Statement var typeOnlyImports, regularImports importGroup for _, importDecl := range importDecls { @@ -661,6 +678,10 @@ func getCategorizedImports(importDecls []*ast.Statement) categorizedImports { } clause := importDecl.AsImportDeclaration().ImportClause.AsImportClause() + if clause.PhaseModifier == ast.KindSourceKeyword { + sourcePhaseImports = append(sourcePhaseImports, importDecl) + continue + } group := ®ularImports if clause.IsTypeOnly() { group = &typeOnlyImports @@ -685,6 +706,7 @@ func getCategorizedImports(importDecls []*ast.Statement) categorizedImports { return categorizedImports{ importWithoutClause: importWithoutClause, + sourcePhaseImports: sourcePhaseImports, typeOnlyImports: typeOnlyImports, regularImports: regularImports, } diff --git a/tsc/internal/ls/sourcedefinition.go b/tsc/internal/ls/sourcedefinition.go index 0a8024aa644f2..ee3547a34016d 100644 --- a/tsc/internal/ls/sourcedefinition.go +++ b/tsc/internal/ls/sourcedefinition.go @@ -67,9 +67,13 @@ func (l *LanguageService) provideSourceDefinitionAtPosition( originSelectionRange, _ := l.createLspRangeFromNode(node, file) + containingModuleSpecifier := findContainingModuleSpecifier(node) + if containingModuleSpecifier != nil && ast.IsSourcePhaseImport(containingModuleSpecifier.Parent) { + return l.provideDefinitionAtPosition(ctx, program, file, textPos, clientSupportsLink), nil + } + // If the cursor is directly on a module specifier string, resolve to the // implementation file's entry point. - containingModuleSpecifier := findContainingModuleSpecifier(node) if node == containingModuleSpecifier { specifierMode := program.GetModeForUsageLocation(file, containingModuleSpecifier) if implementationFile := resolver.resolveImplementation(containingModuleSpecifier.Text(), specifierMode); implementationFile != "" { diff --git a/tsc/internal/parser/parser.go b/tsc/internal/parser/parser.go index 1d149790b7565..c661576e31244 100644 --- a/tsc/internal/parser/parser.go +++ b/tsc/internal/parser/parser.go @@ -2285,6 +2285,7 @@ func (p *Parser) parseImportDeclarationOrImportEqualsDeclaration(pos int, jsdoc afterImportPos := p.nodePos() // We don't parse the identifier here in await context, instead we will report a grammar error in the checker. saveHasAwaitIdentifier := p.statementHasAwaitIdentifier + phaseModifierCandidate := p.currentImportPhaseModifier() var identifier *ast.Node if p.isIdentifier() { identifier = p.parseIdentifier() @@ -2298,22 +2299,14 @@ func (p *Parser) parseImportDeclarationOrImportEqualsDeclaration(pos int, jsdoc if p.isIdentifier() { identifier = p.parseIdentifier() } - } else if identifier != nil && identifier.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() - } + } else if identifier != nil && phaseModifierCandidate != ast.KindUnknown && p.shouldParseImportPhaseModifier() { + phaseModifier = phaseModifierCandidate + identifier = nil + if p.isIdentifier() { + identifier = p.parseIdentifier() } } - if identifier != nil && !p.tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() && phaseModifier != ast.KindDeferKeyword { + if identifier != nil && p.tokenAfterImportedIdentifierAllowsImportEqualsDeclaration() && phaseModifier != ast.KindDeferKeyword && phaseModifier != ast.KindSourceKeyword { importEquals := p.checkJSSyntax(p.parseImportEqualsDeclaration(pos, jsdoc, modifiers, identifier, phaseModifier == ast.KindTypeKeyword)) p.statementHasAwaitIdentifier = saveHasAwaitIdentifier // Import= declaration is always parsed in an Await context, no need to reparse return importEquals @@ -2334,14 +2327,40 @@ func (p *Parser) nextTokenIsFromKeywordOrEqualsToken() bool { return p.token == ast.KindFromKeyword || p.token == ast.KindEqualsToken } +func (p *Parser) shouldParseImportPhaseModifier() bool { + switch p.token { + case ast.KindCommaToken, ast.KindEqualsToken: + return false + case ast.KindFromKeyword: + if p.lookAhead((*Parser).nextTokenIsTokenStringLiteral) { + return false + } + } + return true +} + +func (p *Parser) currentImportPhaseModifier() ast.Kind { + switch p.scanner.TokenText() { + case "defer": + return ast.KindDeferKeyword + case "source": + return ast.KindSourceKeyword + default: + return ast.KindUnknown + } +} + func (p *Parser) tokenAfterImportDefinitelyProducesImportDeclaration() bool { return p.token == ast.KindAsteriskToken || p.token == ast.KindOpenBraceToken } -func (p *Parser) tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() bool { - // In `import id ___`, the current token decides whether to produce - // an ImportDeclaration or ImportEqualsDeclaration. - return p.token == ast.KindCommaToken || p.token == ast.KindFromKeyword +func (p *Parser) tokenAfterImportedIdentifierAllowsImportEqualsDeclaration() bool { + switch p.token { + case ast.KindCommaToken, ast.KindFromKeyword: + return false + default: + return true + } } func (p *Parser) parseImportEqualsDeclaration(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList, identifier *ast.Node, isTypeOnly bool) *ast.Node { @@ -2391,6 +2410,9 @@ func (p *Parser) tryParseImportClause(identifier *ast.Node, pos int, phaseModifi p.parseExpected(ast.KindFromKeyword) return importClause } + if phaseModifier == ast.KindSourceKeyword { + return p.finishNode(p.factory.NewImportClause(phaseModifier, nil /*name*/, nil /*namedBindings*/), pos) + } return nil } @@ -5245,8 +5267,8 @@ func (p *Parser) parseLeftHandSideExpressionOrHigher() *ast.Expression { // This is an 'import.*' metaproperty (i.e. 'import.meta') p.nextToken() // advance past the 'import' p.nextToken() // advance past the dot - expression = p.finishNode(p.factory.NewMetaProperty(ast.KindImportKeyword, p.parseIdentifierName()), pos) - if expression.Text() == "defer" { + expression = p.finishNode(p.factory.NewMetaProperty(ast.KindImportKeyword, p.parseImportMetaPropertyName()), pos) + if ast.IsImportPhaseMetaProperty(expression) { if p.token == ast.KindOpenParenToken || p.token == ast.KindLessThanToken { p.sourceFlags |= ast.NodeFlagsPossiblyContainsDynamicImport } @@ -5271,6 +5293,16 @@ func (p *Parser) nextTokenIsDot() bool { return p.nextToken() == ast.KindDotToken } +func (p *Parser) parseImportMetaPropertyName() *ast.Node { + switch p.token { + case ast.KindDeferKeyword, ast.KindSourceKeyword: + if p.currentImportPhaseModifier() == ast.KindUnknown { + p.parseErrorAtCurrentToken(diagnostics.Keywords_cannot_contain_escape_characters) + } + } + return p.parseIdentifierName() +} + func (p *Parser) parseSuperExpression() *ast.Expression { pos := p.nodePos() expression := p.parseKeywordExpression() @@ -6108,7 +6140,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.KindDeferKeyword: + ast.KindTypeKeyword, ast.KindGlobalKeyword, ast.KindDeferKeyword, ast.KindSourceKeyword: // 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, @@ -6157,7 +6189,7 @@ func (p *Parser) scanStartOfDeclaration() bool { // I {} // // could be legal, it would add complexity for very little gain. - case ast.KindInterfaceKeyword, ast.KindTypeKeyword, ast.KindDeferKeyword: + case ast.KindInterfaceKeyword, ast.KindTypeKeyword, ast.KindDeferKeyword, ast.KindSourceKeyword: return p.nextTokenIsIdentifierOnSameLine() case ast.KindModuleKeyword, ast.KindNamespaceKeyword: return p.nextTokenIsIdentifierOrStringLiteralOnSameLine() @@ -6180,7 +6212,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.KindDeferKeyword || p.token == ast.KindStringLiteral || p.token == ast.KindAsteriskToken || p.token == ast.KindOpenBraceToken || tokenIsIdentifierOrKeyword(p.token) + return p.token == ast.KindDeferKeyword || p.token == ast.KindSourceKeyword || 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/tsc/internal/parser/parser_test.go b/tsc/internal/parser/parser_test.go index 200064160228b..bd5a57e535b50 100644 --- a/tsc/internal/parser/parser_test.go +++ b/tsc/internal/parser/parser_test.go @@ -11,11 +11,13 @@ import ( "github.com/microsoft/TypeScript/tsc/internal/ast" "github.com/microsoft/TypeScript/tsc/internal/collections" "github.com/microsoft/TypeScript/tsc/internal/core" + "github.com/microsoft/TypeScript/tsc/internal/diagnostics" "github.com/microsoft/TypeScript/tsc/internal/parser" "github.com/microsoft/TypeScript/tsc/internal/repo" "github.com/microsoft/TypeScript/tsc/internal/scanner" "github.com/microsoft/TypeScript/tsc/internal/testrunner" "github.com/microsoft/TypeScript/tsc/internal/testutil/fixtures" + "github.com/microsoft/TypeScript/tsc/internal/testutil/parsetestutil" "github.com/microsoft/TypeScript/tsc/internal/tspath" "github.com/microsoft/TypeScript/tsc/internal/vfs/osvfs" "gotest.tools/v3/assert" @@ -186,6 +188,183 @@ class MissingImplements implements B. {} assert.Equal(t, missingImplementsDecl.HeritageClauses.Nodes[0].AsHeritageClause().Types.Nodes[0].Kind, ast.KindExpressionWithTypeArguments) } +func TestParseStaticSourcePhaseImport(t *testing.T) { + t.Parallel() + tests := []struct { + name string + source string + phaseModifier ast.Kind + bindingName string + hasAttributes bool + }{ + { + name: "source phase", + source: `import source a from "./a.wasm";`, + phaseModifier: ast.KindSourceKeyword, + bindingName: "a", + }, + { + name: "source phase with import attributes", + source: `import source a from "./a.wasm" with { type: "webassembly" };`, + phaseModifier: ast.KindSourceKeyword, + bindingName: "a", + hasAttributes: true, + }, + { + name: "from as source phase binding", + source: `import source from from "./module.js";`, + phaseModifier: ast.KindSourceKeyword, + bindingName: "from", + }, + { + name: "source as ordinary default binding", + source: `import source from "./module.js";`, + phaseModifier: ast.KindUnknown, + bindingName: "source", + }, + { + name: "source as ordinary default binding with named imports", + source: `import source, { value } from "./module.js";`, + phaseModifier: ast.KindUnknown, + bindingName: "source", + }, + { + name: "escaped source as ordinary default binding", + source: `import s\u006furce from "./module.js";`, + phaseModifier: ast.KindUnknown, + bindingName: "source", + }, + { + name: "escaped defer as ordinary default binding", + source: `import d\u0065fer from "./module.js";`, + phaseModifier: ast.KindUnknown, + bindingName: "defer", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + t.Parallel() + file := parsetestutil.ParseTypeScript(test.source, false) + parsetestutil.CheckDiagnostics(t, file) + assert.Equal(t, len(file.Statements.Nodes), 1) + + statement := file.Statements.Nodes[0] + assert.Assert(t, ast.IsImportDeclaration(statement)) + + declaration := statement.AsImportDeclaration() + assert.Assert(t, declaration.ImportClause != nil) + + clause := declaration.ImportClause.AsImportClause() + assert.Equal(t, clause.PhaseModifier, test.phaseModifier) + assert.Assert(t, clause.Name() != nil) + assert.Equal(t, clause.Name().Text(), test.bindingName) + assert.Equal(t, declaration.Attributes != nil, test.hasAttributes) + }) + } +} + +func TestParseSourceAsImportEqualsBinding(t *testing.T) { + t.Parallel() + file := parsetestutil.ParseTypeScript(`import source = require("./module.js");`, false) + parsetestutil.CheckDiagnostics(t, file) + assert.Equal(t, len(file.Statements.Nodes), 1) + + statement := file.Statements.Nodes[0] + assert.Assert(t, ast.IsImportEqualsDeclaration(statement)) + + assert.Equal(t, statement.Name().Text(), "source") +} + +func TestParseInvalidStaticSourcePhaseImports(t *testing.T) { + t.Parallel() + tests := []struct { + source string + hasName bool + hasNamedBindings bool + }{ + {source: `import source "./a.js";`}, + {source: `import source * as a from "./a.js";`, hasNamedBindings: true}, + {source: `import source { a } from "./a.js";`, hasNamedBindings: true}, + {source: `import source a, { b } from "./a.js";`, hasName: true, hasNamedBindings: true}, + } + + for _, test := range tests { + file := parsetestutil.ParseTypeScript(test.source, false) + parsetestutil.CheckDiagnostics(t, file) + assert.Equal(t, len(file.Statements.Nodes), 1) + + statement := file.Statements.Nodes[0] + assert.Assert(t, ast.IsImportDeclaration(statement)) + + declaration := statement.AsImportDeclaration() + assert.Assert(t, declaration.ImportClause != nil) + + clause := declaration.ImportClause.AsImportClause() + assert.Equal(t, clause.PhaseModifier, ast.KindSourceKeyword) + assert.Equal(t, clause.Name() != nil, test.hasName) + assert.Equal(t, clause.NamedBindings != nil, test.hasNamedBindings) + } +} + +func TestParseDynamicSourcePhaseImport(t *testing.T) { + t.Parallel() + file := parsetestutil.ParseTypeScript(`import.source("./a.wasm", { with: { type: "webassembly" } });`, false) + parsetestutil.CheckDiagnostics(t, file) + assert.Equal(t, len(file.Statements.Nodes), 1) + + statement := file.Statements.Nodes[0] + assert.Assert(t, ast.IsExpressionStatement(statement)) + + call := statement.AsExpressionStatement().Expression + assert.Assert(t, ast.IsCallExpression(call)) + assert.Assert(t, ast.IsImportCall(call)) + assert.Assert(t, call.SubtreeFacts()&ast.SubtreeContainsDynamicImport != 0) + + metaProperty := call.Expression() + assert.Assert(t, ast.IsMetaProperty(metaProperty)) + assert.Equal(t, metaProperty.AsMetaProperty().KeywordToken, ast.KindImportKeyword) + assert.Equal(t, metaProperty.Text(), "source") + assert.Equal(t, len(call.Arguments()), 2) + assert.Equal(t, file.Flags&ast.NodeFlagsPossiblyContainsDynamicImport != 0, true) + assert.Equal(t, file.Flags&ast.NodeFlagsPossiblyContainsImportMeta != 0, false) + assert.Equal(t, file.ExternalModuleIndicator == nil, true) +} + +func TestParseEscapedDynamicImportPhase(t *testing.T) { + t.Parallel() + tests := []struct { + source string + phaseName string + }{ + {source: `import.d\u0065fer("./a.js");`, phaseName: "defer"}, + {source: `import.s\u006furce("./a.wasm");`, phaseName: "source"}, + } + + for _, test := range tests { + t.Run(test.phaseName, func(t *testing.T) { + t.Parallel() + file := parsetestutil.ParseTypeScript(test.source, false) + assert.Equal(t, len(file.Diagnostics()), 1) + assert.Equal(t, file.Diagnostics()[0].Code(), diagnostics.Keywords_cannot_contain_escape_characters.Code()) + assert.Equal(t, len(file.Statements.Nodes), 1) + + statement := file.Statements.Nodes[0] + assert.Assert(t, ast.IsExpressionStatement(statement)) + + call := statement.AsExpressionStatement().Expression + assert.Assert(t, ast.IsCallExpression(call)) + assert.Assert(t, ast.IsImportCall(call)) + + metaProperty := call.Expression() + assert.Assert(t, ast.IsMetaProperty(metaProperty)) + assert.Equal(t, metaProperty.Text(), test.phaseName) + assert.Equal(t, file.Flags&ast.NodeFlagsPossiblyContainsDynamicImport != 0, true) + assert.Equal(t, file.Flags&ast.NodeFlagsPossiblyContainsImportMeta != 0, false) + }) + } +} + func TestJSDocImportTypeParentChain(t *testing.T) { t.Parallel() sourceText := `test("", async function () { diff --git a/tsc/internal/printer/printer.go b/tsc/internal/printer/printer.go index 51673e4afd02e..71d2acbf30081 100644 --- a/tsc/internal/printer/printer.go +++ b/tsc/internal/printer/printer.go @@ -3014,8 +3014,8 @@ func (p *Printer) emitNonNullExpression(node *ast.NonNullExpression) { func (p *Printer) emitMetaProperty(node *ast.MetaProperty) { state := p.enterNode(node.AsNode()) - p.emitToken(node.KeywordToken, node.Pos(), WriteKindPunctuation, node.AsNode()) - p.writePunctuation(".") + pos := p.emitToken(node.KeywordToken, node.Pos(), WriteKindPunctuation, node.AsNode()) + p.emitToken(ast.KindDotToken, pos, WriteKindPunctuation, node.AsNode()) p.emitIdentifierName(node.Name().AsIdentifier()) p.exitNode(node.AsNode(), state) } diff --git a/tsc/internal/scanner/scanner.go b/tsc/internal/scanner/scanner.go index 55c81643836bc..785fe50a4e7df 100644 --- a/tsc/internal/scanner/scanner.go +++ b/tsc/internal/scanner/scanner.go @@ -104,6 +104,7 @@ var textToKeyword = map[string]ast.Kind{ "return": ast.KindReturnKeyword, "satisfies": ast.KindSatisfiesKeyword, "set": ast.KindSetKeyword, + "source": ast.KindSourceKeyword, "static": ast.KindStaticKeyword, "string": ast.KindStringKeyword, "super": ast.KindSuperKeyword, diff --git a/tsc/internal/scanner/scanner_test.go b/tsc/internal/scanner/scanner_test.go index 5c50a17fe0f59..8f970f2af8467 100644 --- a/tsc/internal/scanner/scanner_test.go +++ b/tsc/internal/scanner/scanner_test.go @@ -91,3 +91,15 @@ func TestGetTextOfNodeFromJSDocTypePreservesAsteriskType(t *testing.T) { assert.Equal(t, GetTextOfNodeFromSourceText(sourceText, node, false /*includeTrivia*/), "*") } + +func TestScanSourceKeyword(t *testing.T) { + t.Parallel() + s := NewScanner() + s.SetText("source sourceValue") + + assert.Equal(t, s.Scan(), ast.KindSourceKeyword) + assert.Equal(t, TokenToString(ast.KindSourceKeyword), "source") + assert.Equal(t, StringToToken("source"), ast.KindSourceKeyword) + assert.Equal(t, s.Scan(), ast.KindIdentifier) + assert.Equal(t, s.TokenValue(), "sourceValue") +} diff --git a/tsc/internal/transformers/moduletransforms/commonjsmodule.go b/tsc/internal/transformers/moduletransforms/commonjsmodule.go index 9e7ca97dbe241..31eccec02990b 100644 --- a/tsc/internal/transformers/moduletransforms/commonjsmodule.go +++ b/tsc/internal/transformers/moduletransforms/commonjsmodule.go @@ -1807,7 +1807,7 @@ func (tx *CommonJSModuleTransformer) visitCallExpression(node *ast.CallExpressio needsRewrite = true } } - if ast.IsImportCall(node.AsNode()) && tx.shouldTransformImportCall() { + if node.Expression.Kind == ast.KindImportKeyword && tx.shouldTransformImportCall() { return tx.visitImportCallExpression(node, needsRewrite) } if needsRewrite { diff --git a/tsc/internal/tsoptions/enummaps.go b/tsc/internal/tsoptions/enummaps.go index c5a966aaf2efe..9aa0fae1e6767 100644 --- a/tsc/internal/tsoptions/enummaps.go +++ b/tsc/internal/tsoptions/enummaps.go @@ -125,6 +125,7 @@ var LibMap = collections.NewOrderedMapFromList([]collections.MapEntry[string, an {Key: "esnext.decorators", Value: "lib.esnext.decorators.d.ts"}, {Key: "esnext.disposable", Value: "lib.esnext.disposable.d.ts"}, {Key: "esnext.intl", Value: "lib.esnext.intl.d.ts"}, + {Key: "esnext.modulesource", Value: "lib.esnext.modulesource.d.ts"}, {Key: "esnext.sharedmemory", Value: "lib.esnext.sharedmemory.d.ts"}, {Key: "esnext.temporal", Value: "lib.esnext.temporal.d.ts"}, // Decorators diff --git a/tsc/testdata/baselines/reference/compiler/libReplacement(libreplacement=true).trace.json b/tsc/testdata/baselines/reference/compiler/libReplacement(libreplacement=true).trace.json index 6b7f31567419a..ef96048d6ce0b 100644 --- a/tsc/testdata/baselines/reference/compiler/libReplacement(libreplacement=true).trace.json +++ b/tsc/testdata/baselines/reference/compiler/libReplacement(libreplacement=true).trace.json @@ -1155,6 +1155,19 @@ Searching all ancestor node_modules directories for fallback extensions: JavaScr Directory '/.src/node_modules' does not exist, skipping all lookups in it. Directory '/node_modules' does not exist, skipping all lookups in it. ======== Module name '@typescript/lib-esnext/intl' was not resolved. ======== +======== Resolving module '@typescript/lib-esnext/modulesource' from '/.src/__lib_node_modules_lookup_lib.esnext.modulesource.d.ts__.ts'. ======== +Module resolution kind is not specified, using 'Bundler'. +Resolving in CJS mode with conditions 'require', 'types'. +File '/.src/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +Loading module '@typescript/lib-esnext/modulesource' from 'node_modules' folder, target file types: TypeScript, JavaScript, Declaration, JSON. +Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Directory '/.src/node_modules' does not exist, skipping all lookups in it. +Directory '/node_modules' does not exist, skipping all lookups in it. +Searching all ancestor node_modules directories for fallback extensions: JavaScript, JSON. +Directory '/.src/node_modules' does not exist, skipping all lookups in it. +Directory '/node_modules' does not exist, skipping all lookups in it. +======== Module name '@typescript/lib-esnext/modulesource' was not resolved. ======== ======== Resolving module '@typescript/lib-esnext/sharedmemory' from '/.src/__lib_node_modules_lookup_lib.esnext.sharedmemory.d.ts__.ts'. ======== Module resolution kind is not specified, using 'Bundler'. Resolving in CJS mode with conditions 'require', 'types'. diff --git a/tsc/testdata/baselines/reference/conformance/importMetaPropertyInvalidInCall.errors.txt b/tsc/testdata/baselines/reference/conformance/importMetaPropertyInvalidInCall.errors.txt index 6ab3da50174a8..6689fa7521928 100644 --- a/tsc/testdata/baselines/reference/conformance/importMetaPropertyInvalidInCall.errors.txt +++ b/tsc/testdata/baselines/reference/conformance/importMetaPropertyInvalidInCall.errors.txt @@ -1,11 +1,11 @@ -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 TS100073: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? 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 TS100073: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? import.foo; ~~~ !!! error TS17012: 'foo' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? diff --git a/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).js b/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).js new file mode 100644 index 0000000000000..dfd2d8774fb17 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).js @@ -0,0 +1,17 @@ +//// [tests/cases/conformance/importSource/importSource1.ts] //// + +//// [b.ts] +import source a from "./a.wasm"; +const b: AbstractModuleSource = a; + +//// [c.ts] +import source a from "./a.wasm" with { type: "webassembly" }; +const b: AbstractModuleSource = a; + + +//// [b.js] +import source a from "./a.wasm"; +const b = a; +//// [c.js] +import source a from "./a.wasm" with { type: "webassembly" }; +const b = a; diff --git a/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).symbols b/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).symbols new file mode 100644 index 0000000000000..83f1934b705b3 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).symbols @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/importSource/importSource1.ts] //// + +=== b.ts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(b.ts, 0, 6)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(b.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(b.ts, 0, 6)) + +=== c.ts === +import source a from "./a.wasm" with { type: "webassembly" }; +>a : Symbol(a, Decl(c.ts, 0, 6)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(c.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(c.ts, 0, 6)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).types b/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).types new file mode 100644 index 0000000000000..daf7d047c7a3f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource1(module=esnext).types @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/importSource/importSource1.ts] //// + +=== b.ts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + +=== c.ts === +import source a from "./a.wasm" with { type: "webassembly" }; +>a : AbstractModuleSource +>type : error + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + diff --git a/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).js b/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).js new file mode 100644 index 0000000000000..dfd2d8774fb17 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).js @@ -0,0 +1,17 @@ +//// [tests/cases/conformance/importSource/importSource1.ts] //// + +//// [b.ts] +import source a from "./a.wasm"; +const b: AbstractModuleSource = a; + +//// [c.ts] +import source a from "./a.wasm" with { type: "webassembly" }; +const b: AbstractModuleSource = a; + + +//// [b.js] +import source a from "./a.wasm"; +const b = a; +//// [c.js] +import source a from "./a.wasm" with { type: "webassembly" }; +const b = a; diff --git a/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).symbols b/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).symbols new file mode 100644 index 0000000000000..83f1934b705b3 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).symbols @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/importSource/importSource1.ts] //// + +=== b.ts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(b.ts, 0, 6)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(b.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(b.ts, 0, 6)) + +=== c.ts === +import source a from "./a.wasm" with { type: "webassembly" }; +>a : Symbol(a, Decl(c.ts, 0, 6)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(c.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(c.ts, 0, 6)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).types b/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).types new file mode 100644 index 0000000000000..daf7d047c7a3f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource1(module=preserve).types @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/importSource/importSource1.ts] //// + +=== b.ts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + +=== c.ts === +import source a from "./a.wasm" with { type: "webassembly" }; +>a : AbstractModuleSource +>type : error + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + diff --git a/tsc/testdata/baselines/reference/conformance/importSource10.js b/tsc/testdata/baselines/reference/conformance/importSource10.js new file mode 100644 index 0000000000000..3de3d598d13cb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource10.js @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/importSource/importSource10.ts] //// + +//// [a.ts] +export {}; + +//// [b.ts] +import source a from "./a.ts"; +export { a }; +export const b = import.source("./a.ts"); + + +//// [a.js] +//// [b.js] +import source a from "./a.js"; +export { a }; +export const b = import.source("./a.js"); diff --git a/tsc/testdata/baselines/reference/conformance/importSource10.symbols b/tsc/testdata/baselines/reference/conformance/importSource10.symbols new file mode 100644 index 0000000000000..10b5460160de6 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource10.symbols @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/importSource/importSource10.ts] //// + +=== a.ts === + +export {}; + +=== b.ts === +import source a from "./a.ts"; +>a : Symbol(a, Decl(b.ts, 0, 6)) + +export { a }; +>a : Symbol(a, Decl(b.ts, 1, 8)) + +export const b = import.source("./a.ts"); +>b : Symbol(b, Decl(b.ts, 2, 12)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource10.types b/tsc/testdata/baselines/reference/conformance/importSource10.types new file mode 100644 index 0000000000000..21648fd40951d --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource10.types @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/importSource/importSource10.ts] //// + +=== a.ts === + +export {}; + +=== b.ts === +import source a from "./a.ts"; +>a : AbstractModuleSource + +export { a }; +>a : AbstractModuleSource + +export const b = import.source("./a.ts"); +>b : Promise +>import.source("./a.ts") : Promise +>source : any +>"./a.ts" : "./a.ts" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource11.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource11.errors.txt new file mode 100644 index 0000000000000..2f1122c388847 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource11.errors.txt @@ -0,0 +1,107 @@ +b.js(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. +c.js(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. +d.js(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. +e.js(1,8): error TS100069: A source phase import must specify a local binding. +f.js(1,14): error TS1005: '(' expected. +f.js(2,15): error TS1005: '(' expected. +f.js(3,23): error TS1005: '(' expected. +f.js(4,14): error TS1005: '(' expected. +f.js(6,1): message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments +f.js(7,1): message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments +f.js(8,14): error TS100072: Optional chaining cannot be used with 'import.source'. +f.js(9,14): error TS1005: '(' expected. +f.js(10,15): error TS1325: Argument of dynamic import cannot be spread element. +g.js(1,5): error TS1109: Expression expected. +h.js(1,21): error TS1005: '(' expected. +i.js(1,8): error TS100073: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? +m.js(1,8): error TS1260: Keywords cannot contain escape characters. + + +==== a.js (0 errors) ==== + export default 1; + export const a = 2; + +==== b.js (1 errors) ==== + import source * as a from "./a.js"; + ~~~~~~~~~~~~~ +!!! error TS100070: Named and namespace imports are not allowed in a source phase import. + +==== c.js (1 errors) ==== + import source { a } from "./a.js"; + ~~~~~~~~~~~~ +!!! error TS100070: Named and namespace imports are not allowed in a source phase import. + +==== d.js (1 errors) ==== + import source a, { a as b } from "./a.js"; + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS100070: Named and namespace imports are not allowed in a source phase import. + +==== e.js (1 errors) ==== + import source "./a.js"; + ~~~~~~ +!!! error TS100069: A source phase import must specify a local binding. + +==== f.js (9 errors) ==== + import.source; + +!!! error TS1005: '(' expected. + (import.source)("./a.js"); + +!!! error TS1005: '(' expected. + Function(import.source); + +!!! error TS1005: '(' expected. + import.source.unknown; + +!!! error TS1005: '(' expected. + + import.source(); + ~~~~~~~~~~~~~~~ +!!! message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments + import.source("./a.js", {}, {}); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments + import.source?.("./a.js"); + ~~ +!!! error TS100072: Optional chaining cannot be used with 'import.source'. + import.source("./a.js"); + +!!! error TS1005: '(' expected. + import.source(...["./a.js"]); + ~~~~~~~~~~~~~ +!!! error TS1325: Argument of dynamic import cannot be spread element. + +==== g.js (1 errors) ==== + new import.source("./a.js"); + ~~~~~~ +!!! error TS1109: Expression expected. + +==== h.js (1 errors) ==== + typeof import.source; + +!!! error TS1005: '(' expected. + +==== i.js (1 errors) ==== + import.a("./a.js"); + ~ +!!! error TS100073: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? + +==== j.js (0 errors) ==== + import source a from "./a.js" with { type: "javascript" }; + const b = import.source("./a.js", { with: { type: "javascript" } }); + a; + b; + +==== k.js (0 errors) ==== + const a = import.source("./a.js", { with: { type: "javascript" } }); + a; + +==== l.js (0 errors) ==== + import s\u006furce from "./a.js"; + source; + +==== m.js (1 errors) ==== + import.s\u006furce("./a.js"); + ~~~~~~~~~~~ +!!! error TS1260: Keywords cannot contain escape characters. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource11.symbols b/tsc/testdata/baselines/reference/conformance/importSource11.symbols new file mode 100644 index 0000000000000..55118fe3781fe --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource11.symbols @@ -0,0 +1,85 @@ +//// [tests/cases/conformance/importSource/importSource11.ts] //// + +=== a.js === +export default 1; +export const a = 2; +>a : Symbol(a, Decl(a.js, 1, 12)) + +=== b.js === +import source * as a from "./a.js"; +>a : Symbol(a, Decl(b.js, 0, 13)) + +=== c.js === +import source { a } from "./a.js"; +>a : Symbol(a, Decl(c.js, 0, 15)) + +=== d.js === +import source a, { a as b } from "./a.js"; +>a : Symbol(a, Decl(d.js, 0, 6)) +>b : Symbol(b, Decl(d.js, 0, 18)) + +=== e.js === + +import source "./a.js"; + +=== f.js === +import.source; +(import.source)("./a.js"); +Function(import.source); +>Function : Symbol(Function, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.esnext.decorators.d.ts, --, --)) + +import.source.unknown; + +import.source(); +import.source("./a.js", {}, {}); +import.source?.("./a.js"); +import.source("./a.js"); +import.source(...["./a.js"]); + +=== g.js === + +new import.source("./a.js"); + +=== h.js === + +typeof import.source; + +=== i.js === + +import.a("./a.js"); + +=== j.js === +import source a from "./a.js" with { type: "javascript" }; +>a : Symbol(a, Decl(j.js, 0, 6)) + +const b = import.source("./a.js", { with: { type: "javascript" } }); +>b : Symbol(b, Decl(j.js, 1, 5)) +>with : Symbol(with, Decl(j.js, 1, 35)) +>type : Symbol(type, Decl(j.js, 1, 43)) + +a; +>a : Symbol(a, Decl(j.js, 0, 6)) + +b; +>b : Symbol(b, Decl(j.js, 1, 5)) + +=== k.js === +const a = import.source("./a.js", { with: { type: "javascript" } }); +>a : Symbol(a, Decl(k.js, 0, 5)) +>with : Symbol(with, Decl(k.js, 0, 35)) +>type : Symbol(type, Decl(k.js, 0, 43)) + +a; +>a : Symbol(a, Decl(k.js, 0, 5)) + +=== l.js === +import s\u006furce from "./a.js"; +>s\u006furce : Symbol(s\u006furce, Decl(l.js, 0, 6)) + +source; +>source : Symbol(s\u006furce, Decl(l.js, 0, 6)) + +=== m.js === + +import.s\u006furce("./a.js"); + diff --git a/tsc/testdata/baselines/reference/conformance/importSource11.types b/tsc/testdata/baselines/reference/conformance/importSource11.types new file mode 100644 index 0000000000000..8a806cfc79bad --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource11.types @@ -0,0 +1,153 @@ +//// [tests/cases/conformance/importSource/importSource11.ts] //// + +=== a.js === +export default 1; +export const a = 2; +>a : 2 +>2 : 2 + +=== b.js === +import source * as a from "./a.js"; +>a : any + +=== c.js === +import source { a } from "./a.js"; +>a : any + +=== d.js === +import source a, { a as b } from "./a.js"; +>a : AbstractModuleSource +>a : any +>b : any + +=== e.js === + +import source "./a.js"; + +=== f.js === +import.source; +>import.source : any +>source : any + +(import.source)("./a.js"); +>(import.source)("./a.js") : any +>(import.source) : any +>import.source : any +>source : any +>"./a.js" : "./a.js" + +Function(import.source); +>Function(import.source) : Function +>Function : FunctionConstructor +>import.source : any +>source : any + +import.source.unknown; +>import.source.unknown : any +>import.source : any +>source : any +>unknown : any + +import.source(); +>import.source() : Promise +>source : any + +import.source("./a.js", {}, {}); +>import.source("./a.js", {}, {}) : Promise +>source : any +>"./a.js" : "./a.js" +>{} : {} +>{} : {} + +import.source?.("./a.js"); +>import.source?.("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" + +import.source("./a.js"); +>import.source("./a.js") : boolean +>import.sourceimport.source : any +>source : any +>string : any +>("./a.js") : "./a.js" +>"./a.js" : "./a.js" + +import.source(...["./a.js"]); +>import.source(...["./a.js"]) : Promise +>source : any +>...["./a.js"] : string +>["./a.js"] : [string] +>"./a.js" : "./a.js" + +=== g.js === +new import.source("./a.js"); +>new : any +> : any +>import.source("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" + +=== h.js === +typeof import.source; +>typeof import.source : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" +>import.source : any +>source : any + +=== i.js === +import.a("./a.js"); +>import.a("./a.js") : any +>import.a : any +>a : any +>"./a.js" : "./a.js" + +=== j.js === +import source a from "./a.js" with { type: "javascript" }; +>a : AbstractModuleSource +>type : any + +const b = import.source("./a.js", { with: { type: "javascript" } }); +>b : Promise +>import.source("./a.js", { with: { type: "javascript" } }) : Promise +>source : any +>"./a.js" : "./a.js" +>{ with: { type: "javascript" } } : { with: { readonly type: "javascript"; }; } +>with : { readonly type: "javascript"; } +>{ type: "javascript" } : { readonly type: "javascript"; } +>type : "javascript" +>"javascript" : "javascript" + +a; +>a : AbstractModuleSource + +b; +>b : Promise + +=== k.js === +const a = import.source("./a.js", { with: { type: "javascript" } }); +>a : Promise +>import.source("./a.js", { with: { type: "javascript" } }) : Promise +>source : any +>"./a.js" : "./a.js" +>{ with: { type: "javascript" } } : { with: { readonly type: "javascript"; }; } +>with : { readonly type: "javascript"; } +>{ type: "javascript" } : { readonly type: "javascript"; } +>type : "javascript" +>"javascript" : "javascript" + +a; +>a : Promise + +=== l.js === +import s\u006furce from "./a.js"; +>s\u006furce : 1 + +source; +>source : 1 + +=== m.js === +import.s\u006furce("./a.js"); +>import.s\u006furce("./a.js") : Promise +>s\u006furce : any +>"./a.js" : "./a.js" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource12.symbols b/tsc/testdata/baselines/reference/conformance/importSource12.symbols new file mode 100644 index 0000000000000..54100823b12ec --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource12.symbols @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/importSource/importSource12.ts] //// + +=== b.js === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(b.js, 0, 6)) + +const b = import.source("./a.wasm"); +>b : Symbol(b, Decl(b.js, 1, 5)) + +/** @type {AbstractModuleSource} */ +const c = a; +>c : Symbol(c, Decl(b.js, 4, 5)) +>a : Symbol(a, Decl(b.js, 0, 6)) + +/** @type {Promise} */ +const d = b; +>d : Symbol(d, Decl(b.js, 7, 5)) +>b : Symbol(b, Decl(b.js, 1, 5)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource12.types b/tsc/testdata/baselines/reference/conformance/importSource12.types new file mode 100644 index 0000000000000..8a6859a58f3e6 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource12.types @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/importSource/importSource12.ts] //// + +=== b.js === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +const b = import.source("./a.wasm"); +>b : Promise +>import.source("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + +/** @type {AbstractModuleSource} */ +const c = a; +>c : AbstractModuleSource +>a : AbstractModuleSource + +/** @type {Promise} */ +const d = b; +>d : Promise +>b : Promise + diff --git a/tsc/testdata/baselines/reference/conformance/importSource13.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource13.errors.txt new file mode 100644 index 0000000000000..7fee0b416d26b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource13.errors.txt @@ -0,0 +1,15 @@ +c.cts(1,8): error TS100074: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. + + +==== b.mts (0 errors) ==== + import source a from "./a.wasm"; + const b: AbstractModuleSource = a; + const c: Promise = import.source("./a.wasm"); + +==== c.cts (1 errors) ==== + import source a from "./a.wasm"; + ~~~~~~~~ +!!! error TS100074: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. + const b: AbstractModuleSource = a; + const c: Promise = import.source("./a.wasm"); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource13.js b/tsc/testdata/baselines/reference/conformance/importSource13.js new file mode 100644 index 0000000000000..f9fa3c583a0a1 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource13.js @@ -0,0 +1,26 @@ +//// [tests/cases/conformance/importSource/importSource13.ts] //// + +//// [b.mts] +import source a from "./a.wasm"; +const b: AbstractModuleSource = a; +const c: Promise = import.source("./a.wasm"); + +//// [c.cts] +import source a from "./a.wasm"; +const b: AbstractModuleSource = a; +const c: Promise = import.source("./a.wasm"); + + +//// [b.mjs] +import source a from "./a.wasm"; +const b = a; +const c = import.source("./a.wasm"); +//// [c.cjs] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const a_wasm_1 = __importDefault(require("./a.wasm")); +const b = a_wasm_1.default; +const c = import.source("./a.wasm"); diff --git a/tsc/testdata/baselines/reference/conformance/importSource13.symbols b/tsc/testdata/baselines/reference/conformance/importSource13.symbols new file mode 100644 index 0000000000000..d956653ac0a06 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource13.symbols @@ -0,0 +1,30 @@ +//// [tests/cases/conformance/importSource/importSource13.ts] //// + +=== b.mts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(b.mts, 0, 6)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(b.mts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(b.mts, 0, 6)) + +const c: Promise = import.source("./a.wasm"); +>c : Symbol(c, Decl(b.mts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + +=== c.cts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(c.cts, 0, 6)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(c.cts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(c.cts, 0, 6)) + +const c: Promise = import.source("./a.wasm"); +>c : Symbol(c, Decl(c.cts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource13.types b/tsc/testdata/baselines/reference/conformance/importSource13.types new file mode 100644 index 0000000000000..0c46d26dc43ef --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource13.types @@ -0,0 +1,30 @@ +//// [tests/cases/conformance/importSource/importSource13.ts] //// + +=== b.mts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + +const c: Promise = import.source("./a.wasm"); +>c : Promise +>import.source("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + +=== c.cts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + +const c: Promise = import.source("./a.wasm"); +>c : Promise +>import.source("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource14.js b/tsc/testdata/baselines/reference/conformance/importSource14.js new file mode 100644 index 0000000000000..559b3ac0fcfd3 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource14.js @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/importSource/importSource14.ts] //// + +//// [package.json] +{"type":"commonjs"} + +//// [a.ts] +export {}; + +//// [b.cts] +export const a = import.source("./a.ts"); + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [b.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = import.source("./a.js"); diff --git a/tsc/testdata/baselines/reference/conformance/importSource14.symbols b/tsc/testdata/baselines/reference/conformance/importSource14.symbols new file mode 100644 index 0000000000000..2286fe78c6b1d --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource14.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/conformance/importSource/importSource14.ts] //// + +=== a.ts === + +export {}; + +=== b.cts === +export const a = import.source("./a.ts"); +>a : Symbol(a, Decl(b.cts, 0, 12)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource14.types b/tsc/testdata/baselines/reference/conformance/importSource14.types new file mode 100644 index 0000000000000..298a3367a0a0b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource14.types @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/importSource/importSource14.ts] //// + +=== a.ts === + +export {}; + +=== b.cts === +export const a = import.source("./a.ts"); +>a : Promise +>import.source("./a.ts") : Promise +>source : any +>"./a.ts" : "./a.ts" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).errors.txt b/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).errors.txt new file mode 100644 index 0000000000000..f30b6499ac930 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).errors.txt @@ -0,0 +1,18 @@ +b.js(1,8): error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +b.js(2,11): error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. + + +==== package.json (0 errors) ==== + {"type":"commonjs"} + +==== a.js (0 errors) ==== + export default 1; + +==== b.js (2 errors) ==== + import source a from "./a.js"; + ~~~~~~~~ +!!! error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. + const b = import.source("./a.js"); + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).symbols b/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).symbols new file mode 100644 index 0000000000000..c2cc1fb8c36c4 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).symbols @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/importSource/importSource15.ts] //// + +=== a.js === + +export default 1; + +=== b.js === +import source a from "./a.js"; +>a : Symbol(a, Decl(b.js, 0, 6)) + +const b = import.source("./a.js"); +>b : Symbol(b, Decl(b.js, 1, 5)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).types b/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).types new file mode 100644 index 0000000000000..e19fadcaf9128 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).types @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/importSource/importSource15.ts] //// + +=== a.js === + +export default 1; + +=== b.js === +import source a from "./a.js"; +>a : AbstractModuleSource + +const b = import.source("./a.js"); +>b : Promise +>import.source("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).errors.txt b/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).errors.txt new file mode 100644 index 0000000000000..b62f363d3141d --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).errors.txt @@ -0,0 +1,15 @@ +b.js(1,8): error TS100074: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. + + +==== package.json (0 errors) ==== + {"type":"commonjs"} + +==== a.js (0 errors) ==== + export default 1; + +==== b.js (1 errors) ==== + import source a from "./a.js"; + ~~~~~~~~ +!!! error TS100074: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. + const b = import.source("./a.js"); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).symbols b/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).symbols new file mode 100644 index 0000000000000..c2cc1fb8c36c4 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).symbols @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/importSource/importSource15.ts] //// + +=== a.js === + +export default 1; + +=== b.js === +import source a from "./a.js"; +>a : Symbol(a, Decl(b.js, 0, 6)) + +const b = import.source("./a.js"); +>b : Symbol(b, Decl(b.js, 1, 5)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).types b/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).types new file mode 100644 index 0000000000000..e19fadcaf9128 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).types @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/importSource/importSource15.ts] //// + +=== a.js === + +export default 1; + +=== b.js === +import source a from "./a.js"; +>a : AbstractModuleSource + +const b = import.source("./a.js"); +>b : Promise +>import.source("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).js b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).js new file mode 100644 index 0000000000000..e3dbae2eb063b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +//// [index.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path: string): Promise { + return import.source(path); +} + + +//// [index.mjs] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path) { + return import.source(path); +} + + +//// [index.d.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +export declare const g: Promise; +export declare const h: Promise; +export declare const i: Promise; +export declare function load(path: string): Promise; diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).symbols b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).symbols new file mode 100644 index 0000000000000..9297c1090a92b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).symbols @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : Symbol(a, Decl(index.mts, 0, 6)) + +import source b from "missing"; +>b : Symbol(b, Decl(index.mts, 1, 6)) + +import source c from "./a.txt"; +>c : Symbol(c, Decl(index.mts, 2, 6)) + +import source d from "./a.js"; +>d : Symbol(d, Decl(index.mts, 3, 6)) + +import source e from "./a.d.ts"; +>e : Symbol(e, Decl(index.mts, 4, 6)) + +import source f from "./a.ts"; +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export { a, b, c, d, e, f }; +>a : Symbol(a, Decl(index.mts, 6, 8)) +>b : Symbol(b, Decl(index.mts, 6, 11)) +>c : Symbol(c, Decl(index.mts, 6, 14)) +>d : Symbol(d, Decl(index.mts, 6, 17)) +>e : Symbol(e, Decl(index.mts, 6, 20)) +>f : Symbol(f, Decl(index.mts, 6, 23)) + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : Symbol(sources, Decl(index.mts, 7, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(index.mts, 0, 6)) +>b : Symbol(b, Decl(index.mts, 1, 6)) +>c : Symbol(c, Decl(index.mts, 2, 6)) +>d : Symbol(d, Decl(index.mts, 3, 6)) +>e : Symbol(e, Decl(index.mts, 4, 6)) +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export const g = import.source("./missing.wasm"); +>g : Symbol(g, Decl(index.mts, 8, 12)) + +export const h = import.source("missing"); +>h : Symbol(h, Decl(index.mts, 9, 12)) + +export const i = import.source("./a.txt"); +>i : Symbol(i, Decl(index.mts, 10, 12)) + +export function load(path: string): Promise { +>load : Symbol(load, Decl(index.mts, 10, 42)) +>path : Symbol(path, Decl(index.mts, 11, 21)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + + return import.source(path); +>path : Symbol(path, Decl(index.mts, 11, 21)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).types b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).types new file mode 100644 index 0000000000000..ac122c8cf9f7c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=false).types @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : AbstractModuleSource + +import source b from "missing"; +>b : AbstractModuleSource + +import source c from "./a.txt"; +>c : AbstractModuleSource + +import source d from "./a.js"; +>d : AbstractModuleSource + +import source e from "./a.d.ts"; +>e : AbstractModuleSource + +import source f from "./a.ts"; +>f : AbstractModuleSource + +export { a, b, c, d, e, f }; +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : AbstractModuleSource[] +>[a, b, c, d, e, f] : AbstractModuleSource[] +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +export const g = import.source("./missing.wasm"); +>g : Promise +>import.source("./missing.wasm") : Promise +>source : any +>"./missing.wasm" : "./missing.wasm" + +export const h = import.source("missing"); +>h : Promise +>import.source("missing") : Promise +>source : any +>"missing" : "missing" + +export const i = import.source("./a.txt"); +>i : Promise +>import.source("./a.txt") : Promise +>source : any +>"./a.txt" : "./a.txt" + +export function load(path: string): Promise { +>load : (path: string) => Promise +>path : string + + return import.source(path); +>import.source(path) : Promise +>source : any +>path : string +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).js b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).js new file mode 100644 index 0000000000000..e3dbae2eb063b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +//// [index.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path: string): Promise { + return import.source(path); +} + + +//// [index.mjs] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path) { + return import.source(path); +} + + +//// [index.d.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +export declare const g: Promise; +export declare const h: Promise; +export declare const i: Promise; +export declare function load(path: string): Promise; diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).symbols b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).symbols new file mode 100644 index 0000000000000..9297c1090a92b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).symbols @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : Symbol(a, Decl(index.mts, 0, 6)) + +import source b from "missing"; +>b : Symbol(b, Decl(index.mts, 1, 6)) + +import source c from "./a.txt"; +>c : Symbol(c, Decl(index.mts, 2, 6)) + +import source d from "./a.js"; +>d : Symbol(d, Decl(index.mts, 3, 6)) + +import source e from "./a.d.ts"; +>e : Symbol(e, Decl(index.mts, 4, 6)) + +import source f from "./a.ts"; +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export { a, b, c, d, e, f }; +>a : Symbol(a, Decl(index.mts, 6, 8)) +>b : Symbol(b, Decl(index.mts, 6, 11)) +>c : Symbol(c, Decl(index.mts, 6, 14)) +>d : Symbol(d, Decl(index.mts, 6, 17)) +>e : Symbol(e, Decl(index.mts, 6, 20)) +>f : Symbol(f, Decl(index.mts, 6, 23)) + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : Symbol(sources, Decl(index.mts, 7, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(index.mts, 0, 6)) +>b : Symbol(b, Decl(index.mts, 1, 6)) +>c : Symbol(c, Decl(index.mts, 2, 6)) +>d : Symbol(d, Decl(index.mts, 3, 6)) +>e : Symbol(e, Decl(index.mts, 4, 6)) +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export const g = import.source("./missing.wasm"); +>g : Symbol(g, Decl(index.mts, 8, 12)) + +export const h = import.source("missing"); +>h : Symbol(h, Decl(index.mts, 9, 12)) + +export const i = import.source("./a.txt"); +>i : Symbol(i, Decl(index.mts, 10, 12)) + +export function load(path: string): Promise { +>load : Symbol(load, Decl(index.mts, 10, 42)) +>path : Symbol(path, Decl(index.mts, 11, 21)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + + return import.source(path); +>path : Symbol(path, Decl(index.mts, 11, 21)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).types b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).types new file mode 100644 index 0000000000000..ac122c8cf9f7c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=esnext,nouncheckedsideeffectimports=true).types @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : AbstractModuleSource + +import source b from "missing"; +>b : AbstractModuleSource + +import source c from "./a.txt"; +>c : AbstractModuleSource + +import source d from "./a.js"; +>d : AbstractModuleSource + +import source e from "./a.d.ts"; +>e : AbstractModuleSource + +import source f from "./a.ts"; +>f : AbstractModuleSource + +export { a, b, c, d, e, f }; +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : AbstractModuleSource[] +>[a, b, c, d, e, f] : AbstractModuleSource[] +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +export const g = import.source("./missing.wasm"); +>g : Promise +>import.source("./missing.wasm") : Promise +>source : any +>"./missing.wasm" : "./missing.wasm" + +export const h = import.source("missing"); +>h : Promise +>import.source("missing") : Promise +>source : any +>"missing" : "missing" + +export const i = import.source("./a.txt"); +>i : Promise +>import.source("./a.txt") : Promise +>source : any +>"./a.txt" : "./a.txt" + +export function load(path: string): Promise { +>load : (path: string) => Promise +>path : string + + return import.source(path); +>import.source(path) : Promise +>source : any +>path : string +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).js b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).js new file mode 100644 index 0000000000000..e3dbae2eb063b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +//// [index.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path: string): Promise { + return import.source(path); +} + + +//// [index.mjs] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path) { + return import.source(path); +} + + +//// [index.d.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +export declare const g: Promise; +export declare const h: Promise; +export declare const i: Promise; +export declare function load(path: string): Promise; diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).symbols b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).symbols new file mode 100644 index 0000000000000..9297c1090a92b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).symbols @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : Symbol(a, Decl(index.mts, 0, 6)) + +import source b from "missing"; +>b : Symbol(b, Decl(index.mts, 1, 6)) + +import source c from "./a.txt"; +>c : Symbol(c, Decl(index.mts, 2, 6)) + +import source d from "./a.js"; +>d : Symbol(d, Decl(index.mts, 3, 6)) + +import source e from "./a.d.ts"; +>e : Symbol(e, Decl(index.mts, 4, 6)) + +import source f from "./a.ts"; +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export { a, b, c, d, e, f }; +>a : Symbol(a, Decl(index.mts, 6, 8)) +>b : Symbol(b, Decl(index.mts, 6, 11)) +>c : Symbol(c, Decl(index.mts, 6, 14)) +>d : Symbol(d, Decl(index.mts, 6, 17)) +>e : Symbol(e, Decl(index.mts, 6, 20)) +>f : Symbol(f, Decl(index.mts, 6, 23)) + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : Symbol(sources, Decl(index.mts, 7, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(index.mts, 0, 6)) +>b : Symbol(b, Decl(index.mts, 1, 6)) +>c : Symbol(c, Decl(index.mts, 2, 6)) +>d : Symbol(d, Decl(index.mts, 3, 6)) +>e : Symbol(e, Decl(index.mts, 4, 6)) +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export const g = import.source("./missing.wasm"); +>g : Symbol(g, Decl(index.mts, 8, 12)) + +export const h = import.source("missing"); +>h : Symbol(h, Decl(index.mts, 9, 12)) + +export const i = import.source("./a.txt"); +>i : Symbol(i, Decl(index.mts, 10, 12)) + +export function load(path: string): Promise { +>load : Symbol(load, Decl(index.mts, 10, 42)) +>path : Symbol(path, Decl(index.mts, 11, 21)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + + return import.source(path); +>path : Symbol(path, Decl(index.mts, 11, 21)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).types b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).types new file mode 100644 index 0000000000000..ac122c8cf9f7c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=false).types @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : AbstractModuleSource + +import source b from "missing"; +>b : AbstractModuleSource + +import source c from "./a.txt"; +>c : AbstractModuleSource + +import source d from "./a.js"; +>d : AbstractModuleSource + +import source e from "./a.d.ts"; +>e : AbstractModuleSource + +import source f from "./a.ts"; +>f : AbstractModuleSource + +export { a, b, c, d, e, f }; +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : AbstractModuleSource[] +>[a, b, c, d, e, f] : AbstractModuleSource[] +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +export const g = import.source("./missing.wasm"); +>g : Promise +>import.source("./missing.wasm") : Promise +>source : any +>"./missing.wasm" : "./missing.wasm" + +export const h = import.source("missing"); +>h : Promise +>import.source("missing") : Promise +>source : any +>"missing" : "missing" + +export const i = import.source("./a.txt"); +>i : Promise +>import.source("./a.txt") : Promise +>source : any +>"./a.txt" : "./a.txt" + +export function load(path: string): Promise { +>load : (path: string) => Promise +>path : string + + return import.source(path); +>import.source(path) : Promise +>source : any +>path : string +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).js b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).js new file mode 100644 index 0000000000000..e3dbae2eb063b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +//// [index.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path: string): Promise { + return import.source(path); +} + + +//// [index.mjs] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path) { + return import.source(path); +} + + +//// [index.d.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +export declare const g: Promise; +export declare const h: Promise; +export declare const i: Promise; +export declare function load(path: string): Promise; diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).symbols b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).symbols new file mode 100644 index 0000000000000..9297c1090a92b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).symbols @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : Symbol(a, Decl(index.mts, 0, 6)) + +import source b from "missing"; +>b : Symbol(b, Decl(index.mts, 1, 6)) + +import source c from "./a.txt"; +>c : Symbol(c, Decl(index.mts, 2, 6)) + +import source d from "./a.js"; +>d : Symbol(d, Decl(index.mts, 3, 6)) + +import source e from "./a.d.ts"; +>e : Symbol(e, Decl(index.mts, 4, 6)) + +import source f from "./a.ts"; +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export { a, b, c, d, e, f }; +>a : Symbol(a, Decl(index.mts, 6, 8)) +>b : Symbol(b, Decl(index.mts, 6, 11)) +>c : Symbol(c, Decl(index.mts, 6, 14)) +>d : Symbol(d, Decl(index.mts, 6, 17)) +>e : Symbol(e, Decl(index.mts, 6, 20)) +>f : Symbol(f, Decl(index.mts, 6, 23)) + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : Symbol(sources, Decl(index.mts, 7, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(index.mts, 0, 6)) +>b : Symbol(b, Decl(index.mts, 1, 6)) +>c : Symbol(c, Decl(index.mts, 2, 6)) +>d : Symbol(d, Decl(index.mts, 3, 6)) +>e : Symbol(e, Decl(index.mts, 4, 6)) +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export const g = import.source("./missing.wasm"); +>g : Symbol(g, Decl(index.mts, 8, 12)) + +export const h = import.source("missing"); +>h : Symbol(h, Decl(index.mts, 9, 12)) + +export const i = import.source("./a.txt"); +>i : Symbol(i, Decl(index.mts, 10, 12)) + +export function load(path: string): Promise { +>load : Symbol(load, Decl(index.mts, 10, 42)) +>path : Symbol(path, Decl(index.mts, 11, 21)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + + return import.source(path); +>path : Symbol(path, Decl(index.mts, 11, 21)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).types b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).types new file mode 100644 index 0000000000000..ac122c8cf9f7c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=nodenext,nouncheckedsideeffectimports=true).types @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : AbstractModuleSource + +import source b from "missing"; +>b : AbstractModuleSource + +import source c from "./a.txt"; +>c : AbstractModuleSource + +import source d from "./a.js"; +>d : AbstractModuleSource + +import source e from "./a.d.ts"; +>e : AbstractModuleSource + +import source f from "./a.ts"; +>f : AbstractModuleSource + +export { a, b, c, d, e, f }; +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : AbstractModuleSource[] +>[a, b, c, d, e, f] : AbstractModuleSource[] +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +export const g = import.source("./missing.wasm"); +>g : Promise +>import.source("./missing.wasm") : Promise +>source : any +>"./missing.wasm" : "./missing.wasm" + +export const h = import.source("missing"); +>h : Promise +>import.source("missing") : Promise +>source : any +>"missing" : "missing" + +export const i = import.source("./a.txt"); +>i : Promise +>import.source("./a.txt") : Promise +>source : any +>"./a.txt" : "./a.txt" + +export function load(path: string): Promise { +>load : (path: string) => Promise +>path : string + + return import.source(path); +>import.source(path) : Promise +>source : any +>path : string +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).js b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).js new file mode 100644 index 0000000000000..e3dbae2eb063b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +//// [index.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path: string): Promise { + return import.source(path); +} + + +//// [index.mjs] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path) { + return import.source(path); +} + + +//// [index.d.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +export declare const g: Promise; +export declare const h: Promise; +export declare const i: Promise; +export declare function load(path: string): Promise; diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).symbols b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).symbols new file mode 100644 index 0000000000000..9297c1090a92b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).symbols @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : Symbol(a, Decl(index.mts, 0, 6)) + +import source b from "missing"; +>b : Symbol(b, Decl(index.mts, 1, 6)) + +import source c from "./a.txt"; +>c : Symbol(c, Decl(index.mts, 2, 6)) + +import source d from "./a.js"; +>d : Symbol(d, Decl(index.mts, 3, 6)) + +import source e from "./a.d.ts"; +>e : Symbol(e, Decl(index.mts, 4, 6)) + +import source f from "./a.ts"; +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export { a, b, c, d, e, f }; +>a : Symbol(a, Decl(index.mts, 6, 8)) +>b : Symbol(b, Decl(index.mts, 6, 11)) +>c : Symbol(c, Decl(index.mts, 6, 14)) +>d : Symbol(d, Decl(index.mts, 6, 17)) +>e : Symbol(e, Decl(index.mts, 6, 20)) +>f : Symbol(f, Decl(index.mts, 6, 23)) + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : Symbol(sources, Decl(index.mts, 7, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(index.mts, 0, 6)) +>b : Symbol(b, Decl(index.mts, 1, 6)) +>c : Symbol(c, Decl(index.mts, 2, 6)) +>d : Symbol(d, Decl(index.mts, 3, 6)) +>e : Symbol(e, Decl(index.mts, 4, 6)) +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export const g = import.source("./missing.wasm"); +>g : Symbol(g, Decl(index.mts, 8, 12)) + +export const h = import.source("missing"); +>h : Symbol(h, Decl(index.mts, 9, 12)) + +export const i = import.source("./a.txt"); +>i : Symbol(i, Decl(index.mts, 10, 12)) + +export function load(path: string): Promise { +>load : Symbol(load, Decl(index.mts, 10, 42)) +>path : Symbol(path, Decl(index.mts, 11, 21)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + + return import.source(path); +>path : Symbol(path, Decl(index.mts, 11, 21)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).types b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).types new file mode 100644 index 0000000000000..ac122c8cf9f7c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=false).types @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : AbstractModuleSource + +import source b from "missing"; +>b : AbstractModuleSource + +import source c from "./a.txt"; +>c : AbstractModuleSource + +import source d from "./a.js"; +>d : AbstractModuleSource + +import source e from "./a.d.ts"; +>e : AbstractModuleSource + +import source f from "./a.ts"; +>f : AbstractModuleSource + +export { a, b, c, d, e, f }; +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : AbstractModuleSource[] +>[a, b, c, d, e, f] : AbstractModuleSource[] +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +export const g = import.source("./missing.wasm"); +>g : Promise +>import.source("./missing.wasm") : Promise +>source : any +>"./missing.wasm" : "./missing.wasm" + +export const h = import.source("missing"); +>h : Promise +>import.source("missing") : Promise +>source : any +>"missing" : "missing" + +export const i = import.source("./a.txt"); +>i : Promise +>import.source("./a.txt") : Promise +>source : any +>"./a.txt" : "./a.txt" + +export function load(path: string): Promise { +>load : (path: string) => Promise +>path : string + + return import.source(path); +>import.source(path) : Promise +>source : any +>path : string +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).js b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).js new file mode 100644 index 0000000000000..e3dbae2eb063b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +//// [index.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path: string): Promise { + return import.source(path); +} + + +//// [index.mjs] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path) { + return import.source(path); +} + + +//// [index.d.mts] +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +export declare const g: Promise; +export declare const h: Promise; +export declare const i: Promise; +export declare function load(path: string): Promise; diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).symbols b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).symbols new file mode 100644 index 0000000000000..9297c1090a92b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).symbols @@ -0,0 +1,58 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : Symbol(a, Decl(index.mts, 0, 6)) + +import source b from "missing"; +>b : Symbol(b, Decl(index.mts, 1, 6)) + +import source c from "./a.txt"; +>c : Symbol(c, Decl(index.mts, 2, 6)) + +import source d from "./a.js"; +>d : Symbol(d, Decl(index.mts, 3, 6)) + +import source e from "./a.d.ts"; +>e : Symbol(e, Decl(index.mts, 4, 6)) + +import source f from "./a.ts"; +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export { a, b, c, d, e, f }; +>a : Symbol(a, Decl(index.mts, 6, 8)) +>b : Symbol(b, Decl(index.mts, 6, 11)) +>c : Symbol(c, Decl(index.mts, 6, 14)) +>d : Symbol(d, Decl(index.mts, 6, 17)) +>e : Symbol(e, Decl(index.mts, 6, 20)) +>f : Symbol(f, Decl(index.mts, 6, 23)) + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : Symbol(sources, Decl(index.mts, 7, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(index.mts, 0, 6)) +>b : Symbol(b, Decl(index.mts, 1, 6)) +>c : Symbol(c, Decl(index.mts, 2, 6)) +>d : Symbol(d, Decl(index.mts, 3, 6)) +>e : Symbol(e, Decl(index.mts, 4, 6)) +>f : Symbol(f, Decl(index.mts, 5, 6)) + +export const g = import.source("./missing.wasm"); +>g : Symbol(g, Decl(index.mts, 8, 12)) + +export const h = import.source("missing"); +>h : Symbol(h, Decl(index.mts, 9, 12)) + +export const i = import.source("./a.txt"); +>i : Symbol(i, Decl(index.mts, 10, 12)) + +export function load(path: string): Promise { +>load : Symbol(load, Decl(index.mts, 10, 42)) +>path : Symbol(path, Decl(index.mts, 11, 21)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + + return import.source(path); +>path : Symbol(path, Decl(index.mts, 11, 21)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).types b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).types new file mode 100644 index 0000000000000..ac122c8cf9f7c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource16(module=preserve,nouncheckedsideeffectimports=true).types @@ -0,0 +1,67 @@ +//// [tests/cases/conformance/importSource/importSource16.ts] //// + +=== index.mts === +import source a from "./missing.wasm"; +>a : AbstractModuleSource + +import source b from "missing"; +>b : AbstractModuleSource + +import source c from "./a.txt"; +>c : AbstractModuleSource + +import source d from "./a.js"; +>d : AbstractModuleSource + +import source e from "./a.d.ts"; +>e : AbstractModuleSource + +import source f from "./a.ts"; +>f : AbstractModuleSource + +export { a, b, c, d, e, f }; +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +>sources : AbstractModuleSource[] +>[a, b, c, d, e, f] : AbstractModuleSource[] +>a : AbstractModuleSource +>b : AbstractModuleSource +>c : AbstractModuleSource +>d : AbstractModuleSource +>e : AbstractModuleSource +>f : AbstractModuleSource + +export const g = import.source("./missing.wasm"); +>g : Promise +>import.source("./missing.wasm") : Promise +>source : any +>"./missing.wasm" : "./missing.wasm" + +export const h = import.source("missing"); +>h : Promise +>import.source("missing") : Promise +>source : any +>"missing" : "missing" + +export const i = import.source("./a.txt"); +>i : Promise +>import.source("./a.txt") : Promise +>source : any +>"./a.txt" : "./a.txt" + +export function load(path: string): Promise { +>load : (path: string) => Promise +>path : string + + return import.source(path); +>import.source(path) : Promise +>source : any +>path : string +} + diff --git a/tsc/testdata/baselines/reference/conformance/importSource17.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource17.errors.txt new file mode 100644 index 0000000000000..f860448fbb456 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource17.errors.txt @@ -0,0 +1,61 @@ +index.ts(2,7): error TS2322: Type 'AbstractModuleSource' is not assignable to type 'string'. +index.ts(3,3): error TS2339: Property 'exports' does not exist on type 'AbstractModuleSource'. +index.ts(4,3): error TS2339: Property 'value' does not exist on type 'AbstractModuleSource'. +index.ts(5,8): error TS7036: Dynamic import's specifier must be of type 'string', but here has type 'AbstractModuleSource'. +index.ts(6,15): error TS7036: Dynamic import's specifier must be of type 'string', but here has type 'AbstractModuleSource'. +index.ts(7,15): error TS7036: Dynamic import's specifier must be of type 'string', but here has type '1'. +index.ts(8,15): error TS7036: Dynamic import's specifier must be of type 'string', but here has type 'undefined'. +index.ts(9,27): error TS2559: Type '1' has no properties in common with type 'ImportCallOptions'. +index.ts(10,27): error TS2322: Type '{ with: { readonly type: 1; }; }' is not assignable to type 'ImportCallOptions'. + Types of property 'with' are incompatible. + Type '{ readonly type: 1; }' is not assignable to type 'ImportAttributes'. + Property 'type' is incompatible with index signature. + Type 'number' is not assignable to type 'string'. +index.ts(11,29): error TS2880: Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'. +index.ts(12,5): error TS2693: 'AbstractModuleSource' only refers to a type, but is being used as a value here. +index.ts(13,10): error TS2315: Type 'AbstractModuleSource' is not generic. + + +==== index.ts (12 errors) ==== + import source a from "./a.wasm"; + const b: string = a; + ~ +!!! error TS2322: Type 'AbstractModuleSource' is not assignable to type 'string'. + a.exports; + ~~~~~~~ +!!! error TS2339: Property 'exports' does not exist on type 'AbstractModuleSource'. + a.value; + ~~~~~ +!!! error TS2339: Property 'value' does not exist on type 'AbstractModuleSource'. + import(a); + ~ +!!! error TS7036: Dynamic import's specifier must be of type 'string', but here has type 'AbstractModuleSource'. + import.source(a); + ~ +!!! error TS7036: Dynamic import's specifier must be of type 'string', but here has type 'AbstractModuleSource'. + import.source(1); + ~ +!!! error TS7036: Dynamic import's specifier must be of type 'string', but here has type '1'. + import.source(undefined); + ~~~~~~~~~ +!!! error TS7036: Dynamic import's specifier must be of type 'string', but here has type 'undefined'. + import.source("./a.wasm", 1); + ~ +!!! error TS2559: Type '1' has no properties in common with type 'ImportCallOptions'. + import.source("./a.wasm", { with: { type: 1 } }); + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ with: { readonly type: 1; }; }' is not assignable to type 'ImportCallOptions'. +!!! error TS2322: Types of property 'with' are incompatible. +!!! error TS2322: Type '{ readonly type: 1; }' is not assignable to type 'ImportAttributes'. +!!! error TS2322: Property 'type' is incompatible with index signature. +!!! error TS2322: Type 'number' is not assignable to type 'string'. + import.source("./a.wasm", { assert: { type: "webassembly" } }); + ~~~~~~ +!!! error TS2880: Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'. + new AbstractModuleSource(); + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2693: 'AbstractModuleSource' only refers to a type, but is being used as a value here. + type C = AbstractModuleSource; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2315: Type 'AbstractModuleSource' is not generic. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource17.js b/tsc/testdata/baselines/reference/conformance/importSource17.js new file mode 100644 index 0000000000000..5c402541699fb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource17.js @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/importSource/importSource17.ts] //// + +//// [index.ts] +import source a from "./a.wasm"; +const b: string = a; +a.exports; +a.value; +import(a); +import.source(a); +import.source(1); +import.source(undefined); +import.source("./a.wasm", 1); +import.source("./a.wasm", { with: { type: 1 } }); +import.source("./a.wasm", { assert: { type: "webassembly" } }); +new AbstractModuleSource(); +type C = AbstractModuleSource; + + +//// [index.js] +import source a from "./a.wasm"; +const b = a; +a.exports; +a.value; +import(a); +import.source(a); +import.source(1); +import.source(undefined); +import.source("./a.wasm", 1); +import.source("./a.wasm", { with: { type: 1 } }); +import.source("./a.wasm", { assert: { type: "webassembly" } }); +new AbstractModuleSource(); diff --git a/tsc/testdata/baselines/reference/conformance/importSource17.symbols b/tsc/testdata/baselines/reference/conformance/importSource17.symbols new file mode 100644 index 0000000000000..f16cb30ec838b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource17.symbols @@ -0,0 +1,40 @@ +//// [tests/cases/conformance/importSource/importSource17.ts] //// + +=== index.ts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(index.ts, 0, 6)) + +const b: string = a; +>b : Symbol(b, Decl(index.ts, 1, 5)) +>a : Symbol(a, Decl(index.ts, 0, 6)) + +a.exports; +>a : Symbol(a, Decl(index.ts, 0, 6)) + +a.value; +>a : Symbol(a, Decl(index.ts, 0, 6)) + +import(a); +>a : Symbol(a, Decl(index.ts, 0, 6)) + +import.source(a); +>a : Symbol(a, Decl(index.ts, 0, 6)) + +import.source(1); +import.source(undefined); +>undefined : Symbol(undefined) + +import.source("./a.wasm", 1); +import.source("./a.wasm", { with: { type: 1 } }); +>with : Symbol(with, Decl(index.ts, 9, 27)) +>type : Symbol(type, Decl(index.ts, 9, 35)) + +import.source("./a.wasm", { assert: { type: "webassembly" } }); +>assert : Symbol(assert, Decl(index.ts, 10, 27)) +>type : Symbol(type, Decl(index.ts, 10, 37)) + +new AbstractModuleSource(); +type C = AbstractModuleSource; +>C : Symbol(C, Decl(index.ts, 11, 27)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource17.types b/tsc/testdata/baselines/reference/conformance/importSource17.types new file mode 100644 index 0000000000000..af700343c9c25 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource17.types @@ -0,0 +1,72 @@ +//// [tests/cases/conformance/importSource/importSource17.ts] //// + +=== index.ts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +const b: string = a; +>b : string +>a : AbstractModuleSource + +a.exports; +>a.exports : any +>a : AbstractModuleSource +>exports : any + +a.value; +>a.value : any +>a : AbstractModuleSource +>value : any + +import(a); +>import(a) : Promise +>a : AbstractModuleSource + +import.source(a); +>import.source(a) : Promise +>source : any +>a : AbstractModuleSource + +import.source(1); +>import.source(1) : Promise +>source : any +>1 : 1 + +import.source(undefined); +>import.source(undefined) : Promise +>source : any +>undefined : undefined + +import.source("./a.wasm", 1); +>import.source("./a.wasm", 1) : Promise +>source : any +>"./a.wasm" : "./a.wasm" +>1 : 1 + +import.source("./a.wasm", { with: { type: 1 } }); +>import.source("./a.wasm", { with: { type: 1 } }) : Promise +>source : any +>"./a.wasm" : "./a.wasm" +>{ with: { type: 1 } } : { with: { readonly type: 1; }; } +>with : { readonly type: 1; } +>{ type: 1 } : { readonly type: 1; } +>type : 1 +>1 : 1 + +import.source("./a.wasm", { assert: { type: "webassembly" } }); +>import.source("./a.wasm", { assert: { type: "webassembly" } }) : Promise +>source : any +>"./a.wasm" : "./a.wasm" +>{ assert: { type: "webassembly" } } : { assert: { type: string; }; } +>assert : { type: string; } +>{ type: "webassembly" } : { type: string; } +>type : string +>"webassembly" : "webassembly" + +new AbstractModuleSource(); +>new AbstractModuleSource() : any +>AbstractModuleSource : any + +type C = AbstractModuleSource; +>C : any + diff --git a/tsc/testdata/baselines/reference/conformance/importSource18.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource18.errors.txt new file mode 100644 index 0000000000000..cc380c101dce3 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource18.errors.txt @@ -0,0 +1,9 @@ +error TS2318: Cannot find global type 'AbstractModuleSource'. + + +!!! error TS2318: Cannot find global type 'AbstractModuleSource'. +==== index.ts (0 errors) ==== + import source a from "./a.wasm"; + a; + import.source("./a.wasm"); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource18.js b/tsc/testdata/baselines/reference/conformance/importSource18.js new file mode 100644 index 0000000000000..c6a6e70a557eb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource18.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/importSource/importSource18.ts] //// + +//// [index.ts] +import source a from "./a.wasm"; +a; +import.source("./a.wasm"); + + +//// [index.js] +import source a from "./a.wasm"; +a; +import.source("./a.wasm"); diff --git a/tsc/testdata/baselines/reference/conformance/importSource18.symbols b/tsc/testdata/baselines/reference/conformance/importSource18.symbols new file mode 100644 index 0000000000000..d883410b019b6 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource18.symbols @@ -0,0 +1,11 @@ +//// [tests/cases/conformance/importSource/importSource18.ts] //// + +=== index.ts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(index.ts, 0, 6)) + +a; +>a : Symbol(a, Decl(index.ts, 0, 6)) + +import.source("./a.wasm"); + diff --git a/tsc/testdata/baselines/reference/conformance/importSource18.types b/tsc/testdata/baselines/reference/conformance/importSource18.types new file mode 100644 index 0000000000000..047f341f2606e --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource18.types @@ -0,0 +1,14 @@ +//// [tests/cases/conformance/importSource/importSource18.ts] //// + +=== index.ts === +import source a from "./a.wasm"; +>a : {} + +a; +>a : {} + +import.source("./a.wasm"); +>import.source("./a.wasm") : Promise<{}> +>source : any +>"./a.wasm" : "./a.wasm" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource19.js b/tsc/testdata/baselines/reference/conformance/importSource19.js new file mode 100644 index 0000000000000..0930ce9573336 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource19.js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/importSource/importSource19.ts] //// + +//// [globals.d.ts] +declare module "*.wasm" { + const value: string; + export default value; +} +declare namespace WebAssembly { + interface Module { value: number; } +} + +//// [index.ts] +import a from "./a.wasm"; +import source b from "./a.wasm"; +const c: string = a; +const d: AbstractModuleSource = b; +export { b }; +export const e = import.source("./a.wasm"); + + +//// [index.js] +import a from "./a.wasm"; +import source b from "./a.wasm"; +const c = a; +const d = b; +export { b }; +export const e = import.source("./a.wasm"); + + +//// [index.d.ts] +import source b from "./a.wasm"; +export { b }; +export declare const e: Promise; diff --git a/tsc/testdata/baselines/reference/conformance/importSource19.symbols b/tsc/testdata/baselines/reference/conformance/importSource19.symbols new file mode 100644 index 0000000000000..bc2c53509e45a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource19.symbols @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/importSource/importSource19.ts] //// + +=== globals.d.ts === +declare module "*.wasm" { +>"*.wasm" : Symbol("*.wasm", Decl(globals.d.ts, 0, 0)) + + const value: string; +>value : Symbol(value, Decl(globals.d.ts, 1, 9)) + + export default value; +>value : Symbol(value, Decl(globals.d.ts, 1, 9)) +} +declare namespace WebAssembly { +>WebAssembly : Symbol(WebAssembly, Decl(lib.dom.d.ts, --, --), Decl(globals.d.ts, 3, 1)) + + interface Module { value: number; } +>Module : Symbol(Module, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --), Decl(globals.d.ts, 4, 31)) +>value : Symbol(Module.value, Decl(globals.d.ts, 5, 22)) +} + +=== index.ts === +import a from "./a.wasm"; +>a : Symbol(a, Decl(index.ts, 0, 6)) + +import source b from "./a.wasm"; +>b : Symbol(b, Decl(index.ts, 1, 6)) + +const c: string = a; +>c : Symbol(c, Decl(index.ts, 2, 5)) +>a : Symbol(a, Decl(index.ts, 0, 6)) + +const d: AbstractModuleSource = b; +>d : Symbol(d, Decl(index.ts, 3, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>b : Symbol(b, Decl(index.ts, 1, 6)) + +export { b }; +>b : Symbol(b, Decl(index.ts, 4, 8)) + +export const e = import.source("./a.wasm"); +>e : Symbol(e, Decl(index.ts, 5, 12)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource19.types b/tsc/testdata/baselines/reference/conformance/importSource19.types new file mode 100644 index 0000000000000..16817f8653d12 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource19.types @@ -0,0 +1,41 @@ +//// [tests/cases/conformance/importSource/importSource19.ts] //// + +=== globals.d.ts === +declare module "*.wasm" { +>"*.wasm" : typeof import("*.wasm") + + const value: string; +>value : string + + export default value; +>value : string +} +declare namespace WebAssembly { + interface Module { value: number; } +>value : number +} + +=== index.ts === +import a from "./a.wasm"; +>a : string + +import source b from "./a.wasm"; +>b : AbstractModuleSource + +const c: string = a; +>c : string +>a : string + +const d: AbstractModuleSource = b; +>d : AbstractModuleSource +>b : AbstractModuleSource + +export { b }; +>b : AbstractModuleSource + +export const e = import.source("./a.wasm"); +>e : Promise +>import.source("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).js b/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).js new file mode 100644 index 0000000000000..a31824c603ba0 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).js @@ -0,0 +1,43 @@ +//// [tests/cases/conformance/importSource/importSource2.ts] //// + +//// [b.ts] +export {}; +const a = import.source("./a.wasm"); +const b: Promise = a; + +//// [c.ts] +export {}; +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +const b: Promise = a; + +//// [d.ts] +export {}; +const a = import.source("./a.wasm",); +const b: Promise = a; +const c = import.source("./a.wasm", { with: { type: "webassembly" } },); +const d: Promise = c; + +//// [e.ts] +export {}; +const a = import.source(`./a.wasm`); +const b: Promise = a; + + +//// [b.js] +const a = import.source("./a.wasm"); +const b = a; +export {}; +//// [c.js] +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +const b = a; +export {}; +//// [d.js] +const a = import.source("./a.wasm"); +const b = a; +const c = import.source("./a.wasm", { with: { type: "webassembly" } }); +const d = c; +export {}; +//// [e.js] +const a = import.source(`./a.wasm`); +const b = a; +export {}; diff --git a/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).symbols b/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).symbols new file mode 100644 index 0000000000000..7cc67459084ca --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).symbols @@ -0,0 +1,59 @@ +//// [tests/cases/conformance/importSource/importSource2.ts] //// + +=== b.ts === +export {}; +const a = import.source("./a.wasm"); +>a : Symbol(a, Decl(b.ts, 1, 5)) + +const b: Promise = a; +>b : Symbol(b, Decl(b.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(b.ts, 1, 5)) + +=== c.ts === +export {}; +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +>a : Symbol(a, Decl(c.ts, 1, 5)) +>with : Symbol(with, Decl(c.ts, 1, 37)) +>type : Symbol(type, Decl(c.ts, 1, 45)) + +const b: Promise = a; +>b : Symbol(b, Decl(c.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(c.ts, 1, 5)) + +=== d.ts === +export {}; +const a = import.source("./a.wasm",); +>a : Symbol(a, Decl(d.ts, 1, 5)) + +const b: Promise = a; +>b : Symbol(b, Decl(d.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(d.ts, 1, 5)) + +const c = import.source("./a.wasm", { with: { type: "webassembly" } },); +>c : Symbol(c, Decl(d.ts, 3, 5)) +>with : Symbol(with, Decl(d.ts, 3, 37)) +>type : Symbol(type, Decl(d.ts, 3, 45)) + +const d: Promise = c; +>d : Symbol(d, Decl(d.ts, 4, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>c : Symbol(c, Decl(d.ts, 3, 5)) + +=== e.ts === +export {}; +const a = import.source(`./a.wasm`); +>a : Symbol(a, Decl(e.ts, 1, 5)) + +const b: Promise = a; +>b : Symbol(b, Decl(e.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(e.ts, 1, 5)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).types b/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).types new file mode 100644 index 0000000000000..857291404b4bc --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource2(module=esnext).types @@ -0,0 +1,70 @@ +//// [tests/cases/conformance/importSource/importSource2.ts] //// + +=== b.ts === +export {}; +const a = import.source("./a.wasm"); +>a : Promise +>import.source("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + +const b: Promise = a; +>b : Promise +>a : Promise + +=== c.ts === +export {}; +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +>a : Promise +>import.source("./a.wasm", { with: { type: "webassembly" } }) : Promise +>source : any +>"./a.wasm" : "./a.wasm" +>{ with: { type: "webassembly" } } : { with: { readonly type: "webassembly"; }; } +>with : { readonly type: "webassembly"; } +>{ type: "webassembly" } : { readonly type: "webassembly"; } +>type : "webassembly" +>"webassembly" : "webassembly" + +const b: Promise = a; +>b : Promise +>a : Promise + +=== d.ts === +export {}; +const a = import.source("./a.wasm",); +>a : Promise +>import.source("./a.wasm",) : Promise +>source : any +>"./a.wasm" : "./a.wasm" + +const b: Promise = a; +>b : Promise +>a : Promise + +const c = import.source("./a.wasm", { with: { type: "webassembly" } },); +>c : Promise +>import.source("./a.wasm", { with: { type: "webassembly" } },) : Promise +>source : any +>"./a.wasm" : "./a.wasm" +>{ with: { type: "webassembly" } } : { with: { readonly type: "webassembly"; }; } +>with : { readonly type: "webassembly"; } +>{ type: "webassembly" } : { readonly type: "webassembly"; } +>type : "webassembly" +>"webassembly" : "webassembly" + +const d: Promise = c; +>d : Promise +>c : Promise + +=== e.ts === +export {}; +const a = import.source(`./a.wasm`); +>a : Promise +>import.source(`./a.wasm`) : Promise +>source : any +>`./a.wasm` : "./a.wasm" + +const b: Promise = a; +>b : Promise +>a : Promise + diff --git a/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).js b/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).js new file mode 100644 index 0000000000000..1a4f156f46ea9 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/importSource/importSource2.ts] //// + +//// [b.ts] +export {}; +const a = import.source("./a.wasm"); +const b: Promise = a; + +//// [c.ts] +export {}; +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +const b: Promise = a; + +//// [d.ts] +export {}; +const a = import.source("./a.wasm",); +const b: Promise = a; +const c = import.source("./a.wasm", { with: { type: "webassembly" } },); +const d: Promise = c; + +//// [e.ts] +export {}; +const a = import.source(`./a.wasm`); +const b: Promise = a; + + +//// [b.js] +const a = import.source("./a.wasm"); +const b = a; +//// [c.js] +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +const b = a; +//// [d.js] +const a = import.source("./a.wasm"); +const b = a; +const c = import.source("./a.wasm", { with: { type: "webassembly" } }); +const d = c; +//// [e.js] +const a = import.source(`./a.wasm`); +const b = a; diff --git a/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).symbols b/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).symbols new file mode 100644 index 0000000000000..7cc67459084ca --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).symbols @@ -0,0 +1,59 @@ +//// [tests/cases/conformance/importSource/importSource2.ts] //// + +=== b.ts === +export {}; +const a = import.source("./a.wasm"); +>a : Symbol(a, Decl(b.ts, 1, 5)) + +const b: Promise = a; +>b : Symbol(b, Decl(b.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(b.ts, 1, 5)) + +=== c.ts === +export {}; +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +>a : Symbol(a, Decl(c.ts, 1, 5)) +>with : Symbol(with, Decl(c.ts, 1, 37)) +>type : Symbol(type, Decl(c.ts, 1, 45)) + +const b: Promise = a; +>b : Symbol(b, Decl(c.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(c.ts, 1, 5)) + +=== d.ts === +export {}; +const a = import.source("./a.wasm",); +>a : Symbol(a, Decl(d.ts, 1, 5)) + +const b: Promise = a; +>b : Symbol(b, Decl(d.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(d.ts, 1, 5)) + +const c = import.source("./a.wasm", { with: { type: "webassembly" } },); +>c : Symbol(c, Decl(d.ts, 3, 5)) +>with : Symbol(with, Decl(d.ts, 3, 37)) +>type : Symbol(type, Decl(d.ts, 3, 45)) + +const d: Promise = c; +>d : Symbol(d, Decl(d.ts, 4, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>c : Symbol(c, Decl(d.ts, 3, 5)) + +=== e.ts === +export {}; +const a = import.source(`./a.wasm`); +>a : Symbol(a, Decl(e.ts, 1, 5)) + +const b: Promise = a; +>b : Symbol(b, Decl(e.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(e.ts, 1, 5)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).types b/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).types new file mode 100644 index 0000000000000..857291404b4bc --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource2(module=preserve).types @@ -0,0 +1,70 @@ +//// [tests/cases/conformance/importSource/importSource2.ts] //// + +=== b.ts === +export {}; +const a = import.source("./a.wasm"); +>a : Promise +>import.source("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + +const b: Promise = a; +>b : Promise +>a : Promise + +=== c.ts === +export {}; +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +>a : Promise +>import.source("./a.wasm", { with: { type: "webassembly" } }) : Promise +>source : any +>"./a.wasm" : "./a.wasm" +>{ with: { type: "webassembly" } } : { with: { readonly type: "webassembly"; }; } +>with : { readonly type: "webassembly"; } +>{ type: "webassembly" } : { readonly type: "webassembly"; } +>type : "webassembly" +>"webassembly" : "webassembly" + +const b: Promise = a; +>b : Promise +>a : Promise + +=== d.ts === +export {}; +const a = import.source("./a.wasm",); +>a : Promise +>import.source("./a.wasm",) : Promise +>source : any +>"./a.wasm" : "./a.wasm" + +const b: Promise = a; +>b : Promise +>a : Promise + +const c = import.source("./a.wasm", { with: { type: "webassembly" } },); +>c : Promise +>import.source("./a.wasm", { with: { type: "webassembly" } },) : Promise +>source : any +>"./a.wasm" : "./a.wasm" +>{ with: { type: "webassembly" } } : { with: { readonly type: "webassembly"; }; } +>with : { readonly type: "webassembly"; } +>{ type: "webassembly" } : { readonly type: "webassembly"; } +>type : "webassembly" +>"webassembly" : "webassembly" + +const d: Promise = c; +>d : Promise +>c : Promise + +=== e.ts === +export {}; +const a = import.source(`./a.wasm`); +>a : Promise +>import.source(`./a.wasm`) : Promise +>source : any +>`./a.wasm` : "./a.wasm" + +const b: Promise = a; +>b : Promise +>a : Promise + diff --git a/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).js b/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).js new file mode 100644 index 0000000000000..59364ec365456 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/importSource/importSource20.ts] //// + +//// [package.json] +{ "type": "module", "exports": { "types": "./index.d.ts", "default": "./missing.wasm" } } + +//// [index.d.ts] +export const value: number; + +//// [index.mts] +import source a from "pkg"; +import { value } from "pkg"; +const b: AbstractModuleSource = a; +const c: number = value; +export const d = import.source("pkg"); +export const e = import("pkg"); +export { a }; + + +//// [index.mjs] +import source a from "pkg"; +import { value } from "pkg"; +const b = a; +const c = value; +export const d = import.source("pkg"); +export const e = import("pkg"); +export { a }; + + +//// [index.d.mts] +import source a from "pkg"; +export declare const d: Promise; +export declare const e: Promise; +export { a }; diff --git a/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).symbols b/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).symbols new file mode 100644 index 0000000000000..a2b6cfba0a938 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).symbols @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/importSource/importSource20.ts] //// + +=== index.mts === +import source a from "pkg"; +>a : Symbol(a, Decl(index.mts, 0, 6)) + +import { value } from "pkg"; +>value : Symbol(value, Decl(index.mts, 1, 8)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(index.mts, 2, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(index.mts, 0, 6)) + +const c: number = value; +>c : Symbol(c, Decl(index.mts, 3, 5)) +>value : Symbol(value, Decl(index.mts, 1, 8)) + +export const d = import.source("pkg"); +>d : Symbol(d, Decl(index.mts, 4, 12)) + +export const e = import("pkg"); +>e : Symbol(e, Decl(index.mts, 5, 12)) +>"pkg" : Symbol("pkg", Decl(index.d.ts, 0, 0)) + +export { a }; +>a : Symbol(a, Decl(index.mts, 6, 8)) + +=== node_modules/pkg/index.d.ts === +export const value: number; +>value : Symbol(value, Decl(index.d.ts, 0, 12)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).types b/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).types new file mode 100644 index 0000000000000..856a2ee1b0c83 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource20(module=nodenext).types @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/importSource/importSource20.ts] //// + +=== index.mts === +import source a from "pkg"; +>a : AbstractModuleSource + +import { value } from "pkg"; +>value : number + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + +const c: number = value; +>c : number +>value : number + +export const d = import.source("pkg"); +>d : Promise +>import.source("pkg") : Promise +>source : any +>"pkg" : "pkg" + +export const e = import("pkg"); +>e : Promise +>import("pkg") : Promise +>"pkg" : "pkg" + +export { a }; +>a : AbstractModuleSource + +=== node_modules/pkg/index.d.ts === +export const value: number; +>value : number + diff --git a/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).js b/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).js new file mode 100644 index 0000000000000..59364ec365456 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/importSource/importSource20.ts] //// + +//// [package.json] +{ "type": "module", "exports": { "types": "./index.d.ts", "default": "./missing.wasm" } } + +//// [index.d.ts] +export const value: number; + +//// [index.mts] +import source a from "pkg"; +import { value } from "pkg"; +const b: AbstractModuleSource = a; +const c: number = value; +export const d = import.source("pkg"); +export const e = import("pkg"); +export { a }; + + +//// [index.mjs] +import source a from "pkg"; +import { value } from "pkg"; +const b = a; +const c = value; +export const d = import.source("pkg"); +export const e = import("pkg"); +export { a }; + + +//// [index.d.mts] +import source a from "pkg"; +export declare const d: Promise; +export declare const e: Promise; +export { a }; diff --git a/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).symbols b/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).symbols new file mode 100644 index 0000000000000..a2b6cfba0a938 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).symbols @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/importSource/importSource20.ts] //// + +=== index.mts === +import source a from "pkg"; +>a : Symbol(a, Decl(index.mts, 0, 6)) + +import { value } from "pkg"; +>value : Symbol(value, Decl(index.mts, 1, 8)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(index.mts, 2, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(index.mts, 0, 6)) + +const c: number = value; +>c : Symbol(c, Decl(index.mts, 3, 5)) +>value : Symbol(value, Decl(index.mts, 1, 8)) + +export const d = import.source("pkg"); +>d : Symbol(d, Decl(index.mts, 4, 12)) + +export const e = import("pkg"); +>e : Symbol(e, Decl(index.mts, 5, 12)) +>"pkg" : Symbol("pkg", Decl(index.d.ts, 0, 0)) + +export { a }; +>a : Symbol(a, Decl(index.mts, 6, 8)) + +=== node_modules/pkg/index.d.ts === +export const value: number; +>value : Symbol(value, Decl(index.d.ts, 0, 12)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).types b/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).types new file mode 100644 index 0000000000000..856a2ee1b0c83 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource20(module=preserve).types @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/importSource/importSource20.ts] //// + +=== index.mts === +import source a from "pkg"; +>a : AbstractModuleSource + +import { value } from "pkg"; +>value : number + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + +const c: number = value; +>c : number +>value : number + +export const d = import.source("pkg"); +>d : Promise +>import.source("pkg") : Promise +>source : any +>"pkg" : "pkg" + +export const e = import("pkg"); +>e : Promise +>import("pkg") : Promise +>"pkg" : "pkg" + +export { a }; +>a : AbstractModuleSource + +=== node_modules/pkg/index.d.ts === +export const value: number; +>value : number + diff --git a/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).js b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).js new file mode 100644 index 0000000000000..78ed32003a4e6 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).js @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/importSource/importSource21.ts] //// + +//// [index.ts] +import source a from "./a.wasm"; +import source b from "./b.wasm"; +import source c from "./c.wasm"; +export type A = typeof a; +export const d = c; + + +//// [index.js] +import source c from "./c.wasm"; +export const d = c; + + +//// [index.d.ts] +import source a from "./a.wasm"; +export type A = typeof a; +export declare const d: AbstractModuleSource; diff --git a/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).symbols b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).symbols new file mode 100644 index 0000000000000..df7b459d92feb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).symbols @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/importSource/importSource21.ts] //// + +=== index.ts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(index.ts, 0, 6)) + +import source b from "./b.wasm"; +>b : Symbol(b, Decl(index.ts, 1, 6)) + +import source c from "./c.wasm"; +>c : Symbol(c, Decl(index.ts, 2, 6)) + +export type A = typeof a; +>A : Symbol(A, Decl(index.ts, 2, 32)) +>a : Symbol(a, Decl(index.ts, 0, 6)) + +export const d = c; +>d : Symbol(d, Decl(index.ts, 4, 12)) +>c : Symbol(c, Decl(index.ts, 2, 6)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).types b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).types new file mode 100644 index 0000000000000..5ae56f0418e00 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=false).types @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/importSource/importSource21.ts] //// + +=== index.ts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +import source b from "./b.wasm"; +>b : AbstractModuleSource + +import source c from "./c.wasm"; +>c : AbstractModuleSource + +export type A = typeof a; +>A : AbstractModuleSource +>a : AbstractModuleSource + +export const d = c; +>d : AbstractModuleSource +>c : AbstractModuleSource + diff --git a/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).js b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).js new file mode 100644 index 0000000000000..5a2da381607b8 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).js @@ -0,0 +1,21 @@ +//// [tests/cases/conformance/importSource/importSource21.ts] //// + +//// [index.ts] +import source a from "./a.wasm"; +import source b from "./b.wasm"; +import source c from "./c.wasm"; +export type A = typeof a; +export const d = c; + + +//// [index.js] +import source a from "./a.wasm"; +import source b from "./b.wasm"; +import source c from "./c.wasm"; +export const d = c; + + +//// [index.d.ts] +import source a from "./a.wasm"; +export type A = typeof a; +export declare const d: AbstractModuleSource; diff --git a/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).symbols b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).symbols new file mode 100644 index 0000000000000..df7b459d92feb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).symbols @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/importSource/importSource21.ts] //// + +=== index.ts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(index.ts, 0, 6)) + +import source b from "./b.wasm"; +>b : Symbol(b, Decl(index.ts, 1, 6)) + +import source c from "./c.wasm"; +>c : Symbol(c, Decl(index.ts, 2, 6)) + +export type A = typeof a; +>A : Symbol(A, Decl(index.ts, 2, 32)) +>a : Symbol(a, Decl(index.ts, 0, 6)) + +export const d = c; +>d : Symbol(d, Decl(index.ts, 4, 12)) +>c : Symbol(c, Decl(index.ts, 2, 6)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).types b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).types new file mode 100644 index 0000000000000..5ae56f0418e00 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource21(verbatimmodulesyntax=true).types @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/importSource/importSource21.ts] //// + +=== index.ts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +import source b from "./b.wasm"; +>b : AbstractModuleSource + +import source c from "./c.wasm"; +>c : AbstractModuleSource + +export type A = typeof a; +>A : AbstractModuleSource +>a : AbstractModuleSource + +export const d = c; +>d : AbstractModuleSource +>c : AbstractModuleSource + diff --git a/tsc/testdata/baselines/reference/conformance/importSource3.js b/tsc/testdata/baselines/reference/conformance/importSource3.js new file mode 100644 index 0000000000000..3e4d975402bb4 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource3.js @@ -0,0 +1,70 @@ +//// [tests/cases/conformance/importSource/importSource3.ts] //// + +//// [a.ts] +export default 1; +export const a = 2; + +//// [b.ts] +import source from "./a.js"; +const a: number = source; + +//// [c.ts] +import source, { a } from "./a.js"; +const b: number = source + a; + +//// [d.ts] +import source = require("./a"); +const a: typeof source = source; + +//// [e.ts] +const source = 1; +const a: number = source; + +//// [g.ts] +import source from from "./f.wasm"; +const a: AbstractModuleSource = from; + +//// [h.ts] +import source type from "./f.wasm"; +const a: AbstractModuleSource = type; + +//// [i.ts] +import source source from "./f.wasm"; +const a: AbstractModuleSource = source; + +//// [j.ts] +import +source +a +from "./f.wasm"; +const b: AbstractModuleSource = a; + + +//// [a.js] +export default 1; +export const a = 2; +//// [b.js] +import source from "./a.js"; +const a = source; +//// [c.js] +import source, { a } from "./a.js"; +const b = source + a; +//// [d.js] +const source = require("./a"); +const a = source; +//// [e.js] +"use strict"; +const source = 1; +const a = source; +//// [g.js] +import source from from "./f.wasm"; +const a = from; +//// [h.js] +import source type from "./f.wasm"; +const a = type; +//// [i.js] +import source source from "./f.wasm"; +const a = source; +//// [j.js] +import source a from "./f.wasm"; +const b = a; diff --git a/tsc/testdata/baselines/reference/conformance/importSource3.symbols b/tsc/testdata/baselines/reference/conformance/importSource3.symbols new file mode 100644 index 0000000000000..097022acf0454 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource3.symbols @@ -0,0 +1,81 @@ +//// [tests/cases/conformance/importSource/importSource3.ts] //// + +=== a.ts === +export default 1; +export const a = 2; +>a : Symbol(a, Decl(a.ts, 1, 12)) + +=== b.ts === +import source from "./a.js"; +>source : Symbol(source, Decl(b.ts, 0, 6)) + +const a: number = source; +>a : Symbol(a, Decl(b.ts, 1, 5)) +>source : Symbol(source, Decl(b.ts, 0, 6)) + +=== c.ts === +import source, { a } from "./a.js"; +>source : Symbol(source, Decl(c.ts, 0, 6)) +>a : Symbol(a, Decl(c.ts, 0, 16)) + +const b: number = source + a; +>b : Symbol(b, Decl(c.ts, 1, 5)) +>source : Symbol(source, Decl(c.ts, 0, 6)) +>a : Symbol(a, Decl(c.ts, 0, 16)) + +=== d.ts === +import source = require("./a"); +>source : Symbol(source, Decl(d.ts, 0, 0)) + +const a: typeof source = source; +>a : Symbol(a, Decl(d.ts, 1, 5)) +>source : Symbol(source, Decl(d.ts, 0, 0)) +>source : Symbol(source, Decl(d.ts, 0, 0)) + +=== e.ts === +const source = 1; +>source : Symbol(source, Decl(e.ts, 0, 5)) + +const a: number = source; +>a : Symbol(a, Decl(e.ts, 1, 5)) +>source : Symbol(source, Decl(e.ts, 0, 5)) + +=== g.ts === +import source from from "./f.wasm"; +>from : Symbol(from, Decl(g.ts, 0, 6)) + +const a: AbstractModuleSource = from; +>a : Symbol(a, Decl(g.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>from : Symbol(from, Decl(g.ts, 0, 6)) + +=== h.ts === +import source type from "./f.wasm"; +>type : Symbol(type, Decl(h.ts, 0, 6)) + +const a: AbstractModuleSource = type; +>a : Symbol(a, Decl(h.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>type : Symbol(type, Decl(h.ts, 0, 6)) + +=== i.ts === +import source source from "./f.wasm"; +>source : Symbol(source, Decl(i.ts, 0, 6)) + +const a: AbstractModuleSource = source; +>a : Symbol(a, Decl(i.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>source : Symbol(source, Decl(i.ts, 0, 6)) + +=== j.ts === +import +source +a +>a : Symbol(a, Decl(j.ts, 0, 6)) + +from "./f.wasm"; +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(j.ts, 4, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(j.ts, 0, 6)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource3.types b/tsc/testdata/baselines/reference/conformance/importSource3.types new file mode 100644 index 0000000000000..02c799d1bd17c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource3.types @@ -0,0 +1,80 @@ +//// [tests/cases/conformance/importSource/importSource3.ts] //// + +=== a.ts === +export default 1; +export const a = 2; +>a : 2 +>2 : 2 + +=== b.ts === +import source from "./a.js"; +>source : 1 + +const a: number = source; +>a : number +>source : 1 + +=== c.ts === +import source, { a } from "./a.js"; +>source : 1 +>a : 2 + +const b: number = source + a; +>b : number +>source + a : number +>source : 1 +>a : 2 + +=== d.ts === +import source = require("./a"); +>source : typeof source + +const a: typeof source = source; +>a : typeof source +>source : typeof source +>source : typeof source + +=== e.ts === +const source = 1; +>source : 1 +>1 : 1 + +const a: number = source; +>a : number +>source : 1 + +=== g.ts === +import source from from "./f.wasm"; +>from : AbstractModuleSource + +const a: AbstractModuleSource = from; +>a : AbstractModuleSource +>from : AbstractModuleSource + +=== h.ts === +import source type from "./f.wasm"; +>type : AbstractModuleSource + +const a: AbstractModuleSource = type; +>a : AbstractModuleSource +>type : AbstractModuleSource + +=== i.ts === +import source source from "./f.wasm"; +>source : AbstractModuleSource + +const a: AbstractModuleSource = source; +>a : AbstractModuleSource +>source : AbstractModuleSource + +=== j.ts === +import +source +a +>a : AbstractModuleSource + +from "./f.wasm"; +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + diff --git a/tsc/testdata/baselines/reference/conformance/importSource4.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource4.errors.txt new file mode 100644 index 0000000000000..3e64f632ed3ab --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource4.errors.txt @@ -0,0 +1,45 @@ +b.ts(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. +c.ts(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. +d.ts(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. +e.ts(1,8): error TS100069: A source phase import must specify a local binding. +f.ts(1,20): error TS1005: 'from' expected. +f.ts(1,20): error TS1141: String literal expected. +f.ts(1,22): error TS1005: ';' expected. +f.ts(1,22): error TS2304: Cannot find name 'from'. + + +==== a.ts (0 errors) ==== + export default 1; + export const a = 2; + +==== b.ts (1 errors) ==== + import source * as a from "./a.js"; + ~~~~~~~~~~~~~ +!!! error TS100070: Named and namespace imports are not allowed in a source phase import. + +==== c.ts (1 errors) ==== + import source { a } from "./a.js"; + ~~~~~~~~~~~~ +!!! error TS100070: Named and namespace imports are not allowed in a source phase import. + +==== d.ts (1 errors) ==== + import source a, { a as b } from "./a.js"; + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS100070: Named and namespace imports are not allowed in a source phase import. + +==== e.ts (1 errors) ==== + import source "./a.js"; + ~~~~~~ +!!! error TS100069: A source phase import must specify a local binding. + +==== f.ts (4 errors) ==== + import source type a from "./a.js"; + ~ +!!! error TS1005: 'from' expected. + ~ +!!! error TS1141: String literal expected. + ~~~~ +!!! error TS1005: ';' expected. + ~~~~ +!!! error TS2304: Cannot find name 'from'. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource4.js b/tsc/testdata/baselines/reference/conformance/importSource4.js new file mode 100644 index 0000000000000..236ebcde632d8 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource4.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/importSource/importSource4.ts] //// + +//// [a.ts] +export default 1; +export const a = 2; + +//// [b.ts] +import source * as a from "./a.js"; + +//// [c.ts] +import source { a } from "./a.js"; + +//// [d.ts] +import source a, { a as b } from "./a.js"; + +//// [e.ts] +import source "./a.js"; + +//// [f.ts] +import source type a from "./a.js"; + + +//// [a.js] +export default 1; +export const a = 2; +//// [b.js] +export {}; +//// [c.js] +export {}; +//// [d.js] +export {}; +//// [e.js] +export {}; +//// [f.js] +from; +"./a.js"; +export {}; diff --git a/tsc/testdata/baselines/reference/conformance/importSource4.symbols b/tsc/testdata/baselines/reference/conformance/importSource4.symbols new file mode 100644 index 0000000000000..dbf0aef0d7603 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource4.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/conformance/importSource/importSource4.ts] //// + +=== a.ts === +export default 1; +export const a = 2; +>a : Symbol(a, Decl(a.ts, 1, 12)) + +=== b.ts === +import source * as a from "./a.js"; +>a : Symbol(a, Decl(b.ts, 0, 13)) + +=== c.ts === +import source { a } from "./a.js"; +>a : Symbol(a, Decl(c.ts, 0, 15)) + +=== d.ts === +import source a, { a as b } from "./a.js"; +>a : Symbol(a, Decl(d.ts, 0, 6)) +>b : Symbol(b, Decl(d.ts, 0, 18)) + +=== e.ts === + +import source "./a.js"; + +=== f.ts === +import source type a from "./a.js"; +>type : Symbol(type, Decl(f.ts, 0, 6)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource4.types b/tsc/testdata/baselines/reference/conformance/importSource4.types new file mode 100644 index 0000000000000..e4713e04cc159 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource4.types @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/importSource/importSource4.ts] //// + +=== a.ts === +export default 1; +export const a = 2; +>a : 2 +>2 : 2 + +=== b.ts === +import source * as a from "./a.js"; +>a : any + +=== c.ts === +import source { a } from "./a.js"; +>a : any + +=== d.ts === +import source a, { a as b } from "./a.js"; +>a : AbstractModuleSource +>a : any +>b : any + +=== e.ts === + +import source "./a.js"; + +=== f.ts === +import source type a from "./a.js"; +>type : AbstractModuleSource +>a : any +>from : any +>"./a.js" : "./a.js" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource5.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource5.errors.txt new file mode 100644 index 0000000000000..af3cdd9c693c0 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource5.errors.txt @@ -0,0 +1,71 @@ +b.ts(1,14): error TS1005: '(' expected. +b.ts(2,15): error TS1005: '(' expected. +b.ts(3,23): error TS1005: '(' expected. +b.ts(4,14): error TS1005: '(' expected. +b.ts(6,1): message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments +b.ts(7,1): message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments +b.ts(8,14): error TS100072: Optional chaining cannot be used with 'import.source'. +b.ts(9,1): error TS1326: This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments. +b.ts(10,15): error TS1325: Argument of dynamic import cannot be spread element. +c.ts(1,5): error TS1109: Expression expected. +d.ts(1,5): error TS1109: Expression expected. +d.ts(1,29): error TS2339: Property 'a' does not exist on type 'Promise'. +e.ts(1,21): error TS1005: '(' expected. +f.ts(1,8): error TS100073: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? + + +==== a.ts (0 errors) ==== + export default 1; + +==== b.ts (9 errors) ==== + import.source; + +!!! error TS1005: '(' expected. + (import.source)("./a.js"); + +!!! error TS1005: '(' expected. + Function(import.source); + +!!! error TS1005: '(' expected. + import.source.unknown; + +!!! error TS1005: '(' expected. + + import.source(); + ~~~~~~~~~~~~~~~ +!!! message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments + import.source("./a.js", {}, {}); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments + import.source?.("./a.js"); + ~~ +!!! error TS100072: Optional chaining cannot be used with 'import.source'. + import.source("./a.js"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1326: This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments. + import.source(...["./a.js"]); + ~~~~~~~~~~~~~ +!!! error TS1325: Argument of dynamic import cannot be spread element. + +==== c.ts (1 errors) ==== + new import.source("./a.js"); + ~~~~~~ +!!! error TS1109: Expression expected. + +==== d.ts (2 errors) ==== + new import.source("./a.js").a; + ~~~~~~ +!!! error TS1109: Expression expected. + ~ +!!! error TS2339: Property 'a' does not exist on type 'Promise'. + +==== e.ts (1 errors) ==== + typeof import.source; + +!!! error TS1005: '(' expected. + +==== f.ts (1 errors) ==== + import.a("./a.js"); + ~ +!!! error TS100073: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource5.js b/tsc/testdata/baselines/reference/conformance/importSource5.js new file mode 100644 index 0000000000000..2a4cb481a388d --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource5.js @@ -0,0 +1,57 @@ +//// [tests/cases/conformance/importSource/importSource5.ts] //// + +//// [a.ts] +export default 1; + +//// [b.ts] +import.source; +(import.source)("./a.js"); +Function(import.source); +import.source.unknown; + +import.source(); +import.source("./a.js", {}, {}); +import.source?.("./a.js"); +import.source("./a.js"); +import.source(...["./a.js"]); + +//// [c.ts] +new import.source("./a.js"); + +//// [d.ts] +new import.source("./a.js").a; + +//// [e.ts] +typeof import.source; + +//// [f.ts] +import.a("./a.js"); + + +//// [a.js] +export default 1; +//// [b.js] +"use strict"; +import.source; +(import.source)("./a.js"); +Function(import.source); +import.source.unknown; +import.source(); +import.source("./a.js", {}, {}); +import.source?.("./a.js"); +import.source("./a.js"); +import.source(...["./a.js"]); +//// [c.js] +"use strict"; +new ; +import.source("./a.js"); +//// [d.js] +"use strict"; +new ; +import.source("./a.js").a; +//// [e.js] +"use strict"; +typeof import.source; +//// [f.js] +"use strict"; +import.a("./a.js"); diff --git a/tsc/testdata/baselines/reference/conformance/importSource5.symbols b/tsc/testdata/baselines/reference/conformance/importSource5.symbols new file mode 100644 index 0000000000000..310e69196d322 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource5.symbols @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/importSource/importSource5.ts] //// + +=== a.ts === + +export default 1; + +=== b.ts === +import.source; +(import.source)("./a.js"); +Function(import.source); +>Function : Symbol(Function, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.esnext.decorators.d.ts, --, --)) + +import.source.unknown; + +import.source(); +import.source("./a.js", {}, {}); +import.source?.("./a.js"); +import.source("./a.js"); +import.source(...["./a.js"]); + +=== c.ts === + +new import.source("./a.js"); + +=== d.ts === + +new import.source("./a.js").a; + +=== e.ts === + +typeof import.source; + +=== f.ts === + +import.a("./a.js"); + diff --git a/tsc/testdata/baselines/reference/conformance/importSource5.types b/tsc/testdata/baselines/reference/conformance/importSource5.types new file mode 100644 index 0000000000000..e8654b6742dcb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource5.types @@ -0,0 +1,89 @@ +//// [tests/cases/conformance/importSource/importSource5.ts] //// + +=== a.ts === + +export default 1; + +=== b.ts === +import.source; +>import.source : any +>source : any + +(import.source)("./a.js"); +>(import.source)("./a.js") : any +>(import.source) : any +>import.source : any +>source : any +>"./a.js" : "./a.js" + +Function(import.source); +>Function(import.source) : Function +>Function : FunctionConstructor +>import.source : any +>source : any + +import.source.unknown; +>import.source.unknown : any +>import.source : any +>source : any +>unknown : any + +import.source(); +>import.source() : Promise +>source : any + +import.source("./a.js", {}, {}); +>import.source("./a.js", {}, {}) : Promise +>source : any +>"./a.js" : "./a.js" +>{} : {} +>{} : {} + +import.source?.("./a.js"); +>import.source?.("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" + +import.source("./a.js"); +>import.source("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" + +import.source(...["./a.js"]); +>import.source(...["./a.js"]) : Promise +>source : any +>...["./a.js"] : string +>["./a.js"] : [string] +>"./a.js" : "./a.js" + +=== c.ts === +new import.source("./a.js"); +>new : any +> : any +>import.source("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" + +=== d.ts === +new import.source("./a.js").a; +>new : any +> : any +>import.source("./a.js").a : any +>import.source("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" +>a : any + +=== e.ts === +typeof import.source; +>typeof import.source : "bigint" | "boolean" | "function" | "number" | "object" | "string" | "symbol" | "undefined" +>import.source : any +>source : any + +=== f.ts === +import.a("./a.js"); +>import.a("./a.js") : any +>import.a : any +>a : any +>"./a.js" : "./a.js" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource6.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource6.errors.txt new file mode 100644 index 0000000000000..eb18218584660 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource6.errors.txt @@ -0,0 +1,15 @@ +b.ts(1,8): error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +b.ts(2,11): error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. + + +==== a.ts (0 errors) ==== + export default 1; + +==== b.ts (2 errors) ==== + import source a from "./a.js"; + ~~~~~~~~ +!!! error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. + const b = import.source("./a.js"); + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource6.js b/tsc/testdata/baselines/reference/conformance/importSource6.js new file mode 100644 index 0000000000000..b8fc0906bed90 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource6.js @@ -0,0 +1,18 @@ +//// [tests/cases/conformance/importSource/importSource6.ts] //// + +//// [a.ts] +export default 1; + +//// [b.ts] +import source a from "./a.js"; +const b = import.source("./a.js"); + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = 1; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const b = import.source("./a.js"); diff --git a/tsc/testdata/baselines/reference/conformance/importSource6.symbols b/tsc/testdata/baselines/reference/conformance/importSource6.symbols new file mode 100644 index 0000000000000..00c36944f79c5 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource6.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/importSource/importSource6.ts] //// + +=== a.ts === + +export default 1; + +=== b.ts === +import source a from "./a.js"; +>a : Symbol(a, Decl(b.ts, 0, 6)) + +const b = import.source("./a.js"); +>b : Symbol(b, Decl(b.ts, 1, 5)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource6.types b/tsc/testdata/baselines/reference/conformance/importSource6.types new file mode 100644 index 0000000000000..84cca88c0a85a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource6.types @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/importSource/importSource6.ts] //// + +=== a.ts === + +export default 1; + +=== b.ts === +import source a from "./a.js"; +>a : AbstractModuleSource + +const b = import.source("./a.js"); +>b : Promise +>import.source("./a.js") : Promise +>source : any +>"./a.js" : "./a.js" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource7.js b/tsc/testdata/baselines/reference/conformance/importSource7.js new file mode 100644 index 0000000000000..3daa37201cc24 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource7.js @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/importSource/importSource7.ts] //// + +//// [a.d.wasm.ts] +export const a: number; + +//// [b.ts] +import { a } from "./a.wasm"; +import source b from "./a.wasm"; + +const c: number = a; +const d: AbstractModuleSource = b; +const e: Promise = import.source("./a.wasm"); + + +//// [b.js] +import { a } from "./a.wasm"; +import source b from "./a.wasm"; +const c = a; +const d = b; +const e = import.source("./a.wasm"); diff --git a/tsc/testdata/baselines/reference/conformance/importSource7.symbols b/tsc/testdata/baselines/reference/conformance/importSource7.symbols new file mode 100644 index 0000000000000..d3ad92e68b126 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource7.symbols @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/importSource/importSource7.ts] //// + +=== a.d.wasm.ts === +export const a: number; +>a : Symbol(a, Decl(a.d.wasm.ts, 0, 12)) + +=== b.ts === +import { a } from "./a.wasm"; +>a : Symbol(a, Decl(b.ts, 0, 8)) + +import source b from "./a.wasm"; +>b : Symbol(b, Decl(b.ts, 1, 6)) + +const c: number = a; +>c : Symbol(c, Decl(b.ts, 3, 5)) +>a : Symbol(a, Decl(b.ts, 0, 8)) + +const d: AbstractModuleSource = b; +>d : Symbol(d, Decl(b.ts, 4, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>b : Symbol(b, Decl(b.ts, 1, 6)) + +const e: Promise = import.source("./a.wasm"); +>e : Symbol(e, Decl(b.ts, 5, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource7.types b/tsc/testdata/baselines/reference/conformance/importSource7.types new file mode 100644 index 0000000000000..db838a68b0a7e --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource7.types @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/importSource/importSource7.ts] //// + +=== a.d.wasm.ts === +export const a: number; +>a : number + +=== b.ts === +import { a } from "./a.wasm"; +>a : number + +import source b from "./a.wasm"; +>b : AbstractModuleSource + +const c: number = a; +>c : number +>a : number + +const d: AbstractModuleSource = b; +>d : AbstractModuleSource +>b : AbstractModuleSource + +const e: Promise = import.source("./a.wasm"); +>e : Promise +>import.source("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource8.js b/tsc/testdata/baselines/reference/conformance/importSource8.js new file mode 100644 index 0000000000000..054842d4f3972 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource8.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/importSource/importSource8.ts] //// + +//// [b.ts] +/*comment a*/ import /*comment b*/ source /*comment c*/ a /*comment d*/ from /*comment e*/ "./a.wasm" /*comment f*/ with /*comment g*/ { type: "webassembly" } /*comment h*/; +const b = a; +const c = import /*comment i*/ . /*comment j*/ source /*comment k*/ ("./a.wasm"); + + +//// [b.js] +/*comment a*/ import /*comment b*/ source /*comment c*/ a /*comment d*/ from /*comment e*/ "./a.wasm" /*comment f*/ with /*comment g*/ { type: "webassembly" } /*comment h*/; +const b = a; +const c = import /*comment i*/. /*comment j*/source /*comment k*/("./a.wasm"); diff --git a/tsc/testdata/baselines/reference/conformance/importSource8.symbols b/tsc/testdata/baselines/reference/conformance/importSource8.symbols new file mode 100644 index 0000000000000..b8ae213ec303e --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource8.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/importSource/importSource8.ts] //// + +=== b.ts === +/*comment a*/ import /*comment b*/ source /*comment c*/ a /*comment d*/ from /*comment e*/ "./a.wasm" /*comment f*/ with /*comment g*/ { type: "webassembly" } /*comment h*/; +>a : Symbol(a, Decl(b.ts, 0, 20)) + +const b = a; +>b : Symbol(b, Decl(b.ts, 1, 5)) +>a : Symbol(a, Decl(b.ts, 0, 20)) + +const c = import /*comment i*/ . /*comment j*/ source /*comment k*/ ("./a.wasm"); +>c : Symbol(c, Decl(b.ts, 2, 5)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource8.types b/tsc/testdata/baselines/reference/conformance/importSource8.types new file mode 100644 index 0000000000000..499590e1dcbbd --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource8.types @@ -0,0 +1,17 @@ +//// [tests/cases/conformance/importSource/importSource8.ts] //// + +=== b.ts === +/*comment a*/ import /*comment b*/ source /*comment c*/ a /*comment d*/ from /*comment e*/ "./a.wasm" /*comment f*/ with /*comment g*/ { type: "webassembly" } /*comment h*/; +>a : AbstractModuleSource +>type : error + +const b = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + +const c = import /*comment i*/ . /*comment j*/ source /*comment k*/ ("./a.wasm"); +>c : Promise +>import /*comment i*/ . /*comment j*/ source /*comment k*/ ("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + diff --git a/tsc/testdata/baselines/reference/conformance/importSource9.js b/tsc/testdata/baselines/reference/conformance/importSource9.js new file mode 100644 index 0000000000000..f681f9e2264fc --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource9.js @@ -0,0 +1,44 @@ +//// [tests/cases/conformance/importSource/importSource9.ts] //// + +//// [b.ts] +import source a from "./a.wasm"; +export { a }; + +//// [c.ts] +import { a } from "./b.js"; +const b: AbstractModuleSource = a; + +//// [d.ts] +import * as a from "./b.js"; +const b: AbstractModuleSource = a.a; + +//// [e.ts] +import source a from "./a.wasm"; +export type B = typeof a; +export const b = import.source("./a.wasm"); + + +//// [b.js] +import source a from "./a.wasm"; +export { a }; +//// [c.js] +import { a } from "./b.js"; +const b = a; +//// [d.js] +import * as a from "./b.js"; +const b = a.a; +//// [e.js] +export const b = import.source("./a.wasm"); + + +//// [b.d.ts] +import source a from "./a.wasm"; +export { a }; +//// [c.d.ts] +export {}; +//// [d.d.ts] +export {}; +//// [e.d.ts] +import source a from "./a.wasm"; +export type B = typeof a; +export declare const b: Promise; diff --git a/tsc/testdata/baselines/reference/conformance/importSource9.symbols b/tsc/testdata/baselines/reference/conformance/importSource9.symbols new file mode 100644 index 0000000000000..68a94da4e0e29 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource9.symbols @@ -0,0 +1,40 @@ +//// [tests/cases/conformance/importSource/importSource9.ts] //// + +=== b.ts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(b.ts, 0, 6)) + +export { a }; +>a : Symbol(a, Decl(b.ts, 1, 8)) + +=== c.ts === +import { a } from "./b.js"; +>a : Symbol(a, Decl(c.ts, 0, 8)) + +const b: AbstractModuleSource = a; +>b : Symbol(b, Decl(c.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a : Symbol(a, Decl(c.ts, 0, 8)) + +=== d.ts === +import * as a from "./b.js"; +>a : Symbol(a, Decl(d.ts, 0, 6)) + +const b: AbstractModuleSource = a.a; +>b : Symbol(b, Decl(d.ts, 1, 5)) +>AbstractModuleSource : Symbol(AbstractModuleSource, Decl(lib.esnext.modulesource.d.ts, --, --)) +>a.a : Symbol(a.a, Decl(b.ts, 1, 8)) +>a : Symbol(a, Decl(d.ts, 0, 6)) +>a : Symbol(a.a, Decl(b.ts, 1, 8)) + +=== e.ts === +import source a from "./a.wasm"; +>a : Symbol(a, Decl(e.ts, 0, 6)) + +export type B = typeof a; +>B : Symbol(B, Decl(e.ts, 0, 32)) +>a : Symbol(a, Decl(e.ts, 0, 6)) + +export const b = import.source("./a.wasm"); +>b : Symbol(b, Decl(e.ts, 2, 12)) + diff --git a/tsc/testdata/baselines/reference/conformance/importSource9.types b/tsc/testdata/baselines/reference/conformance/importSource9.types new file mode 100644 index 0000000000000..040f188c64190 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importSource9.types @@ -0,0 +1,41 @@ +//// [tests/cases/conformance/importSource/importSource9.ts] //// + +=== b.ts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +export { a }; +>a : AbstractModuleSource + +=== c.ts === +import { a } from "./b.js"; +>a : AbstractModuleSource + +const b: AbstractModuleSource = a; +>b : AbstractModuleSource +>a : AbstractModuleSource + +=== d.ts === +import * as a from "./b.js"; +>a : typeof a + +const b: AbstractModuleSource = a.a; +>b : AbstractModuleSource +>a.a : AbstractModuleSource +>a : typeof a +>a : AbstractModuleSource + +=== e.ts === +import source a from "./a.wasm"; +>a : AbstractModuleSource + +export type B = typeof a; +>B : AbstractModuleSource +>a : AbstractModuleSource + +export const b = import.source("./a.wasm"); +>b : Promise +>import.source("./a.wasm") : Promise +>source : any +>"./a.wasm" : "./a.wasm" + diff --git a/tsc/testdata/baselines/reference/fourslash/findAllReferences/goToDefinition_sourcePhase.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/findAllReferences/goToDefinition_sourcePhase.baseline.jsonc new file mode 100644 index 0000000000000..91a7d391041e1 --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/findAllReferences/goToDefinition_sourcePhase.baseline.jsonc @@ -0,0 +1,29 @@ +// === findAllReferences === +// === /b.ts === +// import source [|b|] from "./a.wasm"; +// /*FIND ALL REFS*/[|b|]; +// export { [|b|] }; +// + +// === /d.ts === +// import { [|b|] as [|d|] } from "./b"; +// [|d|]; +// + +// === /e.ts === +// export { [|b|] as [|e|] } from "./b"; +// + +// === /f.ts === +// import { [|e|] as [|f|] } from "./e"; +// [|f|]; +// import * as ns from "./e"; +// ns.[|e|]; + + + +// === findAllReferences === +// === /c.ts === +// import source [|c|] from "./a.wasm"; +// /*FIND ALL REFS*/[|c|]; +// \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/fourslash/findAllReferences/referencesImportSource.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/findAllReferences/referencesImportSource.baseline.jsonc new file mode 100644 index 0000000000000..0ee3c92c1e9b0 --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/findAllReferences/referencesImportSource.baseline.jsonc @@ -0,0 +1,75 @@ +// === findAllReferences === +// === /a.d.ts === +// declare module "m" { +// export default function /*FIND ALL REFS*/[|f|](): void; +// } +// + +// === /b.ts === +// import [|f|] from "m"; +// [|f|](); +// + + + +// === findAllReferences === +// === /a.d.ts === +// declare module "m" { +// export default function [|f|](): void; +// } +// + +// === /b.ts === +// import /*FIND ALL REFS*/[|f|] from "m"; +// [|f|](); +// + + + +// === findAllReferences === +// === /c.ts === +// import source /*FIND ALL REFS*/[|f|] from "m"; +// [|f|]; +// export { [|f|] }; +// + +// === /d.ts === +// import { [|f|] } from "./c"; +// [|f|]; +// + + + +// === findAllReferences === +// === /c.ts === +// import source [|f|] from "m"; +// /*FIND ALL REFS*/[|f|]; +// export { [|f|] }; +// + +// === /d.ts === +// import { [|f|] } from "./c"; +// [|f|]; +// + + + +// === findAllReferences === +// === /c.ts === +// import source [|f|] from "m"; +// [|f|]; +// export { [|f|] }; +// + +// === /d.ts === +// import { /*FIND ALL REFS*/[|f|] } from "./c"; +// [|f|]; +// + + + +// === findAllReferences === +// === /e.ts === +// import source /*FIND ALL REFS*/[|g|] from "m"; +// [|g|]; +// import.source("m"); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/fourslash/findAllReferences/referencesImportSource2.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/findAllReferences/referencesImportSource2.baseline.jsonc new file mode 100644 index 0000000000000..272f9008094f4 --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/findAllReferences/referencesImportSource2.baseline.jsonc @@ -0,0 +1,42 @@ +// === findAllReferences === +// === /a.js === +// export default function /*FIND ALL REFS*/[|f|]() {} +// + +// === /b.ts === +// import [|f|] from "./a.js"; +// [|f|](); +// + + + +// === findAllReferences === +// === /a.js === +// export default function [|f|]() {} +// + +// === /b.ts === +// import /*FIND ALL REFS*/[|f|] from "./a.js"; +// [|f|](); +// + + + +// === findAllReferences === +// === /c.ts === +// import source /*FIND ALL REFS*/[|f|] from "./a.js"; +// [|f|]; +// import.source("./a.js"); + + + +// === findAllReferences === +// === /b.ts === +// import f from "[|./a.js|]"; +// f(); +// + +// === /c.ts === +// import source f from "/*FIND ALL REFS*/[|./a.js|]"; +// f; +// import.source("[|./a.js|]"); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/fourslash/findRenameLocations/referencesImportSource.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/findRenameLocations/referencesImportSource.baseline.jsonc new file mode 100644 index 0000000000000..85f8dcceeb437 --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/findRenameLocations/referencesImportSource.baseline.jsonc @@ -0,0 +1,53 @@ +// === findRenameLocations === +// === /a.d.ts === +// declare module "m" { +// export default function /*RENAME*/[|fRENAME|](): void; +// } +// + +// === /b.ts === +// import [|fRENAME|] from "m"; +// [|fRENAME|](); +// + + + +// === findRenameLocations === +// === /b.ts === +// import /*RENAME*/[|fRENAME|] from "m"; +// [|fRENAME|](); +// + + + +// === findRenameLocations === +// === /c.ts === +// import source /*RENAME*/[|fRENAME|] from "m"; +// [|fRENAME|]; +// export { [|fRENAME|] as f/*END SUFFIX*/ }; +// + + + +// === findRenameLocations === +// === /c.ts === +// import source [|fRENAME|] from "m"; +// /*RENAME*/[|fRENAME|]; +// export { [|fRENAME|] as f/*END SUFFIX*/ }; +// + + + +// === findRenameLocations === +// === /d.ts === +// import { /*START PREFIX*/f as /*RENAME*/[|fRENAME|] } from "./c"; +// [|fRENAME|]; +// + + + +// === findRenameLocations === +// === /e.ts === +// import source /*RENAME*/[|gRENAME|] from "m"; +// [|gRENAME|]; +// import.source("m"); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/fourslash/findRenameLocations/referencesImportSource2.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/findRenameLocations/referencesImportSource2.baseline.jsonc new file mode 100644 index 0000000000000..1ca0cf9188c08 --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/findRenameLocations/referencesImportSource2.baseline.jsonc @@ -0,0 +1,25 @@ +// === findRenameLocations === +// === /a.js === +// export default function /*RENAME*/[|fRENAME|]() {} +// + +// === /b.ts === +// import [|fRENAME|] from "./a.js"; +// [|fRENAME|](); +// + + + +// === findRenameLocations === +// === /b.ts === +// import /*RENAME*/[|fRENAME|] from "./a.js"; +// [|fRENAME|](); +// + + + +// === findRenameLocations === +// === /c.ts === +// import source /*RENAME*/[|fRENAME|] from "./a.js"; +// [|fRENAME|]; +// import.source("./a.js"); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/fourslash/goToDefinition/goToDefinition_sourcePhase.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/goToDefinition/goToDefinition_sourcePhase.baseline.jsonc new file mode 100644 index 0000000000000..1a90f20eaa537 --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/goToDefinition/goToDefinition_sourcePhase.baseline.jsonc @@ -0,0 +1,85 @@ +// === goToDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// /*GOTO DEF*/b; +// export { b }; +// + + + +// === goToDefinition === +// === /c.ts === +// <|import source [|c|] from "./a.wasm";|> +// /*GOTO DEF*/c; +// + + + +// === goToDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// export { b }; +// + +// === /d.ts === +// import { /*GOTO DEF*/[|b|] as d } from "./b"; +// d; +// + + + +// === goToDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// export { b }; +// + +// === /d.ts === +// import { b as d } from "./b"; +// /*GOTO DEF*/[|d|]; +// + + + +// === goToDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// export { b }; +// + +// === /e.ts === +// export { b as /*GOTO DEF*/[|e|] } from "./b"; +// + + + +// === goToDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// export { b }; +// + +// === /f.ts === +// import { e as f } from "./e"; +// /*GOTO DEF*/[|f|]; +// import * as ns from "./e"; +// ns.e; + + + +// === goToDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// export { b }; +// + +// === /f.ts === +// import { e as f } from "./e"; +// f; +// import * as ns from "./e"; +// ns./*GOTO DEF*/[|e|]; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/fourslash/goToDefinition/goToSourceDefinitionImportSource.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/goToDefinition/goToSourceDefinitionImportSource.baseline.jsonc new file mode 100644 index 0000000000000..064ae39606564 --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/goToDefinition/goToSourceDefinitionImportSource.baseline.jsonc @@ -0,0 +1,113 @@ +// === goToDefinition === +// === /a.js === +// const x = 1; +// <|export default function [|f|]() {}|> +// const g = 2; +// + +// === /b.ts === +// import /*GOTO DEF*/[|f|] from "./a.js"; +// f(); +// import source g from "./a.js"; +// g; +// --- (line: 5) skipped --- + + + +// === goToDefinition === +// === /a.js === +// const x = 1; +// <|export default function [|f|]() {}|> +// const g = 2; +// + +// === /b.ts === +// import f from "./a.js"; +// /*GOTO DEF*/[|f|](); +// import source g from "./a.js"; +// g; +// import source h from "./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// <|import source /*GOTO DEF*/[|g|] from "./a.js";|> +// g; +// import source h from "./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// <|import source [|g|] from "./a.js";|> +// /*GOTO DEF*/g; +// import source h from "./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// import source g from "./a.js"; +// g; +// <|import source /*GOTO DEF*/[|h|] from "./a.wasm";|> +// h; +// import.source("./a.js"); + + + +// === goToDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// import source g from "./a.js"; +// g; +// <|import source [|h|] from "./a.wasm";|> +// /*GOTO DEF*/h; +// import.source("./a.js"); + + + +// === goToDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// import source g from "/*GOTO DEF*/./a.js"; +// g; +// import source h from "./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// import source g from "./a.js"; +// g; +// import source h from "/*GOTO DEF*/./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToDefinition === +// === /b.ts === +// --- (line: 3) skipped --- +// g; +// import source h from "./a.wasm"; +// h; +// import.source("/*GOTO DEF*/./a.js"); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/fourslash/goToSourceDefinition/goToDefinition_sourcePhase.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/goToSourceDefinition/goToDefinition_sourcePhase.baseline.jsonc new file mode 100644 index 0000000000000..e1e0d1822c7fa --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/goToSourceDefinition/goToDefinition_sourcePhase.baseline.jsonc @@ -0,0 +1,85 @@ +// === goToSourceDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// /*GOTO SOURCE DEF*/b; +// export { b }; +// + + + +// === goToSourceDefinition === +// === /c.ts === +// <|import source [|c|] from "./a.wasm";|> +// /*GOTO SOURCE DEF*/c; +// + + + +// === goToSourceDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// <|export { [|b|] };|> +// + +// === /d.ts === +// import { /*GOTO SOURCE DEF*/b as d } from "./b"; +// d; +// + + + +// === goToSourceDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// export { b }; +// + +// === /d.ts === +// import { b as d } from "./b"; +// /*GOTO SOURCE DEF*/d; +// + + + +// === goToSourceDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// <|export { [|b|] };|> +// + +// === /e.ts === +// export { b as /*GOTO SOURCE DEF*/e } from "./b"; +// + + + +// === goToSourceDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// export { b }; +// + +// === /f.ts === +// import { e as f } from "./e"; +// /*GOTO SOURCE DEF*/f; +// import * as ns from "./e"; +// ns.e; + + + +// === goToSourceDefinition === +// === /b.ts === +// <|import source [|b|] from "./a.wasm";|> +// b; +// export { b }; +// + +// === /f.ts === +// import { e as f } from "./e"; +// f; +// import * as ns from "./e"; +// ns./*GOTO SOURCE DEF*/e; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/fourslash/goToSourceDefinition/goToSourceDefinitionImportSource.baseline.jsonc b/tsc/testdata/baselines/reference/fourslash/goToSourceDefinition/goToSourceDefinitionImportSource.baseline.jsonc new file mode 100644 index 0000000000000..6c33a38020aed --- /dev/null +++ b/tsc/testdata/baselines/reference/fourslash/goToSourceDefinition/goToSourceDefinitionImportSource.baseline.jsonc @@ -0,0 +1,113 @@ +// === goToSourceDefinition === +// === /a.js === +// const x = 1; +// <|export default function [|f|]() {}|> +// const g = 2; +// + +// === /b.ts === +// import /*GOTO SOURCE DEF*/f from "./a.js"; +// f(); +// import source g from "./a.js"; +// g; +// --- (line: 5) skipped --- + + + +// === goToSourceDefinition === +// === /a.js === +// const x = 1; +// <|export default function [|f|]() {}|> +// const g = 2; +// + +// === /b.ts === +// import f from "./a.js"; +// /*GOTO SOURCE DEF*/f(); +// import source g from "./a.js"; +// g; +// import source h from "./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToSourceDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// <|import source /*GOTO SOURCE DEF*/[|g|] from "./a.js";|> +// g; +// import source h from "./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToSourceDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// <|import source [|g|] from "./a.js";|> +// /*GOTO SOURCE DEF*/g; +// import source h from "./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToSourceDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// import source g from "./a.js"; +// g; +// <|import source /*GOTO SOURCE DEF*/[|h|] from "./a.wasm";|> +// h; +// import.source("./a.js"); + + + +// === goToSourceDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// import source g from "./a.js"; +// g; +// <|import source [|h|] from "./a.wasm";|> +// /*GOTO SOURCE DEF*/h; +// import.source("./a.js"); + + + +// === goToSourceDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// import source g from "/*GOTO SOURCE DEF*/./a.js"; +// g; +// import source h from "./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToSourceDefinition === +// === /b.ts === +// import f from "./a.js"; +// f(); +// import source g from "./a.js"; +// g; +// import source h from "/*GOTO SOURCE DEF*/./a.wasm"; +// h; +// import.source("./a.js"); + + + +// === goToSourceDefinition === +// === /b.ts === +// --- (line: 3) skipped --- +// g; +// import source h from "./a.wasm"; +// h; +// import.source("/*GOTO SOURCE DEF*/./a.js"); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/tsc/commandLine/Initialized-TSConfig-with-incorrect-compiler-option-value.js b/tsc/testdata/baselines/reference/tsc/commandLine/Initialized-TSConfig-with-incorrect-compiler-option-value.js index f5a1e10f07f27..c508d79b47259 100644 --- a/tsc/testdata/baselines/reference/tsc/commandLine/Initialized-TSConfig-with-incorrect-compiler-option-value.js +++ b/tsc/testdata/baselines/reference/tsc/commandLine/Initialized-TSConfig-with-incorrect-compiler-option-value.js @@ -5,5 +5,5 @@ Input:: tsgo --init --lib nonExistLib,es5,es2015.promise ExitStatus:: DiagnosticsPresent_OutputsSkipped Output:: -error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'es2026', 'esnext', 'dom', 'dom.iterable', 'dom.asynciterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'webworker.asynciterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2016.intl', 'es2017.arraybuffer', 'es2017.date', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.string', 'es2022.regexp', 'es2023.array', 'es2023.collection', 'es2023.intl', 'es2024.arraybuffer', 'es2024.collection', 'es2024.object', 'es2024.promise', 'es2024.regexp', 'es2024.sharedmemory', 'es2024.string', 'es2025.collection', 'es2025.float16', 'es2025.intl', 'es2025.iterator', 'es2025.promise', 'es2025.regexp', 'es2026.array', 'es2026.collection', 'es2026.error', 'es2026.iterator', 'es2026.json', 'es2026.math', 'es2026.typedarrays', 'esnext.asynciterable', 'esnext.symbol', 'esnext.bigint', 'esnext.weakref', 'esnext.object', 'esnext.regexp', 'esnext.string', 'esnext.float16', 'esnext.promise', 'esnext.array', 'esnext.collection', 'esnext.error', 'esnext.iterator', 'esnext.typedarrays', 'esnext.date', 'esnext.decorators', 'esnext.disposable', 'esnext.intl', 'esnext.sharedmemory', 'esnext.temporal', 'decorators', 'decorators.legacy'. +error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'es2026', 'esnext', 'dom', 'dom.iterable', 'dom.asynciterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'webworker.asynciterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2016.intl', 'es2017.arraybuffer', 'es2017.date', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.string', 'es2022.regexp', 'es2023.array', 'es2023.collection', 'es2023.intl', 'es2024.arraybuffer', 'es2024.collection', 'es2024.object', 'es2024.promise', 'es2024.regexp', 'es2024.sharedmemory', 'es2024.string', 'es2025.collection', 'es2025.float16', 'es2025.intl', 'es2025.iterator', 'es2025.promise', 'es2025.regexp', 'es2026.array', 'es2026.collection', 'es2026.error', 'es2026.iterator', 'es2026.json', 'es2026.math', 'es2026.typedarrays', 'esnext.asynciterable', 'esnext.symbol', 'esnext.bigint', 'esnext.weakref', 'esnext.object', 'esnext.regexp', 'esnext.string', 'esnext.float16', 'esnext.promise', 'esnext.array', 'esnext.collection', 'esnext.error', 'esnext.iterator', 'esnext.typedarrays', 'esnext.date', 'esnext.decorators', 'esnext.disposable', 'esnext.intl', 'esnext.modulesource', 'esnext.sharedmemory', 'esnext.temporal', 'decorators', 'decorators.legacy'. diff --git a/tsc/testdata/baselines/reference/tsc/commandLine/help-all.js b/tsc/testdata/baselines/reference/tsc/commandLine/help-all.js index 0f8c8968531f5..1d05d8d9e708b 100644 --- a/tsc/testdata/baselines/reference/tsc/commandLine/help-all.js +++ b/tsc/testdata/baselines/reference/tsc/commandLine/help-all.js @@ -545,7 +545,7 @@ default: react --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.modulesource, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy default: undefined --libReplacement diff --git a/tsc/testdata/baselines/reference/tsc/commandLine/help.js b/tsc/testdata/baselines/reference/tsc/commandLine/help.js index 8cd90c2355f72..663fb2945d5d6 100644 --- a/tsc/testdata/baselines/reference/tsc/commandLine/help.js +++ b/tsc/testdata/baselines/reference/tsc/commandLine/help.js @@ -104,7 +104,7 @@ default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.modulesource, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy default: undefined --allowJs diff --git a/tsc/testdata/baselines/reference/tsc/commandLine/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-cannot-provide-terminal-width.js b/tsc/testdata/baselines/reference/tsc/commandLine/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-cannot-provide-terminal-width.js index e0faa27cb2ce5..186b4d6e00f99 100644 --- a/tsc/testdata/baselines/reference/tsc/commandLine/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-cannot-provide-terminal-width.js +++ b/tsc/testdata/baselines/reference/tsc/commandLine/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-cannot-provide-terminal-width.js @@ -105,7 +105,7 @@ default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.modulesource, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy default: undefined --allowJs diff --git a/tsc/testdata/baselines/reference/tsc/commandLine/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js b/tsc/testdata/baselines/reference/tsc/commandLine/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js index 05adf8a8cc0c2..5171078d313d8 100644 --- a/tsc/testdata/baselines/reference/tsc/commandLine/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js +++ b/tsc/testdata/baselines/reference/tsc/commandLine/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js @@ -141,8 +141,8 @@ tsc: The TypeScript Compiler - Version FakeTSVersion s2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026 .collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es20 26.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, es - next.disposable, esnext.intl, esnext.sharedmemory, esnext.temporal, decorators, decorators.lega - cy + next.disposable, esnext.intl, esnext.modulesource, esnext.sharedmemory, esnext.temporal, decora + tors, decorators.legacy default: undefined diff --git a/tsc/testdata/baselines/reference/tsc/ignoreConfig/without-any-options-when-config-file-absent-with---ignoreConfig.js b/tsc/testdata/baselines/reference/tsc/ignoreConfig/without-any-options-when-config-file-absent-with---ignoreConfig.js index 45c2bef3510c3..fa7e27215986a 100644 --- a/tsc/testdata/baselines/reference/tsc/ignoreConfig/without-any-options-when-config-file-absent-with---ignoreConfig.js +++ b/tsc/testdata/baselines/reference/tsc/ignoreConfig/without-any-options-when-config-file-absent-with---ignoreConfig.js @@ -111,7 +111,7 @@ default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.modulesource, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy default: undefined --allowJs diff --git a/tsc/testdata/baselines/reference/tsc/ignoreConfig/without-any-options-when-config-file-absent.js b/tsc/testdata/baselines/reference/tsc/ignoreConfig/without-any-options-when-config-file-absent.js index 10596132ea29a..7f872bd65bd36 100644 --- a/tsc/testdata/baselines/reference/tsc/ignoreConfig/without-any-options-when-config-file-absent.js +++ b/tsc/testdata/baselines/reference/tsc/ignoreConfig/without-any-options-when-config-file-absent.js @@ -111,7 +111,7 @@ default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.modulesource, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy default: undefined --allowJs diff --git a/tsc/testdata/baselines/reference/tsc/showConfig/Show-TSConfig-with-incorrect-compiler-option-value.js b/tsc/testdata/baselines/reference/tsc/showConfig/Show-TSConfig-with-incorrect-compiler-option-value.js index a4260eca0f6b1..4475ef19f148f 100644 --- a/tsc/testdata/baselines/reference/tsc/showConfig/Show-TSConfig-with-incorrect-compiler-option-value.js +++ b/tsc/testdata/baselines/reference/tsc/showConfig/Show-TSConfig-with-incorrect-compiler-option-value.js @@ -5,5 +5,5 @@ Input:: tsgo --showConfig --lib nonExistLib,es5,es2015.promise ExitStatus:: DiagnosticsPresent_OutputsSkipped Output:: -error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'es2026', 'esnext', 'dom', 'dom.iterable', 'dom.asynciterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'webworker.asynciterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2016.intl', 'es2017.arraybuffer', 'es2017.date', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.string', 'es2022.regexp', 'es2023.array', 'es2023.collection', 'es2023.intl', 'es2024.arraybuffer', 'es2024.collection', 'es2024.object', 'es2024.promise', 'es2024.regexp', 'es2024.sharedmemory', 'es2024.string', 'es2025.collection', 'es2025.float16', 'es2025.intl', 'es2025.iterator', 'es2025.promise', 'es2025.regexp', 'es2026.array', 'es2026.collection', 'es2026.error', 'es2026.iterator', 'es2026.json', 'es2026.math', 'es2026.typedarrays', 'esnext.asynciterable', 'esnext.symbol', 'esnext.bigint', 'esnext.weakref', 'esnext.object', 'esnext.regexp', 'esnext.string', 'esnext.float16', 'esnext.promise', 'esnext.array', 'esnext.collection', 'esnext.error', 'esnext.iterator', 'esnext.typedarrays', 'esnext.date', 'esnext.decorators', 'esnext.disposable', 'esnext.intl', 'esnext.sharedmemory', 'esnext.temporal', 'decorators', 'decorators.legacy'. +error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'es2026', 'esnext', 'dom', 'dom.iterable', 'dom.asynciterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'webworker.asynciterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2016.intl', 'es2017.arraybuffer', 'es2017.date', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.string', 'es2022.regexp', 'es2023.array', 'es2023.collection', 'es2023.intl', 'es2024.arraybuffer', 'es2024.collection', 'es2024.object', 'es2024.promise', 'es2024.regexp', 'es2024.sharedmemory', 'es2024.string', 'es2025.collection', 'es2025.float16', 'es2025.intl', 'es2025.iterator', 'es2025.promise', 'es2025.regexp', 'es2026.array', 'es2026.collection', 'es2026.error', 'es2026.iterator', 'es2026.json', 'es2026.math', 'es2026.typedarrays', 'esnext.asynciterable', 'esnext.symbol', 'esnext.bigint', 'esnext.weakref', 'esnext.object', 'esnext.regexp', 'esnext.string', 'esnext.float16', 'esnext.promise', 'esnext.array', 'esnext.collection', 'esnext.error', 'esnext.iterator', 'esnext.typedarrays', 'esnext.date', 'esnext.decorators', 'esnext.disposable', 'esnext.intl', 'esnext.modulesource', 'esnext.sharedmemory', 'esnext.temporal', 'decorators', 'decorators.legacy'. diff --git a/tsc/testdata/baselines/reference/tscWatch/commandLine/Parse-watch-interval-option-without-tsconfig.json.js b/tsc/testdata/baselines/reference/tscWatch/commandLine/Parse-watch-interval-option-without-tsconfig.json.js index 564564abc791f..1733ee5eea8a3 100644 --- a/tsc/testdata/baselines/reference/tscWatch/commandLine/Parse-watch-interval-option-without-tsconfig.json.js +++ b/tsc/testdata/baselines/reference/tscWatch/commandLine/Parse-watch-interval-option-without-tsconfig.json.js @@ -105,7 +105,7 @@ default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.modulesource, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy default: undefined --allowJs diff --git a/tsc/testdata/baselines/reference/tscWatch/commandLineWatch/watch-handles-tsconfig-deleted.js b/tsc/testdata/baselines/reference/tscWatch/commandLineWatch/watch-handles-tsconfig-deleted.js index d51422aea481a..18d2ec8b6ffc9 100644 --- a/tsc/testdata/baselines/reference/tscWatch/commandLineWatch/watch-handles-tsconfig-deleted.js +++ b/tsc/testdata/baselines/reference/tscWatch/commandLineWatch/watch-handles-tsconfig-deleted.js @@ -171,7 +171,7 @@ Diff:: incremental reports config read error while clean build without tsconfig - ---lib -Specify a set of bundled library declaration files that describe the target runtime environment. --one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy +-one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, es2025, es2026, esnext, dom, dom.iterable, dom.asynciterable, webworker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuffer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2019.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es2022.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es2024.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, es2025.collection, es2025.float16/esnext.float16, es2025.intl, es2025.iterator, es2025.promise/esnext.promise, es2025.regexp, es2026.array/esnext.array, es2026.collection/esnext.collection, es2026.error/esnext.error, es2026.iterator/esnext.iterator, es2026.json, es2026.math, es2026.typedarrays/esnext.typedarrays, esnext.date, esnext.decorators, esnext.disposable, esnext.intl, esnext.modulesource, esnext.sharedmemory, esnext.temporal, decorators, decorators.legacy -default: undefined - ---allowJs diff --git a/tsc/testdata/baselines/reference/tsoptions/commandLineParsing/parseCommandLine/Parse invalid option of library flags.js b/tsc/testdata/baselines/reference/tsoptions/commandLineParsing/parseCommandLine/Parse invalid option of library flags.js index fd3fef9887891..b12bf741e3def 100644 --- a/tsc/testdata/baselines/reference/tsoptions/commandLineParsing/parseCommandLine/Parse invalid option of library flags.js +++ b/tsc/testdata/baselines/reference/tsoptions/commandLineParsing/parseCommandLine/Parse invalid option of library flags.js @@ -8,4 +8,4 @@ FileNames:: 0.ts Errors:: -error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'es2026', 'esnext', 'dom', 'dom.iterable', 'dom.asynciterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'webworker.asynciterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2016.intl', 'es2017.arraybuffer', 'es2017.date', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.string', 'es2022.regexp', 'es2023.array', 'es2023.collection', 'es2023.intl', 'es2024.arraybuffer', 'es2024.collection', 'es2024.object', 'es2024.promise', 'es2024.regexp', 'es2024.sharedmemory', 'es2024.string', 'es2025.collection', 'es2025.float16', 'es2025.intl', 'es2025.iterator', 'es2025.promise', 'es2025.regexp', 'es2026.array', 'es2026.collection', 'es2026.error', 'es2026.iterator', 'es2026.json', 'es2026.math', 'es2026.typedarrays', 'esnext.asynciterable', 'esnext.symbol', 'esnext.bigint', 'esnext.weakref', 'esnext.object', 'esnext.regexp', 'esnext.string', 'esnext.float16', 'esnext.promise', 'esnext.array', 'esnext.collection', 'esnext.error', 'esnext.iterator', 'esnext.typedarrays', 'esnext.date', 'esnext.decorators', 'esnext.disposable', 'esnext.intl', 'esnext.sharedmemory', 'esnext.temporal', 'decorators', 'decorators.legacy'. +error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'es2026', 'esnext', 'dom', 'dom.iterable', 'dom.asynciterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'webworker.asynciterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2016.intl', 'es2017.arraybuffer', 'es2017.date', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.string', 'es2022.regexp', 'es2023.array', 'es2023.collection', 'es2023.intl', 'es2024.arraybuffer', 'es2024.collection', 'es2024.object', 'es2024.promise', 'es2024.regexp', 'es2024.sharedmemory', 'es2024.string', 'es2025.collection', 'es2025.float16', 'es2025.intl', 'es2025.iterator', 'es2025.promise', 'es2025.regexp', 'es2026.array', 'es2026.collection', 'es2026.error', 'es2026.iterator', 'es2026.json', 'es2026.math', 'es2026.typedarrays', 'esnext.asynciterable', 'esnext.symbol', 'esnext.bigint', 'esnext.weakref', 'esnext.object', 'esnext.regexp', 'esnext.string', 'esnext.float16', 'esnext.promise', 'esnext.array', 'esnext.collection', 'esnext.error', 'esnext.iterator', 'esnext.typedarrays', 'esnext.date', 'esnext.decorators', 'esnext.disposable', 'esnext.intl', 'esnext.modulesource', 'esnext.sharedmemory', 'esnext.temporal', 'decorators', 'decorators.legacy'. diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource1.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource1.ts new file mode 100644 index 0000000000000..c9776c0af3e13 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource1.ts @@ -0,0 +1,11 @@ +// @module: esnext, preserve +// @target: esnext +// @lib: esnext + +// @filename: b.ts +import source a from "./a.wasm"; +const b: AbstractModuleSource = a; + +// @filename: c.ts +import source a from "./a.wasm" with { type: "webassembly" }; +const b: AbstractModuleSource = a; diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource10.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource10.ts new file mode 100644 index 0000000000000..4ff54c7f9fa0b --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource10.ts @@ -0,0 +1,11 @@ +// @module: preserve +// @target: esnext +// @rewriteRelativeImportExtensions: true + +// @filename: a.ts +export {}; + +// @filename: b.ts +import source a from "./a.ts"; +export { a }; +export const b = import.source("./a.ts"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource11.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource11.ts new file mode 100644 index 0000000000000..0b90c67612d87 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource11.ts @@ -0,0 +1,58 @@ +// @module: esnext +// @target: esnext +// @allowJs: true +// @noEmit: true + +// @filename: a.js +export default 1; +export const a = 2; + +// @filename: b.js +import source * as a from "./a.js"; + +// @filename: c.js +import source { a } from "./a.js"; + +// @filename: d.js +import source a, { a as b } from "./a.js"; + +// @filename: e.js +import source "./a.js"; + +// @filename: f.js +import.source; +(import.source)("./a.js"); +Function(import.source); +import.source.unknown; + +import.source(); +import.source("./a.js", {}, {}); +import.source?.("./a.js"); +import.source("./a.js"); +import.source(...["./a.js"]); + +// @filename: g.js +new import.source("./a.js"); + +// @filename: h.js +typeof import.source; + +// @filename: i.js +import.a("./a.js"); + +// @filename: j.js +import source a from "./a.js" with { type: "javascript" }; +const b = import.source("./a.js", { with: { type: "javascript" } }); +a; +b; + +// @filename: k.js +const a = import.source("./a.js", { with: { type: "javascript" } }); +a; + +// @filename: l.js +import s\u006furce from "./a.js"; +source; + +// @filename: m.js +import.s\u006furce("./a.js"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource12.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource12.ts new file mode 100644 index 0000000000000..ad61cd9fe45e0 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource12.ts @@ -0,0 +1,18 @@ +// @module: esnext +// @target: esnext +// @lib: esnext +// @allowJs: true +// @checkJs: true +// @noEmit: true +// @strict: true +// @noImplicitReferences: true + +// @filename: b.js +import source a from "./a.wasm"; +const b = import.source("./a.wasm"); + +/** @type {AbstractModuleSource} */ +const c = a; + +/** @type {Promise} */ +const d = b; diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource13.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource13.ts new file mode 100644 index 0000000000000..cd2db1fdc8ea9 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource13.ts @@ -0,0 +1,13 @@ +// @module: nodenext +// @target: esnext +// @lib: esnext + +// @filename: b.mts +import source a from "./a.wasm"; +const b: AbstractModuleSource = a; +const c: Promise = import.source("./a.wasm"); + +// @filename: c.cts +import source a from "./a.wasm"; +const b: AbstractModuleSource = a; +const c: Promise = import.source("./a.wasm"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource14.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource14.ts new file mode 100644 index 0000000000000..99924811258be --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource14.ts @@ -0,0 +1,12 @@ +// @module: nodenext +// @target: esnext +// @rewriteRelativeImportExtensions: true + +// @filename: package.json +{"type":"commonjs"} + +// @filename: a.ts +export {}; + +// @filename: b.cts +export const a = import.source("./a.ts"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource15.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource15.ts new file mode 100644 index 0000000000000..35fd883c0c777 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource15.ts @@ -0,0 +1,14 @@ +// @module: commonjs, nodenext +// @target: esnext +// @allowJs: true +// @noEmit: true + +// @filename: package.json +{"type":"commonjs"} + +// @filename: a.js +export default 1; + +// @filename: b.js +import source a from "./a.js"; +const b = import.source("./a.js"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource16.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource16.ts new file mode 100644 index 0000000000000..678bdee5d0f13 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource16.ts @@ -0,0 +1,21 @@ +// @module: esnext, nodenext, preserve +// @target: esnext +// @strict: true +// @noUncheckedSideEffectImports: false, true +// @declaration: true + +// @filename: index.mts +import source a from "./missing.wasm"; +import source b from "missing"; +import source c from "./a.txt"; +import source d from "./a.js"; +import source e from "./a.d.ts"; +import source f from "./a.ts"; +export { a, b, c, d, e, f }; +const sources: AbstractModuleSource[] = [a, b, c, d, e, f]; +export const g = import.source("./missing.wasm"); +export const h = import.source("missing"); +export const i = import.source("./a.txt"); +export function load(path: string): Promise { + return import.source(path); +} diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource17.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource17.ts new file mode 100644 index 0000000000000..027f43ade0539 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource17.ts @@ -0,0 +1,18 @@ +// @module: esnext +// @target: esnext +// @strict: true + +// @filename: index.ts +import source a from "./a.wasm"; +const b: string = a; +a.exports; +a.value; +import(a); +import.source(a); +import.source(1); +import.source(undefined); +import.source("./a.wasm", 1); +import.source("./a.wasm", { with: { type: 1 } }); +import.source("./a.wasm", { assert: { type: "webassembly" } }); +new AbstractModuleSource(); +type C = AbstractModuleSource; diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource18.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource18.ts new file mode 100644 index 0000000000000..92b3b264029cc --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource18.ts @@ -0,0 +1,8 @@ +// @module: esnext +// @target: esnext +// @lib: es2020 + +// @filename: index.ts +import source a from "./a.wasm"; +a; +import.source("./a.wasm"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource19.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource19.ts new file mode 100644 index 0000000000000..f2e1bd7b76016 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource19.ts @@ -0,0 +1,21 @@ +// @module: esnext +// @target: esnext +// @strict: true +// @declaration: true + +// @filename: globals.d.ts +declare module "*.wasm" { + const value: string; + export default value; +} +declare namespace WebAssembly { + interface Module { value: number; } +} + +// @filename: index.ts +import a from "./a.wasm"; +import source b from "./a.wasm"; +const c: string = a; +const d: AbstractModuleSource = b; +export { b }; +export const e = import.source("./a.wasm"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource2.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource2.ts new file mode 100644 index 0000000000000..2a3b9325f2b14 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource2.ts @@ -0,0 +1,25 @@ +// @module: esnext, preserve +// @target: esnext +// @lib: esnext + +// @filename: b.ts +export {}; +const a = import.source("./a.wasm"); +const b: Promise = a; + +// @filename: c.ts +export {}; +const a = import.source("./a.wasm", { with: { type: "webassembly" } }); +const b: Promise = a; + +// @filename: d.ts +export {}; +const a = import.source("./a.wasm",); +const b: Promise = a; +const c = import.source("./a.wasm", { with: { type: "webassembly" } },); +const d: Promise = c; + +// @filename: e.ts +export {}; +const a = import.source(`./a.wasm`); +const b: Promise = a; diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource20.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource20.ts new file mode 100644 index 0000000000000..c7b621672547e --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource20.ts @@ -0,0 +1,20 @@ +// @module: nodenext, preserve +// @target: esnext +// @strict: true +// @declaration: true +// @noImplicitReferences: true + +// @filename: node_modules/pkg/package.json +{ "type": "module", "exports": { "types": "./index.d.ts", "default": "./missing.wasm" } } + +// @filename: node_modules/pkg/index.d.ts +export const value: number; + +// @filename: index.mts +import source a from "pkg"; +import { value } from "pkg"; +const b: AbstractModuleSource = a; +const c: number = value; +export const d = import.source("pkg"); +export const e = import("pkg"); +export { a }; diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource21.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource21.ts new file mode 100644 index 0000000000000..0c72a7518b79a --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource21.ts @@ -0,0 +1,11 @@ +// @module: esnext +// @target: esnext +// @verbatimModuleSyntax: false, true +// @declaration: true + +// @filename: index.ts +import source a from "./a.wasm"; +import source b from "./b.wasm"; +import source c from "./c.wasm"; +export type A = typeof a; +export const d = c; diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource3.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource3.ts new file mode 100644 index 0000000000000..c1e60b3298943 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource3.ts @@ -0,0 +1,42 @@ +// @module: preserve +// @target: esnext +// @lib: esnext + +// @filename: a.ts +export default 1; +export const a = 2; + +// @filename: b.ts +import source from "./a.js"; +const a: number = source; + +// @filename: c.ts +import source, { a } from "./a.js"; +const b: number = source + a; + +// @filename: d.ts +import source = require("./a"); +const a: typeof source = source; + +// @filename: e.ts +const source = 1; +const a: number = source; + +// @filename: g.ts +import source from from "./f.wasm"; +const a: AbstractModuleSource = from; + +// @filename: h.ts +import source type from "./f.wasm"; +const a: AbstractModuleSource = type; + +// @filename: i.ts +import source source from "./f.wasm"; +const a: AbstractModuleSource = source; + +// @filename: j.ts +import +source +a +from "./f.wasm"; +const b: AbstractModuleSource = a; diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource4.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource4.ts new file mode 100644 index 0000000000000..48b49899a91c4 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource4.ts @@ -0,0 +1,21 @@ +// @module: esnext +// @target: esnext + +// @filename: a.ts +export default 1; +export const a = 2; + +// @filename: b.ts +import source * as a from "./a.js"; + +// @filename: c.ts +import source { a } from "./a.js"; + +// @filename: d.ts +import source a, { a as b } from "./a.js"; + +// @filename: e.ts +import source "./a.js"; + +// @filename: f.ts +import source type a from "./a.js"; diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource5.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource5.ts new file mode 100644 index 0000000000000..86cb9d583cde5 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource5.ts @@ -0,0 +1,29 @@ +// @module: esnext +// @target: esnext + +// @filename: a.ts +export default 1; + +// @filename: b.ts +import.source; +(import.source)("./a.js"); +Function(import.source); +import.source.unknown; + +import.source(); +import.source("./a.js", {}, {}); +import.source?.("./a.js"); +import.source("./a.js"); +import.source(...["./a.js"]); + +// @filename: c.ts +new import.source("./a.js"); + +// @filename: d.ts +new import.source("./a.js").a; + +// @filename: e.ts +typeof import.source; + +// @filename: f.ts +import.a("./a.js"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource6.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource6.ts new file mode 100644 index 0000000000000..0d7d11a9d6c56 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource6.ts @@ -0,0 +1,9 @@ +// @module: commonjs +// @target: esnext + +// @filename: a.ts +export default 1; + +// @filename: b.ts +import source a from "./a.js"; +const b = import.source("./a.js"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource7.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource7.ts new file mode 100644 index 0000000000000..c0eeedd19c9a7 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource7.ts @@ -0,0 +1,15 @@ +// @module: esnext +// @target: esnext +// @allowArbitraryExtensions: true +// @lib: esnext + +// @filename: a.d.wasm.ts +export const a: number; + +// @filename: b.ts +import { a } from "./a.wasm"; +import source b from "./a.wasm"; + +const c: number = a; +const d: AbstractModuleSource = b; +const e: Promise = import.source("./a.wasm"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource8.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource8.ts new file mode 100644 index 0000000000000..9278d6f0ee466 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource8.ts @@ -0,0 +1,8 @@ +// @module: esnext +// @target: esnext +// @lib: esnext + +// @filename: b.ts +/*comment a*/ import /*comment b*/ source /*comment c*/ a /*comment d*/ from /*comment e*/ "./a.wasm" /*comment f*/ with /*comment g*/ { type: "webassembly" } /*comment h*/; +const b = a; +const c = import /*comment i*/ . /*comment j*/ source /*comment k*/ ("./a.wasm"); diff --git a/tsc/testdata/tests/cases/conformance/importSource/importSource9.ts b/tsc/testdata/tests/cases/conformance/importSource/importSource9.ts new file mode 100644 index 0000000000000..c1a1c493cc595 --- /dev/null +++ b/tsc/testdata/tests/cases/conformance/importSource/importSource9.ts @@ -0,0 +1,21 @@ +// @module: esnext +// @target: esnext +// @declaration: true +// @lib: esnext + +// @filename: b.ts +import source a from "./a.wasm"; +export { a }; + +// @filename: c.ts +import { a } from "./b.js"; +const b: AbstractModuleSource = a; + +// @filename: d.ts +import * as a from "./b.js"; +const b: AbstractModuleSource = a.a; + +// @filename: e.ts +import source a from "./a.wasm"; +export type B = typeof a; +export const b = import.source("./a.wasm"); From d47362243eb0f3c5ab7a458700c0ca594c152961 Mon Sep 17 00:00:00 2001 From: Oleksandr Tarasiuk Date: Wed, 30 Sep 2026 22:31:03 +0300 Subject: [PATCH 2/2] update diagnostics --- .../diagnosticMessages.generated.json | 15 ++++--- .../diagnostics/diagnosticMessages.json | 16 +++----- .../diagnostics/diagnostics_generated.go | 37 ++++++++---------- tsc/internal/diagnostics/loc/cs-CZ.json.gz | Bin 83220 -> 83175 bytes tsc/internal/diagnostics/loc/de-DE.json.gz | Bin 84451 -> 84412 bytes tsc/internal/diagnostics/loc/es-ES.json.gz | Bin 81448 -> 81404 bytes tsc/internal/diagnostics/loc/fr-FR.json.gz | Bin 82998 -> 82956 bytes tsc/internal/diagnostics/loc/it-IT.json.gz | Bin 79648 -> 79611 bytes tsc/internal/diagnostics/loc/ja-JP.json.gz | Bin 85168 -> 85116 bytes tsc/internal/diagnostics/loc/ko-KR.json.gz | Bin 81187 -> 81154 bytes tsc/internal/diagnostics/loc/pl-PL.json.gz | Bin 85402 -> 85363 bytes tsc/internal/diagnostics/loc/pt-BR.json.gz | Bin 80024 -> 79973 bytes tsc/internal/diagnostics/loc/ru-RU.json.gz | Bin 94627 -> 94591 bytes tsc/internal/diagnostics/loc/tr-TR.json.gz | Bin 80981 -> 80947 bytes tsc/internal/diagnostics/loc/zh-CN.json.gz | Bin 80296 -> 80243 bytes tsc/internal/diagnostics/loc/zh-TW.json.gz | Bin 80053 -> 80005 bytes ...importMetaPropertyInvalidInCall.errors.txt | 4 +- .../conformance/importSource11.errors.txt | 24 ++++++------ .../conformance/importSource13.errors.txt | 4 +- ...importSource15(module=commonjs).errors.txt | 8 ++-- ...importSource15(module=nodenext).errors.txt | 4 +- .../conformance/importSource4.errors.txt | 16 ++++---- .../conformance/importSource5.errors.txt | 8 ++-- .../conformance/importSource6.errors.txt | 8 ++-- 24 files changed, 68 insertions(+), 76 deletions(-) diff --git a/tsc/internal/diagnostics/diagnosticMessages.generated.json b/tsc/internal/diagnostics/diagnosticMessages.generated.json index b606a968624a1..cf66284f21b0a 100644 --- a/tsc/internal/diagnostics/diagnosticMessages.generated.json +++ b/tsc/internal/diagnostics/diagnosticMessages.generated.json @@ -1894,7 +1894,7 @@ "Default_imports_are_not_allowed_in_a_deferred_import_18058": "Default imports are not allowed in a deferred import.", "Named_imports_are_not_allowed_in_a_deferred_import_18059": "Named imports are not allowed in a deferred import.", "Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve_18060": "Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'.", - "_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer_18061": "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?", + "_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source_18061": "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?", "Regular_expression_pattern_modifiers_are_only_available_when_targeting_0_or_later_18062": "Regular expression pattern modifiers are only available when targeting '{0}' or later.", "Duplicate_named_capturing_groups_are_only_available_when_targeting_0_or_later_18063": "Duplicate named capturing groups are only available when targeting '{0}' or later.", "Private_identifiers_cannot_be_used_in_destructuring_patterns_18064": "Private identifiers cannot be used in destructuring patterns.", @@ -1944,6 +1944,11 @@ "The_content_mapper_returned_diagnostic_directives_with_overlapping_virtual_ranges_18108": "The content mapper returned diagnostic directives with overlapping virtual ranges.", "The_invalid_diagnostic_directive_is_in_supplemental_output_0_returned_by_the_content_mapper_18109": "The invalid diagnostic directive is in supplemental output {0} returned by the content mapper.", "Diagnostic_directive_0_returned_by_the_content_mapper_has_an_invalid_unusedExpectDirectiveIndex_18110": "Diagnostic directive {0} returned by the content mapper has an invalid 'unusedExpectDirectiveIndex'.", + "A_source_phase_import_must_specify_a_local_binding_18111": "A source phase import must specify a local binding.", + "Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import_18112": "Named and namespace imports are not allowed in a source phase import.", + "Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_18113": "Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'.", + "Optional_chaining_cannot_be_used_with_import_source_18114": "Optional chaining cannot be used with 'import.source'.", + "Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_18115": "Source phase imports are not allowed on statements that compile to CommonJS 'require' calls.", "nodenext_if_module_is_nodenext_node16_if_module_is_node16_or_node18_otherwise_bundler_69010": "`nodenext` if `module` is `nodenext`; `node16` if `module` is `node16` or `node18`; otherwise, `bundler`.", "File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001": "File is a CommonJS module; it may be converted to an ES module.", "This_constructor_function_may_be_converted_to_a_class_declaration_80002": "This constructor function may be converted to a class declaration.", @@ -2213,11 +2218,5 @@ "Organize_Imports_95206": "Organize Imports", "Remove_Unused_Imports_95207": "Remove Unused Imports", "Sort_Imports_95208": "Sort Imports", - "JSDoc_comment_95209": "JSDoc comment", - "A_source_phase_import_must_specify_a_local_binding_100069": "A source phase import must specify a local binding.", - "Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import_100070": "Named and namespace imports are not allowed in a source phase import.", - "Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_100071": "Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'.", - "Optional_chaining_cannot_be_used_with_import_source_100072": "Optional chaining cannot be used with 'import.source'.", - "_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source_100073": "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?", - "Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_100074": "Source phase imports are not allowed on statements that compile to CommonJS 'require' calls." + "JSDoc_comment_95209": "JSDoc comment" } diff --git a/tsc/internal/diagnostics/diagnosticMessages.json b/tsc/internal/diagnostics/diagnosticMessages.json index 33f70279a3bbc..be00151a57d6a 100644 --- a/tsc/internal/diagnostics/diagnosticMessages.json +++ b/tsc/internal/diagnostics/diagnosticMessages.json @@ -8696,7 +8696,7 @@ "category": "Error", "code": 18060 }, - "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?": { + "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?": { "category": "Error", "code": 18061 }, @@ -8898,26 +8898,22 @@ }, "A source phase import must specify a local binding.": { "category": "Error", - "code": 100069 + "code": 18111 }, "Named and namespace imports are not allowed in a source phase import.": { "category": "Error", - "code": 100070 + "code": 18112 }, "Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'.": { "category": "Error", - "code": 100071 + "code": 18113 }, "Optional chaining cannot be used with 'import.source'.": { "category": "Error", - "code": 100072 - }, - "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?": { - "category": "Error", - "code": 100073 + "code": 18114 }, "Source phase imports are not allowed on statements that compile to CommonJS 'require' calls.": { "category": "Error", - "code": 100074 + "code": 18115 } } diff --git a/tsc/internal/diagnostics/diagnostics_generated.go b/tsc/internal/diagnostics/diagnostics_generated.go index 01e4e4bf88893..8a28f92aa3f1f 100644 --- a/tsc/internal/diagnostics/diagnostics_generated.go +++ b/tsc/internal/diagnostics/diagnostics_generated.go @@ -3792,7 +3792,7 @@ var Named_imports_are_not_allowed_in_a_deferred_import = &Message{code: 18059, c var Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve = &Message{code: 18060, category: CategoryError, key: "Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve_18060", text: "Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'."} -var X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer = &Message{code: 18061, category: CategoryError, key: "_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer_18061", text: "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?"} +var X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source = &Message{code: 18061, category: CategoryError, key: "_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source_18061", text: "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?"} var Regular_expression_pattern_modifiers_are_only_available_when_targeting_0_or_later = &Message{code: 18062, category: CategoryError, key: "Regular_expression_pattern_modifiers_are_only_available_when_targeting_0_or_later_18062", text: "Regular expression pattern modifiers are only available when targeting '{0}' or later."} @@ -3892,6 +3892,16 @@ var The_invalid_diagnostic_directive_is_in_supplemental_output_0_returned_by_the var Diagnostic_directive_0_returned_by_the_content_mapper_has_an_invalid_unusedExpectDirectiveIndex = &Message{code: 18110, category: CategoryMessage, key: "Diagnostic_directive_0_returned_by_the_content_mapper_has_an_invalid_unusedExpectDirectiveIndex_18110", text: "Diagnostic directive {0} returned by the content mapper has an invalid 'unusedExpectDirectiveIndex'."} +var A_source_phase_import_must_specify_a_local_binding = &Message{code: 18111, category: CategoryError, key: "A_source_phase_import_must_specify_a_local_binding_18111", text: "A source phase import must specify a local binding."} + +var Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import = &Message{code: 18112, category: CategoryError, key: "Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import_18112", text: "Named and namespace imports are not allowed in a source phase import."} + +var Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve = &Message{code: 18113, category: CategoryError, key: "Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_18113", text: "Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."} + +var Optional_chaining_cannot_be_used_with_import_source = &Message{code: 18114, category: CategoryError, key: "Optional_chaining_cannot_be_used_with_import_source_18114", text: "Optional chaining cannot be used with 'import.source'."} + +var Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls = &Message{code: 18115, category: CategoryError, key: "Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_18115", text: "Source phase imports are not allowed on statements that compile to CommonJS 'require' calls."} + var X_nodenext_if_module_is_nodenext_node16_if_module_is_node16_or_node18_otherwise_bundler = &Message{code: 69010, category: CategoryMessage, key: "nodenext_if_module_is_nodenext_node16_if_module_is_node16_or_node18_otherwise_bundler_69010", text: "`nodenext` if `module` is `nodenext`; `node16` if `module` is `node16` or `node18`; otherwise, `bundler`."} var File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module = &Message{code: 80001, category: CategorySuggestion, key: "File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001", text: "File is a CommonJS module; it may be converted to an ES module."} @@ -4432,18 +4442,6 @@ var Sort_Imports = &Message{code: 95208, category: CategoryMessage, key: "Sort_I var JSDoc_comment = &Message{code: 95209, category: CategoryMessage, key: "JSDoc_comment_95209", text: "JSDoc comment"} -var A_source_phase_import_must_specify_a_local_binding = &Message{code: 100069, category: CategoryError, key: "A_source_phase_import_must_specify_a_local_binding_100069", text: "A source phase import must specify a local binding."} - -var Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import = &Message{code: 100070, category: CategoryError, key: "Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import_100070", text: "Named and namespace imports are not allowed in a source phase import."} - -var Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve = &Message{code: 100071, category: CategoryError, key: "Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_100071", text: "Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."} - -var Optional_chaining_cannot_be_used_with_import_source = &Message{code: 100072, category: CategoryError, key: "Optional_chaining_cannot_be_used_with_import_source_100072", text: "Optional chaining cannot be used with 'import.source'."} - -var X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source = &Message{code: 100073, category: CategoryError, key: "_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source_100073", text: "'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'?"} - -var Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls = &Message{code: 100074, category: CategoryError, key: "Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_100074", text: "Source phase imports are not allowed on statements that compile to CommonJS 'require' calls."} - var allMessages = [...]**Message{ &Unterminated_string_literal, &Identifier_expected, @@ -6340,7 +6338,7 @@ var allMessages = [...]**Message{ &Default_imports_are_not_allowed_in_a_deferred_import, &Named_imports_are_not_allowed_in_a_deferred_import, &Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve, - &X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer, + &X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source, &Regular_expression_pattern_modifiers_are_only_available_when_targeting_0_or_later, &Duplicate_named_capturing_groups_are_only_available_when_targeting_0_or_later, &Private_identifiers_cannot_be_used_in_destructuring_patterns, @@ -6390,6 +6388,11 @@ var allMessages = [...]**Message{ &The_content_mapper_returned_diagnostic_directives_with_overlapping_virtual_ranges, &The_invalid_diagnostic_directive_is_in_supplemental_output_0_returned_by_the_content_mapper, &Diagnostic_directive_0_returned_by_the_content_mapper_has_an_invalid_unusedExpectDirectiveIndex, + &A_source_phase_import_must_specify_a_local_binding, + &Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import, + &Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve, + &Optional_chaining_cannot_be_used_with_import_source, + &Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls, &X_nodenext_if_module_is_nodenext_node16_if_module_is_node16_or_node18_otherwise_bundler, &File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module, &This_constructor_function_may_be_converted_to_a_class_declaration, @@ -6660,10 +6663,4 @@ var allMessages = [...]**Message{ &Remove_Unused_Imports, &Sort_Imports, &JSDoc_comment, - &A_source_phase_import_must_specify_a_local_binding, - &Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import, - &Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve, - &Optional_chaining_cannot_be_used_with_import_source, - &X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source, - &Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls, } diff --git a/tsc/internal/diagnostics/loc/cs-CZ.json.gz b/tsc/internal/diagnostics/loc/cs-CZ.json.gz index 8dc7ed722c0e710c8d77101f659c7b4599c2a318..3802ae82535f45b0f8e88fc7f2713b529259175b 100644 GIT binary patch delta 21811 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

^_)(;Sb&cSy*eY-}WHoa&oPWzbvgVa1 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 diff --git a/tsc/internal/diagnostics/loc/de-DE.json.gz b/tsc/internal/diagnostics/loc/de-DE.json.gz index 2b2ce377610680721174b23969966a74ef0d08ed..1a4ee63c17e3e7e8f08d539798ec4467b99b9b04 100644 GIT binary patch delta 29281 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%0AwGcw*aZl+_BYLFJR{Y-B80pFn3pb`ZXNafEp_ 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 W-0XCHSaI|B|IYxeYieg)4g~<_fiv6y delta 8740 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 diff --git a/tsc/internal/diagnostics/loc/fr-FR.json.gz b/tsc/internal/diagnostics/loc/fr-FR.json.gz index bb643415f0060044f25a6093b9184a117255c56f..8a14cc14bc1626597899296a999cd9d2720a2cc7 100644 GIT binary patch delta 5588 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 J+litk1pue+2H5}r diff --git a/tsc/internal/diagnostics/loc/it-IT.json.gz b/tsc/internal/diagnostics/loc/it-IT.json.gz index df33a1298ed1c9a957864b55307cc871ce740fc2..7324edb7c459cdf613622be12f34f1660088c264 100644 GIT binary patch delta 5027 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 R@y7o<0AmO9&uQte1ponWPc{Gm delta 5831 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 diff --git a/tsc/internal/diagnostics/loc/pl-PL.json.gz b/tsc/internal/diagnostics/loc/pl-PL.json.gz index 52354c8c87ebcd6ee74275194aac04dd8d53a5b2..ec8c3700516572e4fc8d089fc8349616fe748283 100644 GIT binary patch delta 8937 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 Dv@(jF delta 8977 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 delta 5656 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 diff --git a/tsc/internal/diagnostics/loc/ru-RU.json.gz b/tsc/internal/diagnostics/loc/ru-RU.json.gz index 4556ffc2fa643859b76d771a1f94419fbd5c2c00..cb098667a5d800a18cb3de9f1f65a89c0a459af4 100644 GIT binary patch delta 36276 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 AaR2}S delta 36321 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 wlhilV`S!uhDMup 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 diff --git a/tsc/internal/diagnostics/loc/tr-TR.json.gz b/tsc/internal/diagnostics/loc/tr-TR.json.gz index 7ce421335fcebc772f02e213e75f4403884eb52e..a4a0a3bf596f4c5ba4a0459180c388cdee969de9 100644 GIT binary patch delta 5329 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 delta 5397 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 diff --git a/tsc/internal/diagnostics/loc/zh-CN.json.gz b/tsc/internal/diagnostics/loc/zh-CN.json.gz index 2f22028d4fe6764109719f6990338737e636ce14..1292fbcefa787ed278526862316e063cdaba9944 100644 GIT binary patch delta 5642 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 diff --git a/tsc/internal/diagnostics/loc/zh-TW.json.gz b/tsc/internal/diagnostics/loc/zh-TW.json.gz index b6900d72972e5afff81975f040e55000c441944d..bd2489b28d6ee4242696c4407a0731e0a7b1e60b 100644 GIT binary patch delta 23220 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"./a.js"); !!! error TS1005: '(' expected. @@ -84,7 +84,7 @@ m.js(1,8): error TS1260: Keywords cannot contain escape characters. ==== i.js (1 errors) ==== import.a("./a.js"); ~ -!!! error TS100073: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? +!!! error TS18061: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? ==== j.js (0 errors) ==== import source a from "./a.js" with { type: "javascript" }; diff --git a/tsc/testdata/baselines/reference/conformance/importSource13.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource13.errors.txt index 7fee0b416d26b..7169cf09e89a8 100644 --- a/tsc/testdata/baselines/reference/conformance/importSource13.errors.txt +++ b/tsc/testdata/baselines/reference/conformance/importSource13.errors.txt @@ -1,4 +1,4 @@ -c.cts(1,8): error TS100074: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. +c.cts(1,8): error TS18115: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. ==== b.mts (0 errors) ==== @@ -9,7 +9,7 @@ c.cts(1,8): error TS100074: Source phase imports are not allowed on statements t ==== c.cts (1 errors) ==== import source a from "./a.wasm"; ~~~~~~~~ -!!! error TS100074: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. +!!! error TS18115: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. const b: AbstractModuleSource = a; const c: Promise = import.source("./a.wasm"); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).errors.txt b/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).errors.txt index f30b6499ac930..a4f102d0e3909 100644 --- a/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).errors.txt +++ b/tsc/testdata/baselines/reference/conformance/importSource15(module=commonjs).errors.txt @@ -1,5 +1,5 @@ -b.js(1,8): error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. -b.js(2,11): error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +b.js(1,8): error TS18113: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +b.js(2,11): error TS18113: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. ==== package.json (0 errors) ==== @@ -11,8 +11,8 @@ b.js(2,11): error TS100071: Source phase imports are only supported when the '-- ==== b.js (2 errors) ==== import source a from "./a.js"; ~~~~~~~~ -!!! error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +!!! error TS18113: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. const b = import.source("./a.js"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +!!! error TS18113: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).errors.txt b/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).errors.txt index b62f363d3141d..713c1677cbf0c 100644 --- a/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).errors.txt +++ b/tsc/testdata/baselines/reference/conformance/importSource15(module=nodenext).errors.txt @@ -1,4 +1,4 @@ -b.js(1,8): error TS100074: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. +b.js(1,8): error TS18115: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. ==== package.json (0 errors) ==== @@ -10,6 +10,6 @@ b.js(1,8): error TS100074: Source phase imports are not allowed on statements th ==== b.js (1 errors) ==== import source a from "./a.js"; ~~~~~~~~ -!!! error TS100074: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. +!!! error TS18115: Source phase imports are not allowed on statements that compile to CommonJS 'require' calls. const b = import.source("./a.js"); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource4.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource4.errors.txt index 3e64f632ed3ab..1a261f9650e48 100644 --- a/tsc/testdata/baselines/reference/conformance/importSource4.errors.txt +++ b/tsc/testdata/baselines/reference/conformance/importSource4.errors.txt @@ -1,7 +1,7 @@ -b.ts(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. -c.ts(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. -d.ts(1,8): error TS100070: Named and namespace imports are not allowed in a source phase import. -e.ts(1,8): error TS100069: A source phase import must specify a local binding. +b.ts(1,8): error TS18112: Named and namespace imports are not allowed in a source phase import. +c.ts(1,8): error TS18112: Named and namespace imports are not allowed in a source phase import. +d.ts(1,8): error TS18112: Named and namespace imports are not allowed in a source phase import. +e.ts(1,8): error TS18111: A source phase import must specify a local binding. f.ts(1,20): error TS1005: 'from' expected. f.ts(1,20): error TS1141: String literal expected. f.ts(1,22): error TS1005: ';' expected. @@ -15,22 +15,22 @@ f.ts(1,22): error TS2304: Cannot find name 'from'. ==== b.ts (1 errors) ==== import source * as a from "./a.js"; ~~~~~~~~~~~~~ -!!! error TS100070: Named and namespace imports are not allowed in a source phase import. +!!! error TS18112: Named and namespace imports are not allowed in a source phase import. ==== c.ts (1 errors) ==== import source { a } from "./a.js"; ~~~~~~~~~~~~ -!!! error TS100070: Named and namespace imports are not allowed in a source phase import. +!!! error TS18112: Named and namespace imports are not allowed in a source phase import. ==== d.ts (1 errors) ==== import source a, { a as b } from "./a.js"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS100070: Named and namespace imports are not allowed in a source phase import. +!!! error TS18112: Named and namespace imports are not allowed in a source phase import. ==== e.ts (1 errors) ==== import source "./a.js"; ~~~~~~ -!!! error TS100069: A source phase import must specify a local binding. +!!! error TS18111: A source phase import must specify a local binding. ==== f.ts (4 errors) ==== import source type a from "./a.js"; diff --git a/tsc/testdata/baselines/reference/conformance/importSource5.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource5.errors.txt index af3cdd9c693c0..ef9bb26264f5f 100644 --- a/tsc/testdata/baselines/reference/conformance/importSource5.errors.txt +++ b/tsc/testdata/baselines/reference/conformance/importSource5.errors.txt @@ -4,14 +4,14 @@ b.ts(3,23): error TS1005: '(' expected. b.ts(4,14): error TS1005: '(' expected. b.ts(6,1): message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments b.ts(7,1): message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments -b.ts(8,14): error TS100072: Optional chaining cannot be used with 'import.source'. +b.ts(8,14): error TS18114: Optional chaining cannot be used with 'import.source'. b.ts(9,1): error TS1326: This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments. b.ts(10,15): error TS1325: Argument of dynamic import cannot be spread element. c.ts(1,5): error TS1109: Expression expected. d.ts(1,5): error TS1109: Expression expected. d.ts(1,29): error TS2339: Property 'a' does not exist on type 'Promise'. e.ts(1,21): error TS1005: '(' expected. -f.ts(1,8): error TS100073: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? +f.ts(1,8): error TS18061: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? ==== a.ts (0 errors) ==== @@ -39,7 +39,7 @@ f.ts(1,8): error TS100073: 'a' is not a valid meta-property for keyword 'import' !!! message TS1450: Dynamic imports can only accept a module specifier and an optional set of attributes as arguments import.source?.("./a.js"); ~~ -!!! error TS100072: Optional chaining cannot be used with 'import.source'. +!!! error TS18114: Optional chaining cannot be used with 'import.source'. import.source("./a.js"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS1326: This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments. @@ -67,5 +67,5 @@ f.ts(1,8): error TS100073: 'a' is not a valid meta-property for keyword 'import' ==== f.ts (1 errors) ==== import.a("./a.js"); ~ -!!! error TS100073: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? +!!! error TS18061: 'a' is not a valid meta-property for keyword 'import'. Did you mean 'meta', 'defer', or 'source'? \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/importSource6.errors.txt b/tsc/testdata/baselines/reference/conformance/importSource6.errors.txt index eb18218584660..744a8df4df159 100644 --- a/tsc/testdata/baselines/reference/conformance/importSource6.errors.txt +++ b/tsc/testdata/baselines/reference/conformance/importSource6.errors.txt @@ -1,5 +1,5 @@ -b.ts(1,8): error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. -b.ts(2,11): error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +b.ts(1,8): error TS18113: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +b.ts(2,11): error TS18113: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. ==== a.ts (0 errors) ==== @@ -8,8 +8,8 @@ b.ts(2,11): error TS100071: Source phase imports are only supported when the '-- ==== b.ts (2 errors) ==== import source a from "./a.js"; ~~~~~~~~ -!!! error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +!!! error TS18113: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. const b = import.source("./a.js"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS100071: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. +!!! error TS18113: Source phase imports are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'. \ No newline at end of file