From 06f0f3e2ea65c7c829bb0134c1d6388d10159fa8 Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2026 17:37:08 +0100 Subject: [PATCH 01/16] test: remove outFile-specific test cases --- .../cases/compiler/alwaysStrictModule2.ts | 17 ------ .../amdDeclarationEmitNoExtraDeclare.ts | 23 -------- ...undleNoDuplicateDeclarationEmitComments.ts | 10 ---- .../compiler/bundledDtsLateExportRenaming.ts | 32 ---------- .../tests/cases/compiler/commonSourceDir5.ts | 18 ------ .../tests/cases/compiler/commonSourceDir6.ts | 18 ------ .../compiler/compilerOptionsOutAndNoEmit.ts | 7 --- .../compilerOptionsOutFileAndNoEmit.ts | 7 --- ...WithErrorsInInputDeclarationFileWithOut.ts | 18 ------ .../declarationEmitAmdModuleDefault.ts | 5 -- ...larationEmitBundleWithAmbientReferences.ts | 23 -------- ...onSourceDirectoryDoesNotContainAllFiles.ts | 19 ------ ...efaultExportWithTempVarNameWithBundling.ts | 7 --- .../declarationEmitOutFileBundlePaths.ts | 20 ------- ...tionEmitPrefersPathKindBasedOnBundling2.ts | 23 -------- .../declarationFileOverwriteErrorWithOut.ts | 12 ---- ...eclarationFilesGeneratingTypeReferences.ts | 14 ----- .../cases/compiler/declarationMapsOutFile.ts | 23 -------- .../cases/compiler/declarationMapsOutFile2.ts | 19 ------ .../compiler/declarationMapsWithSourceMap.ts | 20 ------- .../emitBundleWithPrologueDirectives1.ts | 10 ---- .../cases/compiler/emitBundleWithShebang1.ts | 7 --- .../cases/compiler/emitBundleWithShebang2.ts | 13 ----- ...BundleWithShebangAndPrologueDirectives1.ts | 9 --- ...BundleWithShebangAndPrologueDirectives2.ts | 16 ----- ...ilesEmittingIntoSameOutputWithOutOption.ts | 10 ---- .../cases/compiler/importHelpersOutFile.ts | 22 ------- .../tests/cases/compiler/incrementalOut.ts | 6 -- .../tests/cases/compiler/inlineSources.ts | 12 ---- .../tests/cases/compiler/inlineSources2.ts | 12 ---- .../compiler/isolatedDeclarationOutFile.ts | 25 -------- ...nDeclarationsWithJsFileReferenceWithOut.ts | 16 ----- ...tDeclarationsWithJsFileReferenceWithOut.ts | 16 ----- .../compiler/jsFileCompilationWithOut.ts | 10 ---- ...OutDeclarationFileNameSameAsInputJsFile.ts | 9 --- ...ilationWithOutFileNameSameAsInputJsFile.ts | 10 ---- .../tests/cases/compiler/keepImportsInDts3.ts | 9 --- .../tests/cases/compiler/keepImportsInDts4.ts | 9 --- .../moduleAugmentationsBundledOutput1.ts | 58 ------------------- .../tests/cases/compiler/moduleNoneOutFile.ts | 7 --- .../compiler/noBundledEmitFromNodeModules.ts | 11 ---- .../compiler/optionsOutAndNoModuleGen.ts | 4 -- .../tests/cases/compiler/out-flag2.ts | 11 ---- .../tests/cases/compiler/out-flag3.ts | 14 ----- .../cases/compiler/outFileIsDeprecated.ts | 16 ----- .../cases/compiler/outModuleConcatAmd.ts | 12 ---- .../cases/compiler/outModuleConcatCommonjs.ts | 14 ----- .../outModuleConcatCommonjsDeclarationOnly.ts | 13 ----- .../cases/compiler/outModuleConcatES6.ts | 14 ----- .../cases/compiler/outModuleConcatSystem.ts | 12 ---- .../cases/compiler/outModuleConcatUmd.ts | 14 ----- .../outModuleConcatUnspecifiedModuleKind.ts | 8 --- ...catUnspecifiedModuleKindDeclarationOnly.ts | 10 ---- .../compiler/outModuleTripleSlashRefs.ts | 33 ----------- ...eWithModuleNodeResolutionEmitAmdOutFile.ts | 15 ----- .../sourceMapWithCaseSensitiveFileNames.ts | 13 ----- ...sourceMapWithMultipleFilesWithCopyright.ts | 21 ------- ...ultipleFilesWithFileEndingWithInterface.ts | 19 ------ .../sourceMapWithNonCaseSensitiveFileNames.ts | 13 ----- .../compiler/typeReferenceDirectives11.ts | 23 -------- .../compiler/typeReferenceDirectives12.ts | 41 ------------- .../libReferenceDeclarationEmitBundle.ts | 13 ----- .../libReferenceNoLibBundle.ts | 23 -------- .../outFilerootDirModuleNamesAmd.ts | 15 ----- .../outFilerootDirModuleNamesSystem.ts | 15 ----- .../jsDeclarationsImportTypeBundled.ts | 20 ------- .../import/importTypeAmdBundleRewrite.ts | 15 ----- 67 files changed, 1053 deletions(-) delete mode 100644 tsc/testdata/tests/cases/compiler/alwaysStrictModule2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdDeclarationEmitNoExtraDeclare.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdModuleBundleNoDuplicateDeclarationEmitComments.ts delete mode 100644 tsc/testdata/tests/cases/compiler/bundledDtsLateExportRenaming.ts delete mode 100644 tsc/testdata/tests/cases/compiler/commonSourceDir5.ts delete mode 100644 tsc/testdata/tests/cases/compiler/commonSourceDir6.ts delete mode 100644 tsc/testdata/tests/cases/compiler/compilerOptionsOutAndNoEmit.ts delete mode 100644 tsc/testdata/tests/cases/compiler/compilerOptionsOutFileAndNoEmit.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declFileWithErrorsInInputDeclarationFileWithOut.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationEmitAmdModuleDefault.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationEmitBundleWithAmbientReferences.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationEmitCommonSourceDirectoryDoesNotContainAllFiles.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationEmitDefaultExportWithTempVarNameWithBundling.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationEmitOutFileBundlePaths.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationEmitPrefersPathKindBasedOnBundling2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationFileOverwriteErrorWithOut.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationFilesGeneratingTypeReferences.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationMapsOutFile.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationMapsOutFile2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationMapsWithSourceMap.ts delete mode 100644 tsc/testdata/tests/cases/compiler/emitBundleWithPrologueDirectives1.ts delete mode 100644 tsc/testdata/tests/cases/compiler/emitBundleWithShebang1.ts delete mode 100644 tsc/testdata/tests/cases/compiler/emitBundleWithShebang2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/emitBundleWithShebangAndPrologueDirectives1.ts delete mode 100644 tsc/testdata/tests/cases/compiler/emitBundleWithShebangAndPrologueDirectives2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/filesEmittingIntoSameOutputWithOutOption.ts delete mode 100644 tsc/testdata/tests/cases/compiler/importHelpersOutFile.ts delete mode 100644 tsc/testdata/tests/cases/compiler/incrementalOut.ts delete mode 100644 tsc/testdata/tests/cases/compiler/inlineSources.ts delete mode 100644 tsc/testdata/tests/cases/compiler/inlineSources2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/isolatedDeclarationOutFile.ts delete mode 100644 tsc/testdata/tests/cases/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.ts delete mode 100644 tsc/testdata/tests/cases/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithOut.ts delete mode 100644 tsc/testdata/tests/cases/compiler/jsFileCompilationWithOut.ts delete mode 100644 tsc/testdata/tests/cases/compiler/jsFileCompilationWithOutDeclarationFileNameSameAsInputJsFile.ts delete mode 100644 tsc/testdata/tests/cases/compiler/jsFileCompilationWithOutFileNameSameAsInputJsFile.ts delete mode 100644 tsc/testdata/tests/cases/compiler/keepImportsInDts3.ts delete mode 100644 tsc/testdata/tests/cases/compiler/keepImportsInDts4.ts delete mode 100644 tsc/testdata/tests/cases/compiler/moduleAugmentationsBundledOutput1.ts delete mode 100644 tsc/testdata/tests/cases/compiler/moduleNoneOutFile.ts delete mode 100644 tsc/testdata/tests/cases/compiler/noBundledEmitFromNodeModules.ts delete mode 100644 tsc/testdata/tests/cases/compiler/optionsOutAndNoModuleGen.ts delete mode 100644 tsc/testdata/tests/cases/compiler/out-flag2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/out-flag3.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outFileIsDeprecated.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleConcatAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleConcatCommonjs.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleConcatCommonjsDeclarationOnly.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleConcatES6.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleConcatSystem.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleConcatUmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleConcatUnspecifiedModuleKind.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleConcatUnspecifiedModuleKindDeclarationOnly.ts delete mode 100644 tsc/testdata/tests/cases/compiler/outModuleTripleSlashRefs.ts delete mode 100644 tsc/testdata/tests/cases/compiler/requireOfJsonFileWithModuleNodeResolutionEmitAmdOutFile.ts delete mode 100644 tsc/testdata/tests/cases/compiler/sourceMapWithCaseSensitiveFileNames.ts delete mode 100644 tsc/testdata/tests/cases/compiler/sourceMapWithMultipleFilesWithCopyright.ts delete mode 100644 tsc/testdata/tests/cases/compiler/sourceMapWithMultipleFilesWithFileEndingWithInterface.ts delete mode 100644 tsc/testdata/tests/cases/compiler/sourceMapWithNonCaseSensitiveFileNames.ts delete mode 100644 tsc/testdata/tests/cases/compiler/typeReferenceDirectives11.ts delete mode 100644 tsc/testdata/tests/cases/compiler/typeReferenceDirectives12.ts delete mode 100644 tsc/testdata/tests/cases/conformance/declarationEmit/libReferenceDeclarationEmitBundle.ts delete mode 100644 tsc/testdata/tests/cases/conformance/declarationEmit/libReferenceNoLibBundle.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts delete mode 100644 tsc/testdata/tests/cases/conformance/jsdoc/declarations/jsDeclarationsImportTypeBundled.ts delete mode 100644 tsc/testdata/tests/cases/conformance/types/import/importTypeAmdBundleRewrite.ts diff --git a/tsc/testdata/tests/cases/compiler/alwaysStrictModule2.ts b/tsc/testdata/tests/cases/compiler/alwaysStrictModule2.ts deleted file mode 100644 index e483ad3330735..0000000000000 --- a/tsc/testdata/tests/cases/compiler/alwaysStrictModule2.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @target: es2015 -// @alwaysStrict: true -// @outFile: out.js - -// @fileName: a.ts -namespace M { - export function f() { - var arguments = []; - } -} - -// @fileName: b.ts -namespace M { - export function f2() { - var arguments = []; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/amdDeclarationEmitNoExtraDeclare.ts b/tsc/testdata/tests/cases/compiler/amdDeclarationEmitNoExtraDeclare.ts deleted file mode 100644 index 24d125ff299de..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdDeclarationEmitNoExtraDeclare.ts +++ /dev/null @@ -1,23 +0,0 @@ -// @target: es2015 -// @declaration: true -// @module: amd -// @outFile: dist.js -// @filename: Class.ts -import { Configurable } from "./Configurable" - -export class HiddenClass {} - -export class ActualClass extends Configurable(HiddenClass) {} -// @filename: Configurable.ts -export type Constructor = { - new(...args: any[]): T; -} -export function Configurable>(base: T): T { - return class extends base { - - constructor(...args: any[]) { - super(...args); - } - - }; -} diff --git a/tsc/testdata/tests/cases/compiler/amdModuleBundleNoDuplicateDeclarationEmitComments.ts b/tsc/testdata/tests/cases/compiler/amdModuleBundleNoDuplicateDeclarationEmitComments.ts deleted file mode 100644 index 9770ec8c75893..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdModuleBundleNoDuplicateDeclarationEmitComments.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @target: es2015 -//@module: amd -// @declaration: true -// @outFile: ./out.js -// @filename: file1.ts -/// -export class Foo {} -// @filename: file2.ts -/// -export class Bar {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/bundledDtsLateExportRenaming.ts b/tsc/testdata/tests/cases/compiler/bundledDtsLateExportRenaming.ts deleted file mode 100644 index a28e52e2ebe40..0000000000000 --- a/tsc/testdata/tests/cases/compiler/bundledDtsLateExportRenaming.ts +++ /dev/null @@ -1,32 +0,0 @@ -// @target: es2015 -// @module: commonjs -// @declaration: true -// @moduleResolution: bundler -// @emitDeclarationOnly: true -// @outFile: ./dist/out.d.ts - -// @Filename: index.ts -export * from "./nested"; - -// @Filename: nested/base.ts -import { B } from "./shared"; - -export function f() { - return new B(); -} - -// @Filename: nested/derived.ts -import { f } from "./base"; - -export function g() { - return f(); -} - -// @Filename: nested/index.ts -export * from "./base"; - -export * from "./derived"; -export * from "./shared"; - -// @Filename: nested/shared.ts -export class B {} diff --git a/tsc/testdata/tests/cases/compiler/commonSourceDir5.ts b/tsc/testdata/tests/cases/compiler/commonSourceDir5.ts deleted file mode 100644 index 830e55da0b77c..0000000000000 --- a/tsc/testdata/tests/cases/compiler/commonSourceDir5.ts +++ /dev/null @@ -1,18 +0,0 @@ -// @target: es2015 -// @outFile: concat.js -// @module: esnext -// @moduleResolution: bundler -// @Filename: A:/bar.ts -import {z} from "./foo"; -export var x = z + z; - -// @Filename: A:/foo.ts -import {pi} from "B:/baz"; -export var i = Math.sqrt(-1); -export var z = pi * pi; - -// @Filename: B:/baz.ts -import {x} from "A:/bar"; -import {i} from "A:/foo"; -export var pi = Math.PI; -export var y = x * i; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/commonSourceDir6.ts b/tsc/testdata/tests/cases/compiler/commonSourceDir6.ts deleted file mode 100644 index 26a07421e2d1e..0000000000000 --- a/tsc/testdata/tests/cases/compiler/commonSourceDir6.ts +++ /dev/null @@ -1,18 +0,0 @@ -// @target: es2015 -// @outFile: concat.js -// @outDir: a -// @module: amd -// @Filename: a/bar.ts -import {z} from "./foo"; -export var x = z + z; - -// @Filename: a/foo.ts -import {pi} from "../baz"; -export var i = Math.sqrt(-1); -export var z = pi * pi; - -// @Filename: baz.ts -import {x} from "a/bar"; -import {i} from "a/foo"; -export var pi = Math.PI; -export var y = x * i; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/compilerOptionsOutAndNoEmit.ts b/tsc/testdata/tests/cases/compiler/compilerOptionsOutAndNoEmit.ts deleted file mode 100644 index 48f5c94a06872..0000000000000 --- a/tsc/testdata/tests/cases/compiler/compilerOptionsOutAndNoEmit.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: es2015 -// @outFile: outDir -// @noEmit: true -// @fileName: a.ts - -class c { -} diff --git a/tsc/testdata/tests/cases/compiler/compilerOptionsOutFileAndNoEmit.ts b/tsc/testdata/tests/cases/compiler/compilerOptionsOutFileAndNoEmit.ts deleted file mode 100644 index e0ffab4df4393..0000000000000 --- a/tsc/testdata/tests/cases/compiler/compilerOptionsOutFileAndNoEmit.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: es2015 -// @outFile: a.js -// @noEmit: true -// @fileName: a.ts - -class c { -} diff --git a/tsc/testdata/tests/cases/compiler/declFileWithErrorsInInputDeclarationFileWithOut.ts b/tsc/testdata/tests/cases/compiler/declFileWithErrorsInInputDeclarationFileWithOut.ts deleted file mode 100644 index c885bef370a49..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declFileWithErrorsInInputDeclarationFileWithOut.ts +++ /dev/null @@ -1,18 +0,0 @@ -// @target: es2015 -// @strict: false -// @declaration: true -// @outFile: out.js - -// @Filename: declFile.d.ts -declare namespace M { - declare var x; - declare function f(); - - declare namespace N { } - - declare class C { } -} - -// @Filename: client.ts -/// -var x = new M.C(); // Declaration file wont get emitted because there are errors in declaration file diff --git a/tsc/testdata/tests/cases/compiler/declarationEmitAmdModuleDefault.ts b/tsc/testdata/tests/cases/compiler/declarationEmitAmdModuleDefault.ts deleted file mode 100644 index bcf22ed94d198..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationEmitAmdModuleDefault.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @target: es2015 -// @declaration: true -// @module: amd -// @outFile: file.js -export default class DefaultClass { } \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/declarationEmitBundleWithAmbientReferences.ts b/tsc/testdata/tests/cases/compiler/declarationEmitBundleWithAmbientReferences.ts deleted file mode 100644 index d402c13336cfd..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationEmitBundleWithAmbientReferences.ts +++ /dev/null @@ -1,23 +0,0 @@ -// @target: es2015 -// @noResolve: true -// @declaration: true -// @module: amd -// @outFile: out/datastore.bundle.js -// @filename: lib/lib.d.ts -declare module "lib/result" { - export type Result = (E & Failure) | (T & Success); - export interface Failure { } - export interface Success { } -} - -// @filename: src/datastore_result.ts -import { Result } from "lib/result"; - -export type T = Result; - -// @filename: src/conditional_directive_field.ts -import * as DatastoreResult from "src/datastore_result"; - -export const build = (): DatastoreResult.T => { - return null; -}; diff --git a/tsc/testdata/tests/cases/compiler/declarationEmitCommonSourceDirectoryDoesNotContainAllFiles.ts b/tsc/testdata/tests/cases/compiler/declarationEmitCommonSourceDirectoryDoesNotContainAllFiles.ts deleted file mode 100644 index b3681089434f0..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationEmitCommonSourceDirectoryDoesNotContainAllFiles.ts +++ /dev/null @@ -1,19 +0,0 @@ -// @target: es2015 -// @declaration: true -// @emitDeclarationOnly: true -// @outFile: dist/index.d.ts -// @currentDirectory: /a -// @noImplicitReferences: true -// @filename: /b/index.ts -export * from "./src/" -// @filename: /b/src/index.ts -export class B {} -// @filename: /a/src/index.ts -import { B } from "b"; - -export default function () { - return new B(); -} -// @filename: /a/index.ts -export * from "./src/" -// @link: /b -> /a/node_modules/b \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/declarationEmitDefaultExportWithTempVarNameWithBundling.ts b/tsc/testdata/tests/cases/compiler/declarationEmitDefaultExportWithTempVarNameWithBundling.ts deleted file mode 100644 index df7e6ff41dbad..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationEmitDefaultExportWithTempVarNameWithBundling.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: es2015 -// @declaration: true -// @module: system -// @outFile: app.js - -// @Filename: pi.ts -export default 3.14159; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/declarationEmitOutFileBundlePaths.ts b/tsc/testdata/tests/cases/compiler/declarationEmitOutFileBundlePaths.ts deleted file mode 100644 index 87e61db2f3c2b..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationEmitOutFileBundlePaths.ts +++ /dev/null @@ -1,20 +0,0 @@ -// @target: es2015 -// @allowJs: true -// @checkJs: true -// @emitDeclarationOnly: true -// @module: commonjs -// @declaration: true -// @strict: true -// @esModuleInterop: true -// @outFile: ./js/index.js -// @filename: js/versions.static.js -export default { - "@a/b": "1.0.0", - "@a/c": "1.2.3" -}; -// @filename: js/index.js -import versions from './versions.static.js'; - -export { - versions -}; diff --git a/tsc/testdata/tests/cases/compiler/declarationEmitPrefersPathKindBasedOnBundling2.ts b/tsc/testdata/tests/cases/compiler/declarationEmitPrefersPathKindBasedOnBundling2.ts deleted file mode 100644 index 5df3bb60d7129..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationEmitPrefersPathKindBasedOnBundling2.ts +++ /dev/null @@ -1,23 +0,0 @@ -// @declaration: true -// @target: es5, es2015 -// @baseUrl: . -// @module: amd -// @outFile: ./dist.js -// @rootDir: ./src -// @filename: src/lib/operators/scalar.ts -export interface Scalar { - (): string; - value: number; -} - -export function scalar(value: string): Scalar { - return null as any; -} -// @filename: src/settings/spacing.ts -import { scalar } from '../lib/operators/scalar'; - -export default { - get xs() { - return scalar("14px"); - } -}; diff --git a/tsc/testdata/tests/cases/compiler/declarationFileOverwriteErrorWithOut.ts b/tsc/testdata/tests/cases/compiler/declarationFileOverwriteErrorWithOut.ts deleted file mode 100644 index da77497c9b54b..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationFileOverwriteErrorWithOut.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @target: es2015 -// @declaration: true - -// @outFile: /out.js - -// @Filename: /out.d.ts -declare class c { -} - -// @FileName: /a.ts -class d { -} diff --git a/tsc/testdata/tests/cases/compiler/declarationFilesGeneratingTypeReferences.ts b/tsc/testdata/tests/cases/compiler/declarationFilesGeneratingTypeReferences.ts deleted file mode 100644 index 1c1cc44d4b171..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationFilesGeneratingTypeReferences.ts +++ /dev/null @@ -1,14 +0,0 @@ -// @target: es2015 -// @declaration: true -// @outFile: out.js - -// @filename: /a/node_modules/@types/jquery/index.d.ts -interface JQuery { - -} - -// @filename: /a/app.ts -/// -namespace Test { - export var x: JQuery; -} diff --git a/tsc/testdata/tests/cases/compiler/declarationMapsOutFile.ts b/tsc/testdata/tests/cases/compiler/declarationMapsOutFile.ts deleted file mode 100644 index 9a5e623dcf33e..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationMapsOutFile.ts +++ /dev/null @@ -1,23 +0,0 @@ -// @target: es2015 -// @strict: false -// @declaration: true -// @declarationMap: true -// @module: amd -// @outFile: bundle.js -// @filename: a.ts -export class Foo { - doThing(x: {a: number}) { - return {b: x.a}; - } - static make() { - return new Foo(); - } -} -// @filename: index.ts -import {Foo} from "./a"; - -const c = new Foo(); -c.doThing({a: 42}); - -export let x = c.doThing({a: 12}); -export { c, Foo }; diff --git a/tsc/testdata/tests/cases/compiler/declarationMapsOutFile2.ts b/tsc/testdata/tests/cases/compiler/declarationMapsOutFile2.ts deleted file mode 100644 index 5c7edbfae9a4d..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationMapsOutFile2.ts +++ /dev/null @@ -1,19 +0,0 @@ -// @target: es2015 -// @strict: false -// @declaration: true -// @declarationMap: true -// @outFile: bundle.js -// @filename: a.ts -class Foo { - doThing(x: {a: number}) { - return {b: x.a}; - } - static make() { - return new Foo(); - } -} -// @filename: index.ts -const c = new Foo(); -c.doThing({a: 42}); - -let x = c.doThing({a: 12}); diff --git a/tsc/testdata/tests/cases/compiler/declarationMapsWithSourceMap.ts b/tsc/testdata/tests/cases/compiler/declarationMapsWithSourceMap.ts deleted file mode 100644 index b3fdbbb60b6b7..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationMapsWithSourceMap.ts +++ /dev/null @@ -1,20 +0,0 @@ -// @target: es2015 -// @strict: false -// @declaration: true -// @declarationMap: true -// @outFile: bundle.js -// @sourceMap: true -// @filename: a.ts -class Foo { - doThing(x: {a: number}) { - return {b: x.a}; - } - static make() { - return new Foo(); - } -} -// @filename: index.ts -const c = new Foo(); -c.doThing({a: 42}); - -let x = c.doThing({a: 12}); diff --git a/tsc/testdata/tests/cases/compiler/emitBundleWithPrologueDirectives1.ts b/tsc/testdata/tests/cases/compiler/emitBundleWithPrologueDirectives1.ts deleted file mode 100644 index 1a76e64a02d5d..0000000000000 --- a/tsc/testdata/tests/cases/compiler/emitBundleWithPrologueDirectives1.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @outFile: outFile.js -// @module: amd -// @target: es5, es2015 - -// @Filename: test.ts -/* Detached Comment */ - -// Class Doo Comment -export class Doo {} -class Scooby extends Doo {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/emitBundleWithShebang1.ts b/tsc/testdata/tests/cases/compiler/emitBundleWithShebang1.ts deleted file mode 100644 index 08c7ef8825de7..0000000000000 --- a/tsc/testdata/tests/cases/compiler/emitBundleWithShebang1.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: es5, es2015 -// @outFile: outFile.js -// @module: amd - -#!/usr/bin/env gjs -class Doo {} -class Scooby extends Doo {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/emitBundleWithShebang2.ts b/tsc/testdata/tests/cases/compiler/emitBundleWithShebang2.ts deleted file mode 100644 index 61ea20ca444e9..0000000000000 --- a/tsc/testdata/tests/cases/compiler/emitBundleWithShebang2.ts +++ /dev/null @@ -1,13 +0,0 @@ -// @outFile: outFile.js -// @module: amd -// @target: es5, es2015 - -// @Filename: test.ts -#!/usr/bin/env gjs -class Doo {} -class Scooby extends Doo {} - -// @Filename: test2.ts -#!/usr/bin/env js -class Dood {} -class Scoobyd extends Dood {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/emitBundleWithShebangAndPrologueDirectives1.ts b/tsc/testdata/tests/cases/compiler/emitBundleWithShebangAndPrologueDirectives1.ts deleted file mode 100644 index 76e2b8efc0df3..0000000000000 --- a/tsc/testdata/tests/cases/compiler/emitBundleWithShebangAndPrologueDirectives1.ts +++ /dev/null @@ -1,9 +0,0 @@ -// @outFile: outFile.js -// @module: amd -// @target: es5, es2015 - -// @Filename: test.ts -#!/usr/bin/env gjs -"use strict" -class Doo {} -class Scooby extends Doo {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/emitBundleWithShebangAndPrologueDirectives2.ts b/tsc/testdata/tests/cases/compiler/emitBundleWithShebangAndPrologueDirectives2.ts deleted file mode 100644 index bb30b0236ce6d..0000000000000 --- a/tsc/testdata/tests/cases/compiler/emitBundleWithShebangAndPrologueDirectives2.ts +++ /dev/null @@ -1,16 +0,0 @@ -// @outFile: outFile.js -// @module: amd -// @target: es5, es2015 - -// @Filename: test.ts -#!/usr/bin/env gjs -"use strict" -class Doo {} -class Scooby extends Doo {} - -// @Filename: test1.ts -#!/usr/bin/env gjs -"use strict" -"Another prologue" -class Dood {} -class Scoobyd extends Dood {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/filesEmittingIntoSameOutputWithOutOption.ts b/tsc/testdata/tests/cases/compiler/filesEmittingIntoSameOutputWithOutOption.ts deleted file mode 100644 index 9186f97a705c0..0000000000000 --- a/tsc/testdata/tests/cases/compiler/filesEmittingIntoSameOutputWithOutOption.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @target: es2015 -// @outFile: a.js -// @module: amd -// @filename: a.ts -export class c { -} - -// @filename: b.ts -function foo() { -} diff --git a/tsc/testdata/tests/cases/compiler/importHelpersOutFile.ts b/tsc/testdata/tests/cases/compiler/importHelpersOutFile.ts deleted file mode 100644 index c61e55077cc2c..0000000000000 --- a/tsc/testdata/tests/cases/compiler/importHelpersOutFile.ts +++ /dev/null @@ -1,22 +0,0 @@ -// @importHelpers: true -// @target: es5, es2015 -// @module: amd -// @outfile: out.js -// @filename: a.ts -export class A { } - -// @filename: b.ts -import { A } from "./a"; -export class B extends A { } - -// @filename: c.ts -import { A } from "./a"; -export class C extends A { } - -// @filename: tslib.d.ts -export declare function __extends(d: Function, b: Function): void; -export declare function __assign(t: any, ...sources: any[]): any; -export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any; -export declare function __param(paramIndex: number, decorator: Function): Function; -export declare function __metadata(metadataKey: any, metadataValue: any): Function; -export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any; diff --git a/tsc/testdata/tests/cases/compiler/incrementalOut.ts b/tsc/testdata/tests/cases/compiler/incrementalOut.ts deleted file mode 100644 index 12e43bbb42214..0000000000000 --- a/tsc/testdata/tests/cases/compiler/incrementalOut.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es2015 -// @incremental: true -// @outFile: output.js - -const x = 10; - diff --git a/tsc/testdata/tests/cases/compiler/inlineSources.ts b/tsc/testdata/tests/cases/compiler/inlineSources.ts deleted file mode 100644 index 73f16be0344f9..0000000000000 --- a/tsc/testdata/tests/cases/compiler/inlineSources.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @inlinesources: true -// @outFile: out.js - -// @filename: a.ts -var a = 0; -console.log(a); - -// @filename: b.ts -var b = 0; -console.log(b); diff --git a/tsc/testdata/tests/cases/compiler/inlineSources2.ts b/tsc/testdata/tests/cases/compiler/inlineSources2.ts deleted file mode 100644 index 8f33c37e87697..0000000000000 --- a/tsc/testdata/tests/cases/compiler/inlineSources2.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @target: ES5, ES2015 -// @inlinesourcemap: true -// @inlinesources: true -// @outFile: out.js - -// @filename: a.ts -var a = 0; -console.log(a); - -// @filename: b.ts -var b = 0; -console.log(b); diff --git a/tsc/testdata/tests/cases/compiler/isolatedDeclarationOutFile.ts b/tsc/testdata/tests/cases/compiler/isolatedDeclarationOutFile.ts deleted file mode 100644 index 61f65718b1ae4..0000000000000 --- a/tsc/testdata/tests/cases/compiler/isolatedDeclarationOutFile.ts +++ /dev/null @@ -1,25 +0,0 @@ -// @declaration: true -// @isolatedDeclarations: true -// @outFile: all.js -// @module: amd -// @target: ESNext - -// @Filename: a.ts -export class A { - toUpper(msg: string): string { - return msg.toUpperCase(); - } -} - -// @Filename: b.ts -import { A } from "./a"; - -export class B extends A { - toFixed(n: number): string { - return n.toFixed(6); - } -} - -export function makeB(): A { - return new B(); -} diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.ts deleted file mode 100644 index cdb9e1f9bd01f..0000000000000 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.ts +++ /dev/null @@ -1,16 +0,0 @@ -// @target: es2015 -// @allowJs: true -// @outFile: out.js -// @declaration: true -// @filename: a.ts -class c { -} - -// @filename: b.ts -/// -function foo() { -} - -// @filename: c.js -function bar() { -} diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithOut.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithOut.ts deleted file mode 100644 index e29cde2bb8c3f..0000000000000 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithOut.ts +++ /dev/null @@ -1,16 +0,0 @@ -// @target: es2015 -// @allowJs: true -// @outFile: out.js -// @filename: a.ts -class c { -} - -// @filename: b.ts -/// -//no error on above reference since not emitting declarations -function foo() { -} - -// @filename: c.js -function bar() { -} diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOut.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOut.ts deleted file mode 100644 index 74ed33a6e219a..0000000000000 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOut.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @target: es2015 -// @allowJs: true -// @outFile: out.js -// @filename: a.ts -class c { -} - -// @filename: b.js -function foo() { -} diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOutDeclarationFileNameSameAsInputJsFile.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOutDeclarationFileNameSameAsInputJsFile.ts deleted file mode 100644 index 48f5a4a70ea54..0000000000000 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOutDeclarationFileNameSameAsInputJsFile.ts +++ /dev/null @@ -1,9 +0,0 @@ -// @target: es2015 -// @declaration: true -// @outFile: /b.js -// @filename: /a.ts -class c { -} - -// @filename: /b.d.ts -declare function foo(): boolean; diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOutFileNameSameAsInputJsFile.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOutFileNameSameAsInputJsFile.ts deleted file mode 100644 index b930ad9af9ba7..0000000000000 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationWithOutFileNameSameAsInputJsFile.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @target: es2015 -// @allowJs: true -// @outFile: /b.js -// @filename: /a.ts -class c { -} - -// @filename: /b.js -function foo() { -} diff --git a/tsc/testdata/tests/cases/compiler/keepImportsInDts3.ts b/tsc/testdata/tests/cases/compiler/keepImportsInDts3.ts deleted file mode 100644 index 2b181c01ccf6f..0000000000000 --- a/tsc/testdata/tests/cases/compiler/keepImportsInDts3.ts +++ /dev/null @@ -1,9 +0,0 @@ -// @target: es2015 -// @module: amd -// @declaration: true -// @outFile: outputfile.js - -// @filename: c:/test.ts -export {}; -// @filename: c:/app/main.ts -import "test" diff --git a/tsc/testdata/tests/cases/compiler/keepImportsInDts4.ts b/tsc/testdata/tests/cases/compiler/keepImportsInDts4.ts deleted file mode 100644 index 69d6e07302768..0000000000000 --- a/tsc/testdata/tests/cases/compiler/keepImportsInDts4.ts +++ /dev/null @@ -1,9 +0,0 @@ -// @target: es2015 -// @module: amd -// @declaration: true -// @outFile: outputfile.js - -// @filename: folder/test.ts -export {}; -// @filename: main.ts -import "./folder/test" diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsBundledOutput1.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsBundledOutput1.ts deleted file mode 100644 index efa3376096fe9..0000000000000 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsBundledOutput1.ts +++ /dev/null @@ -1,58 +0,0 @@ -// @strict: false -// @target: es5, es2015 -// @module: amd -// @declaration: true -// @outFile: out.js - -// @filename: m1.ts -export class Cls { -} - -// @filename: m2.ts -import {Cls} from "./m1"; -(Cls.prototype).foo = function() { return 1; }; -(Cls.prototype).bar = function() { return "1"; }; - -declare module "./m1" { - interface Cls { - foo(): number; - } -} - -declare module "./m1" { - interface Cls { - bar(): string; - } -} - -// @filename: m3.ts -export class C1 { x: number } -export class C2 { x: string } - -// @filename: m4.ts -import {Cls} from "./m1"; -import {C1, C2} from "./m3"; -(Cls.prototype).baz1 = function() { return undefined }; -(Cls.prototype).baz2 = function() { return undefined }; - -declare module "./m1" { - interface Cls { - baz1(): C1; - } -} - -declare module "./m1" { - interface Cls { - baz2(): C2; - } -} - -// @filename: test.ts -import { Cls } from "./m1"; -import "m2"; -import "m4"; -let c: Cls; -c.foo().toExponential(); -c.bar().toLowerCase(); -c.baz1().x.toExponential(); -c.baz2().x.toLowerCase(); diff --git a/tsc/testdata/tests/cases/compiler/moduleNoneOutFile.ts b/tsc/testdata/tests/cases/compiler/moduleNoneOutFile.ts deleted file mode 100644 index ee32893d955b5..0000000000000 --- a/tsc/testdata/tests/cases/compiler/moduleNoneOutFile.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: es2015 -// @module: none -// @outFile: bundle.js -// @filename: first.ts -class Foo {} -// @filename: second.ts -class Bar extends Foo {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/noBundledEmitFromNodeModules.ts b/tsc/testdata/tests/cases/compiler/noBundledEmitFromNodeModules.ts deleted file mode 100644 index 7e2c8368d59ff..0000000000000 --- a/tsc/testdata/tests/cases/compiler/noBundledEmitFromNodeModules.ts +++ /dev/null @@ -1,11 +0,0 @@ -// @target: es2015 -// @outFile: out.js -// @module: system -// @moduleResolution: bundler -// @noImplicitReferences: true - -// @fileName: /node_modules/projB/index.ts -export class C {} - -// @fileName: /a.ts -import { C } from "projB"; diff --git a/tsc/testdata/tests/cases/compiler/optionsOutAndNoModuleGen.ts b/tsc/testdata/tests/cases/compiler/optionsOutAndNoModuleGen.ts deleted file mode 100644 index 5c05b6fefd911..0000000000000 --- a/tsc/testdata/tests/cases/compiler/optionsOutAndNoModuleGen.ts +++ /dev/null @@ -1,4 +0,0 @@ -// @target: es2015 -// @outFile: output.js - -export var x = 10; diff --git a/tsc/testdata/tests/cases/compiler/out-flag2.ts b/tsc/testdata/tests/cases/compiler/out-flag2.ts deleted file mode 100644 index 5c387f95c4f6a..0000000000000 --- a/tsc/testdata/tests/cases/compiler/out-flag2.ts +++ /dev/null @@ -1,11 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @declaration: true -// @module: commonjs -// @outFile: c.js - -// @Filename: a.ts -class A { } - -// @Filename: b.ts -class B { } diff --git a/tsc/testdata/tests/cases/compiler/out-flag3.ts b/tsc/testdata/tests/cases/compiler/out-flag3.ts deleted file mode 100644 index c5a242268aba8..0000000000000 --- a/tsc/testdata/tests/cases/compiler/out-flag3.ts +++ /dev/null @@ -1,14 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @declaration: true -// @module: commonjs -// @outFile: c.js -// @outFile: d.js - -// --out and --outFile error - -// @Filename: a.ts -class A { } - -// @Filename: b.ts -class B { } diff --git a/tsc/testdata/tests/cases/compiler/outFileIsDeprecated.ts b/tsc/testdata/tests/cases/compiler/outFileIsDeprecated.ts deleted file mode 100644 index e32f1c9765cd5..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outFileIsDeprecated.ts +++ /dev/null @@ -1,16 +0,0 @@ -// @target: es2015 -// @typeScriptVersion: 6.0 -// @filename: /foo/tsconfig.json -{ - "compilerOptions": { - "moduleDetection": "auto", - "outFile": "dist.js", - "ignoreDeprecations": "6.0" - } -} - -// @filename: /foo/a.ts -const a = 1; - -// @filename: /foo/b.ts -const b = 1; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/outModuleConcatAmd.ts b/tsc/testdata/tests/cases/compiler/outModuleConcatAmd.ts deleted file mode 100644 index ba8ffb945a5d3..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleConcatAmd.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @declaration: true -// @module: amd -// @outFile: all.js - -// @Filename: ref/a.ts -export class A { } - -// @Filename: b.ts -import {A} from "./ref/a"; -export class B extends A { } \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/outModuleConcatCommonjs.ts b/tsc/testdata/tests/cases/compiler/outModuleConcatCommonjs.ts deleted file mode 100644 index 2ca18e6a133c3..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleConcatCommonjs.ts +++ /dev/null @@ -1,14 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @declaration: true -// @module: commonjs -// @outFile: all.js - -// This should be an error - -// @Filename: ref/a.ts -export class A { } - -// @Filename: b.ts -import {A} from "./ref/a"; -export class B extends A { } diff --git a/tsc/testdata/tests/cases/compiler/outModuleConcatCommonjsDeclarationOnly.ts b/tsc/testdata/tests/cases/compiler/outModuleConcatCommonjsDeclarationOnly.ts deleted file mode 100644 index 0f93a0d58bc92..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleConcatCommonjsDeclarationOnly.ts +++ /dev/null @@ -1,13 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @declaration: true -// @emitDeclarationOnly: true -// @module: commonjs -// @outFile: all.js - -// @Filename: ref/a.ts -export class A { } - -// @Filename: b.ts -import {A} from "./ref/a"; -export class B extends A { } diff --git a/tsc/testdata/tests/cases/compiler/outModuleConcatES6.ts b/tsc/testdata/tests/cases/compiler/outModuleConcatES6.ts deleted file mode 100644 index e98514e9adc59..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleConcatES6.ts +++ /dev/null @@ -1,14 +0,0 @@ -// @target: ES6 -// @sourcemap: true -// @declaration: true -// @module: es6 -// @outFile: all.js - -// This should be an error - -// @Filename: ref/a.ts -export class A { } - -// @Filename: b.ts -import {A} from "./ref/a"; -export class B extends A { } \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/outModuleConcatSystem.ts b/tsc/testdata/tests/cases/compiler/outModuleConcatSystem.ts deleted file mode 100644 index 63566fb9e6a97..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleConcatSystem.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @declaration: true -// @module: system -// @outFile: all.js - -// @Filename: ref/a.ts -export class A { } - -// @Filename: b.ts -import {A} from "./ref/a"; -export class B extends A { } \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/outModuleConcatUmd.ts b/tsc/testdata/tests/cases/compiler/outModuleConcatUmd.ts deleted file mode 100644 index 81e56933e5350..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleConcatUmd.ts +++ /dev/null @@ -1,14 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @declaration: true -// @module: umd -// @outFile: all.js - -// This should error - -// @Filename: ref/a.ts -export class A { } - -// @Filename: b.ts -import {A} from "./ref/a"; -export class B extends A { } \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/outModuleConcatUnspecifiedModuleKind.ts b/tsc/testdata/tests/cases/compiler/outModuleConcatUnspecifiedModuleKind.ts deleted file mode 100644 index 88cfad8f700f8..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleConcatUnspecifiedModuleKind.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @target: ES5, ES2015 -// @outFile: out.js - -// @Filename: a.ts -export class A { } // module - -// @Filename: b.ts -var x = 0; // global \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/outModuleConcatUnspecifiedModuleKindDeclarationOnly.ts b/tsc/testdata/tests/cases/compiler/outModuleConcatUnspecifiedModuleKindDeclarationOnly.ts deleted file mode 100644 index 18e915c0fb7e3..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleConcatUnspecifiedModuleKindDeclarationOnly.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @target: ES5, ES2015 -// @outFile: out.js -// @declaration: true, -// @emitDeclarationOnly: true - -// @Filename: a.ts -export class A { } // module - -// @Filename: b.ts -var x = 0; // global diff --git a/tsc/testdata/tests/cases/compiler/outModuleTripleSlashRefs.ts b/tsc/testdata/tests/cases/compiler/outModuleTripleSlashRefs.ts deleted file mode 100644 index 971aa890b9359..0000000000000 --- a/tsc/testdata/tests/cases/compiler/outModuleTripleSlashRefs.ts +++ /dev/null @@ -1,33 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @declaration: true -// @module: amd -// @outFile: all.js - -// @Filename: ref/a.ts -/// -export class A { - member: typeof GlobalFoo; -} - -// @Filename: ref/b.ts -/// -class Foo { - member: Bar; -} -declare var GlobalFoo: Foo; - -// @Filename: ref/c.d.ts -/// -declare class Bar { - member: Baz; -} - -// @Filename: ref/d.d.ts -declare class Baz { - member: number; -} - -// @Filename: b.ts -import {A} from "./ref/a"; -export class B extends A { } diff --git a/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithModuleNodeResolutionEmitAmdOutFile.ts b/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithModuleNodeResolutionEmitAmdOutFile.ts deleted file mode 100644 index f0aa3bca908b9..0000000000000 --- a/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithModuleNodeResolutionEmitAmdOutFile.ts +++ /dev/null @@ -1,15 +0,0 @@ -// @target: es2015 -// @module: amd -// @moduleResolution: bundler -// @outFile: out/output.js -// @fullEmitPaths: true -// @resolveJsonModule: true - -// @Filename: file1.ts -import * as b from './b.json'; - -// @Filename: b.json -{ - "a": true, - "b": "hello" -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/sourceMapWithCaseSensitiveFileNames.ts b/tsc/testdata/tests/cases/compiler/sourceMapWithCaseSensitiveFileNames.ts deleted file mode 100644 index 982c70956d619..0000000000000 --- a/tsc/testdata/tests/cases/compiler/sourceMapWithCaseSensitiveFileNames.ts +++ /dev/null @@ -1,13 +0,0 @@ -// @target: es2015 -// @outFile: testfiles/fooResult.js -// @sourcemap: true -// @useCaseSensitiveFileNames: true -// @Filename: testFiles/app.ts -// Note in the out result we are using same folder name only different in casing -// Since this is case sensitive, the folders are different and hence the relative paths in sourcemap shouldn't be just app.ts or app2.ts -class c { -} - -// @Filename: testFiles/app2.ts -class d { -} diff --git a/tsc/testdata/tests/cases/compiler/sourceMapWithMultipleFilesWithCopyright.ts b/tsc/testdata/tests/cases/compiler/sourceMapWithMultipleFilesWithCopyright.ts deleted file mode 100644 index 98c11236aad89..0000000000000 --- a/tsc/testdata/tests/cases/compiler/sourceMapWithMultipleFilesWithCopyright.ts +++ /dev/null @@ -1,21 +0,0 @@ -// @target: es2015 -// @outFile: a.js -// @sourcemap: true -// @declaration: true -// @Filename: a.ts -/*-------------------------------------------------------------------------- -Copyright ----------------------------------------------------------------------------*/ - -var x = { - a: 10, - b: 20 -}; - -// @Filename: b.ts -/*-------------------------------------------------------------------------- -Copyright ----------------------------------------------------------------------------*/ - -/// -var y = x; diff --git a/tsc/testdata/tests/cases/compiler/sourceMapWithMultipleFilesWithFileEndingWithInterface.ts b/tsc/testdata/tests/cases/compiler/sourceMapWithMultipleFilesWithFileEndingWithInterface.ts deleted file mode 100644 index 43b2390125541..0000000000000 --- a/tsc/testdata/tests/cases/compiler/sourceMapWithMultipleFilesWithFileEndingWithInterface.ts +++ /dev/null @@ -1,19 +0,0 @@ -// @target: es2015 -// @outFile: fooResult.js -// @sourcemap: true -// @Filename: a.ts -namespace M { - export var X = 1; -} -interface Navigator { - getGamepads(func?: any): any; - webkitGetGamepads(func?: any): any - msGetGamepads(func?: any): any; - webkitGamepads(func?: any): any; -} - -// @Filename: b.ts -namespace m1 { - export class c1 { - } -} diff --git a/tsc/testdata/tests/cases/compiler/sourceMapWithNonCaseSensitiveFileNames.ts b/tsc/testdata/tests/cases/compiler/sourceMapWithNonCaseSensitiveFileNames.ts deleted file mode 100644 index 83f25d547e870..0000000000000 --- a/tsc/testdata/tests/cases/compiler/sourceMapWithNonCaseSensitiveFileNames.ts +++ /dev/null @@ -1,13 +0,0 @@ -// @target: es2015 -// @outFile: testfiles/fooResult.js -// @sourcemap: true -// @useCaseSensitiveFileNames: false -// @Filename: testFiles/app.ts -// Note in the out result we are using same folder name only different in casing -// Since this is non case sensitive, the relative paths should be just app.ts and app2.ts in the sourcemap -class c { -} - -// @Filename: testFiles/app2.ts -class d { -} diff --git a/tsc/testdata/tests/cases/compiler/typeReferenceDirectives11.ts b/tsc/testdata/tests/cases/compiler/typeReferenceDirectives11.ts deleted file mode 100644 index 58ca858f0973a..0000000000000 --- a/tsc/testdata/tests/cases/compiler/typeReferenceDirectives11.ts +++ /dev/null @@ -1,23 +0,0 @@ -// @target: es2015 -// @strict: false -// @noImplicitReferences: true -// @declaration: true -// @typeRoots: /types -// @traceResolution: true -// @types: lib -// @outFile: output.js - -// @currentDirectory: / - -// @filename: /types/lib/index.d.ts - -interface Lib { x } - -// @filename: /mod1.ts - -export function foo(): Lib { return {x: 1} } - -// @filename: /mod2.ts - -import {foo} from "./mod1"; -export const bar = foo(); diff --git a/tsc/testdata/tests/cases/compiler/typeReferenceDirectives12.ts b/tsc/testdata/tests/cases/compiler/typeReferenceDirectives12.ts deleted file mode 100644 index 0e99469bd3afe..0000000000000 --- a/tsc/testdata/tests/cases/compiler/typeReferenceDirectives12.ts +++ /dev/null @@ -1,41 +0,0 @@ -// @target: es2015 -// @strict: false -// @noImplicitReferences: true -// @declaration: true -// @typeRoots: /types -// @traceResolution: true -// @outFile: output.js - -// @currentDirectory: / - -// @filename: /types/lib/index.d.ts - -interface Lib { x } - -// @filename: /main.ts -export class Cls { - x -} - -// @filename: /mod1.ts -/// - -import {Cls} from "./main"; -Cls.prototype.foo = function() { return undefined; } - -declare module "./main" { - interface Cls { - foo(): Lib; - } - namespace Cls { - function bar(): Lib; - } -} - -// @filename: /mod2.ts -import { Cls } from "./main"; -import "./mod1"; - -export const cls = Cls; -export const foo = new Cls().foo(); -export const bar = Cls.bar(); diff --git a/tsc/testdata/tests/cases/conformance/declarationEmit/libReferenceDeclarationEmitBundle.ts b/tsc/testdata/tests/cases/conformance/declarationEmit/libReferenceDeclarationEmitBundle.ts deleted file mode 100644 index 41dc5bfe79463..0000000000000 --- a/tsc/testdata/tests/cases/conformance/declarationEmit/libReferenceDeclarationEmitBundle.ts +++ /dev/null @@ -1,13 +0,0 @@ -// @target: esnext -// @module: amd -// @lib: esnext -// @declaration: true -// @outFile: bundle.js -// @filename: file1.ts -/// -export declare const elem: HTMLElement; - -// @filename: file2.ts -/// -export {} -declare const elem: HTMLElement; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/declarationEmit/libReferenceNoLibBundle.ts b/tsc/testdata/tests/cases/conformance/declarationEmit/libReferenceNoLibBundle.ts deleted file mode 100644 index 18f0b5387c5b4..0000000000000 --- a/tsc/testdata/tests/cases/conformance/declarationEmit/libReferenceNoLibBundle.ts +++ /dev/null @@ -1,23 +0,0 @@ -// @target: esnext -// @module: amd -// @noLib: true -// @declaration: true -// @outFile: bundle.js - -// Test that passing noLib disables resolution. - -// @filename: fakelib.ts -interface Object { } -interface Array { } -interface String { } -interface Boolean { } -interface Number { } -interface Function { } -interface RegExp { } -interface IArguments { } - - -// @filename: file1.ts -/// -export declare interface HTMLElement { field: string; } -export const elem: HTMLElement = { field: 'a' }; diff --git a/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts b/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts deleted file mode 100644 index ce42452957353..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts +++ /dev/null @@ -1,15 +0,0 @@ -// @target: ES6 -// @module: amd -// @rootDir: src -// @outFile: output.js -// @filename: src/a.ts -import foo from "./b"; -export default class Foo {} -foo(); - -// @filename: src/b.ts -import Foo from "./a"; -export default function foo() { new Foo(); } - -// https://github.com/microsoft/TypeScript/issues/37429 -import("./a"); \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts b/tsc/testdata/tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts deleted file mode 100644 index f89592f113499..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts +++ /dev/null @@ -1,15 +0,0 @@ -// @target: ES6 -// @module: system -// @rootDir: src -// @outFile: output.js -// @filename: src/a.ts -import foo from "./b"; -export default class Foo {} -foo(); - -// @filename: src/b.ts -import Foo from "./a"; -export default function foo() { new Foo(); } - -// https://github.com/microsoft/TypeScript/issues/37429 -import("./a"); diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/declarations/jsDeclarationsImportTypeBundled.ts b/tsc/testdata/tests/cases/conformance/jsdoc/declarations/jsDeclarationsImportTypeBundled.ts deleted file mode 100644 index 5c591b673d678..0000000000000 --- a/tsc/testdata/tests/cases/conformance/jsdoc/declarations/jsDeclarationsImportTypeBundled.ts +++ /dev/null @@ -1,20 +0,0 @@ -// @target: es2015 -// @allowJs: true -// @checkJs: true -// @outFile: out.js -// @module: amd -// @declaration: true -// @filename: folder/mod1.js -/** - * @typedef {{x: number}} Item - */ -/** - * @type {Item}; - */ -const x = {x: 12}; -module.exports = x; -// @filename: index.js - -/** @type {(typeof import("./folder/mod1"))[]} */ -const items = [{x: 12}]; -module.exports = items; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/types/import/importTypeAmdBundleRewrite.ts b/tsc/testdata/tests/cases/conformance/types/import/importTypeAmdBundleRewrite.ts deleted file mode 100644 index d6ecc00491a76..0000000000000 --- a/tsc/testdata/tests/cases/conformance/types/import/importTypeAmdBundleRewrite.ts +++ /dev/null @@ -1,15 +0,0 @@ -// @target: es2015 -// @declaration: true -// @module: amd -// @outFile: bundle.js -// @filename: a/b/c.ts -export interface Foo { - x: 12; -} -// @filename: a/inner.ts -const c: import("./b/c").Foo = {x: 12}; -export {c}; - -// @filename: index.ts -const d: typeof import("./a/inner")["c"] = {x: 12}; -export {d}; From 9d89225e0ae7b66a8d88e7bc90d5381487e8dae4 Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2026 17:39:41 +0100 Subject: [PATCH 02/16] test: remove incidental outFile options --- ...finitionSameNameDifferentDirectory_test.go | 2 +- .../tests/getDeclarationDiagnostics_test.go | 2 +- .../blockScopedClassDeclarationAcrossFiles.js | 15 + ...kScopedClassDeclarationAcrossFiles.symbols | 11 + ...ockScopedClassDeclarationAcrossFiles.types | 11 + ...aintOfJavascriptClassExpression.errors.txt | 27 ++ ...straintOfJavascriptClassExpression.symbols | 33 ++ ...onstraintOfJavascriptClassExpression.types | 47 ++ .../constDeclarations-useBeforeDefinition2.js | 15 + ...tDeclarations-useBeforeDefinition2.symbols | 10 + ...nstDeclarations-useBeforeDefinition2.types | 11 + .../compiler/controlFlowJavascript.js | 205 ++++++++ .../compiler/controlFlowJavascript.symbols | 217 +++++++++ .../compiler/controlFlowJavascript.types | 251 ++++++++++ ...inlineSourceMap2(target=es2015).errors.txt | 12 + .../inlineSourceMap2(target=es2015).js | 15 + ...ineSourceMap2(target=es2015).sourcemap.txt | 71 +++ .../inlineSourceMap2(target=es2015).symbols | 14 + .../inlineSourceMap2(target=es2015).types | 16 + ...ationClassMethodContainingArrowFunction.js | 17 + ...ClassMethodContainingArrowFunction.symbols | 20 + ...onClassMethodContainingArrowFunction.types | 22 + ...DuplicateFunctionImplementation.errors.txt | 15 + ...pilationDuplicateFunctionImplementation.js | 27 ++ ...ionDuplicateFunctionImplementation.symbols | 16 + ...ationDuplicateFunctionImplementation.types | 18 + ...ImplementationFileOrderReversed.errors.txt | 16 + ...FunctionImplementationFileOrderReversed.js | 28 ++ ...ionImplementationFileOrderReversed.symbols | 17 + ...ctionImplementationFileOrderReversed.types | 19 + .../jsFileCompilationDuplicateVariable.js | 21 + ...jsFileCompilationDuplicateVariable.symbols | 10 + .../jsFileCompilationDuplicateVariable.types | 12 + ...nDuplicateVariableErrorReported.errors.txt | 12 + ...mpilationDuplicateVariableErrorReported.js | 21 + ...tionDuplicateVariableErrorReported.symbols | 10 + ...lationDuplicateVariableErrorReported.types | 12 + .../jsFileCompilationEmitDeclarations.js | 26 ++ .../jsFileCompilationEmitDeclarations.symbols | 12 + .../jsFileCompilationEmitDeclarations.types | 12 + ...ileCompilationEmitTrippleSlashReference.js | 38 ++ ...mpilationEmitTrippleSlashReference.symbols | 18 + ...CompilationEmitTrippleSlashReference.types | 18 + .../jsFileCompilationLetBeingRenamed.js | 17 + .../jsFileCompilationLetBeingRenamed.symbols | 16 + .../jsFileCompilationLetBeingRenamed.types | 20 + .../jsFileCompilationLetDeclarationOrder.js | 25 + ...FileCompilationLetDeclarationOrder.symbols | 16 + ...jsFileCompilationLetDeclarationOrder.types | 22 + .../jsFileCompilationLetDeclarationOrder2.js | 24 + ...ileCompilationLetDeclarationOrder2.symbols | 16 + ...sFileCompilationLetDeclarationOrder2.types | 22 + ...FileCompilationNonNullAssertion.errors.txt | 8 + .../jsFileCompilationNonNullAssertion.js | 9 + .../jsFileCompilationNonNullAssertion.symbols | 6 + .../jsFileCompilationNonNullAssertion.types | 7 + .../jsFileCompilationRestParameter.js | 9 + .../jsFileCompilationRestParameter.symbols | 7 + .../jsFileCompilationRestParameter.types | 7 + .../jsFileCompilationShortHandProperty.js | 23 + ...jsFileCompilationShortHandProperty.symbols | 22 + .../jsFileCompilationShortHandProperty.types | 26 ++ ...jsFileCompilationTypeAssertions.errors.txt | 15 + .../jsFileCompilationTypeAssertions.js | 12 + .../jsFileCompilationTypeAssertions.symbols | 7 + .../jsFileCompilationTypeAssertions.types | 14 + ...leCompilationWithEnabledCompositeOption.js | 26 ++ ...pilationWithEnabledCompositeOption.symbols | 12 + ...ompilationWithEnabledCompositeOption.types | 12 + .../letDeclarations-useBeforeDefinition2.js | 15 + ...tDeclarations-useBeforeDefinition2.symbols | 10 + ...letDeclarations-useBeforeDefinition2.types | 11 + ...signaturesUseJSDocForOptionalParameters.js | 35 ++ ...turesUseJSDocForOptionalParameters.symbols | 34 ++ ...naturesUseJSDocForOptionalParameters.types | 53 +++ .../compiler/useBeforeDeclaration.js | 40 ++ .../compiler/useBeforeDeclaration.symbols | 35 ++ .../compiler/useBeforeDeclaration.types | 40 ++ .../checkJsdocOnEndOfFile.errors.txt | 10 + .../conformance/checkJsdocOnEndOfFile.js | 13 + .../conformance/checkJsdocOnEndOfFile.symbols | 8 + .../conformance/checkJsdocOnEndOfFile.types | 8 + .../checkJsdocReturnTag1.errors.txt | 28 ++ .../conformance/checkJsdocReturnTag1.js | 47 ++ .../conformance/checkJsdocReturnTag1.symbols | 31 ++ .../conformance/checkJsdocReturnTag1.types | 36 ++ .../checkJsdocReturnTag2.errors.txt | 24 + .../conformance/checkJsdocReturnTag2.js | 34 ++ .../conformance/checkJsdocReturnTag2.symbols | 22 + .../conformance/checkJsdocReturnTag2.types | 26 ++ .../computedPropertyNames52(target=es2015).js | 27 ++ ...utedPropertyNames52(target=es2015).symbols | 29 ++ ...mputedPropertyNames52(target=es2015).types | 38 ++ .../genericSetterInClassTypeJsDoc.js | 61 +++ .../genericSetterInClassTypeJsDoc.symbols | 47 ++ .../genericSetterInClassTypeJsDoc.types | 53 +++ .../globalThisVarDeclaration.errors.txt | 57 +++ .../conformance/globalThisVarDeclaration.js | 62 +++ .../globalThisVarDeclaration.symbols | 105 +++++ .../globalThisVarDeclaration.types | 115 +++++ ...ringClassMembersFromAssignments.errors.txt | 142 ++++++ .../inferringClassMembersFromAssignments.js | 258 ++++++++++ ...ferringClassMembersFromAssignments.symbols | 369 +++++++++++++++ ...inferringClassMembersFromAssignments.types | 441 ++++++++++++++++++ .../conformance/jsObjectsMarkedAsOpenEnded.js | 64 +++ .../jsObjectsMarkedAsOpenEnded.symbols | 81 ++++ .../jsObjectsMarkedAsOpenEnded.types | 129 +++++ .../jsdocAccessibilityTagsDeclarations.js | 109 +++++ ...jsdocAccessibilityTagsDeclarations.symbols | 94 ++++ .../jsdocAccessibilityTagsDeclarations.types | 98 ++++ .../reference/conformance/jsdocLiteral.js | 27 ++ .../conformance/jsdocLiteral.symbols | 26 ++ .../reference/conformance/jsdocLiteral.types | 32 ++ .../conformance/jsdocNeverUndefinedNull.js | 23 + .../jsdocNeverUndefinedNull.symbols | 16 + .../conformance/jsdocNeverUndefinedNull.types | 16 + .../jsdocReadonlyDeclarations.errors.txt | 31 ++ .../conformance/jsdocReadonlyDeclarations.js | 71 +++ .../jsdocReadonlyDeclarations.symbols | 51 ++ .../jsdocReadonlyDeclarations.types | 60 +++ .../reference/conformance/jsdocReturnTag1.js | 45 ++ .../conformance/jsdocReturnTag1.symbols | 30 ++ .../conformance/jsdocReturnTag1.types | 35 ++ .../conformance/methodsReturningThis.js | 39 ++ .../conformance/methodsReturningThis.symbols | 83 ++++ .../conformance/methodsReturningThis.types | 135 ++++++ .../conformance/multipleDeclarations.js | 75 +++ .../conformance/multipleDeclarations.symbols | 111 +++++ .../conformance/multipleDeclarations.types | 140 ++++++ .../topLevelThisAssignment.errors.txt | 17 + .../conformance/topLevelThisAssignment.js | 21 + .../topLevelThisAssignment.symbols | 17 + .../conformance/topLevelThisAssignment.types | 27 ++ .../typeSatisfaction_js.errors.txt | 8 + .../conformance/typeSatisfaction_js.js | 9 + .../conformance/typeSatisfaction_js.symbols | 7 + .../conformance/typeSatisfaction_js.types | 8 + .../uniqueSymbolsDeclarationsInJs.js | 83 ++++ .../uniqueSymbolsDeclarationsInJs.symbols | 50 ++ .../uniqueSymbolsDeclarationsInJs.types | 56 +++ ...ueSymbolsDeclarationsInJsErrors.errors.txt | 25 + .../uniqueSymbolsDeclarationsInJsErrors.js | 42 ++ ...niqueSymbolsDeclarationsInJsErrors.symbols | 26 ++ .../uniqueSymbolsDeclarationsInJsErrors.types | 26 ++ .../blockScopedClassDeclarationAcrossFiles.ts | 2 +- .../blockScopedNamespaceDifferentFile.ts | 1 - ...exConstraintOfJavascriptClassExpression.ts | 2 +- .../constDeclarations-useBeforeDefinition2.ts | 2 +- .../cases/compiler/controlFlowJavascript.ts | 2 +- .../tests/cases/compiler/dynamicRequire.ts | 1 - .../tests/cases/compiler/inlineSourceMap2.ts | 2 +- ...ationClassMethodContainingArrowFunction.ts | 2 +- ...pilationDuplicateFunctionImplementation.ts | 2 +- ...FunctionImplementationFileOrderReversed.ts | 2 +- .../jsFileCompilationDuplicateVariable.ts | 2 +- ...mpilationDuplicateVariableErrorReported.ts | 2 +- .../jsFileCompilationEmitDeclarations.ts | 2 +- ...ileCompilationEmitTrippleSlashReference.ts | 2 +- .../jsFileCompilationLetBeingRenamed.ts | 2 +- .../jsFileCompilationLetDeclarationOrder.ts | 2 +- .../jsFileCompilationLetDeclarationOrder2.ts | 2 +- .../jsFileCompilationNonNullAssertion.ts | 2 +- ...jsFileCompilationRestParamJsDocFunction.ts | 1 - .../jsFileCompilationRestParameter.ts | 2 +- .../jsFileCompilationShortHandProperty.ts | 2 +- .../jsFileCompilationTypeAssertions.ts | 2 +- ...leCompilationWithEnabledCompositeOption.ts | 2 +- .../letDeclarations-useBeforeDefinition2.ts | 2 +- .../compiler/moduleAugmentationsImports1.ts | 1 - .../compiler/moduleAugmentationsImports2.ts | 1 - .../compiler/moduleAugmentationsImports3.ts | 1 - .../compiler/moduleAugmentationsImports4.ts | 1 - .../cases/compiler/moduleNoneDynamicImport.ts | 2 +- ...signaturesUseJSDocForOptionalParameters.ts | 2 +- .../cases/compiler/useBeforeDeclaration.ts | 2 +- .../genericSetterInClassTypeJsDoc.ts | 2 +- .../es2019/globalThisVarDeclaration.ts | 2 +- .../computedPropertyNames52.ts | 2 +- .../typeSatisfaction/typeSatisfaction_js.ts | 2 +- .../jsdoc/checkJsdocOnEndOfFile.ts | 2 +- .../conformance/jsdoc/checkJsdocReturnTag1.ts | 2 +- .../conformance/jsdoc/checkJsdocReturnTag2.ts | 2 +- .../jsdocAccessibilityTagsDeclarations.ts | 2 +- .../cases/conformance/jsdoc/jsdocLiteral.ts | 2 +- .../jsdoc/jsdocNeverUndefinedNull.ts | 2 +- .../jsdoc/jsdocReadonlyDeclarations.ts | 2 +- .../conformance/jsdoc/jsdocReturnTag1.ts | 2 +- .../inferringClassMembersFromAssignments.ts | 2 +- .../salsa/jsObjectsMarkedAsOpenEnded.ts | 2 +- .../conformance/salsa/methodsReturningThis.ts | 2 +- .../conformance/salsa/multipleDeclarations.ts | 2 +- .../salsa/topLevelThisAssignment.ts | 2 +- .../uniqueSymbolsDeclarationsInJs.ts | 2 +- .../uniqueSymbolsDeclarationsInJsErrors.ts | 2 +- 194 files changed, 6270 insertions(+), 52 deletions(-) create mode 100644 tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.js create mode 100644 tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.types create mode 100644 tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.types create mode 100644 tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.js create mode 100644 tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.types create mode 100644 tsc/testdata/baselines/reference/compiler/controlFlowJavascript.js create mode 100644 tsc/testdata/baselines/reference/compiler/controlFlowJavascript.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/controlFlowJavascript.types create mode 100644 tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).sourcemap.txt create mode 100644 tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.types create mode 100644 tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.js create mode 100644 tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.types create mode 100644 tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.js create mode 100644 tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.types create mode 100644 tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.js create mode 100644 tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.types create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.js create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.types create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.js create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.types create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.js create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.types create mode 100644 tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.js create mode 100644 tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.types create mode 100644 tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.js create mode 100644 tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.types create mode 100644 tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.js create mode 100644 tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.types create mode 100644 tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.js create mode 100644 tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.types create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.js create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.types create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocLiteral.js create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocLiteral.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocLiteral.types create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.js create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.types create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.js create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.types create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.js create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.types create mode 100644 tsc/testdata/baselines/reference/conformance/methodsReturningThis.js create mode 100644 tsc/testdata/baselines/reference/conformance/methodsReturningThis.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/methodsReturningThis.types create mode 100644 tsc/testdata/baselines/reference/conformance/multipleDeclarations.js create mode 100644 tsc/testdata/baselines/reference/conformance/multipleDeclarations.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/multipleDeclarations.types create mode 100644 tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.js create mode 100644 tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.types create mode 100644 tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.js create mode 100644 tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.types create mode 100644 tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.js create mode 100644 tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.types create mode 100644 tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.js create mode 100644 tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.types diff --git a/tsc/internal/fourslash/tests/declarationMapsGoToDefinitionSameNameDifferentDirectory_test.go b/tsc/internal/fourslash/tests/declarationMapsGoToDefinitionSameNameDifferentDirectory_test.go index 31325f215a991..a2df4bf862227 100644 --- a/tsc/internal/fourslash/tests/declarationMapsGoToDefinitionSameNameDifferentDirectory_test.go +++ b/tsc/internal/fourslash/tests/declarationMapsGoToDefinitionSameNameDifferentDirectory_test.go @@ -43,7 +43,7 @@ class /*2*/Control{ { "extends": "../tsbase.json", "compilerOptions": { - "outFile": "Source.js" + "outDir": "." }, "files": [ "Source.ts" diff --git a/tsc/internal/fourslash/tests/getDeclarationDiagnostics_test.go b/tsc/internal/fourslash/tests/getDeclarationDiagnostics_test.go index a6a77d04a2518..8551e933f299f 100644 --- a/tsc/internal/fourslash/tests/getDeclarationDiagnostics_test.go +++ b/tsc/internal/fourslash/tests/getDeclarationDiagnostics_test.go @@ -12,7 +12,7 @@ func TestGetDeclarationDiagnostics(t *testing.T) { defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `// @strict: false // @declaration: true -// @outFile: true +// @outDir: out // @Filename: inputFile1.ts namespace m { export function foo() { diff --git a/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.js b/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.js new file mode 100644 index 0000000000000..ccd2497a3cc36 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/blockScopedClassDeclarationAcrossFiles.ts] //// + +//// [c.ts] +let foo: typeof C; +//// [b.ts] +class C { } + + +//// [c.js] +"use strict"; +let foo; +//// [b.js] +"use strict"; +class C { +} diff --git a/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.symbols b/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.symbols new file mode 100644 index 0000000000000..4fa4569b62ce1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.symbols @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/blockScopedClassDeclarationAcrossFiles.ts] //// + +=== c.ts === +let foo: typeof C; +>foo : Symbol(foo, Decl(c.ts, 0, 3)) +>C : Symbol(C, Decl(b.ts, 0, 0)) + +=== b.ts === +class C { } +>C : Symbol(C, Decl(b.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.types b/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.types new file mode 100644 index 0000000000000..1da2a72801623 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/blockScopedClassDeclarationAcrossFiles.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/blockScopedClassDeclarationAcrossFiles.ts] //// + +=== c.ts === +let foo: typeof C; +>foo : typeof C +>C : typeof C + +=== b.ts === +class C { } +>C : C + diff --git a/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.errors.txt b/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.errors.txt new file mode 100644 index 0000000000000..fa22beceb33e2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.errors.txt @@ -0,0 +1,27 @@ +weird.js(1,1): error TS2552: Cannot find name 'someFunction'. Did you mean 'Function'? +weird.js(1,23): error TS7006: Parameter 'BaseClass' implicitly has an 'any' type. +weird.js(9,17): error TS7006: Parameter 'error' implicitly has an 'any' type. + + +==== weird.js (3 errors) ==== + someFunction(function(BaseClass) { + ~~~~~~~~~~~~ +!!! error TS2552: Cannot find name 'someFunction'. Did you mean 'Function'? +!!! related TS2728 lib.es5.d.ts:--:--: 'Function' is declared here. + ~~~~~~~~~ +!!! error TS7006: Parameter 'BaseClass' implicitly has an 'any' type. + 'use strict'; + const DEFAULT_MESSAGE = "nop!"; + class Hello extends BaseClass { + constructor() { + super(); + this.foo = "bar"; + } + _render(error) { + ~~~~~ +!!! error TS7006: Parameter 'error' implicitly has an 'any' type. + const message = error.message || DEFAULT_MESSAGE; + } + } + }); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.symbols b/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.symbols new file mode 100644 index 0000000000000..99ddd57e9d8cd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.symbols @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/checkIndexConstraintOfJavascriptClassExpression.ts] //// + +=== weird.js === +someFunction(function(BaseClass) { +>BaseClass : Symbol(BaseClass, Decl(weird.js, 0, 22)) + + 'use strict'; + const DEFAULT_MESSAGE = "nop!"; +>DEFAULT_MESSAGE : Symbol(DEFAULT_MESSAGE, Decl(weird.js, 2, 9)) + + class Hello extends BaseClass { +>Hello : Symbol(Hello, Decl(weird.js, 2, 35)) +>BaseClass : Symbol(BaseClass, Decl(weird.js, 0, 22)) + + constructor() { + super(); + this.foo = "bar"; +>this.foo : Symbol(Hello.foo, Decl(weird.js, 5, 20)) +>this : Symbol(Hello, Decl(weird.js, 2, 35)) +>foo : Symbol(Hello.foo, Decl(weird.js, 5, 20)) + } + _render(error) { +>_render : Symbol(Hello._render, Decl(weird.js, 7, 9)) +>error : Symbol(error, Decl(weird.js, 8, 16)) + + const message = error.message || DEFAULT_MESSAGE; +>message : Symbol(message, Decl(weird.js, 9, 17)) +>error : Symbol(error, Decl(weird.js, 8, 16)) +>DEFAULT_MESSAGE : Symbol(DEFAULT_MESSAGE, Decl(weird.js, 2, 9)) + } + } +}); + diff --git a/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.types b/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.types new file mode 100644 index 0000000000000..7f98768cc3b3e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/checkIndexConstraintOfJavascriptClassExpression.types @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/checkIndexConstraintOfJavascriptClassExpression.ts] //// + +=== weird.js === +someFunction(function(BaseClass) { +>someFunction(function(BaseClass) { 'use strict'; const DEFAULT_MESSAGE = "nop!"; class Hello extends BaseClass { constructor() { super(); this.foo = "bar"; } _render(error) { const message = error.message || DEFAULT_MESSAGE; } }}) : any +>someFunction : any +>function(BaseClass) { 'use strict'; const DEFAULT_MESSAGE = "nop!"; class Hello extends BaseClass { constructor() { super(); this.foo = "bar"; } _render(error) { const message = error.message || DEFAULT_MESSAGE; } }} : (BaseClass: any) => void +>BaseClass : any + + 'use strict'; +>'use strict' : "use strict" + + const DEFAULT_MESSAGE = "nop!"; +>DEFAULT_MESSAGE : "nop!" +>"nop!" : "nop!" + + class Hello extends BaseClass { +>Hello : Hello +>BaseClass : any + + constructor() { + super(); +>super() : void +>super : any + + this.foo = "bar"; +>this.foo = "bar" : "bar" +>this.foo : any +>this : this +>foo : any +>"bar" : "bar" + } + _render(error) { +>_render : (error: any) => void +>error : any + + const message = error.message || DEFAULT_MESSAGE; +>message : any +>error.message || DEFAULT_MESSAGE : any +>error.message : any +>error : any +>message : any +>DEFAULT_MESSAGE : "nop!" + } + } +}); + diff --git a/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.js b/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.js new file mode 100644 index 0000000000000..f606a805987f0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/constDeclarations-useBeforeDefinition2.ts] //// + +//// [file1.ts] +c; + +//// [file2.ts] +const c = 0; + + +//// [file1.js] +"use strict"; +c; +//// [file2.js] +"use strict"; +const c = 0; diff --git a/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.symbols b/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.symbols new file mode 100644 index 0000000000000..aa905a40d2930 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/constDeclarations-useBeforeDefinition2.ts] //// + +=== file1.ts === +c; +>c : Symbol(c, Decl(file2.ts, 0, 5)) + +=== file2.ts === +const c = 0; +>c : Symbol(c, Decl(file2.ts, 0, 5)) + diff --git a/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.types b/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.types new file mode 100644 index 0000000000000..168dc54da6d0c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constDeclarations-useBeforeDefinition2.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/constDeclarations-useBeforeDefinition2.ts] //// + +=== file1.ts === +c; +>c : 0 + +=== file2.ts === +const c = 0; +>c : 0 +>0 : 0 + diff --git a/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.js b/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.js new file mode 100644 index 0000000000000..7bb9f9c6962eb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.js @@ -0,0 +1,205 @@ +//// [tests/cases/compiler/controlFlowJavascript.ts] //// + +//// [controlFlowJavascript.js] +let cond = true; + +// CFA for 'let' and no initializer +function f1() { + let x; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined +} + +// CFA for 'let' and 'undefined' initializer +function f2() { + let x = undefined; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined +} + +// CFA for 'let' and 'null' initializer +function f3() { + let x = null; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | null +} + +// CFA for 'var' with no initializer +function f5() { + var x; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined +} + +// CFA for 'var' with 'undefined' initializer +function f6() { + var x = undefined; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined +} + +// CFA for 'var' with 'null' initializer +function f7() { + var x = null; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | null +} + +// No CFA for captured outer variables +function f9() { + let x; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined + function f() { + const z = x; // any + } +} + +// No CFA for captured outer variables +function f10() { + let x; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined + const f = () => { + const z = x; // any + }; +} + + +//// [controlFlowJavascript.js] +"use strict"; +let cond = true; +// CFA for 'let' and no initializer +function f1() { + let x; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined +} +// CFA for 'let' and 'undefined' initializer +function f2() { + let x = undefined; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined +} +// CFA for 'let' and 'null' initializer +function f3() { + let x = null; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | null +} +// CFA for 'var' with no initializer +function f5() { + var x; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined +} +// CFA for 'var' with 'undefined' initializer +function f6() { + var x = undefined; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined +} +// CFA for 'var' with 'null' initializer +function f7() { + var x = null; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | null +} +// No CFA for captured outer variables +function f9() { + let x; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined + function f() { + const z = x; // any + } +} +// No CFA for captured outer variables +function f10() { + let x; + if (cond) { + x = 1; + } + if (cond) { + x = "hello"; + } + const y = x; // string | number | undefined + const f = () => { + const z = x; // any + }; +} diff --git a/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.symbols b/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.symbols new file mode 100644 index 0000000000000..fc5feaf282985 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.symbols @@ -0,0 +1,217 @@ +//// [tests/cases/compiler/controlFlowJavascript.ts] //// + +=== controlFlowJavascript.js === +let cond = true; +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + +// CFA for 'let' and no initializer +function f1() { +>f1 : Symbol(f1, Decl(controlFlowJavascript.js, 0, 16)) + + let x; +>x : Symbol(x, Decl(controlFlowJavascript.js, 4, 7)) + + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = 1; +>x : Symbol(x, Decl(controlFlowJavascript.js, 4, 7)) + } + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = "hello"; +>x : Symbol(x, Decl(controlFlowJavascript.js, 4, 7)) + } + const y = x; // string | number | undefined +>y : Symbol(y, Decl(controlFlowJavascript.js, 11, 9)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 4, 7)) +} + +// CFA for 'let' and 'undefined' initializer +function f2() { +>f2 : Symbol(f2, Decl(controlFlowJavascript.js, 12, 1)) + + let x = undefined; +>x : Symbol(x, Decl(controlFlowJavascript.js, 16, 7)) +>undefined : Symbol(undefined) + + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = 1; +>x : Symbol(x, Decl(controlFlowJavascript.js, 16, 7)) + } + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = "hello"; +>x : Symbol(x, Decl(controlFlowJavascript.js, 16, 7)) + } + const y = x; // string | number | undefined +>y : Symbol(y, Decl(controlFlowJavascript.js, 23, 9)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 16, 7)) +} + +// CFA for 'let' and 'null' initializer +function f3() { +>f3 : Symbol(f3, Decl(controlFlowJavascript.js, 24, 1)) + + let x = null; +>x : Symbol(x, Decl(controlFlowJavascript.js, 28, 7)) + + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = 1; +>x : Symbol(x, Decl(controlFlowJavascript.js, 28, 7)) + } + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = "hello"; +>x : Symbol(x, Decl(controlFlowJavascript.js, 28, 7)) + } + const y = x; // string | number | null +>y : Symbol(y, Decl(controlFlowJavascript.js, 35, 9)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 28, 7)) +} + +// CFA for 'var' with no initializer +function f5() { +>f5 : Symbol(f5, Decl(controlFlowJavascript.js, 36, 1)) + + var x; +>x : Symbol(x, Decl(controlFlowJavascript.js, 40, 7)) + + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = 1; +>x : Symbol(x, Decl(controlFlowJavascript.js, 40, 7)) + } + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = "hello"; +>x : Symbol(x, Decl(controlFlowJavascript.js, 40, 7)) + } + const y = x; // string | number | undefined +>y : Symbol(y, Decl(controlFlowJavascript.js, 47, 9)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 40, 7)) +} + +// CFA for 'var' with 'undefined' initializer +function f6() { +>f6 : Symbol(f6, Decl(controlFlowJavascript.js, 48, 1)) + + var x = undefined; +>x : Symbol(x, Decl(controlFlowJavascript.js, 52, 7)) +>undefined : Symbol(undefined) + + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = 1; +>x : Symbol(x, Decl(controlFlowJavascript.js, 52, 7)) + } + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = "hello"; +>x : Symbol(x, Decl(controlFlowJavascript.js, 52, 7)) + } + const y = x; // string | number | undefined +>y : Symbol(y, Decl(controlFlowJavascript.js, 59, 9)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 52, 7)) +} + +// CFA for 'var' with 'null' initializer +function f7() { +>f7 : Symbol(f7, Decl(controlFlowJavascript.js, 60, 1)) + + var x = null; +>x : Symbol(x, Decl(controlFlowJavascript.js, 64, 7)) + + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = 1; +>x : Symbol(x, Decl(controlFlowJavascript.js, 64, 7)) + } + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = "hello"; +>x : Symbol(x, Decl(controlFlowJavascript.js, 64, 7)) + } + const y = x; // string | number | null +>y : Symbol(y, Decl(controlFlowJavascript.js, 71, 9)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 64, 7)) +} + +// No CFA for captured outer variables +function f9() { +>f9 : Symbol(f9, Decl(controlFlowJavascript.js, 72, 1)) + + let x; +>x : Symbol(x, Decl(controlFlowJavascript.js, 76, 7)) + + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = 1; +>x : Symbol(x, Decl(controlFlowJavascript.js, 76, 7)) + } + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = "hello"; +>x : Symbol(x, Decl(controlFlowJavascript.js, 76, 7)) + } + const y = x; // string | number | undefined +>y : Symbol(y, Decl(controlFlowJavascript.js, 83, 9)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 76, 7)) + + function f() { +>f : Symbol(f, Decl(controlFlowJavascript.js, 83, 16)) + + const z = x; // any +>z : Symbol(z, Decl(controlFlowJavascript.js, 85, 13)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 76, 7)) + } +} + +// No CFA for captured outer variables +function f10() { +>f10 : Symbol(f10, Decl(controlFlowJavascript.js, 87, 1)) + + let x; +>x : Symbol(x, Decl(controlFlowJavascript.js, 91, 7)) + + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = 1; +>x : Symbol(x, Decl(controlFlowJavascript.js, 91, 7)) + } + if (cond) { +>cond : Symbol(cond, Decl(controlFlowJavascript.js, 0, 3)) + + x = "hello"; +>x : Symbol(x, Decl(controlFlowJavascript.js, 91, 7)) + } + const y = x; // string | number | undefined +>y : Symbol(y, Decl(controlFlowJavascript.js, 98, 9)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 91, 7)) + + const f = () => { +>f : Symbol(f, Decl(controlFlowJavascript.js, 99, 9)) + + const z = x; // any +>z : Symbol(z, Decl(controlFlowJavascript.js, 100, 13)) +>x : Symbol(x, Decl(controlFlowJavascript.js, 91, 7)) + + }; +} + diff --git a/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.types b/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.types new file mode 100644 index 0000000000000..ac99dbf071c95 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/controlFlowJavascript.types @@ -0,0 +1,251 @@ +//// [tests/cases/compiler/controlFlowJavascript.ts] //// + +=== controlFlowJavascript.js === +let cond = true; +>cond : boolean +>true : true + +// CFA for 'let' and no initializer +function f1() { +>f1 : () => void + + let x; +>x : any + + if (cond) { +>cond : boolean + + x = 1; +>x = 1 : 1 +>x : any +>1 : 1 + } + if (cond) { +>cond : boolean + + x = "hello"; +>x = "hello" : "hello" +>x : any +>"hello" : "hello" + } + const y = x; // string | number | undefined +>y : string | number | undefined +>x : string | number | undefined +} + +// CFA for 'let' and 'undefined' initializer +function f2() { +>f2 : () => void + + let x = undefined; +>x : any +>undefined : undefined + + if (cond) { +>cond : boolean + + x = 1; +>x = 1 : 1 +>x : any +>1 : 1 + } + if (cond) { +>cond : boolean + + x = "hello"; +>x = "hello" : "hello" +>x : any +>"hello" : "hello" + } + const y = x; // string | number | undefined +>y : string | number | undefined +>x : string | number | undefined +} + +// CFA for 'let' and 'null' initializer +function f3() { +>f3 : () => void + + let x = null; +>x : any + + if (cond) { +>cond : boolean + + x = 1; +>x = 1 : 1 +>x : any +>1 : 1 + } + if (cond) { +>cond : boolean + + x = "hello"; +>x = "hello" : "hello" +>x : any +>"hello" : "hello" + } + const y = x; // string | number | null +>y : string | number | null +>x : string | number | null +} + +// CFA for 'var' with no initializer +function f5() { +>f5 : () => void + + var x; +>x : any + + if (cond) { +>cond : boolean + + x = 1; +>x = 1 : 1 +>x : any +>1 : 1 + } + if (cond) { +>cond : boolean + + x = "hello"; +>x = "hello" : "hello" +>x : any +>"hello" : "hello" + } + const y = x; // string | number | undefined +>y : string | number | undefined +>x : string | number | undefined +} + +// CFA for 'var' with 'undefined' initializer +function f6() { +>f6 : () => void + + var x = undefined; +>x : any +>undefined : undefined + + if (cond) { +>cond : boolean + + x = 1; +>x = 1 : 1 +>x : any +>1 : 1 + } + if (cond) { +>cond : boolean + + x = "hello"; +>x = "hello" : "hello" +>x : any +>"hello" : "hello" + } + const y = x; // string | number | undefined +>y : string | number | undefined +>x : string | number | undefined +} + +// CFA for 'var' with 'null' initializer +function f7() { +>f7 : () => void + + var x = null; +>x : any + + if (cond) { +>cond : boolean + + x = 1; +>x = 1 : 1 +>x : any +>1 : 1 + } + if (cond) { +>cond : boolean + + x = "hello"; +>x = "hello" : "hello" +>x : any +>"hello" : "hello" + } + const y = x; // string | number | null +>y : string | number | null +>x : string | number | null +} + +// No CFA for captured outer variables +function f9() { +>f9 : () => void + + let x; +>x : any + + if (cond) { +>cond : boolean + + x = 1; +>x = 1 : 1 +>x : any +>1 : 1 + } + if (cond) { +>cond : boolean + + x = "hello"; +>x = "hello" : "hello" +>x : any +>"hello" : "hello" + } + const y = x; // string | number | undefined +>y : string | number | undefined +>x : string | number | undefined + + function f() { +>f : () => void + + const z = x; // any +>z : any +>x : any + } +} + +// No CFA for captured outer variables +function f10() { +>f10 : () => void + + let x; +>x : any + + if (cond) { +>cond : boolean + + x = 1; +>x = 1 : 1 +>x : any +>1 : 1 + } + if (cond) { +>cond : boolean + + x = "hello"; +>x = "hello" : "hello" +>x : any +>"hello" : "hello" + } + const y = x; // string | number | undefined +>y : string | number | undefined +>x : string | number | undefined + + const f = () => { +>f : () => void +>() => { const z = x; // any } : () => void + + const z = x; // any +>z : any +>x : any + + }; +} + diff --git a/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).errors.txt b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).errors.txt new file mode 100644 index 0000000000000..e4ba724320001 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).errors.txt @@ -0,0 +1,12 @@ +error TS5053: Option 'mapRoot' cannot be specified with option 'inlineSourceMap'. +error TS5053: Option 'sourceMap' cannot be specified with option 'inlineSourceMap'. + + +!!! error TS5053: Option 'mapRoot' cannot be specified with option 'inlineSourceMap'. +!!! error TS5053: Option 'sourceMap' cannot be specified with option 'inlineSourceMap'. +==== inlineSourceMap2.ts (0 errors) ==== + // configuration errors + + var x = 0; + console.log(x); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).js b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).js new file mode 100644 index 0000000000000..dcf6697f0e4d9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/inlineSourceMap2.ts] //// + +//// [inlineSourceMap2.ts] +// configuration errors + +var x = 0; +console.log(x); + + +//// [inlineSourceMap2.js] +"use strict"; +// configuration errors +var x = 0; +console.log(x); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lU291cmNlTWFwMi5qcyIsInNvdXJjZVJvb3QiOiJmaWxlOi8vL2ZvbGRlci8iLCJzb3VyY2VzIjpbImlubGluZVNvdXJjZU1hcDIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVCQUF1QjtBQUV2QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDIn0= \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).sourcemap.txt b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).sourcemap.txt new file mode 100644 index 0000000000000..219b03b5b6825 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).sourcemap.txt @@ -0,0 +1,71 @@ +=================================================================== +JsFile: inlineSourceMap2.js +mapUrl: data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lU291cmNlTWFwMi5qcyIsInNvdXJjZVJvb3QiOiJmaWxlOi8vL2ZvbGRlci8iLCJzb3VyY2VzIjpbImlubGluZVNvdXJjZU1hcDIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVCQUF1QjtBQUV2QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDIn0= +sourceRoot: file:///folder/ +sources: inlineSourceMap2.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:out/inlineSourceMap2.js +sourceFile:inlineSourceMap2.ts +------------------------------------------------------------------- +>>>"use strict"; +>>>// configuration errors +1 > +2 >^^^^^^^^^^^^^^^^^^^^^^^ +1 > +2 >// configuration errors +1 >Emitted(2, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(2, 24) Source(1, 24) + SourceIndex(0) +--- +>>>var x = 0; +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^ +6 > ^ +7 > ^^^^^^-> +1 > + > + > +2 >var +3 > x +4 > = +5 > 0 +6 > ; +1 >Emitted(3, 1) Source(3, 1) + SourceIndex(0) +2 >Emitted(3, 5) Source(3, 5) + SourceIndex(0) +3 >Emitted(3, 6) Source(3, 6) + SourceIndex(0) +4 >Emitted(3, 9) Source(3, 9) + SourceIndex(0) +5 >Emitted(3, 10) Source(3, 10) + SourceIndex(0) +6 >Emitted(3, 11) Source(3, 11) + SourceIndex(0) +--- +>>>console.log(x); +1-> +2 >^^^^^^^ +3 > ^ +4 > ^^^ +5 > ^ +6 > ^ +7 > ^ +8 > ^ +9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> + > +2 >console +3 > . +4 > log +5 > ( +6 > x +7 > ) +8 > ; +1->Emitted(4, 1) Source(4, 1) + SourceIndex(0) +2 >Emitted(4, 8) Source(4, 8) + SourceIndex(0) +3 >Emitted(4, 9) Source(4, 9) + SourceIndex(0) +4 >Emitted(4, 12) Source(4, 12) + SourceIndex(0) +5 >Emitted(4, 13) Source(4, 13) + SourceIndex(0) +6 >Emitted(4, 14) Source(4, 14) + SourceIndex(0) +7 >Emitted(4, 15) Source(4, 15) + SourceIndex(0) +8 >Emitted(4, 16) Source(4, 16) + SourceIndex(0) +--- +>>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lU291cmNlTWFwMi5qcyIsInNvdXJjZVJvb3QiOiJmaWxlOi8vL2ZvbGRlci8iLCJzb3VyY2VzIjpbImlubGluZVNvdXJjZU1hcDIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVCQUF1QjtBQUV2QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDIn0= \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).symbols new file mode 100644 index 0000000000000..8cd650b50c377 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/inlineSourceMap2.ts] //// + +=== inlineSourceMap2.ts === +// configuration errors + +var x = 0; +>x : Symbol(x, Decl(inlineSourceMap2.ts, 2, 3)) + +console.log(x); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>x : Symbol(x, Decl(inlineSourceMap2.ts, 2, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).types b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).types new file mode 100644 index 0000000000000..7dee271a146de --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/inlineSourceMap2(target=es2015).types @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/inlineSourceMap2.ts] //// + +=== inlineSourceMap2.ts === +// configuration errors + +var x = 0; +>x : number +>0 : 0 + +console.log(x); +>console.log(x) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>x : number + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.js new file mode 100644 index 0000000000000..c307601c1ae0d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/jsFileCompilationClassMethodContainingArrowFunction.ts] //// + +//// [a.js] +class c { + method(a) { + let x = a => this.method(a); + } +} + + +//// [a.js] +"use strict"; +class c { + method(a) { + let x = a => this.method(a); + } +} diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.symbols new file mode 100644 index 0000000000000..d79e0966e56fc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.symbols @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/jsFileCompilationClassMethodContainingArrowFunction.ts] //// + +=== a.js === +class c { +>c : Symbol(c, Decl(a.js, 0, 0)) + + method(a) { +>method : Symbol(c.method, Decl(a.js, 0, 9)) +>a : Symbol(a, Decl(a.js, 1, 11)) + + let x = a => this.method(a); +>x : Symbol(x, Decl(a.js, 2, 11)) +>a : Symbol(a, Decl(a.js, 2, 15)) +>this.method : Symbol(c.method, Decl(a.js, 0, 9)) +>this : Symbol(c, Decl(a.js, 0, 0)) +>method : Symbol(c.method, Decl(a.js, 0, 9)) +>a : Symbol(a, Decl(a.js, 2, 15)) + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.types new file mode 100644 index 0000000000000..9e38800cb60b6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationClassMethodContainingArrowFunction.types @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/jsFileCompilationClassMethodContainingArrowFunction.ts] //// + +=== a.js === +class c { +>c : c + + method(a) { +>method : (a: any) => void +>a : any + + let x = a => this.method(a); +>x : (a: any) => void +>a => this.method(a) : (a: any) => void +>a : any +>this.method(a) : void +>this.method : (a: any) => void +>this : this +>method : (a: any) => void +>a : any + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.errors.txt b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.errors.txt new file mode 100644 index 0000000000000..51e16b7a0ce15 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.errors.txt @@ -0,0 +1,15 @@ +a.ts(1,10): error TS2393: Duplicate function implementation. + + +==== b.js (0 errors) ==== + function foo() { + return 10; + } +==== a.ts (1 errors) ==== + function foo() { + ~~~ +!!! error TS2393: Duplicate function implementation. + return 30; + } + + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.js new file mode 100644 index 0000000000000..25d4a5be0fc64 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementation.ts] //// + +//// [b.js] +function foo() { + return 10; +} +//// [a.ts] +function foo() { + return 30; +} + + + +//// [b.js] +"use strict"; +function foo() { + return 10; +} +//// [a.js] +"use strict"; +function foo() { + return 30; +} + + +//// [b.d.ts] +//// [a.d.ts] diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.symbols new file mode 100644 index 0000000000000..95e1a34d9635e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.symbols @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementation.ts] //// + +=== b.js === +function foo() { +>foo : Symbol(foo, Decl(b.js, 0, 0), Decl(a.ts, 0, 0)) + + return 10; +} +=== a.ts === +function foo() { +>foo : Symbol(foo, Decl(b.js, 0, 0), Decl(a.ts, 0, 0)) + + return 30; +} + + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.types new file mode 100644 index 0000000000000..a12a4b908e6be --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementation.types @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementation.ts] //// + +=== b.js === +function foo() { +>foo : { (): number; (): number; } + + return 10; +>10 : 10 +} +=== a.ts === +function foo() { +>foo : { (): number; (): number; } + + return 30; +>30 : 30 +} + + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.errors.txt b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.errors.txt new file mode 100644 index 0000000000000..142ed1352d92a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.errors.txt @@ -0,0 +1,16 @@ +a.ts(1,10): error TS2393: Duplicate function implementation. + + +==== a.ts (1 errors) ==== + function foo() { + ~~~ +!!! error TS2393: Duplicate function implementation. + return 30; + } + +==== b.js (0 errors) ==== + function foo() { + return 10; + } + + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.js new file mode 100644 index 0000000000000..6c66e66cea1de --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.ts] //// + +//// [a.ts] +function foo() { + return 30; +} + +//// [b.js] +function foo() { + return 10; +} + + + +//// [a.js] +"use strict"; +function foo() { + return 30; +} +//// [b.js] +"use strict"; +function foo() { + return 10; +} + + +//// [a.d.ts] +//// [b.d.ts] diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.symbols new file mode 100644 index 0000000000000..56a11f92877ee --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.ts] //// + +=== a.ts === +function foo() { +>foo : Symbol(foo, Decl(a.ts, 0, 0), Decl(b.js, 0, 0)) + + return 30; +} + +=== b.js === +function foo() { +>foo : Symbol(foo, Decl(a.ts, 0, 0), Decl(b.js, 0, 0)) + + return 10; +} + + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.types new file mode 100644 index 0000000000000..8cf49d3bd1d2a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.types @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.ts] //// + +=== a.ts === +function foo() { +>foo : { (): number; (): number; } + + return 30; +>30 : 30 +} + +=== b.js === +function foo() { +>foo : { (): number; (): number; } + + return 10; +>10 : 10 +} + + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.js new file mode 100644 index 0000000000000..7163747c5dbd8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateVariable.ts] //// + +//// [a.ts] +var x = 10; + +//// [b.js] +var x = "hello"; // Error is recorded here, but suppressed because the js file isn't checked + + +//// [a.js] +"use strict"; +var x = 10; +//// [b.js] +"use strict"; +var x = "hello"; // Error is recorded here, but suppressed because the js file isn't checked + + +//// [a.d.ts] +declare var x: number; +//// [b.d.ts] +declare var x: number; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.symbols new file mode 100644 index 0000000000000..6966b38384904 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateVariable.ts] //// + +=== a.ts === +var x = 10; +>x : Symbol(x, Decl(a.ts, 0, 3), Decl(b.js, 0, 3)) + +=== b.js === +var x = "hello"; // Error is recorded here, but suppressed because the js file isn't checked +>x : Symbol(x, Decl(a.ts, 0, 3), Decl(b.js, 0, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.types new file mode 100644 index 0000000000000..04852646410d8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariable.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateVariable.ts] //// + +=== a.ts === +var x = 10; +>x : number +>10 : 10 + +=== b.js === +var x = "hello"; // Error is recorded here, but suppressed because the js file isn't checked +>x : number +>"hello" : "hello" + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.errors.txt b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.errors.txt new file mode 100644 index 0000000000000..a44b8c591ddfc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.errors.txt @@ -0,0 +1,12 @@ +a.ts(1,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'x' must be of type 'string', but here has type 'number'. + + +==== b.js (0 errors) ==== + var x = "hello"; + +==== a.ts (1 errors) ==== + var x = 10; // Error reported + ~ +!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'x' must be of type 'string', but here has type 'number'. +!!! related TS6203 b.js:1:5: 'x' was also declared here. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.js new file mode 100644 index 0000000000000..9c546d59871cf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateVariableErrorReported.ts] //// + +//// [b.js] +var x = "hello"; + +//// [a.ts] +var x = 10; // Error reported + + +//// [b.js] +"use strict"; +var x = "hello"; +//// [a.js] +"use strict"; +var x = 10; // Error reported + + +//// [b.d.ts] +declare var x: string; +//// [a.d.ts] +declare var x: string; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.symbols new file mode 100644 index 0000000000000..d122fd9ec38a5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateVariableErrorReported.ts] //// + +=== b.js === +var x = "hello"; +>x : Symbol(x, Decl(b.js, 0, 3), Decl(a.ts, 0, 3)) + +=== a.ts === +var x = 10; // Error reported +>x : Symbol(x, Decl(b.js, 0, 3), Decl(a.ts, 0, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.types new file mode 100644 index 0000000000000..cabb99161dffd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationDuplicateVariableErrorReported.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/jsFileCompilationDuplicateVariableErrorReported.ts] //// + +=== b.js === +var x = "hello"; +>x : string +>"hello" : "hello" + +=== a.ts === +var x = 10; // Error reported +>x : string +>10 : 10 + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.js new file mode 100644 index 0000000000000..6cbcbece0d6bb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/jsFileCompilationEmitDeclarations.ts] //// + +//// [a.ts] +class c { +} + +//// [b.js] +function foo() { +} + + +//// [a.js] +"use strict"; +class c { +} +//// [b.js] +"use strict"; +function foo() { +} + + +//// [a.d.ts] +declare class c { +} +//// [b.d.ts] +declare function foo(): void; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.symbols new file mode 100644 index 0000000000000..427342522ff35 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/jsFileCompilationEmitDeclarations.ts] //// + +=== a.ts === +class c { +>c : Symbol(c, Decl(a.ts, 0, 0)) +} + +=== b.js === +function foo() { +>foo : Symbol(foo, Decl(b.js, 0, 0)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.types new file mode 100644 index 0000000000000..6a130e285c479 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitDeclarations.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/jsFileCompilationEmitDeclarations.ts] //// + +=== a.ts === +class c { +>c : c +} + +=== b.js === +function foo() { +>foo : () => void +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.js new file mode 100644 index 0000000000000..9265fb4e58414 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.js @@ -0,0 +1,38 @@ +//// [tests/cases/compiler/jsFileCompilationEmitTrippleSlashReference.ts] //// + +//// [a.ts] +class c { +} + +//// [b.js] +/// +function foo() { +} + +//// [c.js] +function bar() { +} + + +//// [a.js] +"use strict"; +class c { +} +//// [c.js] +"use strict"; +function bar() { +} +//// [b.js] +"use strict"; +/// +function foo() { +} + + +//// [a.d.ts] +declare class c { +} +//// [c.d.ts] +declare function bar(): void; +//// [b.d.ts] +declare function foo(): void; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.symbols new file mode 100644 index 0000000000000..587047e77448a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.symbols @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/jsFileCompilationEmitTrippleSlashReference.ts] //// + +=== a.ts === +class c { +>c : Symbol(c, Decl(a.ts, 0, 0)) +} + +=== b.js === +/// +function foo() { +>foo : Symbol(foo, Decl(b.js, 0, 0)) +} + +=== c.js === +function bar() { +>bar : Symbol(bar, Decl(c.js, 0, 0)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.types new file mode 100644 index 0000000000000..4c97cbff3906e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationEmitTrippleSlashReference.types @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/jsFileCompilationEmitTrippleSlashReference.ts] //// + +=== a.ts === +class c { +>c : c +} + +=== b.js === +/// +function foo() { +>foo : () => void +} + +=== c.js === +function bar() { +>bar : () => void +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.js new file mode 100644 index 0000000000000..6c0dc2bdf4972 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/jsFileCompilationLetBeingRenamed.ts] //// + +//// [a.js] +function foo(a) { + for (let a = 0; a < 10; a++) { + // do something + } +} + + +//// [a.js] +"use strict"; +function foo(a) { + for (let a = 0; a < 10; a++) { + // do something + } +} diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.symbols new file mode 100644 index 0000000000000..18994a659726e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.symbols @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/jsFileCompilationLetBeingRenamed.ts] //// + +=== a.js === +function foo(a) { +>foo : Symbol(foo, Decl(a.js, 0, 0)) +>a : Symbol(a, Decl(a.js, 0, 13)) + + for (let a = 0; a < 10; a++) { +>a : Symbol(a, Decl(a.js, 1, 12)) +>a : Symbol(a, Decl(a.js, 1, 12)) +>a : Symbol(a, Decl(a.js, 1, 12)) + + // do something + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.types new file mode 100644 index 0000000000000..0b5c5835612c2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetBeingRenamed.types @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/jsFileCompilationLetBeingRenamed.ts] //// + +=== a.js === +function foo(a) { +>foo : (a: any) => void +>a : any + + for (let a = 0; a < 10; a++) { +>a : number +>0 : 0 +>a < 10 : boolean +>a : number +>10 : 10 +>a++ : number +>a : number + + // do something + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.js new file mode 100644 index 0000000000000..0b769678ade15 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/jsFileCompilationLetDeclarationOrder.ts] //// + +//// [b.js] +let a = 10; +b = 30; + +//// [a.ts] +let b = 30; +a = 10; + + +//// [b.js] +"use strict"; +let a = 10; +b = 30; +//// [a.js] +"use strict"; +let b = 30; +a = 10; + + +//// [b.d.ts] +declare let a: number; +//// [a.d.ts] +declare let b: number; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.symbols new file mode 100644 index 0000000000000..e7327adb5561a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.symbols @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/jsFileCompilationLetDeclarationOrder.ts] //// + +=== b.js === +let a = 10; +>a : Symbol(a, Decl(b.js, 0, 3)) + +b = 30; +>b : Symbol(b, Decl(a.ts, 0, 3)) + +=== a.ts === +let b = 30; +>b : Symbol(b, Decl(a.ts, 0, 3)) + +a = 10; +>a : Symbol(a, Decl(b.js, 0, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.types new file mode 100644 index 0000000000000..e8596b8b46ad6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder.types @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/jsFileCompilationLetDeclarationOrder.ts] //// + +=== b.js === +let a = 10; +>a : number +>10 : 10 + +b = 30; +>b = 30 : 30 +>b : number +>30 : 30 + +=== a.ts === +let b = 30; +>b : number +>30 : 30 + +a = 10; +>a = 10 : 10 +>a : number +>10 : 10 + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.js new file mode 100644 index 0000000000000..aa17690c3e1d0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/jsFileCompilationLetDeclarationOrder2.ts] //// + +//// [a.ts] +let b = 30; +a = 10; +//// [b.js] +let a = 10; +b = 30; + + +//// [a.js] +"use strict"; +let b = 30; +a = 10; +//// [b.js] +"use strict"; +let a = 10; +b = 30; + + +//// [a.d.ts] +declare let b: number; +//// [b.d.ts] +declare let a: number; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.symbols new file mode 100644 index 0000000000000..5f8fb8408f8fc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.symbols @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/jsFileCompilationLetDeclarationOrder2.ts] //// + +=== a.ts === +let b = 30; +>b : Symbol(b, Decl(a.ts, 0, 3)) + +a = 10; +>a : Symbol(a, Decl(b.js, 0, 3)) + +=== b.js === +let a = 10; +>a : Symbol(a, Decl(b.js, 0, 3)) + +b = 30; +>b : Symbol(b, Decl(a.ts, 0, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.types new file mode 100644 index 0000000000000..77b87151ee28c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationLetDeclarationOrder2.types @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/jsFileCompilationLetDeclarationOrder2.ts] //// + +=== a.ts === +let b = 30; +>b : number +>30 : 30 + +a = 10; +>a = 10 : 10 +>a : number +>10 : 10 + +=== b.js === +let a = 10; +>a : number +>10 : 10 + +b = 30; +>b = 30 : 30 +>b : number +>30 : 30 + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.errors.txt b/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.errors.txt new file mode 100644 index 0000000000000..68250662d890c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.errors.txt @@ -0,0 +1,8 @@ +/src/a.js(1,1): error TS8013: Non-null assertions can only be used in TypeScript files. + + +==== /src/a.js (1 errors) ==== + 0! + ~~ +!!! error TS8013: Non-null assertions can only be used in TypeScript files. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.js new file mode 100644 index 0000000000000..d4cbe0c46760f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.js @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/jsFileCompilationNonNullAssertion.ts] //// + +//// [a.js] +0! + + +//// [a.js] +"use strict"; +0; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.symbols new file mode 100644 index 0000000000000..1804a9bac8abd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.symbols @@ -0,0 +1,6 @@ +//// [tests/cases/compiler/jsFileCompilationNonNullAssertion.ts] //// + +=== /src/a.js === + +0! + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.types new file mode 100644 index 0000000000000..8d2f97d97bdcb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationNonNullAssertion.types @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationNonNullAssertion.ts] //// + +=== /src/a.js === +0! +>0! : 0 +>0 : 0 + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.js new file mode 100644 index 0000000000000..f0228eeb5838d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.js @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/jsFileCompilationRestParameter.ts] //// + +//// [a.js] +function foo(...a) { } + + +//// [a.js] +"use strict"; +function foo(...a) { } diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.symbols new file mode 100644 index 0000000000000..77e06465c1093 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.symbols @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationRestParameter.ts] //// + +=== a.js === +function foo(...a) { } +>foo : Symbol(foo, Decl(a.js, 0, 0)) +>a : Symbol(a, Decl(a.js, 0, 13)) + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.types new file mode 100644 index 0000000000000..ace365e6e6f89 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParameter.types @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationRestParameter.ts] //// + +=== a.js === +function foo(...a) { } +>foo : (...a: any[]) => void +>a : any[] + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.js new file mode 100644 index 0000000000000..62420c0d56dd6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.js @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/jsFileCompilationShortHandProperty.ts] //// + +//// [a.js] +function foo() { + var a = 10; + var b = "Hello"; + return { + a, + b + }; +} + + +//// [a.js] +"use strict"; +function foo() { + var a = 10; + var b = "Hello"; + return { + a, + b + }; +} diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.symbols new file mode 100644 index 0000000000000..4cde6bb927a8d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.symbols @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/jsFileCompilationShortHandProperty.ts] //// + +=== a.js === +function foo() { +>foo : Symbol(foo, Decl(a.js, 0, 0)) + + var a = 10; +>a : Symbol(a, Decl(a.js, 1, 7)) + + var b = "Hello"; +>b : Symbol(b, Decl(a.js, 2, 7)) + + return { + a, +>a : Symbol(a, Decl(a.js, 3, 12)) + + b +>b : Symbol(b, Decl(a.js, 4, 10)) + + }; +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.types new file mode 100644 index 0000000000000..163af24a00ea7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationShortHandProperty.types @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/jsFileCompilationShortHandProperty.ts] //// + +=== a.js === +function foo() { +>foo : () => { a: number; b: string; } + + var a = 10; +>a : number +>10 : 10 + + var b = "Hello"; +>b : string +>"Hello" : "Hello" + + return { +>{ a, b } : { a: number; b: string; } + + a, +>a : number + + b +>b : string + + }; +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.errors.txt b/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.errors.txt new file mode 100644 index 0000000000000..c120f1de95352 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.errors.txt @@ -0,0 +1,15 @@ +/src/a.js(1,6): error TS8016: Type assertion expressions can only be used in TypeScript files. +/src/a.js(2,10): error TS17008: JSX element 'string' has no corresponding closing tag. +/src/a.js(3,1): error TS1005: 'undefined; + ~~~~~~ +!!! error TS17008: JSX element 'string' has no corresponding closing tag. + + +!!! error TS1005: 'undefined; + + +//// [a.js] +"use strict"; +0; +var v = undefined; +; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.symbols new file mode 100644 index 0000000000000..66a4e783922e2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.symbols @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/jsFileCompilationTypeAssertions.ts] //// + +=== /src/a.js === +0 as number; +var v = undefined; +>v : Symbol(v, Decl(a.js, 1, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.types new file mode 100644 index 0000000000000..161d671433d52 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationTypeAssertions.types @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/jsFileCompilationTypeAssertions.ts] //// + +=== /src/a.js === +0 as number; +>0 as number : number +>0 : 0 + +var v = undefined; +>v : any +>undefined; : any +>string : any + +> : any + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.js new file mode 100644 index 0000000000000..c78d25add1356 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/jsFileCompilationWithEnabledCompositeOption.ts] //// + +//// [a.ts] +class c { +} + +//// [b.js] +function foo() { +} + + +//// [a.js] +"use strict"; +class c { +} +//// [b.js] +"use strict"; +function foo() { +} + + +//// [a.d.ts] +declare class c { +} +//// [b.d.ts] +declare function foo(): void; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.symbols new file mode 100644 index 0000000000000..047a93e777d45 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/jsFileCompilationWithEnabledCompositeOption.ts] //// + +=== a.ts === +class c { +>c : Symbol(c, Decl(a.ts, 0, 0)) +} + +=== b.js === +function foo() { +>foo : Symbol(foo, Decl(b.js, 0, 0)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.types new file mode 100644 index 0000000000000..1d05fbf535484 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationWithEnabledCompositeOption.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/jsFileCompilationWithEnabledCompositeOption.ts] //// + +=== a.ts === +class c { +>c : c +} + +=== b.js === +function foo() { +>foo : () => void +} + diff --git a/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.js b/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.js new file mode 100644 index 0000000000000..51b1bd9eaccde --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/letDeclarations-useBeforeDefinition2.ts] //// + +//// [file1.ts] +l; + +//// [file2.ts] +const l = 0; + + +//// [file1.js] +"use strict"; +l; +//// [file2.js] +"use strict"; +const l = 0; diff --git a/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.symbols b/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.symbols new file mode 100644 index 0000000000000..c2a27479c65d7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/letDeclarations-useBeforeDefinition2.ts] //// + +=== file1.ts === +l; +>l : Symbol(l, Decl(file2.ts, 0, 5)) + +=== file2.ts === +const l = 0; +>l : Symbol(l, Decl(file2.ts, 0, 5)) + diff --git a/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.types b/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.types new file mode 100644 index 0000000000000..ce7d51dafae34 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/letDeclarations-useBeforeDefinition2.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/letDeclarations-useBeforeDefinition2.ts] //// + +=== file1.ts === +l; +>l : 0 + +=== file2.ts === +const l = 0; +>l : 0 +>0 : 0 + diff --git a/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.js b/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.js new file mode 100644 index 0000000000000..c8622126557e0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/signaturesUseJSDocForOptionalParameters.ts] //// + +//// [jsDocOptionality.js] +function MyClass() { + this.prop = null; +} +/** + * @param {string} required + * @param {string} [notRequired] + * @returns {MyClass} + */ +MyClass.prototype.optionalParam = function(required, notRequired) { + return this; +}; +let pInst = new MyClass(); +let c1 = pInst.optionalParam('hello') +let c2 = pInst.optionalParam('hello', null) + + +//// [jsDocOptionality.js] +"use strict"; +function MyClass() { + this.prop = null; +} +/** + * @param {string} required + * @param {string} [notRequired] + * @returns {MyClass} + */ +MyClass.prototype.optionalParam = function (required, notRequired) { + return this; +}; +let pInst = new MyClass(); +let c1 = pInst.optionalParam('hello'); +let c2 = pInst.optionalParam('hello', null); diff --git a/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.symbols b/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.symbols new file mode 100644 index 0000000000000..8d03715858c42 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.symbols @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/signaturesUseJSDocForOptionalParameters.ts] //// + +=== jsDocOptionality.js === +function MyClass() { +>MyClass : Symbol(MyClass, Decl(jsDocOptionality.js, 0, 0)) + + this.prop = null; +} +/** + * @param {string} required + * @param {string} [notRequired] + * @returns {MyClass} + */ +MyClass.prototype.optionalParam = function(required, notRequired) { +>MyClass.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>MyClass : Symbol(MyClass, Decl(jsDocOptionality.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>required : Symbol(required, Decl(jsDocOptionality.js, 8, 43)) +>notRequired : Symbol(notRequired, Decl(jsDocOptionality.js, 8, 52)) + + return this; +}; +let pInst = new MyClass(); +>pInst : Symbol(pInst, Decl(jsDocOptionality.js, 11, 3)) +>MyClass : Symbol(MyClass, Decl(jsDocOptionality.js, 0, 0)) + +let c1 = pInst.optionalParam('hello') +>c1 : Symbol(c1, Decl(jsDocOptionality.js, 12, 3)) +>pInst : Symbol(pInst, Decl(jsDocOptionality.js, 11, 3)) + +let c2 = pInst.optionalParam('hello', null) +>c2 : Symbol(c2, Decl(jsDocOptionality.js, 13, 3)) +>pInst : Symbol(pInst, Decl(jsDocOptionality.js, 11, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.types b/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.types new file mode 100644 index 0000000000000..6bd3ffd6268f4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/signaturesUseJSDocForOptionalParameters.types @@ -0,0 +1,53 @@ +//// [tests/cases/compiler/signaturesUseJSDocForOptionalParameters.ts] //// + +=== jsDocOptionality.js === +function MyClass() { +>MyClass : () => void + + this.prop = null; +>this.prop = null : null +>this.prop : any +>this : any +>prop : any +} +/** + * @param {string} required + * @param {string} [notRequired] + * @returns {MyClass} + */ +MyClass.prototype.optionalParam = function(required, notRequired) { +>MyClass.prototype.optionalParam = function(required, notRequired) { return this;} : (required: string, notRequired?: string) => MyClass +>MyClass.prototype.optionalParam : any +>MyClass.prototype : any +>MyClass : () => void +>prototype : any +>optionalParam : any +>function(required, notRequired) { return this;} : (required: string, notRequired?: string) => MyClass +>required : string +>notRequired : string | undefined + + return this; +>this : any + +}; +let pInst = new MyClass(); +>pInst : any +>new MyClass() : any +>MyClass : () => void + +let c1 = pInst.optionalParam('hello') +>c1 : any +>pInst.optionalParam('hello') : any +>pInst.optionalParam : any +>pInst : any +>optionalParam : any +>'hello' : "hello" + +let c2 = pInst.optionalParam('hello', null) +>c2 : any +>pInst.optionalParam('hello', null) : any +>pInst.optionalParam : any +>pInst : any +>optionalParam : any +>'hello' : "hello" + diff --git a/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.js b/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.js new file mode 100644 index 0000000000000..a918db9597247 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.js @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/useBeforeDeclaration.ts] //// + +//// [A.ts] +namespace ts { + export function printVersion():void { + log("Version: " + sys.version); // the call of sys.version is deferred, should not report an error. + } + + export function log(info:string):void { + + } +} + +//// [B.ts] +namespace ts { + + export let sys:{version:string} = {version: "2.0.5"}; + +} + + + +//// [A.js] +"use strict"; +var ts; +(function (ts) { + function printVersion() { + log("Version: " + ts.sys.version); // the call of sys.version is deferred, should not report an error. + } + ts.printVersion = printVersion; + function log(info) { + } + ts.log = log; +})(ts || (ts = {})); +//// [B.js] +"use strict"; +var ts; +(function (ts) { + ts.sys = { version: "2.0.5" }; +})(ts || (ts = {})); diff --git a/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.symbols b/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.symbols new file mode 100644 index 0000000000000..1cc4b7e3690a9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.symbols @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/useBeforeDeclaration.ts] //// + +=== A.ts === +namespace ts { +>ts : Symbol(ts, Decl(A.ts, 0, 0), Decl(B.ts, 0, 0)) + + export function printVersion():void { +>printVersion : Symbol(printVersion, Decl(A.ts, 0, 14)) + + log("Version: " + sys.version); // the call of sys.version is deferred, should not report an error. +>log : Symbol(log, Decl(A.ts, 3, 5)) +>sys.version : Symbol(version, Decl(B.ts, 2, 20)) +>sys : Symbol(sys, Decl(B.ts, 2, 14)) +>version : Symbol(version, Decl(B.ts, 2, 20)) + } + + export function log(info:string):void { +>log : Symbol(log, Decl(A.ts, 3, 5)) +>info : Symbol(info, Decl(A.ts, 5, 24)) + + } +} + +=== B.ts === +namespace ts { +>ts : Symbol(ts, Decl(A.ts, 0, 0), Decl(B.ts, 0, 0)) + + export let sys:{version:string} = {version: "2.0.5"}; +>sys : Symbol(sys, Decl(B.ts, 2, 14)) +>version : Symbol(version, Decl(B.ts, 2, 20)) +>version : Symbol(version, Decl(B.ts, 2, 39)) + +} + + diff --git a/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.types b/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.types new file mode 100644 index 0000000000000..7856710cc98a0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/useBeforeDeclaration.types @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/useBeforeDeclaration.ts] //// + +=== A.ts === +namespace ts { +>ts : typeof ts + + export function printVersion():void { +>printVersion : () => void + + log("Version: " + sys.version); // the call of sys.version is deferred, should not report an error. +>log("Version: " + sys.version) : void +>log : (info: string) => void +>"Version: " + sys.version : string +>"Version: " : "Version: " +>sys.version : string +>sys : { version: string; } +>version : string + } + + export function log(info:string):void { +>log : (info: string) => void +>info : string + + } +} + +=== B.ts === +namespace ts { +>ts : typeof ts + + export let sys:{version:string} = {version: "2.0.5"}; +>sys : { version: string; } +>version : string +>{version: "2.0.5"} : { version: string; } +>version : string +>"2.0.5" : "2.0.5" + +} + + diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.errors.txt b/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.errors.txt new file mode 100644 index 0000000000000..19e950b028c0a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.errors.txt @@ -0,0 +1,10 @@ +eof.js(2,20): error TS2304: Cannot find name 'bad'. + + +==== eof.js (1 errors) ==== + /** + * @typedef {Array} Should have error here + ~~~ +!!! error TS2304: Cannot find name 'bad'. + */ + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.js b/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.js new file mode 100644 index 0000000000000..1ba96da6fa055 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts] //// + +//// [eof.js] +/** + * @typedef {Array} Should have error here + */ + + +//// [eof.js] +"use strict"; +/** + * @typedef {Array} Should have error here + */ diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.symbols b/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.symbols new file mode 100644 index 0000000000000..3ee1c8ce74212 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.symbols @@ -0,0 +1,8 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts] //// + +=== eof.js === + +/** + * @typedef {Array} Should have error here + */ + diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.types b/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.types new file mode 100644 index 0000000000000..3ee1c8ce74212 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocOnEndOfFile.types @@ -0,0 +1,8 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts] //// + +=== eof.js === + +/** + * @typedef {Array} Should have error here + */ + diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.errors.txt b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.errors.txt new file mode 100644 index 0000000000000..47f1a3209dede --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.errors.txt @@ -0,0 +1,28 @@ +returns.js(20,12): error TS2872: This kind of expression is always truthy. + + +==== returns.js (1 errors) ==== + // @ts-check + /** + * @returns {string} This comment is not currently exposed + */ + function f() { + return "hello"; + } + + /** + * @returns {string=} This comment is not currently exposed + */ + function f1() { + return "hello world"; + } + + /** + * @returns {string|number} This comment is not currently exposed + */ + function f2() { + return 5 || "hello"; + ~ +!!! error TS2872: This kind of expression is always truthy. + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.js b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.js new file mode 100644 index 0000000000000..728c88fcdfdcc --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.js @@ -0,0 +1,47 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocReturnTag1.ts] //// + +//// [returns.js] +// @ts-check +/** + * @returns {string} This comment is not currently exposed + */ +function f() { + return "hello"; +} + +/** + * @returns {string=} This comment is not currently exposed + */ +function f1() { + return "hello world"; +} + +/** + * @returns {string|number} This comment is not currently exposed + */ +function f2() { + return 5 || "hello"; +} + + +//// [returns.js] +"use strict"; +// @ts-check +/** + * @returns {string} This comment is not currently exposed + */ +function f() { + return "hello"; +} +/** + * @returns {string=} This comment is not currently exposed + */ +function f1() { + return "hello world"; +} +/** + * @returns {string|number} This comment is not currently exposed + */ +function f2() { + return 5 || "hello"; +} diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.symbols b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.symbols new file mode 100644 index 0000000000000..787e4f4d61fa1 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.symbols @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocReturnTag1.ts] //// + +=== returns.js === +// @ts-check +/** + * @returns {string} This comment is not currently exposed + */ +function f() { +>f : Symbol(f, Decl(returns.js, 0, 0)) + + return "hello"; +} + +/** + * @returns {string=} This comment is not currently exposed + */ +function f1() { +>f1 : Symbol(f1, Decl(returns.js, 6, 1)) + + return "hello world"; +} + +/** + * @returns {string|number} This comment is not currently exposed + */ +function f2() { +>f2 : Symbol(f2, Decl(returns.js, 13, 1)) + + return 5 || "hello"; +} + diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.types b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.types new file mode 100644 index 0000000000000..358646fe0bd5c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag1.types @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocReturnTag1.ts] //// + +=== returns.js === +// @ts-check +/** + * @returns {string} This comment is not currently exposed + */ +function f() { +>f : () => string + + return "hello"; +>"hello" : "hello" +} + +/** + * @returns {string=} This comment is not currently exposed + */ +function f1() { +>f1 : () => string | undefined + + return "hello world"; +>"hello world" : "hello world" +} + +/** + * @returns {string|number} This comment is not currently exposed + */ +function f2() { +>f2 : () => string | number + + return 5 || "hello"; +>5 || "hello" : 5 +>5 : 5 +>"hello" : "hello" +} + diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.errors.txt b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.errors.txt new file mode 100644 index 0000000000000..a15ac6cad2083 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.errors.txt @@ -0,0 +1,24 @@ +returns.js(6,5): error TS2322: Type 'number' is not assignable to type 'string'. +returns.js(13,12): error TS2872: This kind of expression is always truthy. + + +==== returns.js (2 errors) ==== + // @ts-check + /** + * @returns {string} This comment is not currently exposed + */ + function f() { + return 5; + ~~~~~~ +!!! error TS2322: Type 'number' is not assignable to type 'string'. + } + + /** + * @returns {string | number} This comment is not currently exposed + */ + function f1() { + return 5 || true; + ~ +!!! error TS2872: This kind of expression is always truthy. + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.js b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.js new file mode 100644 index 0000000000000..222a88e813c6f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.js @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocReturnTag2.ts] //// + +//// [returns.js] +// @ts-check +/** + * @returns {string} This comment is not currently exposed + */ +function f() { + return 5; +} + +/** + * @returns {string | number} This comment is not currently exposed + */ +function f1() { + return 5 || true; +} + + +//// [returns.js] +"use strict"; +// @ts-check +/** + * @returns {string} This comment is not currently exposed + */ +function f() { + return 5; +} +/** + * @returns {string | number} This comment is not currently exposed + */ +function f1() { + return 5 || true; +} diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.symbols b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.symbols new file mode 100644 index 0000000000000..7dcaa09d68426 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.symbols @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocReturnTag2.ts] //// + +=== returns.js === +// @ts-check +/** + * @returns {string} This comment is not currently exposed + */ +function f() { +>f : Symbol(f, Decl(returns.js, 0, 0)) + + return 5; +} + +/** + * @returns {string | number} This comment is not currently exposed + */ +function f1() { +>f1 : Symbol(f1, Decl(returns.js, 6, 1)) + + return 5 || true; +} + diff --git a/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.types b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.types new file mode 100644 index 0000000000000..d1bd4dc49e5d7 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/checkJsdocReturnTag2.types @@ -0,0 +1,26 @@ +//// [tests/cases/conformance/jsdoc/checkJsdocReturnTag2.ts] //// + +=== returns.js === +// @ts-check +/** + * @returns {string} This comment is not currently exposed + */ +function f() { +>f : () => string + + return 5; +>5 : 5 +} + +/** + * @returns {string | number} This comment is not currently exposed + */ +function f1() { +>f1 : () => string | number + + return 5 || true; +>5 || true : 5 +>5 : 5 +>true : true +} + diff --git a/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).js b/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).js new file mode 100644 index 0000000000000..2a50d80b77f1c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/es6/computedProperties/computedPropertyNames52.ts] //// + +//// [computedPropertyNames52.js] +const array = []; +for (let i = 0; i < 10; ++i) { + array.push(class C { + [i] = () => C; + static [i] = 100; + }) +} + + +//// [computedPropertyNames52.js] +"use strict"; +const array = []; +for (let i = 0; i < 10; ++i) { + let _a, _b, _c; + array.push((_c = class C { + constructor() { + this[_a] = () => _c; + } + }, + _a = i, + _b = i, + _c[_b] = 100, + _c)); +} diff --git a/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).symbols b/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).symbols new file mode 100644 index 0000000000000..469929e760116 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).symbols @@ -0,0 +1,29 @@ +//// [tests/cases/conformance/es6/computedProperties/computedPropertyNames52.ts] //// + +=== computedPropertyNames52.js === +const array = []; +>array : Symbol(array, Decl(computedPropertyNames52.js, 0, 5)) + +for (let i = 0; i < 10; ++i) { +>i : Symbol(i, Decl(computedPropertyNames52.js, 1, 8)) +>i : Symbol(i, Decl(computedPropertyNames52.js, 1, 8)) +>i : Symbol(i, Decl(computedPropertyNames52.js, 1, 8)) + + array.push(class C { +>array.push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --)) +>array : Symbol(array, Decl(computedPropertyNames52.js, 0, 5)) +>push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --)) +>C : Symbol(C, Decl(computedPropertyNames52.js, 2, 15)) + + [i] = () => C; +>[i] : Symbol(C[i], Decl(computedPropertyNames52.js, 2, 24)) +>i : Symbol(i, Decl(computedPropertyNames52.js, 1, 8)) +>C : Symbol(C, Decl(computedPropertyNames52.js, 2, 15)) + + static [i] = 100; +>[i] : Symbol(C[i], Decl(computedPropertyNames52.js, 3, 22)) +>i : Symbol(i, Decl(computedPropertyNames52.js, 1, 8)) + + }) +} + diff --git a/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).types b/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).types new file mode 100644 index 0000000000000..e7a7e5d57d31a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/computedPropertyNames52(target=es2015).types @@ -0,0 +1,38 @@ +//// [tests/cases/conformance/es6/computedProperties/computedPropertyNames52.ts] //// + +=== computedPropertyNames52.js === +const array = []; +>array : any[] +>[] : never[] + +for (let i = 0; i < 10; ++i) { +>i : number +>0 : 0 +>i < 10 : boolean +>i : number +>10 : 10 +>++i : number +>i : number + + array.push(class C { +>array.push(class C { [i] = () => C; static [i] = 100; }) : number +>array.push : (...items: any[]) => number +>array : any[] +>push : (...items: any[]) => number +>class C { [i] = () => C; static [i] = 100; } : typeof C +>C : typeof C + + [i] = () => C; +>[i] : () => typeof C +>i : number +>() => C : () => typeof C +>C : typeof C + + static [i] = 100; +>[i] : number +>i : number +>100 : 100 + + }) +} + diff --git a/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.js b/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.js new file mode 100644 index 0000000000000..6017aa89b2e47 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.js @@ -0,0 +1,61 @@ +//// [tests/cases/conformance/classes/members/classTypes/genericSetterInClassTypeJsDoc.ts] //// + +//// [genericSetterInClassTypeJsDoc.js] +/** + * @template T + */ + class Box { + #value; + + /** @param {T} initialValue */ + constructor(initialValue) { + this.#value = initialValue; + } + + /** @type {T} */ + get value() { + return this.#value; + } + + set value(value) { + this.#value = value; + } +} + +new Box(3).value = 3; + + +//// [genericSetterInClassTypeJsDoc.js] +"use strict"; +/** + * @template T + */ +class Box { + #value; + /** @param {T} initialValue */ + constructor(initialValue) { + this.#value = initialValue; + } + /** @type {T} */ + get value() { + return this.#value; + } + set value(value) { + this.#value = value; + } +} +new Box(3).value = 3; + + +//// [genericSetterInClassTypeJsDoc.d.ts] +/** + * @template T + */ +declare class Box { + #private; + /** @param {T} initialValue */ + constructor(initialValue: T); + /** @type {T} */ + get value(): T; + set value(value: T); +} diff --git a/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.symbols b/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.symbols new file mode 100644 index 0000000000000..d837a7df570ae --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.symbols @@ -0,0 +1,47 @@ +//// [tests/cases/conformance/classes/members/classTypes/genericSetterInClassTypeJsDoc.ts] //// + +=== genericSetterInClassTypeJsDoc.js === +/** + * @template T + */ + class Box { +>Box : Symbol(Box, Decl(genericSetterInClassTypeJsDoc.js, 0, 0)) + + #value; +>#value : Symbol(Box.#value, Decl(genericSetterInClassTypeJsDoc.js, 3, 12)) + + /** @param {T} initialValue */ + constructor(initialValue) { +>initialValue : Symbol(initialValue, Decl(genericSetterInClassTypeJsDoc.js, 7, 16)) + + this.#value = initialValue; +>this.#value : Symbol(Box.#value, Decl(genericSetterInClassTypeJsDoc.js, 3, 12)) +>this : Symbol(Box, Decl(genericSetterInClassTypeJsDoc.js, 0, 0)) +>initialValue : Symbol(initialValue, Decl(genericSetterInClassTypeJsDoc.js, 7, 16)) + } + + /** @type {T} */ + get value() { +>value : Symbol(Box.value, Decl(genericSetterInClassTypeJsDoc.js, 9, 5), Decl(genericSetterInClassTypeJsDoc.js, 14, 5)) + + return this.#value; +>this.#value : Symbol(Box.#value, Decl(genericSetterInClassTypeJsDoc.js, 3, 12)) +>this : Symbol(Box, Decl(genericSetterInClassTypeJsDoc.js, 0, 0)) + } + + set value(value) { +>value : Symbol(Box.value, Decl(genericSetterInClassTypeJsDoc.js, 9, 5), Decl(genericSetterInClassTypeJsDoc.js, 14, 5)) +>value : Symbol(value, Decl(genericSetterInClassTypeJsDoc.js, 16, 14)) + + this.#value = value; +>this.#value : Symbol(Box.#value, Decl(genericSetterInClassTypeJsDoc.js, 3, 12)) +>this : Symbol(Box, Decl(genericSetterInClassTypeJsDoc.js, 0, 0)) +>value : Symbol(value, Decl(genericSetterInClassTypeJsDoc.js, 16, 14)) + } +} + +new Box(3).value = 3; +>new Box(3).value : Symbol(Box.value, Decl(genericSetterInClassTypeJsDoc.js, 9, 5), Decl(genericSetterInClassTypeJsDoc.js, 14, 5)) +>Box : Symbol(Box, Decl(genericSetterInClassTypeJsDoc.js, 0, 0)) +>value : Symbol(Box.value, Decl(genericSetterInClassTypeJsDoc.js, 9, 5), Decl(genericSetterInClassTypeJsDoc.js, 14, 5)) + diff --git a/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.types b/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.types new file mode 100644 index 0000000000000..f30ced097fcc7 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/genericSetterInClassTypeJsDoc.types @@ -0,0 +1,53 @@ +//// [tests/cases/conformance/classes/members/classTypes/genericSetterInClassTypeJsDoc.ts] //// + +=== genericSetterInClassTypeJsDoc.js === +/** + * @template T + */ + class Box { +>Box : Box + + #value; +>#value : T + + /** @param {T} initialValue */ + constructor(initialValue) { +>initialValue : T + + this.#value = initialValue; +>this.#value = initialValue : T +>this.#value : T +>this : this +>initialValue : T + } + + /** @type {T} */ + get value() { +>value : T + + return this.#value; +>this.#value : T +>this : this + } + + set value(value) { +>value : T +>value : T + + this.#value = value; +>this.#value = value : T +>this.#value : T +>this : this +>value : T + } +} + +new Box(3).value = 3; +>new Box(3).value = 3 : 3 +>new Box(3).value : number +>new Box(3) : Box +>Box : typeof Box +>3 : 3 +>value : number +>3 : 3 + diff --git a/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.errors.txt b/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.errors.txt new file mode 100644 index 0000000000000..78569c5411411 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.errors.txt @@ -0,0 +1,57 @@ +actual.ts(12,1): error TS18047: 'top' is possibly 'null'. +actual.ts(12,5): error TS2339: Property 'a' does not exist on type 'Window'. +actual.ts(13,1): error TS18047: 'top' is possibly 'null'. +actual.ts(13,5): error TS2339: Property 'b' does not exist on type 'Window'. +b.js(12,1): error TS18047: 'top' is possibly 'null'. +b.js(12,5): error TS2339: Property 'a' does not exist on type 'Window'. +b.js(13,1): error TS18047: 'top' is possibly 'null'. +b.js(13,5): error TS2339: Property 'b' does not exist on type 'Window'. + + +==== b.js (4 errors) ==== + var a = 10; + this.a; + this.b; + globalThis.a; + globalThis.b; + + // DOM access is not supported until the index signature is handled more strictly + self.a; + self.b; + window.a; + window.b; + top.a; + ~~~ +!!! error TS18047: 'top' is possibly 'null'. + ~ +!!! error TS2339: Property 'a' does not exist on type 'Window'. + top.b; + ~~~ +!!! error TS18047: 'top' is possibly 'null'. + ~ +!!! error TS2339: Property 'b' does not exist on type 'Window'. + +==== actual.ts (4 errors) ==== + var b = 10; + this.a; + this.b; + globalThis.a; + globalThis.b; + + // same here -- no DOM access to globalThis yet + self.a; + self.b; + window.a; + window.b; + top.a; + ~~~ +!!! error TS18047: 'top' is possibly 'null'. + ~ +!!! error TS2339: Property 'a' does not exist on type 'Window'. + top.b; + ~~~ +!!! error TS18047: 'top' is possibly 'null'. + ~ +!!! error TS2339: Property 'b' does not exist on type 'Window'. + + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.js b/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.js new file mode 100644 index 0000000000000..4e84c3d14d82b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.js @@ -0,0 +1,62 @@ +//// [tests/cases/conformance/es2019/globalThisVarDeclaration.ts] //// + +//// [b.js] +var a = 10; +this.a; +this.b; +globalThis.a; +globalThis.b; + +// DOM access is not supported until the index signature is handled more strictly +self.a; +self.b; +window.a; +window.b; +top.a; +top.b; + +//// [actual.ts] +var b = 10; +this.a; +this.b; +globalThis.a; +globalThis.b; + +// same here -- no DOM access to globalThis yet +self.a; +self.b; +window.a; +window.b; +top.a; +top.b; + + + +//// [b.js] +"use strict"; +var a = 10; +this.a; +this.b; +globalThis.a; +globalThis.b; +// DOM access is not supported until the index signature is handled more strictly +self.a; +self.b; +window.a; +window.b; +top.a; +top.b; +//// [actual.js] +"use strict"; +var b = 10; +this.a; +this.b; +globalThis.a; +globalThis.b; +// same here -- no DOM access to globalThis yet +self.a; +self.b; +window.a; +window.b; +top.a; +top.b; diff --git a/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.symbols b/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.symbols new file mode 100644 index 0000000000000..aeac8862a7585 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.symbols @@ -0,0 +1,105 @@ +//// [tests/cases/conformance/es2019/globalThisVarDeclaration.ts] //// + +=== b.js === +var a = 10; +>a : Symbol(a, Decl(b.js, 0, 3)) + +this.a; +>this.a : Symbol(a, Decl(b.js, 0, 3)) +>this : Symbol(globalThis) +>a : Symbol(a, Decl(b.js, 0, 3)) + +this.b; +>this.b : Symbol(b, Decl(actual.ts, 0, 3)) +>this : Symbol(globalThis) +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +globalThis.a; +>globalThis.a : Symbol(a, Decl(b.js, 0, 3)) +>globalThis : Symbol(globalThis) +>a : Symbol(a, Decl(b.js, 0, 3)) + +globalThis.b; +>globalThis.b : Symbol(b, Decl(actual.ts, 0, 3)) +>globalThis : Symbol(globalThis) +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +// DOM access is not supported until the index signature is handled more strictly +self.a; +>self.a : Symbol(a, Decl(b.js, 0, 3)) +>self : Symbol(self, Decl(lib.dom.d.ts, --, --)) +>a : Symbol(a, Decl(b.js, 0, 3)) + +self.b; +>self.b : Symbol(b, Decl(actual.ts, 0, 3)) +>self : Symbol(self, Decl(lib.dom.d.ts, --, --)) +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +window.a; +>window.a : Symbol(a, Decl(b.js, 0, 3)) +>window : Symbol(window, Decl(lib.dom.d.ts, --, --)) +>a : Symbol(a, Decl(b.js, 0, 3)) + +window.b; +>window.b : Symbol(b, Decl(actual.ts, 0, 3)) +>window : Symbol(window, Decl(lib.dom.d.ts, --, --)) +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +top.a; +>top : Symbol(top, Decl(lib.dom.d.ts, --, --)) + +top.b; +>top : Symbol(top, Decl(lib.dom.d.ts, --, --)) + +=== actual.ts === +var b = 10; +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +this.a; +>this.a : Symbol(a, Decl(b.js, 0, 3)) +>this : Symbol(globalThis) +>a : Symbol(a, Decl(b.js, 0, 3)) + +this.b; +>this.b : Symbol(b, Decl(actual.ts, 0, 3)) +>this : Symbol(globalThis) +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +globalThis.a; +>globalThis.a : Symbol(a, Decl(b.js, 0, 3)) +>globalThis : Symbol(globalThis) +>a : Symbol(a, Decl(b.js, 0, 3)) + +globalThis.b; +>globalThis.b : Symbol(b, Decl(actual.ts, 0, 3)) +>globalThis : Symbol(globalThis) +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +// same here -- no DOM access to globalThis yet +self.a; +>self.a : Symbol(a, Decl(b.js, 0, 3)) +>self : Symbol(self, Decl(lib.dom.d.ts, --, --)) +>a : Symbol(a, Decl(b.js, 0, 3)) + +self.b; +>self.b : Symbol(b, Decl(actual.ts, 0, 3)) +>self : Symbol(self, Decl(lib.dom.d.ts, --, --)) +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +window.a; +>window.a : Symbol(a, Decl(b.js, 0, 3)) +>window : Symbol(window, Decl(lib.dom.d.ts, --, --)) +>a : Symbol(a, Decl(b.js, 0, 3)) + +window.b; +>window.b : Symbol(b, Decl(actual.ts, 0, 3)) +>window : Symbol(window, Decl(lib.dom.d.ts, --, --)) +>b : Symbol(b, Decl(actual.ts, 0, 3)) + +top.a; +>top : Symbol(top, Decl(lib.dom.d.ts, --, --)) + +top.b; +>top : Symbol(top, Decl(lib.dom.d.ts, --, --)) + + diff --git a/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.types b/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.types new file mode 100644 index 0000000000000..11d5b5e2202d7 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/globalThisVarDeclaration.types @@ -0,0 +1,115 @@ +//// [tests/cases/conformance/es2019/globalThisVarDeclaration.ts] //// + +=== b.js === +var a = 10; +>a : number +>10 : 10 + +this.a; +>this.a : number +>this : typeof globalThis +>a : number + +this.b; +>this.b : number +>this : typeof globalThis +>b : number + +globalThis.a; +>globalThis.a : number +>globalThis : typeof globalThis +>a : number + +globalThis.b; +>globalThis.b : number +>globalThis : typeof globalThis +>b : number + +// DOM access is not supported until the index signature is handled more strictly +self.a; +>self.a : number +>self : Window & typeof globalThis +>a : number + +self.b; +>self.b : number +>self : Window & typeof globalThis +>b : number + +window.a; +>window.a : number +>window : Window & typeof globalThis +>a : number + +window.b; +>window.b : number +>window : Window & typeof globalThis +>b : number + +top.a; +>top.a : any +>top : Window | null +>a : any + +top.b; +>top.b : any +>top : Window | null +>b : any + +=== actual.ts === +var b = 10; +>b : number +>10 : 10 + +this.a; +>this.a : number +>this : typeof globalThis +>a : number + +this.b; +>this.b : number +>this : typeof globalThis +>b : number + +globalThis.a; +>globalThis.a : number +>globalThis : typeof globalThis +>a : number + +globalThis.b; +>globalThis.b : number +>globalThis : typeof globalThis +>b : number + +// same here -- no DOM access to globalThis yet +self.a; +>self.a : number +>self : Window & typeof globalThis +>a : number + +self.b; +>self.b : number +>self : Window & typeof globalThis +>b : number + +window.a; +>window.a : number +>window : Window & typeof globalThis +>a : number + +window.b; +>window.b : number +>window : Window & typeof globalThis +>b : number + +top.a; +>top.a : any +>top : Window | null +>a : any + +top.b; +>top.b : any +>top : Window | null +>b : any + + diff --git a/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.errors.txt b/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.errors.txt new file mode 100644 index 0000000000000..d0ec3d2795394 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.errors.txt @@ -0,0 +1,142 @@ +a.js(14,13): error TS7008: Member 'inMethodNullable' implicitly has an 'any' type. +a.js(20,9): error TS2322: Type 'string' is not assignable to type 'number'. +a.js(39,9): error TS2322: Type 'boolean' is not assignable to type 'number'. + + +==== a.js (3 errors) ==== + class C { + constructor() { + if (Math.random()) { + this.inConstructor = 0; + } + else { + this.inConstructor = "string" + } + this.inMultiple = 0; + } + method() { + if (Math.random()) { + this.inMethod = 0; + this.inMethodNullable = null; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS7008: Member 'inMethodNullable' implicitly has an 'any' type. + } + else { + this.inMethod = "string" + this.inMethodNullable = undefined; + } + this.inMultiple = "string"; + ~~~~~~~~~~~~~~~ +!!! error TS2322: Type 'string' is not assignable to type 'number'. + this.inMultipleMethods = "string"; + + var action = () => { + if (Math.random()) { + this.inNestedArrowFunction = 0; + } + else { + this.inNestedArrowFunction = "string" + } + }; + } + get() { + if (Math.random()) { + this.inGetter = 0; + } + else { + this.inGetter = "string" + } + this.inMultiple = false; + ~~~~~~~~~~~~~~~ +!!! error TS2322: Type 'boolean' is not assignable to type 'number'. + this.inMultipleMethods = false; + } + set() { + if (Math.random()) { + this.inSetter = 0; + } + else { + this.inSetter = "string" + } + } + prop = () => { + if (Math.random()) { + this.inPropertyDeclaration = 0; + } + else { + this.inPropertyDeclaration = "string" + } + } + static method() { + if (Math.random()) { + this.inStaticMethod = 0; + } + else { + this.inStaticMethod = "string" + } + + var action = () => { + if (Math.random()) { + this.inStaticNestedArrowFunction = 0; + } + else { + this.inStaticNestedArrowFunction = "string" + } + }; + } + static get() { + if (Math.random()) { + this.inStaticGetter = 0; + } + else { + this.inStaticGetter = "string" + } + } + static set() { + if (Math.random()) { + this.inStaticSetter = 0; + } + else { + this.inStaticSetter = "string" + } + } + static prop = () => { + if (Math.random()) { + this.inStaticPropertyDeclaration = 0; + } + else { + this.inStaticPropertyDeclaration = "string" + } + } + } + +==== b.ts (0 errors) ==== + var c = new C(); + + var stringOrNumber: string | number; + var stringOrNumber = c.inConstructor; + + var stringOrNumberOrUndefined: string | number | undefined; + + var stringOrNumberOrUndefined = c.inMethod; + var stringOrNumberOrUndefined = c.inGetter; + var stringOrNumberOrUndefined = c.inSetter; + var stringOrNumberOrUndefined = c.inPropertyDeclaration; + var stringOrNumberOrUndefined = c.inNestedArrowFunction + + var stringOrNumberOrBoolean: string | number | boolean; + + var number: number; + var number = c.inMultiple; + var stringOrBooleanOrUndefined : string | boolean | undefined; + var stringOrBooleanOrUndefined = c.inMultipleMethods; + var any: any; + var any = c.inMethodNullable; + + + var stringOrNumberOrUndefined = C.inStaticMethod; + var stringOrNumberOrUndefined = C.inStaticGetter; + var stringOrNumberOrUndefined = C.inStaticSetter; + var stringOrNumberOrUndefined = C.inStaticPropertyDeclaration; + var stringOrNumberOrUndefined = C.inStaticNestedArrowFunction; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.js b/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.js new file mode 100644 index 0000000000000..e4970f73e7183 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.js @@ -0,0 +1,258 @@ +//// [tests/cases/conformance/salsa/inferringClassMembersFromAssignments.ts] //// + +//// [a.js] +class C { + constructor() { + if (Math.random()) { + this.inConstructor = 0; + } + else { + this.inConstructor = "string" + } + this.inMultiple = 0; + } + method() { + if (Math.random()) { + this.inMethod = 0; + this.inMethodNullable = null; + } + else { + this.inMethod = "string" + this.inMethodNullable = undefined; + } + this.inMultiple = "string"; + this.inMultipleMethods = "string"; + + var action = () => { + if (Math.random()) { + this.inNestedArrowFunction = 0; + } + else { + this.inNestedArrowFunction = "string" + } + }; + } + get() { + if (Math.random()) { + this.inGetter = 0; + } + else { + this.inGetter = "string" + } + this.inMultiple = false; + this.inMultipleMethods = false; + } + set() { + if (Math.random()) { + this.inSetter = 0; + } + else { + this.inSetter = "string" + } + } + prop = () => { + if (Math.random()) { + this.inPropertyDeclaration = 0; + } + else { + this.inPropertyDeclaration = "string" + } + } + static method() { + if (Math.random()) { + this.inStaticMethod = 0; + } + else { + this.inStaticMethod = "string" + } + + var action = () => { + if (Math.random()) { + this.inStaticNestedArrowFunction = 0; + } + else { + this.inStaticNestedArrowFunction = "string" + } + }; + } + static get() { + if (Math.random()) { + this.inStaticGetter = 0; + } + else { + this.inStaticGetter = "string" + } + } + static set() { + if (Math.random()) { + this.inStaticSetter = 0; + } + else { + this.inStaticSetter = "string" + } + } + static prop = () => { + if (Math.random()) { + this.inStaticPropertyDeclaration = 0; + } + else { + this.inStaticPropertyDeclaration = "string" + } + } +} + +//// [b.ts] +var c = new C(); + +var stringOrNumber: string | number; +var stringOrNumber = c.inConstructor; + +var stringOrNumberOrUndefined: string | number | undefined; + +var stringOrNumberOrUndefined = c.inMethod; +var stringOrNumberOrUndefined = c.inGetter; +var stringOrNumberOrUndefined = c.inSetter; +var stringOrNumberOrUndefined = c.inPropertyDeclaration; +var stringOrNumberOrUndefined = c.inNestedArrowFunction + +var stringOrNumberOrBoolean: string | number | boolean; + +var number: number; +var number = c.inMultiple; +var stringOrBooleanOrUndefined : string | boolean | undefined; +var stringOrBooleanOrUndefined = c.inMultipleMethods; +var any: any; +var any = c.inMethodNullable; + + +var stringOrNumberOrUndefined = C.inStaticMethod; +var stringOrNumberOrUndefined = C.inStaticGetter; +var stringOrNumberOrUndefined = C.inStaticSetter; +var stringOrNumberOrUndefined = C.inStaticPropertyDeclaration; +var stringOrNumberOrUndefined = C.inStaticNestedArrowFunction; + + +//// [a.js] +"use strict"; +var _a; +class C { + constructor() { + this.prop = () => { + if (Math.random()) { + this.inPropertyDeclaration = 0; + } + else { + this.inPropertyDeclaration = "string"; + } + }; + if (Math.random()) { + this.inConstructor = 0; + } + else { + this.inConstructor = "string"; + } + this.inMultiple = 0; + } + method() { + if (Math.random()) { + this.inMethod = 0; + this.inMethodNullable = null; + } + else { + this.inMethod = "string"; + this.inMethodNullable = undefined; + } + this.inMultiple = "string"; + this.inMultipleMethods = "string"; + var action = () => { + if (Math.random()) { + this.inNestedArrowFunction = 0; + } + else { + this.inNestedArrowFunction = "string"; + } + }; + } + get() { + if (Math.random()) { + this.inGetter = 0; + } + else { + this.inGetter = "string"; + } + this.inMultiple = false; + this.inMultipleMethods = false; + } + set() { + if (Math.random()) { + this.inSetter = 0; + } + else { + this.inSetter = "string"; + } + } + static method() { + if (Math.random()) { + this.inStaticMethod = 0; + } + else { + this.inStaticMethod = "string"; + } + var action = () => { + if (Math.random()) { + this.inStaticNestedArrowFunction = 0; + } + else { + this.inStaticNestedArrowFunction = "string"; + } + }; + } + static get() { + if (Math.random()) { + this.inStaticGetter = 0; + } + else { + this.inStaticGetter = "string"; + } + } + static set() { + if (Math.random()) { + this.inStaticSetter = 0; + } + else { + this.inStaticSetter = "string"; + } + } +} +_a = C; +C.prop = () => { + if (Math.random()) { + _a.inStaticPropertyDeclaration = 0; + } + else { + _a.inStaticPropertyDeclaration = "string"; + } +}; +//// [b.js] +"use strict"; +var c = new C(); +var stringOrNumber; +var stringOrNumber = c.inConstructor; +var stringOrNumberOrUndefined; +var stringOrNumberOrUndefined = c.inMethod; +var stringOrNumberOrUndefined = c.inGetter; +var stringOrNumberOrUndefined = c.inSetter; +var stringOrNumberOrUndefined = c.inPropertyDeclaration; +var stringOrNumberOrUndefined = c.inNestedArrowFunction; +var stringOrNumberOrBoolean; +var number; +var number = c.inMultiple; +var stringOrBooleanOrUndefined; +var stringOrBooleanOrUndefined = c.inMultipleMethods; +var any; +var any = c.inMethodNullable; +var stringOrNumberOrUndefined = C.inStaticMethod; +var stringOrNumberOrUndefined = C.inStaticGetter; +var stringOrNumberOrUndefined = C.inStaticSetter; +var stringOrNumberOrUndefined = C.inStaticPropertyDeclaration; +var stringOrNumberOrUndefined = C.inStaticNestedArrowFunction; diff --git a/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.symbols b/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.symbols new file mode 100644 index 0000000000000..6ec267b80df5a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.symbols @@ -0,0 +1,369 @@ +//// [tests/cases/conformance/salsa/inferringClassMembersFromAssignments.ts] //// + +=== a.js === +class C { +>C : Symbol(C, Decl(a.js, 0, 0)) + + constructor() { + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inConstructor = 0; +>this.inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14)) + } + else { + this.inConstructor = "string" +>this.inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14)) + } + this.inMultiple = 0; +>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 18, 9), Decl(a.js, 37, 9)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 18, 9), Decl(a.js, 37, 9)) + } + method() { +>method : Symbol(C.method, Decl(a.js, 9, 5)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inMethod = 0; +>this.inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 15, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 15, 14)) + + this.inMethodNullable = null; +>this.inMethodNullable : Symbol(C.inMethodNullable, Decl(a.js, 12, 30), Decl(a.js, 16, 36)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMethodNullable : Symbol(C.inMethodNullable, Decl(a.js, 12, 30), Decl(a.js, 16, 36)) + } + else { + this.inMethod = "string" +>this.inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 15, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 15, 14)) + + this.inMethodNullable = undefined; +>this.inMethodNullable : Symbol(C.inMethodNullable, Decl(a.js, 12, 30), Decl(a.js, 16, 36)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMethodNullable : Symbol(C.inMethodNullable, Decl(a.js, 12, 30), Decl(a.js, 16, 36)) +>undefined : Symbol(undefined) + } + this.inMultiple = "string"; +>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 18, 9), Decl(a.js, 37, 9)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 18, 9), Decl(a.js, 37, 9)) + + this.inMultipleMethods = "string"; +>this.inMultipleMethods : Symbol(C.inMultipleMethods, Decl(a.js, 19, 35), Decl(a.js, 38, 32)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMultipleMethods : Symbol(C.inMultipleMethods, Decl(a.js, 19, 35), Decl(a.js, 38, 32)) + + var action = () => { +>action : Symbol(action, Decl(a.js, 22, 11)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inNestedArrowFunction = 0; +>this.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 23, 32), Decl(a.js, 26, 18)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 23, 32), Decl(a.js, 26, 18)) + } + else { + this.inNestedArrowFunction = "string" +>this.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 23, 32), Decl(a.js, 26, 18)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 23, 32), Decl(a.js, 26, 18)) + } + }; + } + get() { +>get : Symbol(C.get, Decl(a.js, 30, 5)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inGetter = 0; +>this.inGetter : Symbol(C.inGetter, Decl(a.js, 32, 28), Decl(a.js, 35, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inGetter : Symbol(C.inGetter, Decl(a.js, 32, 28), Decl(a.js, 35, 14)) + } + else { + this.inGetter = "string" +>this.inGetter : Symbol(C.inGetter, Decl(a.js, 32, 28), Decl(a.js, 35, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inGetter : Symbol(C.inGetter, Decl(a.js, 32, 28), Decl(a.js, 35, 14)) + } + this.inMultiple = false; +>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 18, 9), Decl(a.js, 37, 9)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 18, 9), Decl(a.js, 37, 9)) + + this.inMultipleMethods = false; +>this.inMultipleMethods : Symbol(C.inMultipleMethods, Decl(a.js, 19, 35), Decl(a.js, 38, 32)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inMultipleMethods : Symbol(C.inMultipleMethods, Decl(a.js, 19, 35), Decl(a.js, 38, 32)) + } + set() { +>set : Symbol(C.set, Decl(a.js, 40, 5)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inSetter = 0; +>this.inSetter : Symbol(C.inSetter, Decl(a.js, 42, 28), Decl(a.js, 45, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inSetter : Symbol(C.inSetter, Decl(a.js, 42, 28), Decl(a.js, 45, 14)) + } + else { + this.inSetter = "string" +>this.inSetter : Symbol(C.inSetter, Decl(a.js, 42, 28), Decl(a.js, 45, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inSetter : Symbol(C.inSetter, Decl(a.js, 42, 28), Decl(a.js, 45, 14)) + } + } + prop = () => { +>prop : Symbol(C.prop, Decl(a.js, 48, 5)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inPropertyDeclaration = 0; +>this.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 50, 28), Decl(a.js, 53, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 50, 28), Decl(a.js, 53, 14)) + } + else { + this.inPropertyDeclaration = "string" +>this.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 50, 28), Decl(a.js, 53, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 50, 28), Decl(a.js, 53, 14)) + } + } + static method() { +>method : Symbol(C.method, Decl(a.js, 56, 5)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inStaticMethod = 0; +>this.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 58, 28), Decl(a.js, 61, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 58, 28), Decl(a.js, 61, 14)) + } + else { + this.inStaticMethod = "string" +>this.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 58, 28), Decl(a.js, 61, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 58, 28), Decl(a.js, 61, 14)) + } + + var action = () => { +>action : Symbol(action, Decl(a.js, 65, 11)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inStaticNestedArrowFunction = 0; +>this.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 66, 32), Decl(a.js, 69, 18)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 66, 32), Decl(a.js, 69, 18)) + } + else { + this.inStaticNestedArrowFunction = "string" +>this.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 66, 32), Decl(a.js, 69, 18)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 66, 32), Decl(a.js, 69, 18)) + } + }; + } + static get() { +>get : Symbol(C.get, Decl(a.js, 73, 5)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inStaticGetter = 0; +>this.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 75, 28), Decl(a.js, 78, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 75, 28), Decl(a.js, 78, 14)) + } + else { + this.inStaticGetter = "string" +>this.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 75, 28), Decl(a.js, 78, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 75, 28), Decl(a.js, 78, 14)) + } + } + static set() { +>set : Symbol(C.set, Decl(a.js, 81, 5)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inStaticSetter = 0; +>this.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 83, 28), Decl(a.js, 86, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 83, 28), Decl(a.js, 86, 14)) + } + else { + this.inStaticSetter = "string" +>this.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 83, 28), Decl(a.js, 86, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 83, 28), Decl(a.js, 86, 14)) + } + } + static prop = () => { +>prop : Symbol(C.prop, Decl(a.js, 89, 5)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + this.inStaticPropertyDeclaration = 0; +>this.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 91, 28), Decl(a.js, 94, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 91, 28), Decl(a.js, 94, 14)) + } + else { + this.inStaticPropertyDeclaration = "string" +>this.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 91, 28), Decl(a.js, 94, 14)) +>this : Symbol(C, Decl(a.js, 0, 0)) +>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 91, 28), Decl(a.js, 94, 14)) + } + } +} + +=== b.ts === +var c = new C(); +>c : Symbol(c, Decl(b.ts, 0, 3)) +>C : Symbol(C, Decl(a.js, 0, 0)) + +var stringOrNumber: string | number; +>stringOrNumber : Symbol(stringOrNumber, Decl(b.ts, 2, 3), Decl(b.ts, 3, 3)) + +var stringOrNumber = c.inConstructor; +>stringOrNumber : Symbol(stringOrNumber, Decl(b.ts, 2, 3), Decl(b.ts, 3, 3)) +>c.inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14)) + +var stringOrNumberOrUndefined: string | number | undefined; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) + +var stringOrNumberOrUndefined = c.inMethod; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>c.inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 15, 14)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 15, 14)) + +var stringOrNumberOrUndefined = c.inGetter; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>c.inGetter : Symbol(C.inGetter, Decl(a.js, 32, 28), Decl(a.js, 35, 14)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inGetter : Symbol(C.inGetter, Decl(a.js, 32, 28), Decl(a.js, 35, 14)) + +var stringOrNumberOrUndefined = c.inSetter; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>c.inSetter : Symbol(C.inSetter, Decl(a.js, 42, 28), Decl(a.js, 45, 14)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inSetter : Symbol(C.inSetter, Decl(a.js, 42, 28), Decl(a.js, 45, 14)) + +var stringOrNumberOrUndefined = c.inPropertyDeclaration; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>c.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 50, 28), Decl(a.js, 53, 14)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 50, 28), Decl(a.js, 53, 14)) + +var stringOrNumberOrUndefined = c.inNestedArrowFunction +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>c.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 23, 32), Decl(a.js, 26, 18)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 23, 32), Decl(a.js, 26, 18)) + +var stringOrNumberOrBoolean: string | number | boolean; +>stringOrNumberOrBoolean : Symbol(stringOrNumberOrBoolean, Decl(b.ts, 13, 3)) + +var number: number; +>number : Symbol(number, Decl(b.ts, 15, 3), Decl(b.ts, 16, 3)) + +var number = c.inMultiple; +>number : Symbol(number, Decl(b.ts, 15, 3), Decl(b.ts, 16, 3)) +>c.inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 18, 9), Decl(a.js, 37, 9)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 18, 9), Decl(a.js, 37, 9)) + +var stringOrBooleanOrUndefined : string | boolean | undefined; +>stringOrBooleanOrUndefined : Symbol(stringOrBooleanOrUndefined, Decl(b.ts, 17, 3), Decl(b.ts, 18, 3)) + +var stringOrBooleanOrUndefined = c.inMultipleMethods; +>stringOrBooleanOrUndefined : Symbol(stringOrBooleanOrUndefined, Decl(b.ts, 17, 3), Decl(b.ts, 18, 3)) +>c.inMultipleMethods : Symbol(C.inMultipleMethods, Decl(a.js, 19, 35), Decl(a.js, 38, 32)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inMultipleMethods : Symbol(C.inMultipleMethods, Decl(a.js, 19, 35), Decl(a.js, 38, 32)) + +var any: any; +>any : Symbol(any, Decl(b.ts, 19, 3), Decl(b.ts, 20, 3)) + +var any = c.inMethodNullable; +>any : Symbol(any, Decl(b.ts, 19, 3), Decl(b.ts, 20, 3)) +>c.inMethodNullable : Symbol(C.inMethodNullable, Decl(a.js, 12, 30), Decl(a.js, 16, 36)) +>c : Symbol(c, Decl(b.ts, 0, 3)) +>inMethodNullable : Symbol(C.inMethodNullable, Decl(a.js, 12, 30), Decl(a.js, 16, 36)) + + +var stringOrNumberOrUndefined = C.inStaticMethod; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>C.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 58, 28), Decl(a.js, 61, 14)) +>C : Symbol(C, Decl(a.js, 0, 0)) +>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 58, 28), Decl(a.js, 61, 14)) + +var stringOrNumberOrUndefined = C.inStaticGetter; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>C.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 75, 28), Decl(a.js, 78, 14)) +>C : Symbol(C, Decl(a.js, 0, 0)) +>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 75, 28), Decl(a.js, 78, 14)) + +var stringOrNumberOrUndefined = C.inStaticSetter; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>C.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 83, 28), Decl(a.js, 86, 14)) +>C : Symbol(C, Decl(a.js, 0, 0)) +>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 83, 28), Decl(a.js, 86, 14)) + +var stringOrNumberOrUndefined = C.inStaticPropertyDeclaration; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>C.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 91, 28), Decl(a.js, 94, 14)) +>C : Symbol(C, Decl(a.js, 0, 0)) +>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 91, 28), Decl(a.js, 94, 14)) + +var stringOrNumberOrUndefined = C.inStaticNestedArrowFunction; +>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3) ... and 6 more) +>C.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 66, 32), Decl(a.js, 69, 18)) +>C : Symbol(C, Decl(a.js, 0, 0)) +>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 66, 32), Decl(a.js, 69, 18)) + diff --git a/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.types b/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.types new file mode 100644 index 0000000000000..ffe098213c01c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/inferringClassMembersFromAssignments.types @@ -0,0 +1,441 @@ +//// [tests/cases/conformance/salsa/inferringClassMembersFromAssignments.ts] //// + +=== a.js === +class C { +>C : C + + constructor() { + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inConstructor = 0; +>this.inConstructor = 0 : 0 +>this.inConstructor : any +>this : this +>inConstructor : any +>0 : 0 + } + else { + this.inConstructor = "string" +>this.inConstructor = "string" : "string" +>this.inConstructor : any +>this : this +>inConstructor : any +>"string" : "string" + } + this.inMultiple = 0; +>this.inMultiple = 0 : 0 +>this.inMultiple : any +>this : this +>inMultiple : any +>0 : 0 + } + method() { +>method : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inMethod = 0; +>this.inMethod = 0 : 0 +>this.inMethod : string | number | undefined +>this : this +>inMethod : string | number | undefined +>0 : 0 + + this.inMethodNullable = null; +>this.inMethodNullable = null : null +>this.inMethodNullable : any +>this : this +>inMethodNullable : any + } + else { + this.inMethod = "string" +>this.inMethod = "string" : "string" +>this.inMethod : string | number | undefined +>this : this +>inMethod : string | number | undefined +>"string" : "string" + + this.inMethodNullable = undefined; +>this.inMethodNullable = undefined : undefined +>this.inMethodNullable : any +>this : this +>inMethodNullable : any +>undefined : undefined + } + this.inMultiple = "string"; +>this.inMultiple = "string" : "string" +>this.inMultiple : number +>this : this +>inMultiple : number +>"string" : "string" + + this.inMultipleMethods = "string"; +>this.inMultipleMethods = "string" : "string" +>this.inMultipleMethods : string | boolean | undefined +>this : this +>inMultipleMethods : string | boolean | undefined +>"string" : "string" + + var action = () => { +>action : () => void +>() => { if (Math.random()) { this.inNestedArrowFunction = 0; } else { this.inNestedArrowFunction = "string" } } : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inNestedArrowFunction = 0; +>this.inNestedArrowFunction = 0 : 0 +>this.inNestedArrowFunction : string | number | undefined +>this : this +>inNestedArrowFunction : string | number | undefined +>0 : 0 + } + else { + this.inNestedArrowFunction = "string" +>this.inNestedArrowFunction = "string" : "string" +>this.inNestedArrowFunction : string | number | undefined +>this : this +>inNestedArrowFunction : string | number | undefined +>"string" : "string" + } + }; + } + get() { +>get : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inGetter = 0; +>this.inGetter = 0 : 0 +>this.inGetter : string | number | undefined +>this : this +>inGetter : string | number | undefined +>0 : 0 + } + else { + this.inGetter = "string" +>this.inGetter = "string" : "string" +>this.inGetter : string | number | undefined +>this : this +>inGetter : string | number | undefined +>"string" : "string" + } + this.inMultiple = false; +>this.inMultiple = false : false +>this.inMultiple : number +>this : this +>inMultiple : number +>false : false + + this.inMultipleMethods = false; +>this.inMultipleMethods = false : false +>this.inMultipleMethods : string | boolean | undefined +>this : this +>inMultipleMethods : string | boolean | undefined +>false : false + } + set() { +>set : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inSetter = 0; +>this.inSetter = 0 : 0 +>this.inSetter : string | number | undefined +>this : this +>inSetter : string | number | undefined +>0 : 0 + } + else { + this.inSetter = "string" +>this.inSetter = "string" : "string" +>this.inSetter : string | number | undefined +>this : this +>inSetter : string | number | undefined +>"string" : "string" + } + } + prop = () => { +>prop : () => void +>() => { if (Math.random()) { this.inPropertyDeclaration = 0; } else { this.inPropertyDeclaration = "string" } } : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inPropertyDeclaration = 0; +>this.inPropertyDeclaration = 0 : 0 +>this.inPropertyDeclaration : string | number | undefined +>this : this +>inPropertyDeclaration : string | number | undefined +>0 : 0 + } + else { + this.inPropertyDeclaration = "string" +>this.inPropertyDeclaration = "string" : "string" +>this.inPropertyDeclaration : string | number | undefined +>this : this +>inPropertyDeclaration : string | number | undefined +>"string" : "string" + } + } + static method() { +>method : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inStaticMethod = 0; +>this.inStaticMethod = 0 : 0 +>this.inStaticMethod : string | number | undefined +>this : typeof C +>inStaticMethod : string | number | undefined +>0 : 0 + } + else { + this.inStaticMethod = "string" +>this.inStaticMethod = "string" : "string" +>this.inStaticMethod : string | number | undefined +>this : typeof C +>inStaticMethod : string | number | undefined +>"string" : "string" + } + + var action = () => { +>action : () => void +>() => { if (Math.random()) { this.inStaticNestedArrowFunction = 0; } else { this.inStaticNestedArrowFunction = "string" } } : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inStaticNestedArrowFunction = 0; +>this.inStaticNestedArrowFunction = 0 : 0 +>this.inStaticNestedArrowFunction : string | number | undefined +>this : typeof C +>inStaticNestedArrowFunction : string | number | undefined +>0 : 0 + } + else { + this.inStaticNestedArrowFunction = "string" +>this.inStaticNestedArrowFunction = "string" : "string" +>this.inStaticNestedArrowFunction : string | number | undefined +>this : typeof C +>inStaticNestedArrowFunction : string | number | undefined +>"string" : "string" + } + }; + } + static get() { +>get : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inStaticGetter = 0; +>this.inStaticGetter = 0 : 0 +>this.inStaticGetter : string | number | undefined +>this : typeof C +>inStaticGetter : string | number | undefined +>0 : 0 + } + else { + this.inStaticGetter = "string" +>this.inStaticGetter = "string" : "string" +>this.inStaticGetter : string | number | undefined +>this : typeof C +>inStaticGetter : string | number | undefined +>"string" : "string" + } + } + static set() { +>set : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inStaticSetter = 0; +>this.inStaticSetter = 0 : 0 +>this.inStaticSetter : string | number | undefined +>this : typeof C +>inStaticSetter : string | number | undefined +>0 : 0 + } + else { + this.inStaticSetter = "string" +>this.inStaticSetter = "string" : "string" +>this.inStaticSetter : string | number | undefined +>this : typeof C +>inStaticSetter : string | number | undefined +>"string" : "string" + } + } + static prop = () => { +>prop : () => void +>() => { if (Math.random()) { this.inStaticPropertyDeclaration = 0; } else { this.inStaticPropertyDeclaration = "string" } } : () => void + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + this.inStaticPropertyDeclaration = 0; +>this.inStaticPropertyDeclaration = 0 : 0 +>this.inStaticPropertyDeclaration : string | number | undefined +>this : typeof C +>inStaticPropertyDeclaration : string | number | undefined +>0 : 0 + } + else { + this.inStaticPropertyDeclaration = "string" +>this.inStaticPropertyDeclaration = "string" : "string" +>this.inStaticPropertyDeclaration : string | number | undefined +>this : typeof C +>inStaticPropertyDeclaration : string | number | undefined +>"string" : "string" + } + } +} + +=== b.ts === +var c = new C(); +>c : C +>new C() : C +>C : typeof C + +var stringOrNumber: string | number; +>stringOrNumber : string | number + +var stringOrNumber = c.inConstructor; +>stringOrNumber : string | number +>c.inConstructor : string | number +>c : C +>inConstructor : string | number + +var stringOrNumberOrUndefined: string | number | undefined; +>stringOrNumberOrUndefined : string | number | undefined + +var stringOrNumberOrUndefined = c.inMethod; +>stringOrNumberOrUndefined : string | number | undefined +>c.inMethod : string | number | undefined +>c : C +>inMethod : string | number | undefined + +var stringOrNumberOrUndefined = c.inGetter; +>stringOrNumberOrUndefined : string | number | undefined +>c.inGetter : string | number | undefined +>c : C +>inGetter : string | number | undefined + +var stringOrNumberOrUndefined = c.inSetter; +>stringOrNumberOrUndefined : string | number | undefined +>c.inSetter : string | number | undefined +>c : C +>inSetter : string | number | undefined + +var stringOrNumberOrUndefined = c.inPropertyDeclaration; +>stringOrNumberOrUndefined : string | number | undefined +>c.inPropertyDeclaration : string | number | undefined +>c : C +>inPropertyDeclaration : string | number | undefined + +var stringOrNumberOrUndefined = c.inNestedArrowFunction +>stringOrNumberOrUndefined : string | number | undefined +>c.inNestedArrowFunction : string | number | undefined +>c : C +>inNestedArrowFunction : string | number | undefined + +var stringOrNumberOrBoolean: string | number | boolean; +>stringOrNumberOrBoolean : string | number | boolean + +var number: number; +>number : number + +var number = c.inMultiple; +>number : number +>c.inMultiple : number +>c : C +>inMultiple : number + +var stringOrBooleanOrUndefined : string | boolean | undefined; +>stringOrBooleanOrUndefined : string | boolean | undefined + +var stringOrBooleanOrUndefined = c.inMultipleMethods; +>stringOrBooleanOrUndefined : string | boolean | undefined +>c.inMultipleMethods : string | boolean | undefined +>c : C +>inMultipleMethods : string | boolean | undefined + +var any: any; +>any : any + +var any = c.inMethodNullable; +>any : any +>c.inMethodNullable : any +>c : C +>inMethodNullable : any + + +var stringOrNumberOrUndefined = C.inStaticMethod; +>stringOrNumberOrUndefined : string | number | undefined +>C.inStaticMethod : string | number | undefined +>C : typeof C +>inStaticMethod : string | number | undefined + +var stringOrNumberOrUndefined = C.inStaticGetter; +>stringOrNumberOrUndefined : string | number | undefined +>C.inStaticGetter : string | number | undefined +>C : typeof C +>inStaticGetter : string | number | undefined + +var stringOrNumberOrUndefined = C.inStaticSetter; +>stringOrNumberOrUndefined : string | number | undefined +>C.inStaticSetter : string | number | undefined +>C : typeof C +>inStaticSetter : string | number | undefined + +var stringOrNumberOrUndefined = C.inStaticPropertyDeclaration; +>stringOrNumberOrUndefined : string | number | undefined +>C.inStaticPropertyDeclaration : string | number | undefined +>C : typeof C +>inStaticPropertyDeclaration : string | number | undefined + +var stringOrNumberOrUndefined = C.inStaticNestedArrowFunction; +>stringOrNumberOrUndefined : string | number | undefined +>C.inStaticNestedArrowFunction : string | number | undefined +>C : typeof C +>inStaticNestedArrowFunction : string | number | undefined + diff --git a/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.js b/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.js new file mode 100644 index 0000000000000..f745c9481c952 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.js @@ -0,0 +1,64 @@ +//// [tests/cases/conformance/salsa/jsObjectsMarkedAsOpenEnded.ts] //// + +//// [a.js] +var variable = {}; +variable.a = 0; + +class C { + initializedMember = {}; + constructor() { + this.member = {}; + this.member.a = 0; + } +} + +var obj = { + property: {} +}; + +obj.property.a = 0; + +var arr = [{}]; + +function getObj() { + return {}; +} + + +//// [b.ts] +variable.a = 1; +(new C()).member.a = 1; +(new C()).initializedMember.a = 1; +obj.property.a = 1; +arr[0].a = 1; +getObj().a = 1; + + + +//// [a.js] +"use strict"; +var variable = {}; +variable.a = 0; +class C { + constructor() { + this.initializedMember = {}; + this.member = {}; + this.member.a = 0; + } +} +var obj = { + property: {} +}; +obj.property.a = 0; +var arr = [{}]; +function getObj() { + return {}; +} +//// [b.js] +"use strict"; +variable.a = 1; +(new C()).member.a = 1; +(new C()).initializedMember.a = 1; +obj.property.a = 1; +arr[0].a = 1; +getObj().a = 1; diff --git a/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.symbols b/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.symbols new file mode 100644 index 0000000000000..28925192fa403 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.symbols @@ -0,0 +1,81 @@ +//// [tests/cases/conformance/salsa/jsObjectsMarkedAsOpenEnded.ts] //// + +=== a.js === +var variable = {}; +>variable : Symbol(variable, Decl(a.js, 0, 3)) + +variable.a = 0; +>variable.a : Symbol(a, Decl(a.js, 0, 18)) +>variable : Symbol(variable, Decl(a.js, 0, 3)) +>a : Symbol(a, Decl(a.js, 0, 18)) + +class C { +>C : Symbol(C, Decl(a.js, 1, 15)) + + initializedMember = {}; +>initializedMember : Symbol(C.initializedMember, Decl(a.js, 3, 9)) + + constructor() { + this.member = {}; +>this.member : Symbol(C.member, Decl(a.js, 5, 19)) +>this : Symbol(C, Decl(a.js, 1, 15)) +>member : Symbol(C.member, Decl(a.js, 5, 19)) + + this.member.a = 0; +>this.member : Symbol(C.member, Decl(a.js, 5, 19)) +>this : Symbol(C, Decl(a.js, 1, 15)) +>member : Symbol(C.member, Decl(a.js, 5, 19)) + } +} + +var obj = { +>obj : Symbol(obj, Decl(a.js, 11, 3)) + + property: {} +>property : Symbol(property, Decl(a.js, 11, 11)) + +}; + +obj.property.a = 0; +>obj.property : Symbol(property, Decl(a.js, 11, 11)) +>obj : Symbol(obj, Decl(a.js, 11, 3)) +>property : Symbol(property, Decl(a.js, 11, 11)) + +var arr = [{}]; +>arr : Symbol(arr, Decl(a.js, 17, 3)) + +function getObj() { +>getObj : Symbol(getObj, Decl(a.js, 17, 15)) + + return {}; +} + + +=== b.ts === +variable.a = 1; +>variable.a : Symbol(a, Decl(a.js, 0, 18)) +>variable : Symbol(variable, Decl(a.js, 0, 3)) +>a : Symbol(a, Decl(a.js, 0, 18)) + +(new C()).member.a = 1; +>(new C()).member : Symbol(C.member, Decl(a.js, 5, 19)) +>C : Symbol(C, Decl(a.js, 1, 15)) +>member : Symbol(C.member, Decl(a.js, 5, 19)) + +(new C()).initializedMember.a = 1; +>(new C()).initializedMember : Symbol(C.initializedMember, Decl(a.js, 3, 9)) +>C : Symbol(C, Decl(a.js, 1, 15)) +>initializedMember : Symbol(C.initializedMember, Decl(a.js, 3, 9)) + +obj.property.a = 1; +>obj.property : Symbol(property, Decl(a.js, 11, 11)) +>obj : Symbol(obj, Decl(a.js, 11, 3)) +>property : Symbol(property, Decl(a.js, 11, 11)) + +arr[0].a = 1; +>arr : Symbol(arr, Decl(a.js, 17, 3)) + +getObj().a = 1; +>getObj : Symbol(getObj, Decl(a.js, 17, 15)) + + diff --git a/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.types b/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.types new file mode 100644 index 0000000000000..4622ac41de639 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsObjectsMarkedAsOpenEnded.types @@ -0,0 +1,129 @@ +//// [tests/cases/conformance/salsa/jsObjectsMarkedAsOpenEnded.ts] //// + +=== a.js === +var variable = {}; +>variable : { a: number; } +>{} : { a: number; } + +variable.a = 0; +>variable.a = 0 : 0 +>variable.a : number +>variable : { a: number; } +>a : number +>0 : 0 + +class C { +>C : C + + initializedMember = {}; +>initializedMember : {} +>{} : {} + + constructor() { + this.member = {}; +>this.member = {} : {} +>this.member : any +>this : this +>member : any +>{} : {} + + this.member.a = 0; +>this.member.a = 0 : 0 +>this.member.a : error +>this.member : {} +>this : this +>member : {} +>a : any +>0 : 0 + } +} + +var obj = { +>obj : { property: {}; } +>{ property: {}} : { property: {}; } + + property: {} +>property : {} +>{} : {} + +}; + +obj.property.a = 0; +>obj.property.a = 0 : 0 +>obj.property.a : error +>obj.property : {} +>obj : { property: {}; } +>property : {} +>a : any +>0 : 0 + +var arr = [{}]; +>arr : {}[] +>[{}] : {}[] +>{} : {} + +function getObj() { +>getObj : () => {} + + return {}; +>{} : {} +} + + +=== b.ts === +variable.a = 1; +>variable.a = 1 : 1 +>variable.a : number +>variable : { a: number; } +>a : number +>1 : 1 + +(new C()).member.a = 1; +>(new C()).member.a = 1 : 1 +>(new C()).member.a : any +>(new C()).member : {} +>(new C()) : C +>new C() : C +>C : typeof C +>member : {} +>a : any +>1 : 1 + +(new C()).initializedMember.a = 1; +>(new C()).initializedMember.a = 1 : 1 +>(new C()).initializedMember.a : any +>(new C()).initializedMember : {} +>(new C()) : C +>new C() : C +>C : typeof C +>initializedMember : {} +>a : any +>1 : 1 + +obj.property.a = 1; +>obj.property.a = 1 : 1 +>obj.property.a : any +>obj.property : {} +>obj : { property: {}; } +>property : {} +>a : any +>1 : 1 + +arr[0].a = 1; +>arr[0].a = 1 : 1 +>arr[0].a : any +>arr[0] : {} +>arr : {}[] +>0 : 0 +>a : any +>1 : 1 + +getObj().a = 1; +>getObj().a = 1 : 1 +>getObj().a : any +>getObj() : {} +>getObj : () => {} +>a : any +>1 : 1 + + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.js b/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.js new file mode 100644 index 0000000000000..2c4cafa8f1b2c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.js @@ -0,0 +1,109 @@ +//// [tests/cases/conformance/jsdoc/jsdocAccessibilityTagsDeclarations.ts] //// + +//// [jsdocAccessibilityTagDeclarations.js] +class Protected { + /** @protected */ + constructor(c) { + /** @protected */ + this.c = c + } + /** @protected */ + m() { + return this.c + } + /** @protected */ + get p() { return this.c } + /** @protected */ + set p(value) { this.c = value } +} + +class Private { + /** @private */ + constructor(c) { + /** @private */ + this.c = c + } + /** @private */ + m() { + return this.c + } + /** @private */ + get p() { return this.c } + /** @private */ + set p(value) { this.c = value } +} + +// https://github.com/microsoft/TypeScript/issues/38401 +class C { + constructor(/** @public */ x, /** @protected */ y, /** @private */ z) { + } +} + + +//// [jsdocAccessibilityTagDeclarations.js] +"use strict"; +class Protected { + /** @protected */ + constructor(c) { + /** @protected */ + this.c = c; + } + /** @protected */ + m() { + return this.c; + } + /** @protected */ + get p() { return this.c; } + /** @protected */ + set p(value) { this.c = value; } +} +class Private { + /** @private */ + constructor(c) { + /** @private */ + this.c = c; + } + /** @private */ + m() { + return this.c; + } + /** @private */ + get p() { return this.c; } + /** @private */ + set p(value) { this.c = value; } +} +// https://github.com/microsoft/TypeScript/issues/38401 +class C { + constructor(/** @public */ x, /** @protected */ y, /** @private */ z) { + } +} + + +//// [jsdocAccessibilityTagDeclarations.d.ts] +declare class Protected { + /** @protected */ + c: any; + /** @protected */ + protected constructor(c: any); + /** @protected */ + protected m(): any; + /** @protected */ + protected get p(): any; + /** @protected */ + protected set p(value: any); +} +declare class Private { + /** @private */ + c; + /** @private */ + private constructor(); + /** @private */ + private m; + /** @private */ + private get p(); + /** @private */ + private set p(value); +} +declare class C { + constructor(/** @public */ x: any, /** @protected */ y: any, /** @private */ z: any); +} diff --git a/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.symbols b/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.symbols new file mode 100644 index 0000000000000..95faf3741d066 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.symbols @@ -0,0 +1,94 @@ +//// [tests/cases/conformance/jsdoc/jsdocAccessibilityTagsDeclarations.ts] //// + +=== jsdocAccessibilityTagDeclarations.js === +class Protected { +>Protected : Symbol(Protected, Decl(jsdocAccessibilityTagDeclarations.js, 0, 0)) + + /** @protected */ + constructor(c) { +>c : Symbol(c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 16)) + + /** @protected */ + this.c = c +>this.c : Symbol(Protected.c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 20), Decl(jsdocAccessibilityTagDeclarations.js, 13, 18)) +>this : Symbol(Protected, Decl(jsdocAccessibilityTagDeclarations.js, 0, 0)) +>c : Symbol(Protected.c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 20), Decl(jsdocAccessibilityTagDeclarations.js, 13, 18)) +>c : Symbol(c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 16)) + } + /** @protected */ + m() { +>m : Symbol(Protected.m, Decl(jsdocAccessibilityTagDeclarations.js, 5, 5)) + + return this.c +>this.c : Symbol(Protected.c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 20), Decl(jsdocAccessibilityTagDeclarations.js, 13, 18)) +>this : Symbol(Protected, Decl(jsdocAccessibilityTagDeclarations.js, 0, 0)) +>c : Symbol(Protected.c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 20), Decl(jsdocAccessibilityTagDeclarations.js, 13, 18)) + } + /** @protected */ + get p() { return this.c } +>p : Symbol(Protected.p, Decl(jsdocAccessibilityTagDeclarations.js, 9, 5), Decl(jsdocAccessibilityTagDeclarations.js, 11, 29)) +>this.c : Symbol(Protected.c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 20), Decl(jsdocAccessibilityTagDeclarations.js, 13, 18)) +>this : Symbol(Protected, Decl(jsdocAccessibilityTagDeclarations.js, 0, 0)) +>c : Symbol(Protected.c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 20), Decl(jsdocAccessibilityTagDeclarations.js, 13, 18)) + + /** @protected */ + set p(value) { this.c = value } +>p : Symbol(Protected.p, Decl(jsdocAccessibilityTagDeclarations.js, 9, 5), Decl(jsdocAccessibilityTagDeclarations.js, 11, 29)) +>value : Symbol(value, Decl(jsdocAccessibilityTagDeclarations.js, 13, 10)) +>this.c : Symbol(Protected.c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 20), Decl(jsdocAccessibilityTagDeclarations.js, 13, 18)) +>this : Symbol(Protected, Decl(jsdocAccessibilityTagDeclarations.js, 0, 0)) +>c : Symbol(Protected.c, Decl(jsdocAccessibilityTagDeclarations.js, 2, 20), Decl(jsdocAccessibilityTagDeclarations.js, 13, 18)) +>value : Symbol(value, Decl(jsdocAccessibilityTagDeclarations.js, 13, 10)) +} + +class Private { +>Private : Symbol(Private, Decl(jsdocAccessibilityTagDeclarations.js, 14, 1)) + + /** @private */ + constructor(c) { +>c : Symbol(c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 16)) + + /** @private */ + this.c = c +>this.c : Symbol(Private.c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 20), Decl(jsdocAccessibilityTagDeclarations.js, 29, 18)) +>this : Symbol(Private, Decl(jsdocAccessibilityTagDeclarations.js, 14, 1)) +>c : Symbol(Private.c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 20), Decl(jsdocAccessibilityTagDeclarations.js, 29, 18)) +>c : Symbol(c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 16)) + } + /** @private */ + m() { +>m : Symbol(Private.m, Decl(jsdocAccessibilityTagDeclarations.js, 21, 5)) + + return this.c +>this.c : Symbol(Private.c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 20), Decl(jsdocAccessibilityTagDeclarations.js, 29, 18)) +>this : Symbol(Private, Decl(jsdocAccessibilityTagDeclarations.js, 14, 1)) +>c : Symbol(Private.c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 20), Decl(jsdocAccessibilityTagDeclarations.js, 29, 18)) + } + /** @private */ + get p() { return this.c } +>p : Symbol(Private.p, Decl(jsdocAccessibilityTagDeclarations.js, 25, 5), Decl(jsdocAccessibilityTagDeclarations.js, 27, 29)) +>this.c : Symbol(Private.c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 20), Decl(jsdocAccessibilityTagDeclarations.js, 29, 18)) +>this : Symbol(Private, Decl(jsdocAccessibilityTagDeclarations.js, 14, 1)) +>c : Symbol(Private.c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 20), Decl(jsdocAccessibilityTagDeclarations.js, 29, 18)) + + /** @private */ + set p(value) { this.c = value } +>p : Symbol(Private.p, Decl(jsdocAccessibilityTagDeclarations.js, 25, 5), Decl(jsdocAccessibilityTagDeclarations.js, 27, 29)) +>value : Symbol(value, Decl(jsdocAccessibilityTagDeclarations.js, 29, 10)) +>this.c : Symbol(Private.c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 20), Decl(jsdocAccessibilityTagDeclarations.js, 29, 18)) +>this : Symbol(Private, Decl(jsdocAccessibilityTagDeclarations.js, 14, 1)) +>c : Symbol(Private.c, Decl(jsdocAccessibilityTagDeclarations.js, 18, 20), Decl(jsdocAccessibilityTagDeclarations.js, 29, 18)) +>value : Symbol(value, Decl(jsdocAccessibilityTagDeclarations.js, 29, 10)) +} + +// https://github.com/microsoft/TypeScript/issues/38401 +class C { +>C : Symbol(C, Decl(jsdocAccessibilityTagDeclarations.js, 30, 1)) + + constructor(/** @public */ x, /** @protected */ y, /** @private */ z) { +>x : Symbol(x, Decl(jsdocAccessibilityTagDeclarations.js, 34, 16)) +>y : Symbol(y, Decl(jsdocAccessibilityTagDeclarations.js, 34, 33)) +>z : Symbol(z, Decl(jsdocAccessibilityTagDeclarations.js, 34, 54)) + } +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.types b/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.types new file mode 100644 index 0000000000000..d43f0b5de9316 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocAccessibilityTagsDeclarations.types @@ -0,0 +1,98 @@ +//// [tests/cases/conformance/jsdoc/jsdocAccessibilityTagsDeclarations.ts] //// + +=== jsdocAccessibilityTagDeclarations.js === +class Protected { +>Protected : Protected + + /** @protected */ + constructor(c) { +>c : any + + /** @protected */ + this.c = c +>this.c = c : any +>this.c : any +>this : this +>c : any +>c : any + } + /** @protected */ + m() { +>m : () => any + + return this.c +>this.c : any +>this : this +>c : any + } + /** @protected */ + get p() { return this.c } +>p : any +>this.c : any +>this : this +>c : any + + /** @protected */ + set p(value) { this.c = value } +>p : any +>value : any +>this.c = value : any +>this.c : any +>this : this +>c : any +>value : any +} + +class Private { +>Private : Private + + /** @private */ + constructor(c) { +>c : any + + /** @private */ + this.c = c +>this.c = c : any +>this.c : any +>this : this +>c : any +>c : any + } + /** @private */ + m() { +>m : () => any + + return this.c +>this.c : any +>this : this +>c : any + } + /** @private */ + get p() { return this.c } +>p : any +>this.c : any +>this : this +>c : any + + /** @private */ + set p(value) { this.c = value } +>p : any +>value : any +>this.c = value : any +>this.c : any +>this : this +>c : any +>value : any +} + +// https://github.com/microsoft/TypeScript/issues/38401 +class C { +>C : C + + constructor(/** @public */ x, /** @protected */ y, /** @private */ z) { +>x : any +>y : any +>z : any + } +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocLiteral.js b/tsc/testdata/baselines/reference/conformance/jsdocLiteral.js new file mode 100644 index 0000000000000..1168929a28771 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocLiteral.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/jsdoc/jsdocLiteral.ts] //// + +//// [in.js] +/** + * @param {'literal'} p1 + * @param {"literal"} p2 + * @param {'literal' | 'other'} p3 + * @param {'literal' | number} p4 + * @param {12 | true | 'str'} p5 + */ +function f(p1, p2, p3, p4, p5) { + return p1 + p2 + p3 + p4 + p5 + '.'; +} + + +//// [in.js] +"use strict"; +/** + * @param {'literal'} p1 + * @param {"literal"} p2 + * @param {'literal' | 'other'} p3 + * @param {'literal' | number} p4 + * @param {12 | true | 'str'} p5 + */ +function f(p1, p2, p3, p4, p5) { + return p1 + p2 + p3 + p4 + p5 + '.'; +} diff --git a/tsc/testdata/baselines/reference/conformance/jsdocLiteral.symbols b/tsc/testdata/baselines/reference/conformance/jsdocLiteral.symbols new file mode 100644 index 0000000000000..0a194a6604ccc --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocLiteral.symbols @@ -0,0 +1,26 @@ +//// [tests/cases/conformance/jsdoc/jsdocLiteral.ts] //// + +=== in.js === +/** + * @param {'literal'} p1 + * @param {"literal"} p2 + * @param {'literal' | 'other'} p3 + * @param {'literal' | number} p4 + * @param {12 | true | 'str'} p5 + */ +function f(p1, p2, p3, p4, p5) { +>f : Symbol(f, Decl(in.js, 0, 0)) +>p1 : Symbol(p1, Decl(in.js, 7, 11)) +>p2 : Symbol(p2, Decl(in.js, 7, 14)) +>p3 : Symbol(p3, Decl(in.js, 7, 18)) +>p4 : Symbol(p4, Decl(in.js, 7, 22)) +>p5 : Symbol(p5, Decl(in.js, 7, 26)) + + return p1 + p2 + p3 + p4 + p5 + '.'; +>p1 : Symbol(p1, Decl(in.js, 7, 11)) +>p2 : Symbol(p2, Decl(in.js, 7, 14)) +>p3 : Symbol(p3, Decl(in.js, 7, 18)) +>p4 : Symbol(p4, Decl(in.js, 7, 22)) +>p5 : Symbol(p5, Decl(in.js, 7, 26)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocLiteral.types b/tsc/testdata/baselines/reference/conformance/jsdocLiteral.types new file mode 100644 index 0000000000000..bed9f9effb705 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocLiteral.types @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/jsdoc/jsdocLiteral.ts] //// + +=== in.js === +/** + * @param {'literal'} p1 + * @param {"literal"} p2 + * @param {'literal' | 'other'} p3 + * @param {'literal' | number} p4 + * @param {12 | true | 'str'} p5 + */ +function f(p1, p2, p3, p4, p5) { +>f : (p1: 'literal', p2: "literal", p3: 'literal' | 'other', p4: 'literal' | number, p5: 12 | true | 'str') => string +>p1 : "literal" +>p2 : "literal" +>p3 : "literal" | "other" +>p4 : number | "literal" +>p5 : "str" | 12 | true + + return p1 + p2 + p3 + p4 + p5 + '.'; +>p1 + p2 + p3 + p4 + p5 + '.' : string +>p1 + p2 + p3 + p4 + p5 : string +>p1 + p2 + p3 + p4 : string +>p1 + p2 + p3 : string +>p1 + p2 : string +>p1 : "literal" +>p2 : "literal" +>p3 : "literal" | "other" +>p4 : number | "literal" +>p5 : "str" | 12 | true +>'.' : "." +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.js b/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.js new file mode 100644 index 0000000000000..0e1251f55584f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.js @@ -0,0 +1,23 @@ +//// [tests/cases/conformance/jsdoc/jsdocNeverUndefinedNull.ts] //// + +//// [in.js] +/** + * @param {never} p1 + * @param {undefined} p2 + * @param {null} p3 + * @returns {void} nothing + */ +function f(p1, p2, p3) { +} + + +//// [in.js] +"use strict"; +/** + * @param {never} p1 + * @param {undefined} p2 + * @param {null} p3 + * @returns {void} nothing + */ +function f(p1, p2, p3) { +} diff --git a/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.symbols b/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.symbols new file mode 100644 index 0000000000000..727f0ee5a802b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.symbols @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/jsdoc/jsdocNeverUndefinedNull.ts] //// + +=== in.js === +/** + * @param {never} p1 + * @param {undefined} p2 + * @param {null} p3 + * @returns {void} nothing + */ +function f(p1, p2, p3) { +>f : Symbol(f, Decl(in.js, 0, 0)) +>p1 : Symbol(p1, Decl(in.js, 6, 11)) +>p2 : Symbol(p2, Decl(in.js, 6, 14)) +>p3 : Symbol(p3, Decl(in.js, 6, 18)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.types b/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.types new file mode 100644 index 0000000000000..2a8baa91ffc0b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocNeverUndefinedNull.types @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/jsdoc/jsdocNeverUndefinedNull.ts] //// + +=== in.js === +/** + * @param {never} p1 + * @param {undefined} p2 + * @param {null} p3 + * @returns {void} nothing + */ +function f(p1, p2, p3) { +>f : (p1: never, p2: undefined, p3: null) => void +>p1 : never +>p2 : undefined +>p3 : null +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.errors.txt b/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.errors.txt new file mode 100644 index 0000000000000..63424928b529b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.errors.txt @@ -0,0 +1,31 @@ +jsdocReadonlyDeclarations.js(4,9): error TS1024: 'readonly' modifier can only appear on a property declaration or index signature. + + +==== jsdocReadonlyDeclarations.js (1 errors) ==== + class C { + /** @readonly */ + x = 6 + /** @readonly */ + ~~~~~~~~~~ +!!! error TS1024: 'readonly' modifier can only appear on a property declaration or index signature. + constructor(n) { + this.x = n + /** + * @readonly + * @type {number} + */ + this.y = n + } + } + new C().x + + function F() { + /** @readonly */ + this.z = 1 + } + + // https://github.com/microsoft/TypeScript/issues/38401 + class D { + constructor(/** @readonly */ x) {} + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.js b/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.js new file mode 100644 index 0000000000000..ac76b89c22288 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.js @@ -0,0 +1,71 @@ +//// [tests/cases/conformance/jsdoc/jsdocReadonlyDeclarations.ts] //// + +//// [jsdocReadonlyDeclarations.js] +class C { + /** @readonly */ + x = 6 + /** @readonly */ + constructor(n) { + this.x = n + /** + * @readonly + * @type {number} + */ + this.y = n + } +} +new C().x + +function F() { + /** @readonly */ + this.z = 1 +} + +// https://github.com/microsoft/TypeScript/issues/38401 +class D { + constructor(/** @readonly */ x) {} +} + + +//// [jsdocReadonlyDeclarations.js] +"use strict"; +class C { + /** @readonly */ + constructor(n) { + /** @readonly */ + this.x = 6; + this.x = n; + /** + * @readonly + * @type {number} + */ + this.y = n; + } +} +new C().x; +function F() { + /** @readonly */ + this.z = 1; +} +// https://github.com/microsoft/TypeScript/issues/38401 +class D { + constructor(/** @readonly */ x) { } +} + + +//// [jsdocReadonlyDeclarations.d.ts] +declare class C { + /** + * @readonly + * @type {number} + */ + y: number; + /** @readonly */ + readonly x = 6; + /** @readonly */ + readonly constructor(n: any); +} +declare function F(): void; +declare class D { + constructor(/** @readonly */ x: any); +} diff --git a/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.symbols b/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.symbols new file mode 100644 index 0000000000000..076824d27e405 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.symbols @@ -0,0 +1,51 @@ +//// [tests/cases/conformance/jsdoc/jsdocReadonlyDeclarations.ts] //// + +=== jsdocReadonlyDeclarations.js === +class C { +>C : Symbol(C, Decl(jsdocReadonlyDeclarations.js, 0, 0)) + + /** @readonly */ + x = 6 +>x : Symbol(C.x, Decl(jsdocReadonlyDeclarations.js, 0, 9)) + + /** @readonly */ + constructor(n) { +>n : Symbol(n, Decl(jsdocReadonlyDeclarations.js, 4, 16)) + + this.x = n +>this.x : Symbol(C.x, Decl(jsdocReadonlyDeclarations.js, 0, 9)) +>this : Symbol(C, Decl(jsdocReadonlyDeclarations.js, 0, 0)) +>x : Symbol(C.x, Decl(jsdocReadonlyDeclarations.js, 0, 9)) +>n : Symbol(n, Decl(jsdocReadonlyDeclarations.js, 4, 16)) + + /** + * @readonly + * @type {number} + */ + this.y = n +>this.y : Symbol(C.y, Decl(jsdocReadonlyDeclarations.js, 5, 18)) +>this : Symbol(C, Decl(jsdocReadonlyDeclarations.js, 0, 0)) +>y : Symbol(C.y, Decl(jsdocReadonlyDeclarations.js, 5, 18)) +>n : Symbol(n, Decl(jsdocReadonlyDeclarations.js, 4, 16)) + } +} +new C().x +>new C().x : Symbol(C.x, Decl(jsdocReadonlyDeclarations.js, 0, 9)) +>C : Symbol(C, Decl(jsdocReadonlyDeclarations.js, 0, 0)) +>x : Symbol(C.x, Decl(jsdocReadonlyDeclarations.js, 0, 9)) + +function F() { +>F : Symbol(F, Decl(jsdocReadonlyDeclarations.js, 13, 9)) + + /** @readonly */ + this.z = 1 +} + +// https://github.com/microsoft/TypeScript/issues/38401 +class D { +>D : Symbol(D, Decl(jsdocReadonlyDeclarations.js, 18, 1)) + + constructor(/** @readonly */ x) {} +>x : Symbol(x, Decl(jsdocReadonlyDeclarations.js, 22, 16)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.types b/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.types new file mode 100644 index 0000000000000..1fd313cd37092 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocReadonlyDeclarations.types @@ -0,0 +1,60 @@ +//// [tests/cases/conformance/jsdoc/jsdocReadonlyDeclarations.ts] //// + +=== jsdocReadonlyDeclarations.js === +class C { +>C : C + + /** @readonly */ + x = 6 +>x : 6 +>6 : 6 + + /** @readonly */ + constructor(n) { +>n : any + + this.x = n +>this.x = n : any +>this.x : 6 +>this : this +>x : 6 +>n : any + + /** + * @readonly + * @type {number} + */ + this.y = n +>this.y = n : any +>this.y : number +>this : this +>y : number +>n : any + } +} +new C().x +>new C().x : 6 +>new C() : C +>C : typeof C +>x : 6 + +function F() { +>F : () => void + + /** @readonly */ + this.z = 1 +>this.z = 1 : 1 +>this.z : any +>this : any +>z : any +>1 : 1 +} + +// https://github.com/microsoft/TypeScript/issues/38401 +class D { +>D : D + + constructor(/** @readonly */ x) {} +>x : any +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.js b/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.js new file mode 100644 index 0000000000000..daf49226a2df8 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.js @@ -0,0 +1,45 @@ +//// [tests/cases/conformance/jsdoc/jsdocReturnTag1.ts] //// + +//// [returns.js] +/** + * @returns {string} This comment is not currently exposed + */ +function f() { + return 5; +} + +/** + * @returns {string=} This comment is not currently exposed + */ +function f1() { + return 5; +} + +/** + * @returns {string|number} This comment is not currently exposed + */ +function f2() { + return 5 || "hello"; +} + + +//// [returns.js] +"use strict"; +/** + * @returns {string} This comment is not currently exposed + */ +function f() { + return 5; +} +/** + * @returns {string=} This comment is not currently exposed + */ +function f1() { + return 5; +} +/** + * @returns {string|number} This comment is not currently exposed + */ +function f2() { + return 5 || "hello"; +} diff --git a/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.symbols b/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.symbols new file mode 100644 index 0000000000000..9dd7020ad6f6a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.symbols @@ -0,0 +1,30 @@ +//// [tests/cases/conformance/jsdoc/jsdocReturnTag1.ts] //// + +=== returns.js === +/** + * @returns {string} This comment is not currently exposed + */ +function f() { +>f : Symbol(f, Decl(returns.js, 0, 0)) + + return 5; +} + +/** + * @returns {string=} This comment is not currently exposed + */ +function f1() { +>f1 : Symbol(f1, Decl(returns.js, 5, 1)) + + return 5; +} + +/** + * @returns {string|number} This comment is not currently exposed + */ +function f2() { +>f2 : Symbol(f2, Decl(returns.js, 12, 1)) + + return 5 || "hello"; +} + diff --git a/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.types b/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.types new file mode 100644 index 0000000000000..3bf14d187e9ae --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/jsdocReturnTag1.types @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/jsdoc/jsdocReturnTag1.ts] //// + +=== returns.js === +/** + * @returns {string} This comment is not currently exposed + */ +function f() { +>f : () => string + + return 5; +>5 : 5 +} + +/** + * @returns {string=} This comment is not currently exposed + */ +function f1() { +>f1 : () => string | undefined + + return 5; +>5 : 5 +} + +/** + * @returns {string|number} This comment is not currently exposed + */ +function f2() { +>f2 : () => string | number + + return 5 || "hello"; +>5 || "hello" : 5 +>5 : 5 +>"hello" : "hello" +} + diff --git a/tsc/testdata/baselines/reference/conformance/methodsReturningThis.js b/tsc/testdata/baselines/reference/conformance/methodsReturningThis.js new file mode 100644 index 0000000000000..54032b15a748b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/methodsReturningThis.js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/salsa/methodsReturningThis.ts] //// + +//// [input.js] +function Class() +{ +} + +// error: 'Class' doesn't have property 'notPresent' +Class.prototype.containsError = function () { return this.notPresent; }; + +// lots of methods that return this, which caused out-of-memory in #9527 +Class.prototype.m1 = function (a, b, c, d, tx, ty) { return this; }; +Class.prototype.m2 = function (x, y) { return this; }; +Class.prototype.m3 = function (x, y) { return this; }; +Class.prototype.m4 = function (angle) { return this; }; +Class.prototype.m5 = function (matrix) { return this; }; +Class.prototype.m6 = function (x, y, pivotX, pivotY, scaleX, scaleY, rotation, skewX, skewY) { return this; }; +Class.prototype.m7 = function(matrix) { return this; }; +Class.prototype.m8 = function() { return this; }; +Class.prototype.m9 = function () { return this; }; + + + +//// [input.js] +"use strict"; +function Class() { +} +// error: 'Class' doesn't have property 'notPresent' +Class.prototype.containsError = function () { return this.notPresent; }; +// lots of methods that return this, which caused out-of-memory in #9527 +Class.prototype.m1 = function (a, b, c, d, tx, ty) { return this; }; +Class.prototype.m2 = function (x, y) { return this; }; +Class.prototype.m3 = function (x, y) { return this; }; +Class.prototype.m4 = function (angle) { return this; }; +Class.prototype.m5 = function (matrix) { return this; }; +Class.prototype.m6 = function (x, y, pivotX, pivotY, scaleX, scaleY, rotation, skewX, skewY) { return this; }; +Class.prototype.m7 = function (matrix) { return this; }; +Class.prototype.m8 = function () { return this; }; +Class.prototype.m9 = function () { return this; }; diff --git a/tsc/testdata/baselines/reference/conformance/methodsReturningThis.symbols b/tsc/testdata/baselines/reference/conformance/methodsReturningThis.symbols new file mode 100644 index 0000000000000..cc898b3de6c60 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/methodsReturningThis.symbols @@ -0,0 +1,83 @@ +//// [tests/cases/conformance/salsa/methodsReturningThis.ts] //// + +=== input.js === +function Class() +>Class : Symbol(Class, Decl(input.js, 0, 0)) +{ +} + +// error: 'Class' doesn't have property 'notPresent' +Class.prototype.containsError = function () { return this.notPresent; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) + +// lots of methods that return this, which caused out-of-memory in #9527 +Class.prototype.m1 = function (a, b, c, d, tx, ty) { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>a : Symbol(a, Decl(input.js, 8, 31)) +>b : Symbol(b, Decl(input.js, 8, 33)) +>c : Symbol(c, Decl(input.js, 8, 36)) +>d : Symbol(d, Decl(input.js, 8, 39)) +>tx : Symbol(tx, Decl(input.js, 8, 42)) +>ty : Symbol(ty, Decl(input.js, 8, 46)) + +Class.prototype.m2 = function (x, y) { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(input.js, 9, 31)) +>y : Symbol(y, Decl(input.js, 9, 33)) + +Class.prototype.m3 = function (x, y) { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(input.js, 10, 31)) +>y : Symbol(y, Decl(input.js, 10, 33)) + +Class.prototype.m4 = function (angle) { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>angle : Symbol(angle, Decl(input.js, 11, 31)) + +Class.prototype.m5 = function (matrix) { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>matrix : Symbol(matrix, Decl(input.js, 12, 31)) + +Class.prototype.m6 = function (x, y, pivotX, pivotY, scaleX, scaleY, rotation, skewX, skewY) { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(input.js, 13, 31)) +>y : Symbol(y, Decl(input.js, 13, 33)) +>pivotX : Symbol(pivotX, Decl(input.js, 13, 36)) +>pivotY : Symbol(pivotY, Decl(input.js, 13, 44)) +>scaleX : Symbol(scaleX, Decl(input.js, 13, 52)) +>scaleY : Symbol(scaleY, Decl(input.js, 13, 60)) +>rotation : Symbol(rotation, Decl(input.js, 13, 68)) +>skewX : Symbol(skewX, Decl(input.js, 13, 78)) +>skewY : Symbol(skewY, Decl(input.js, 13, 85)) + +Class.prototype.m7 = function(matrix) { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>matrix : Symbol(matrix, Decl(input.js, 14, 30)) + +Class.prototype.m8 = function() { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) + +Class.prototype.m9 = function () { return this; }; +>Class.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>Class : Symbol(Class, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) + + diff --git a/tsc/testdata/baselines/reference/conformance/methodsReturningThis.types b/tsc/testdata/baselines/reference/conformance/methodsReturningThis.types new file mode 100644 index 0000000000000..7c519159c20bb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/methodsReturningThis.types @@ -0,0 +1,135 @@ +//// [tests/cases/conformance/salsa/methodsReturningThis.ts] //// + +=== input.js === +function Class() +>Class : () => void +{ +} + +// error: 'Class' doesn't have property 'notPresent' +Class.prototype.containsError = function () { return this.notPresent; }; +>Class.prototype.containsError = function () { return this.notPresent; } : () => any +>Class.prototype.containsError : any +>Class.prototype : any +>Class : () => void +>prototype : any +>containsError : any +>function () { return this.notPresent; } : () => any +>this.notPresent : any +>this : any +>notPresent : any + +// lots of methods that return this, which caused out-of-memory in #9527 +Class.prototype.m1 = function (a, b, c, d, tx, ty) { return this; }; +>Class.prototype.m1 = function (a, b, c, d, tx, ty) { return this; } : (a: any, b: any, c: any, d: any, tx: any, ty: any) => any +>Class.prototype.m1 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m1 : any +>function (a, b, c, d, tx, ty) { return this; } : (a: any, b: any, c: any, d: any, tx: any, ty: any) => any +>a : any +>b : any +>c : any +>d : any +>tx : any +>ty : any +>this : any + +Class.prototype.m2 = function (x, y) { return this; }; +>Class.prototype.m2 = function (x, y) { return this; } : (x: any, y: any) => any +>Class.prototype.m2 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m2 : any +>function (x, y) { return this; } : (x: any, y: any) => any +>x : any +>y : any +>this : any + +Class.prototype.m3 = function (x, y) { return this; }; +>Class.prototype.m3 = function (x, y) { return this; } : (x: any, y: any) => any +>Class.prototype.m3 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m3 : any +>function (x, y) { return this; } : (x: any, y: any) => any +>x : any +>y : any +>this : any + +Class.prototype.m4 = function (angle) { return this; }; +>Class.prototype.m4 = function (angle) { return this; } : (angle: any) => any +>Class.prototype.m4 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m4 : any +>function (angle) { return this; } : (angle: any) => any +>angle : any +>this : any + +Class.prototype.m5 = function (matrix) { return this; }; +>Class.prototype.m5 = function (matrix) { return this; } : (matrix: any) => any +>Class.prototype.m5 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m5 : any +>function (matrix) { return this; } : (matrix: any) => any +>matrix : any +>this : any + +Class.prototype.m6 = function (x, y, pivotX, pivotY, scaleX, scaleY, rotation, skewX, skewY) { return this; }; +>Class.prototype.m6 = function (x, y, pivotX, pivotY, scaleX, scaleY, rotation, skewX, skewY) { return this; } : (x: any, y: any, pivotX: any, pivotY: any, scaleX: any, scaleY: any, rotation: any, skewX: any, skewY: any) => any +>Class.prototype.m6 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m6 : any +>function (x, y, pivotX, pivotY, scaleX, scaleY, rotation, skewX, skewY) { return this; } : (x: any, y: any, pivotX: any, pivotY: any, scaleX: any, scaleY: any, rotation: any, skewX: any, skewY: any) => any +>x : any +>y : any +>pivotX : any +>pivotY : any +>scaleX : any +>scaleY : any +>rotation : any +>skewX : any +>skewY : any +>this : any + +Class.prototype.m7 = function(matrix) { return this; }; +>Class.prototype.m7 = function(matrix) { return this; } : (matrix: any) => any +>Class.prototype.m7 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m7 : any +>function(matrix) { return this; } : (matrix: any) => any +>matrix : any +>this : any + +Class.prototype.m8 = function() { return this; }; +>Class.prototype.m8 = function() { return this; } : () => any +>Class.prototype.m8 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m8 : any +>function() { return this; } : () => any +>this : any + +Class.prototype.m9 = function () { return this; }; +>Class.prototype.m9 = function () { return this; } : () => any +>Class.prototype.m9 : any +>Class.prototype : any +>Class : () => void +>prototype : any +>m9 : any +>function () { return this; } : () => any +>this : any + + diff --git a/tsc/testdata/baselines/reference/conformance/multipleDeclarations.js b/tsc/testdata/baselines/reference/conformance/multipleDeclarations.js new file mode 100644 index 0000000000000..065d4e33d067a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/multipleDeclarations.js @@ -0,0 +1,75 @@ +//// [tests/cases/conformance/salsa/multipleDeclarations.ts] //// + +//// [input.js] +function C() { + this.m = null; +} +C.prototype.m = function() { + this.nothing(); +} +class X { + constructor() { + this.m = this.m.bind(this); + this.mistake = 'frankly, complete nonsense'; + } + m() { + } + mistake() { + } +} +let x = new X(); +X.prototype.mistake = false; +x.m(); +x.mistake; +class Y { + mistake() { + } + m() { + } + constructor() { + this.m = this.m.bind(this); + this.mistake = 'even more nonsense'; + } +} +Y.prototype.mistake = true; +let y = new Y(); +y.m(); +y.mistake(); + + +//// [input.js] +"use strict"; +function C() { + this.m = null; +} +C.prototype.m = function () { + this.nothing(); +}; +class X { + constructor() { + this.m = this.m.bind(this); + this.mistake = 'frankly, complete nonsense'; + } + m() { + } + mistake() { + } +} +let x = new X(); +X.prototype.mistake = false; +x.m(); +x.mistake; +class Y { + mistake() { + } + m() { + } + constructor() { + this.m = this.m.bind(this); + this.mistake = 'even more nonsense'; + } +} +Y.prototype.mistake = true; +let y = new Y(); +y.m(); +y.mistake(); diff --git a/tsc/testdata/baselines/reference/conformance/multipleDeclarations.symbols b/tsc/testdata/baselines/reference/conformance/multipleDeclarations.symbols new file mode 100644 index 0000000000000..8feea0b7ab9db --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/multipleDeclarations.symbols @@ -0,0 +1,111 @@ +//// [tests/cases/conformance/salsa/multipleDeclarations.ts] //// + +=== input.js === +function C() { +>C : Symbol(C, Decl(input.js, 0, 0)) + + this.m = null; +} +C.prototype.m = function() { +>C.prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>C : Symbol(C, Decl(input.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) + + this.nothing(); +} +class X { +>X : Symbol(X, Decl(input.js, 5, 1)) + + constructor() { + this.m = this.m.bind(this); +>this.m : Symbol(X.m, Decl(input.js, 10, 5)) +>this : Symbol(X, Decl(input.js, 5, 1)) +>m : Symbol(X.m, Decl(input.js, 10, 5)) +>this.m.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>this.m : Symbol(X.m, Decl(input.js, 10, 5)) +>this : Symbol(X, Decl(input.js, 5, 1)) +>m : Symbol(X.m, Decl(input.js, 10, 5)) +>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>this : Symbol(X, Decl(input.js, 5, 1)) + + this.mistake = 'frankly, complete nonsense'; +>this.mistake : Symbol(X.mistake, Decl(input.js, 12, 5)) +>this : Symbol(X, Decl(input.js, 5, 1)) +>mistake : Symbol(X.mistake, Decl(input.js, 12, 5)) + } + m() { +>m : Symbol(X.m, Decl(input.js, 10, 5)) + } + mistake() { +>mistake : Symbol(X.mistake, Decl(input.js, 12, 5)) + } +} +let x = new X(); +>x : Symbol(x, Decl(input.js, 16, 3)) +>X : Symbol(X, Decl(input.js, 5, 1)) + +X.prototype.mistake = false; +>X.prototype.mistake : Symbol(X.mistake, Decl(input.js, 12, 5)) +>X.prototype : Symbol(X.prototype) +>X : Symbol(X, Decl(input.js, 5, 1)) +>prototype : Symbol(X.prototype) +>mistake : Symbol(X.mistake, Decl(input.js, 12, 5)) + +x.m(); +>x.m : Symbol(X.m, Decl(input.js, 10, 5)) +>x : Symbol(x, Decl(input.js, 16, 3)) +>m : Symbol(X.m, Decl(input.js, 10, 5)) + +x.mistake; +>x.mistake : Symbol(X.mistake, Decl(input.js, 12, 5)) +>x : Symbol(x, Decl(input.js, 16, 3)) +>mistake : Symbol(X.mistake, Decl(input.js, 12, 5)) + +class Y { +>Y : Symbol(Y, Decl(input.js, 19, 10)) + + mistake() { +>mistake : Symbol(Y.mistake, Decl(input.js, 20, 9)) + } + m() { +>m : Symbol(Y.m, Decl(input.js, 22, 5)) + } + constructor() { + this.m = this.m.bind(this); +>this.m : Symbol(Y.m, Decl(input.js, 22, 5)) +>this : Symbol(Y, Decl(input.js, 19, 10)) +>m : Symbol(Y.m, Decl(input.js, 22, 5)) +>this.m.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>this.m : Symbol(Y.m, Decl(input.js, 22, 5)) +>this : Symbol(Y, Decl(input.js, 19, 10)) +>m : Symbol(Y.m, Decl(input.js, 22, 5)) +>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>this : Symbol(Y, Decl(input.js, 19, 10)) + + this.mistake = 'even more nonsense'; +>this.mistake : Symbol(Y.mistake, Decl(input.js, 20, 9)) +>this : Symbol(Y, Decl(input.js, 19, 10)) +>mistake : Symbol(Y.mistake, Decl(input.js, 20, 9)) + } +} +Y.prototype.mistake = true; +>Y.prototype.mistake : Symbol(Y.mistake, Decl(input.js, 20, 9)) +>Y.prototype : Symbol(Y.prototype) +>Y : Symbol(Y, Decl(input.js, 19, 10)) +>prototype : Symbol(Y.prototype) +>mistake : Symbol(Y.mistake, Decl(input.js, 20, 9)) + +let y = new Y(); +>y : Symbol(y, Decl(input.js, 31, 3)) +>Y : Symbol(Y, Decl(input.js, 19, 10)) + +y.m(); +>y.m : Symbol(Y.m, Decl(input.js, 22, 5)) +>y : Symbol(y, Decl(input.js, 31, 3)) +>m : Symbol(Y.m, Decl(input.js, 22, 5)) + +y.mistake(); +>y.mistake : Symbol(Y.mistake, Decl(input.js, 20, 9)) +>y : Symbol(y, Decl(input.js, 31, 3)) +>mistake : Symbol(Y.mistake, Decl(input.js, 20, 9)) + diff --git a/tsc/testdata/baselines/reference/conformance/multipleDeclarations.types b/tsc/testdata/baselines/reference/conformance/multipleDeclarations.types new file mode 100644 index 0000000000000..81779aa9297c9 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/multipleDeclarations.types @@ -0,0 +1,140 @@ +//// [tests/cases/conformance/salsa/multipleDeclarations.ts] //// + +=== input.js === +function C() { +>C : () => void + + this.m = null; +>this.m = null : null +>this.m : any +>this : any +>m : any +} +C.prototype.m = function() { +>C.prototype.m = function() { this.nothing();} : () => void +>C.prototype.m : any +>C.prototype : any +>C : () => void +>prototype : any +>m : any +>function() { this.nothing();} : () => void + + this.nothing(); +>this.nothing() : any +>this.nothing : any +>this : any +>nothing : any +} +class X { +>X : X + + constructor() { + this.m = this.m.bind(this); +>this.m = this.m.bind(this) : () => void +>this.m : () => void +>this : this +>m : () => void +>this.m.bind(this) : () => void +>this.m.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } +>this.m : () => void +>this : this +>m : () => void +>bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } +>this : this + + this.mistake = 'frankly, complete nonsense'; +>this.mistake = 'frankly, complete nonsense' : "frankly, complete nonsense" +>this.mistake : () => void +>this : this +>mistake : () => void +>'frankly, complete nonsense' : "frankly, complete nonsense" + } + m() { +>m : () => void + } + mistake() { +>mistake : () => void + } +} +let x = new X(); +>x : X +>new X() : X +>X : typeof X + +X.prototype.mistake = false; +>X.prototype.mistake = false : false +>X.prototype.mistake : () => void +>X.prototype : X +>X : typeof X +>prototype : X +>mistake : () => void +>false : false + +x.m(); +>x.m() : void +>x.m : () => void +>x : X +>m : () => void + +x.mistake; +>x.mistake : () => void +>x : X +>mistake : () => void + +class Y { +>Y : Y + + mistake() { +>mistake : () => void + } + m() { +>m : () => void + } + constructor() { + this.m = this.m.bind(this); +>this.m = this.m.bind(this) : () => void +>this.m : () => void +>this : this +>m : () => void +>this.m.bind(this) : () => void +>this.m.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } +>this.m : () => void +>this : this +>m : () => void +>bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } +>this : this + + this.mistake = 'even more nonsense'; +>this.mistake = 'even more nonsense' : "even more nonsense" +>this.mistake : () => void +>this : this +>mistake : () => void +>'even more nonsense' : "even more nonsense" + } +} +Y.prototype.mistake = true; +>Y.prototype.mistake = true : true +>Y.prototype.mistake : () => void +>Y.prototype : Y +>Y : typeof Y +>prototype : Y +>mistake : () => void +>true : true + +let y = new Y(); +>y : Y +>new Y() : Y +>Y : typeof Y + +y.m(); +>y.m() : void +>y.m : () => void +>y : Y +>m : () => void + +y.mistake(); +>y.mistake() : void +>y.mistake : () => void +>y : Y +>mistake : () => void + diff --git a/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.errors.txt b/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.errors.txt new file mode 100644 index 0000000000000..220d590bcf6b0 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.errors.txt @@ -0,0 +1,17 @@ +a.js(3,1): error TS2304: Cannot find name 'a'. +b.js(2,1): error TS2304: Cannot find name 'a'. + + +==== a.js (1 errors) ==== + this.a = 10; + this.a; + a; + ~ +!!! error TS2304: Cannot find name 'a'. + +==== b.js (1 errors) ==== + this.a; + a; + ~ +!!! error TS2304: Cannot find name 'a'. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.js b/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.js new file mode 100644 index 0000000000000..b6c841465d7ab --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.js @@ -0,0 +1,21 @@ +//// [tests/cases/conformance/salsa/topLevelThisAssignment.ts] //// + +//// [a.js] +this.a = 10; +this.a; +a; + +//// [b.js] +this.a; +a; + + +//// [a.js] +"use strict"; +this.a = 10; +this.a; +a; +//// [b.js] +"use strict"; +this.a; +a; diff --git a/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.symbols b/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.symbols new file mode 100644 index 0000000000000..4e4a58edf3159 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/conformance/salsa/topLevelThisAssignment.ts] //// + +=== a.js === +this.a = 10; +>this : Symbol(globalThis) + +this.a; +>this : Symbol(globalThis) + +a; + +=== b.js === +this.a; +>this : Symbol(globalThis) + +a; + diff --git a/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.types b/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.types new file mode 100644 index 0000000000000..51586c545bfa9 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/topLevelThisAssignment.types @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/salsa/topLevelThisAssignment.ts] //// + +=== a.js === +this.a = 10; +>this.a = 10 : 10 +>this.a : any +>this : typeof globalThis +>a : any +>10 : 10 + +this.a; +>this.a : any +>this : typeof globalThis +>a : any + +a; +>a : any + +=== b.js === +this.a; +>this.a : any +>this : typeof globalThis +>a : any + +a; +>a : any + diff --git a/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.errors.txt b/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.errors.txt new file mode 100644 index 0000000000000..0858b35c7e426 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.errors.txt @@ -0,0 +1,8 @@ +/src/a.js(1,29): error TS8037: Type satisfaction expressions can only be used in TypeScript files. + + +==== /src/a.js (1 errors) ==== + var v = undefined satisfies 1; + ~ +!!! error TS8037: Type satisfaction expressions can only be used in TypeScript files. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.js b/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.js new file mode 100644 index 0000000000000..4d8fb193816b7 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.js @@ -0,0 +1,9 @@ +//// [tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_js.ts] //// + +//// [a.js] +var v = undefined satisfies 1; + + +//// [a.js] +"use strict"; +var v = undefined; diff --git a/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.symbols b/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.symbols new file mode 100644 index 0000000000000..bde82c0a8863e --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.symbols @@ -0,0 +1,7 @@ +//// [tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_js.ts] //// + +=== /src/a.js === +var v = undefined satisfies 1; +>v : Symbol(v, Decl(a.js, 0, 3)) +>undefined : Symbol(undefined) + diff --git a/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.types b/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.types new file mode 100644 index 0000000000000..6af729c7992a8 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/typeSatisfaction_js.types @@ -0,0 +1,8 @@ +//// [tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_js.ts] //// + +=== /src/a.js === +var v = undefined satisfies 1; +>v : undefined +>undefined satisfies 1 : undefined +>undefined : undefined + diff --git a/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.js b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.js new file mode 100644 index 0000000000000..8eb956689f9f0 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.js @@ -0,0 +1,83 @@ +//// [tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts] //// + +//// [uniqueSymbolsDeclarationsInJs.js] +// classes +class C { + /** + * @readonly + */ + static readonlyStaticCall = Symbol(); + /** + * @type {unique symbol} + * @readonly + */ + static readonlyStaticType; + /** + * @type {unique symbol} + * @readonly + */ + static readonlyStaticTypeAndCall = Symbol(); + static readwriteStaticCall = Symbol(); + + /** + * @readonly + */ + readonlyCall = Symbol(); + readwriteCall = Symbol(); +} + +/** @type {unique symbol} */ +const a = Symbol(); + + +//// [uniqueSymbolsDeclarationsInJs.js] +"use strict"; +// classes +class C { + constructor() { + /** + * @readonly + */ + this.readonlyCall = Symbol(); + this.readwriteCall = Symbol(); + } + /** + * @readonly + */ + static { this.readonlyStaticCall = Symbol(); } + /** + * @type {unique symbol} + * @readonly + */ + static { this.readonlyStaticTypeAndCall = Symbol(); } + static { this.readwriteStaticCall = Symbol(); } +} +/** @type {unique symbol} */ +const a = Symbol(); + + +//// [uniqueSymbolsDeclarationsInJs.d.ts] +declare class C { + /** + * @readonly + */ + static readonly readonlyStaticCall: unique symbol; + /** + * @type {unique symbol} + * @readonly + */ + static readonly readonlyStaticType: unique symbol; + /** + * @type {unique symbol} + * @readonly + */ + static readonly readonlyStaticTypeAndCall: unique symbol; + static readwriteStaticCall: symbol; + /** + * @readonly + */ + readonly readonlyCall: symbol; + readwriteCall: symbol; +} +/** @type {unique symbol} */ +declare const a: unique symbol; diff --git a/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.symbols b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.symbols new file mode 100644 index 0000000000000..0c2db059225cb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.symbols @@ -0,0 +1,50 @@ +//// [tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts] //// + +=== uniqueSymbolsDeclarationsInJs.js === +// classes +class C { +>C : Symbol(C, Decl(uniqueSymbolsDeclarationsInJs.js, 0, 0)) + + /** + * @readonly + */ + static readonlyStaticCall = Symbol(); +>readonlyStaticCall : Symbol(C.readonlyStaticCall, Decl(uniqueSymbolsDeclarationsInJs.js, 1, 9)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + + /** + * @type {unique symbol} + * @readonly + */ + static readonlyStaticType; +>readonlyStaticType : Symbol(C.readonlyStaticType, Decl(uniqueSymbolsDeclarationsInJs.js, 5, 41)) + + /** + * @type {unique symbol} + * @readonly + */ + static readonlyStaticTypeAndCall = Symbol(); +>readonlyStaticTypeAndCall : Symbol(C.readonlyStaticTypeAndCall, Decl(uniqueSymbolsDeclarationsInJs.js, 10, 30)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + + static readwriteStaticCall = Symbol(); +>readwriteStaticCall : Symbol(C.readwriteStaticCall, Decl(uniqueSymbolsDeclarationsInJs.js, 15, 48)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + + /** + * @readonly + */ + readonlyCall = Symbol(); +>readonlyCall : Symbol(C.readonlyCall, Decl(uniqueSymbolsDeclarationsInJs.js, 16, 42)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + + readwriteCall = Symbol(); +>readwriteCall : Symbol(C.readwriteCall, Decl(uniqueSymbolsDeclarationsInJs.js, 21, 28)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) +} + +/** @type {unique symbol} */ +const a = Symbol(); +>a : Symbol(a, Decl(uniqueSymbolsDeclarationsInJs.js, 26, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + diff --git a/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.types b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.types new file mode 100644 index 0000000000000..e812b448aae7a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJs.types @@ -0,0 +1,56 @@ +//// [tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts] //// + +=== uniqueSymbolsDeclarationsInJs.js === +// classes +class C { +>C : C + + /** + * @readonly + */ + static readonlyStaticCall = Symbol(); +>readonlyStaticCall : unique symbol +>Symbol() : unique symbol +>Symbol : SymbolConstructor + + /** + * @type {unique symbol} + * @readonly + */ + static readonlyStaticType; +>readonlyStaticType : unique symbol + + /** + * @type {unique symbol} + * @readonly + */ + static readonlyStaticTypeAndCall = Symbol(); +>readonlyStaticTypeAndCall : unique symbol +>Symbol() : unique symbol +>Symbol : SymbolConstructor + + static readwriteStaticCall = Symbol(); +>readwriteStaticCall : symbol +>Symbol() : symbol +>Symbol : SymbolConstructor + + /** + * @readonly + */ + readonlyCall = Symbol(); +>readonlyCall : symbol +>Symbol() : symbol +>Symbol : SymbolConstructor + + readwriteCall = Symbol(); +>readwriteCall : symbol +>Symbol() : symbol +>Symbol : SymbolConstructor +} + +/** @type {unique symbol} */ +const a = Symbol(); +>a : unique symbol +>Symbol() : unique symbol +>Symbol : SymbolConstructor + diff --git a/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.errors.txt b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.errors.txt new file mode 100644 index 0000000000000..681f7c5f3e7d2 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.errors.txt @@ -0,0 +1,25 @@ +uniqueSymbolsDeclarationsInJsErrors.js(5,12): error TS1331: A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'. +uniqueSymbolsDeclarationsInJsErrors.js(14,12): error TS1331: A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'. + + +==== uniqueSymbolsDeclarationsInJsErrors.js (2 errors) ==== + class C { + /** + * @type {unique symbol} + */ + static readwriteStaticType; + ~~~~~~~~~~~~~~~~~~~ +!!! error TS1331: A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'. + /** + * @type {unique symbol} + * @readonly + */ + static readonlyType; + /** + * @type {unique symbol} + */ + static readwriteType; + ~~~~~~~~~~~~~ +!!! error TS1331: A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'. + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.js b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.js new file mode 100644 index 0000000000000..6fe15608b42a7 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.js @@ -0,0 +1,42 @@ +//// [tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJsErrors.ts] //// + +//// [uniqueSymbolsDeclarationsInJsErrors.js] +class C { + /** + * @type {unique symbol} + */ + static readwriteStaticType; + /** + * @type {unique symbol} + * @readonly + */ + static readonlyType; + /** + * @type {unique symbol} + */ + static readwriteType; +} + + +//// [uniqueSymbolsDeclarationsInJsErrors.js] +"use strict"; +class C { +} + + +//// [uniqueSymbolsDeclarationsInJsErrors.d.ts] +declare class C { + /** + * @type {unique symbol} + */ + static readwriteStaticType: unique symbol; + /** + * @type {unique symbol} + * @readonly + */ + static readonly readonlyType: unique symbol; + /** + * @type {unique symbol} + */ + static readwriteType: unique symbol; +} diff --git a/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.symbols b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.symbols new file mode 100644 index 0000000000000..44e440f38be7f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.symbols @@ -0,0 +1,26 @@ +//// [tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJsErrors.ts] //// + +=== uniqueSymbolsDeclarationsInJsErrors.js === +class C { +>C : Symbol(C, Decl(uniqueSymbolsDeclarationsInJsErrors.js, 0, 0)) + + /** + * @type {unique symbol} + */ + static readwriteStaticType; +>readwriteStaticType : Symbol(C.readwriteStaticType, Decl(uniqueSymbolsDeclarationsInJsErrors.js, 0, 9)) + + /** + * @type {unique symbol} + * @readonly + */ + static readonlyType; +>readonlyType : Symbol(C.readonlyType, Decl(uniqueSymbolsDeclarationsInJsErrors.js, 4, 31)) + + /** + * @type {unique symbol} + */ + static readwriteType; +>readwriteType : Symbol(C.readwriteType, Decl(uniqueSymbolsDeclarationsInJsErrors.js, 9, 24)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.types b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.types new file mode 100644 index 0000000000000..8efd009a30cb9 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/uniqueSymbolsDeclarationsInJsErrors.types @@ -0,0 +1,26 @@ +//// [tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJsErrors.ts] //// + +=== uniqueSymbolsDeclarationsInJsErrors.js === +class C { +>C : C + + /** + * @type {unique symbol} + */ + static readwriteStaticType; +>readwriteStaticType : symbol + + /** + * @type {unique symbol} + * @readonly + */ + static readonlyType; +>readonlyType : unique symbol + + /** + * @type {unique symbol} + */ + static readwriteType; +>readwriteType : symbol +} + diff --git a/tsc/testdata/tests/cases/compiler/blockScopedClassDeclarationAcrossFiles.ts b/tsc/testdata/tests/cases/compiler/blockScopedClassDeclarationAcrossFiles.ts index cf104f9aaec2b..4b20e01dd7d89 100644 --- a/tsc/testdata/tests/cases/compiler/blockScopedClassDeclarationAcrossFiles.ts +++ b/tsc/testdata/tests/cases/compiler/blockScopedClassDeclarationAcrossFiles.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @outFile: foo.js +// @outDir: out // @Filename: c.ts let foo: typeof C; // @Filename: b.ts diff --git a/tsc/testdata/tests/cases/compiler/blockScopedNamespaceDifferentFile.ts b/tsc/testdata/tests/cases/compiler/blockScopedNamespaceDifferentFile.ts index 2c58f3e3a2a5a..8f68221e64493 100644 --- a/tsc/testdata/tests/cases/compiler/blockScopedNamespaceDifferentFile.ts +++ b/tsc/testdata/tests/cases/compiler/blockScopedNamespaceDifferentFile.ts @@ -1,6 +1,5 @@ // @strict: false // @target: es5, es2015 -// @outFile: out.js // @module: amd // #15734 failed when test.ts comes before typings.d.ts diff --git a/tsc/testdata/tests/cases/compiler/checkIndexConstraintOfJavascriptClassExpression.ts b/tsc/testdata/tests/cases/compiler/checkIndexConstraintOfJavascriptClassExpression.ts index 1666b04945b68..9455c0156930f 100644 --- a/tsc/testdata/tests/cases/compiler/checkIndexConstraintOfJavascriptClassExpression.ts +++ b/tsc/testdata/tests/cases/compiler/checkIndexConstraintOfJavascriptClassExpression.ts @@ -4,7 +4,7 @@ // @checkJs: true // @strict: true // @noEmit: true -// @outFile: foo.js +// @outDir: out someFunction(function(BaseClass) { 'use strict'; const DEFAULT_MESSAGE = "nop!"; diff --git a/tsc/testdata/tests/cases/compiler/constDeclarations-useBeforeDefinition2.ts b/tsc/testdata/tests/cases/compiler/constDeclarations-useBeforeDefinition2.ts index a4f53512e9307..6549c1a3eff1d 100644 --- a/tsc/testdata/tests/cases/compiler/constDeclarations-useBeforeDefinition2.ts +++ b/tsc/testdata/tests/cases/compiler/constDeclarations-useBeforeDefinition2.ts @@ -1,6 +1,6 @@ // @strict: false // @target: ES6 -// @outFile: out.js +// @outDir: out // @Filename: file1.ts c; diff --git a/tsc/testdata/tests/cases/compiler/controlFlowJavascript.ts b/tsc/testdata/tests/cases/compiler/controlFlowJavascript.ts index e1771080126b3..dc660acb4c703 100644 --- a/tsc/testdata/tests/cases/compiler/controlFlowJavascript.ts +++ b/tsc/testdata/tests/cases/compiler/controlFlowJavascript.ts @@ -1,7 +1,7 @@ // @target: es2015 // @allowJs: true // @Filename: controlFlowJavascript.js -// @outFile: out.js +// @outDir: out let cond = true; diff --git a/tsc/testdata/tests/cases/compiler/dynamicRequire.ts b/tsc/testdata/tests/cases/compiler/dynamicRequire.ts index 4b89ff17dbc86..4e52e90c0ef46 100644 --- a/tsc/testdata/tests/cases/compiler/dynamicRequire.ts +++ b/tsc/testdata/tests/cases/compiler/dynamicRequire.ts @@ -1,7 +1,6 @@ // @target: es2015 // @allowJs: true // @module: amd -// @outFile: a_out.js // @filename: a.js function foo(name) { diff --git a/tsc/testdata/tests/cases/compiler/inlineSourceMap2.ts b/tsc/testdata/tests/cases/compiler/inlineSourceMap2.ts index 44e1602e025d6..b3bfc610531f4 100644 --- a/tsc/testdata/tests/cases/compiler/inlineSourceMap2.ts +++ b/tsc/testdata/tests/cases/compiler/inlineSourceMap2.ts @@ -2,7 +2,7 @@ // @sourcemap: true // @maproot: file:///folder // @sourceroot: file:///folder -// @outFile: outfile.js +// @outDir: out // @inlinesourcemap: true // configuration errors diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationClassMethodContainingArrowFunction.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationClassMethodContainingArrowFunction.ts index 3123b8c384966..ad1b4e295c3c1 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationClassMethodContainingArrowFunction.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationClassMethodContainingArrowFunction.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @FileName: a.js class c { diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementation.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementation.ts index b7a24ed3e4af8..7e766e9cce9cf 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementation.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementation.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @declaration: true // @filename: b.js function foo() { diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.ts index 67dadb9e718f3..c55b4dfbf07f7 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateFunctionImplementationFileOrderReversed.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @declaration: true // @filename: a.ts function foo() { diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateVariable.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateVariable.ts index db03bb9a62ff3..ca5589ff460ca 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateVariable.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateVariable.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @declaration: true // @filename: a.ts var x = 10; diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateVariableErrorReported.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateVariableErrorReported.ts index e2991c48d4b9a..9ef15b75a8081 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateVariableErrorReported.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationDuplicateVariableErrorReported.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @declaration: true // @filename: b.js var x = "hello"; diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationEmitDeclarations.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationEmitDeclarations.ts index ebc002a9461ad..76a82c43b74f3 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationEmitDeclarations.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationEmitDeclarations.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @declaration: true // @filename: a.ts class c { diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationEmitTrippleSlashReference.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationEmitTrippleSlashReference.ts index a3c34a8486334..eb45ef5bee2d7 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationEmitTrippleSlashReference.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationEmitTrippleSlashReference.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @declaration: true // @filename: a.ts class c { diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationLetBeingRenamed.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationLetBeingRenamed.ts index 456a84054c368..0b2751a27558b 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationLetBeingRenamed.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationLetBeingRenamed.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @FileName: a.js function foo(a) { diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationLetDeclarationOrder.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationLetDeclarationOrder.ts index f6e1aec153b4d..ef2bd1322cda4 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationLetDeclarationOrder.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationLetDeclarationOrder.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @declaration: true // @filename: b.js let a = 10; diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationLetDeclarationOrder2.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationLetDeclarationOrder2.ts index 1578136c2eee4..f27556630107a 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationLetDeclarationOrder2.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationLetDeclarationOrder2.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @declaration: true // @filename: a.ts let b = 30; diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationNonNullAssertion.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationNonNullAssertion.ts index 63ac8e27587aa..4c5cb2fe240b3 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationNonNullAssertion.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationNonNullAssertion.ts @@ -1,5 +1,5 @@ // @target: es2015 // @allowJs: true // @filename: /src/a.js -// @outFile: /bin/a.js +// @outDir: out 0! diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts index 13e467100992b..7029acd13915f 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts @@ -1,6 +1,5 @@ // @target: es2015 // @allowJs: true -// @outFile: apply.js // @module: amd // @filename: _apply.js diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParameter.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParameter.ts index 12013bb76bd00..f52ab0261ec5b 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParameter.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParameter.ts @@ -1,5 +1,5 @@ // @allowJs: true // @filename: a.js // @target: es6 -// @outFile: b.js +// @outDir: out function foo(...a) { } diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationShortHandProperty.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationShortHandProperty.ts index 65694c0da3598..f7349182c0b1b 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationShortHandProperty.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationShortHandProperty.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @FileName: a.js function foo() { diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationTypeAssertions.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationTypeAssertions.ts index 3870e7bfcbc55..005948d6a488a 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationTypeAssertions.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationTypeAssertions.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true // @filename: /src/a.js -// @outFile: /lib/a.js +// @outDir: out 0 as number; var v = undefined; diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationWithEnabledCompositeOption.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationWithEnabledCompositeOption.ts index 2d2df728a64a0..6e046f10de47f 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationWithEnabledCompositeOption.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationWithEnabledCompositeOption.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out.js +// @outDir: out // @composite: true // @filename: a.ts class c { diff --git a/tsc/testdata/tests/cases/compiler/letDeclarations-useBeforeDefinition2.ts b/tsc/testdata/tests/cases/compiler/letDeclarations-useBeforeDefinition2.ts index e908f5ec8fc84..16266e07205a2 100644 --- a/tsc/testdata/tests/cases/compiler/letDeclarations-useBeforeDefinition2.ts +++ b/tsc/testdata/tests/cases/compiler/letDeclarations-useBeforeDefinition2.ts @@ -1,5 +1,5 @@ // @target: ES6 -// @outFile: out.js +// @outDir: out // @Filename: file1.ts l; diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports1.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports1.ts index 814732fb4a245..185f22d223217 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports1.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports1.ts @@ -1,7 +1,6 @@ // @target: es2015 // @module: amd // @declaration: true -// @outFile: f.js // @filename: a.ts export class A {} diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports2.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports2.ts index 2b8863d7274b8..a0469f01f952f 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports2.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports2.ts @@ -1,7 +1,6 @@ // @target: es2015 // @module: amd // @declaration: true -// @outFile: f.js // @filename: a.ts export class A {} diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports3.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports3.ts index 39b6efd49627b..a76bde6d84949 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports3.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports3.ts @@ -1,7 +1,6 @@ // @target: es2015 // @module: amd // @declaration: true -// @outFile: f.js // @filename: a.ts export class A {} diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports4.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports4.ts index 16b24bd76b4a1..a902680882533 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports4.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports4.ts @@ -1,7 +1,6 @@ // @target: es2015 // @module: amd // @declaration: true -// @outFile: f.js // @filename: a.ts export class A {} diff --git a/tsc/testdata/tests/cases/compiler/moduleNoneDynamicImport.ts b/tsc/testdata/tests/cases/compiler/moduleNoneDynamicImport.ts index a7309ba5faa8a..1208a8f62f3eb 100644 --- a/tsc/testdata/tests/cases/compiler/moduleNoneDynamicImport.ts +++ b/tsc/testdata/tests/cases/compiler/moduleNoneDynamicImport.ts @@ -1,7 +1,7 @@ // @allowJs: true // @target: es2015,es2020 // @module: none -// @outFile: /a.js +// @outDir: out // @filename: /a.ts const foo = import("./b"); diff --git a/tsc/testdata/tests/cases/compiler/signaturesUseJSDocForOptionalParameters.ts b/tsc/testdata/tests/cases/compiler/signaturesUseJSDocForOptionalParameters.ts index 9d9a584ac4c9d..7c1c93a83f676 100644 --- a/tsc/testdata/tests/cases/compiler/signaturesUseJSDocForOptionalParameters.ts +++ b/tsc/testdata/tests/cases/compiler/signaturesUseJSDocForOptionalParameters.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: out_1.js +// @outDir: out // @filename: jsDocOptionality.js function MyClass() { this.prop = null; diff --git a/tsc/testdata/tests/cases/compiler/useBeforeDeclaration.ts b/tsc/testdata/tests/cases/compiler/useBeforeDeclaration.ts index 85e1075f2e38d..88be7cca2894f 100644 --- a/tsc/testdata/tests/cases/compiler/useBeforeDeclaration.ts +++ b/tsc/testdata/tests/cases/compiler/useBeforeDeclaration.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @outFile: test.js +// @outDir: out // @fileName: A.ts namespace ts { diff --git a/tsc/testdata/tests/cases/conformance/classes/members/classTypes/genericSetterInClassTypeJsDoc.ts b/tsc/testdata/tests/cases/conformance/classes/members/classTypes/genericSetterInClassTypeJsDoc.ts index c59754868eb58..7407d5dc47248 100644 --- a/tsc/testdata/tests/cases/conformance/classes/members/classTypes/genericSetterInClassTypeJsDoc.ts +++ b/tsc/testdata/tests/cases/conformance/classes/members/classTypes/genericSetterInClassTypeJsDoc.ts @@ -4,7 +4,7 @@ // @allowJs: true // @checkJs: true // @filename: genericSetterInClassTypeJsDoc.js -// @outFile: genericSetterInClassTypeJsDoc-out.js +// @outDir: out /** * @template T diff --git a/tsc/testdata/tests/cases/conformance/es2019/globalThisVarDeclaration.ts b/tsc/testdata/tests/cases/conformance/es2019/globalThisVarDeclaration.ts index 1c7435902780f..51a9f3c635eb0 100644 --- a/tsc/testdata/tests/cases/conformance/es2019/globalThisVarDeclaration.ts +++ b/tsc/testdata/tests/cases/conformance/es2019/globalThisVarDeclaration.ts @@ -1,4 +1,4 @@ -// @outFile: output.js +// @outDir: out // @target: esnext // @lib: esnext, dom // @Filename: b.js diff --git a/tsc/testdata/tests/cases/conformance/es6/computedProperties/computedPropertyNames52.ts b/tsc/testdata/tests/cases/conformance/es6/computedProperties/computedPropertyNames52.ts index 507537e235a7f..bd43de87ad7ee 100644 --- a/tsc/testdata/tests/cases/conformance/es6/computedProperties/computedPropertyNames52.ts +++ b/tsc/testdata/tests/cases/conformance/es6/computedProperties/computedPropertyNames52.ts @@ -1,5 +1,5 @@ // @filename: computedPropertyNames52.js -// @outFile: computedPropertyNames52-emit.js +// @outDir: out // @allowJs: true // @target: es5, es2015 const array = []; diff --git a/tsc/testdata/tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_js.ts b/tsc/testdata/tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_js.ts index 283081adaf5f1..6852c620fc65f 100644 --- a/tsc/testdata/tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_js.ts +++ b/tsc/testdata/tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_js.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true // @filename: /src/a.js -// @outFile: /lib/a.js +// @outDir: out var v = undefined satisfies 1; diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts b/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts index 55a686575b0b5..2574ea667beb4 100644 --- a/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts +++ b/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @outFile: output.js +// @outDir: out // @allowJs: true // @checkJs: true // @Filename: eof.js diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocReturnTag1.ts b/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocReturnTag1.ts index 32010d5011c6c..89146d3f6be93 100644 --- a/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocReturnTag1.ts +++ b/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocReturnTag1.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: dummy.js +// @outDir: out // @filename: returns.js // @ts-check diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocReturnTag2.ts b/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocReturnTag2.ts index ea777107dcccd..e74c70390cc6a 100644 --- a/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocReturnTag2.ts +++ b/tsc/testdata/tests/cases/conformance/jsdoc/checkJsdocReturnTag2.ts @@ -1,6 +1,6 @@ // @target: es2015 // @allowJs: true -// @outFile: dummy.js +// @outDir: out // @filename: returns.js // @ts-check diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocAccessibilityTagsDeclarations.ts b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocAccessibilityTagsDeclarations.ts index ece26491d8017..cdcac29ad9c6b 100644 --- a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocAccessibilityTagsDeclarations.ts +++ b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocAccessibilityTagsDeclarations.ts @@ -2,7 +2,7 @@ // @allowJs: true // @checkJs: true // @target: esnext -// @outFile: foo.js +// @outDir: out // @declaration: true // @Filename: jsdocAccessibilityTagDeclarations.js class Protected { diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocLiteral.ts b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocLiteral.ts index 747cf76dc95d2..03a399f4d0bf1 100644 --- a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocLiteral.ts +++ b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocLiteral.ts @@ -1,7 +1,7 @@ // @target: es2015 // @allowJs: true // @filename: in.js -// @outFile: out.js +// @outDir: out /** * @param {'literal'} p1 * @param {"literal"} p2 diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocNeverUndefinedNull.ts b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocNeverUndefinedNull.ts index f595d5553f9ca..fd7cc9d7f1f70 100644 --- a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocNeverUndefinedNull.ts +++ b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocNeverUndefinedNull.ts @@ -1,7 +1,7 @@ // @target: es2015 // @allowJs: true // @filename: in.js -// @outFile: out.js +// @outDir: out /** * @param {never} p1 * @param {undefined} p2 diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocReadonlyDeclarations.ts b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocReadonlyDeclarations.ts index bbe2ff6ffe862..e52e1d079de5e 100644 --- a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocReadonlyDeclarations.ts +++ b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocReadonlyDeclarations.ts @@ -2,7 +2,7 @@ // @allowJs: true // @checkJs: true // @target: esnext -// @outFile: foo.js +// @outDir: out // @declaration: true // @Filename: jsdocReadonlyDeclarations.js // @useDefineForClassFields: false diff --git a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocReturnTag1.ts b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocReturnTag1.ts index 531314e2c3dba..726c9c2cb0e15 100644 --- a/tsc/testdata/tests/cases/conformance/jsdoc/jsdocReturnTag1.ts +++ b/tsc/testdata/tests/cases/conformance/jsdoc/jsdocReturnTag1.ts @@ -1,7 +1,7 @@ // @target: es2015 // @allowJs: true // @filename: returns.js -// @outFile: dummy.js +// @outDir: out /** * @returns {string} This comment is not currently exposed */ diff --git a/tsc/testdata/tests/cases/conformance/salsa/inferringClassMembersFromAssignments.ts b/tsc/testdata/tests/cases/conformance/salsa/inferringClassMembersFromAssignments.ts index b21f41c38ff5c..fe57bab7f88a9 100644 --- a/tsc/testdata/tests/cases/conformance/salsa/inferringClassMembersFromAssignments.ts +++ b/tsc/testdata/tests/cases/conformance/salsa/inferringClassMembersFromAssignments.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @outFile: output.js +// @outDir: out // @allowJs: true // @checkJs: true // @noImplicitAny: true diff --git a/tsc/testdata/tests/cases/conformance/salsa/jsObjectsMarkedAsOpenEnded.ts b/tsc/testdata/tests/cases/conformance/salsa/jsObjectsMarkedAsOpenEnded.ts index 0d6af366c32d4..6872d71650217 100644 --- a/tsc/testdata/tests/cases/conformance/salsa/jsObjectsMarkedAsOpenEnded.ts +++ b/tsc/testdata/tests/cases/conformance/salsa/jsObjectsMarkedAsOpenEnded.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @outFile: output.js +// @outDir: out // @allowJs: true // @filename: a.js diff --git a/tsc/testdata/tests/cases/conformance/salsa/methodsReturningThis.ts b/tsc/testdata/tests/cases/conformance/salsa/methodsReturningThis.ts index 0b6f4569d69b0..1ed8b236b07b7 100644 --- a/tsc/testdata/tests/cases/conformance/salsa/methodsReturningThis.ts +++ b/tsc/testdata/tests/cases/conformance/salsa/methodsReturningThis.ts @@ -1,6 +1,6 @@ // @target: es2015 // @filename: input.js -// @outFile: output.js +// @outDir: out // @allowJs: true function Class() { diff --git a/tsc/testdata/tests/cases/conformance/salsa/multipleDeclarations.ts b/tsc/testdata/tests/cases/conformance/salsa/multipleDeclarations.ts index f048be49e7902..13cb987b6726f 100644 --- a/tsc/testdata/tests/cases/conformance/salsa/multipleDeclarations.ts +++ b/tsc/testdata/tests/cases/conformance/salsa/multipleDeclarations.ts @@ -1,6 +1,6 @@ // @target: es2015 // @filename: input.js -// @outFile: output.js +// @outDir: out // @allowJs: true function C() { this.m = null; diff --git a/tsc/testdata/tests/cases/conformance/salsa/topLevelThisAssignment.ts b/tsc/testdata/tests/cases/conformance/salsa/topLevelThisAssignment.ts index 0db6fa76ebcfe..10a4cb8022139 100644 --- a/tsc/testdata/tests/cases/conformance/salsa/topLevelThisAssignment.ts +++ b/tsc/testdata/tests/cases/conformance/salsa/topLevelThisAssignment.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @outFile: output.js +// @outDir: out // @allowJs: true // @checkJs: true // @Filename: a.js diff --git a/tsc/testdata/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts b/tsc/testdata/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts index c7ff74691ec83..31a0680dc6c85 100644 --- a/tsc/testdata/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts +++ b/tsc/testdata/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts @@ -4,7 +4,7 @@ // @allowJs: true // @checkJs: true // @filename: uniqueSymbolsDeclarationsInJs.js -// @outFile: uniqueSymbolsDeclarationsInJs-out.js +// @outDir: out // @useDefineForClassFields: false // classes diff --git a/tsc/testdata/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJsErrors.ts b/tsc/testdata/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJsErrors.ts index 240aef7acc1bc..07b6597ad668c 100644 --- a/tsc/testdata/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJsErrors.ts +++ b/tsc/testdata/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJsErrors.ts @@ -4,7 +4,7 @@ // @allowJs: true // @checkJs: true // @filename: uniqueSymbolsDeclarationsInJsErrors.js -// @outFile: uniqueSymbolsDeclarationsInJsErrors-out.js +// @outDir: out // @useDefineForClassFields: false class C { From 5f8cad7749fa69914a1456521689635fea6dc45b Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2026 17:43:23 +0100 Subject: [PATCH 03/16] test: remove AMD-specific test cases --- .../completionsPathsJsonModuleWithAmd_test.go | 32 ------------- .../compiler/amdDependencyComment1.errors.txt | 10 ---- .../compiler/amdDependencyComment1.js | 14 ------ .../compiler/amdDependencyComment1.symbols | 11 ----- .../compiler/amdDependencyComment1.types | 14 ------ .../amdDependencyCommentName1.errors.txt | 10 ---- .../compiler/amdDependencyCommentName1.js | 14 ------ .../amdDependencyCommentName1.symbols | 11 ----- .../compiler/amdDependencyCommentName1.types | 14 ------ ...doNotEmitTripleSlashCommentsInEmptyFile.js | 17 ------- ...EmitTripleSlashCommentsInEmptyFile.symbols | 11 ----- ...otEmitTripleSlashCommentsInEmptyFile.types | 11 ----- .../compiler/doNotemitTripleSlashComments.js | 48 ------------------- .../doNotemitTripleSlashComments.symbols | 41 ---------------- .../doNotemitTripleSlashComments.types | 44 ----------------- .../cases/compiler/amdDependencyComment1.ts | 6 --- .../cases/compiler/amdDependencyComment2.ts | 6 --- .../compiler/amdDependencyCommentName1.ts | 6 --- .../compiler/amdDependencyCommentName2.ts | 6 --- .../compiler/amdDependencyCommentName3.ts | 8 ---- .../compiler/amdDependencyCommentName4.ts | 22 --------- .../cases/compiler/amdModuleConstEnumUsage.ts | 17 ------- .../tests/cases/compiler/amdModuleName1.ts | 10 ---- .../tests/cases/compiler/amdModuleName2.ts | 11 ----- .../declarationEmitAmdModuleNameDirective.ts | 10 ---- ...doNotEmitTripleSlashCommentsInEmptyFile.ts | 11 ----- .../compiler/doNotemitTripleSlashComments.ts | 36 -------------- tsc/testdata/tests/cases/compiler/es5-amd.ts | 17 ------- .../cases/compiler/es5-declaration-amd.ts | 17 ------- .../tests/cases/compiler/es5-souremap-amd.ts | 16 ------- .../compiler/es5ModuleWithModuleGenAmd.ts | 13 ----- tsc/testdata/tests/cases/compiler/es6-amd.ts | 17 ------- .../cases/compiler/es6-declaration-amd.ts | 17 ------- .../tests/cases/compiler/es6-sourcemap-amd.ts | 16 ------- .../compiler/es6ImportDefaultBindingAmd.ts | 12 ----- .../compiler/es6ImportNameSpaceImportAmd.ts | 11 ----- .../cases/compiler/es6ImportNamedImportAmd.ts | 42 ---------------- .../compiler/es6ImportWithoutFromClauseAmd.ts | 15 ------ .../es6ModuleWithModuleGenTargetAmd.ts | 13 ----- .../tests/cases/compiler/exportEqualsAmd.ts | 3 -- .../cases/compiler/generatorES6InAMDModule.ts | 6 --- .../tests/cases/compiler/importHelpersAmd.ts | 21 -------- .../compiler/isolatedModulesPlainFile-AMD.ts | 6 --- .../tests/cases/compiler/modulePrologueAMD.ts | 5 -- .../compiler/nestedRedeclarationInES6AMD.ts | 8 ---- .../cases/compiler/noImplicitUseStrict_amd.ts | 5 -- .../pathMappingBasedModuleResolution1_amd.ts | 18 ------- .../compiler/requireOfJsonFileWithAmd.ts | 21 -------- ...JsonFileWithModuleNodeResolutionEmitAmd.ts | 15 ------ .../compiler/shorthand-property-es6-amd.ts | 8 ---- .../tests/cases/compiler/systemModule12.ts | 6 --- .../cases/compiler/umdDependencyComment2.ts | 6 --- .../compiler/umdDependencyCommentName1.ts | 6 --- .../compiler/umdDependencyCommentName2.ts | 8 ---- .../tests/cases/compiler/umdNamedAmdMode.ts | 5 -- .../importCallExpressionAsyncES5AMD.ts | 31 ------------ .../importCallExpressionAsyncES6AMD.ts | 30 ------------ .../importCallExpressionES5AMD.ts | 30 ------------ .../importCallExpressionES6AMD.ts | 29 ----------- .../importCallExpressionInAMD1.ts | 17 ------- .../importCallExpressionInAMD2.ts | 17 ------- .../importCallExpressionInAMD3.ts | 14 ------ .../importCallExpressionInAMD4.ts | 43 ----------------- .../importCallExpressionInExportEqualsAMD.ts | 9 ---- .../importCallExpressionNestedAMD.ts | 11 ----- .../importCallExpressionNestedAMD2.ts | 11 ----- .../anonymousDefaultExportsAmd.ts | 7 --- .../decoratedDefaultExportsGetExportedAmd.ts | 14 ------ .../defaultExportsGetExportedAmd.ts | 7 --- .../es6/modules/exportAndImport-es5-amd.ts | 12 ----- .../conformance/es6/modules/exportStar-amd.ts | 29 ----------- .../es6/modules/exportsAndImports1-amd.ts | 35 -------------- .../es6/modules/exportsAndImports2-amd.ts | 13 ----- .../es6/modules/exportsAndImports3-amd.ts | 35 -------------- .../es6/modules/exportsAndImports4-amd.ts | 39 --------------- .../amdImportAsPrimaryExpression.ts | 12 ----- .../amdImportNotAsPrimaryExpression.ts | 32 ------------- .../exportClassNameWithObjectAMD.ts | 3 -- .../exportNonInitializedVariablesAMD.ts | 36 -------------- .../invalidSyntaxNamespaceImportWithAMD.ts | 7 --- .../conformance/typings/typingsLookupAmd.ts | 15 ------ 81 files changed, 1342 deletions(-) delete mode 100644 tsc/internal/fourslash/tests/completionsPathsJsonModuleWithAmd_test.go delete mode 100644 tsc/testdata/baselines/reference/compiler/amdDependencyComment1.errors.txt delete mode 100644 tsc/testdata/baselines/reference/compiler/amdDependencyComment1.js delete mode 100644 tsc/testdata/baselines/reference/compiler/amdDependencyComment1.symbols delete mode 100644 tsc/testdata/baselines/reference/compiler/amdDependencyComment1.types delete mode 100644 tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.errors.txt delete mode 100644 tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.js delete mode 100644 tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.symbols delete mode 100644 tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.types delete mode 100644 tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.js delete mode 100644 tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.symbols delete mode 100644 tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.types delete mode 100644 tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.js delete mode 100644 tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.symbols delete mode 100644 tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.types delete mode 100644 tsc/testdata/tests/cases/compiler/amdDependencyComment1.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdDependencyComment2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdDependencyCommentName1.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdDependencyCommentName2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdDependencyCommentName3.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdDependencyCommentName4.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdModuleConstEnumUsage.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdModuleName1.ts delete mode 100644 tsc/testdata/tests/cases/compiler/amdModuleName2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/declarationEmitAmdModuleNameDirective.ts delete mode 100644 tsc/testdata/tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts delete mode 100644 tsc/testdata/tests/cases/compiler/doNotemitTripleSlashComments.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es5-amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es5-declaration-amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es5-souremap-amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es5ModuleWithModuleGenAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es6-amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es6-declaration-amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es6-sourcemap-amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es6ImportNameSpaceImportAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es6ImportNamedImportAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es6ImportWithoutFromClauseAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/es6ModuleWithModuleGenTargetAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/exportEqualsAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/generatorES6InAMDModule.ts delete mode 100644 tsc/testdata/tests/cases/compiler/importHelpersAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/isolatedModulesPlainFile-AMD.ts delete mode 100644 tsc/testdata/tests/cases/compiler/modulePrologueAMD.ts delete mode 100644 tsc/testdata/tests/cases/compiler/nestedRedeclarationInES6AMD.ts delete mode 100644 tsc/testdata/tests/cases/compiler/noImplicitUseStrict_amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution1_amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/requireOfJsonFileWithAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/requireOfJsonFileWithModuleNodeResolutionEmitAmd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/shorthand-property-es6-amd.ts delete mode 100644 tsc/testdata/tests/cases/compiler/systemModule12.ts delete mode 100644 tsc/testdata/tests/cases/compiler/umdDependencyComment2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/umdDependencyCommentName1.ts delete mode 100644 tsc/testdata/tests/cases/compiler/umdDependencyCommentName2.ts delete mode 100644 tsc/testdata/tests/cases/compiler/umdNamedAmdMode.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionAsyncES5AMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionAsyncES6AMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionES5AMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionES6AMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD1.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD2.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD3.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD4.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInExportEqualsAMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionNestedAMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionNestedAMD2.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/modules/exportAndImport-es5-amd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/modules/exportStar-amd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports1-amd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports2-amd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports3-amd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports4-amd.ts delete mode 100644 tsc/testdata/tests/cases/conformance/externalModules/amdImportAsPrimaryExpression.ts delete mode 100644 tsc/testdata/tests/cases/conformance/externalModules/amdImportNotAsPrimaryExpression.ts delete mode 100644 tsc/testdata/tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/externalModules/exportNonInitializedVariablesAMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/externalModules/invalidSyntaxNamespaceImportWithAMD.ts delete mode 100644 tsc/testdata/tests/cases/conformance/typings/typingsLookupAmd.ts diff --git a/tsc/internal/fourslash/tests/completionsPathsJsonModuleWithAmd_test.go b/tsc/internal/fourslash/tests/completionsPathsJsonModuleWithAmd_test.go deleted file mode 100644 index bab8e0ea0b7ed..0000000000000 --- a/tsc/internal/fourslash/tests/completionsPathsJsonModuleWithAmd_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package fourslash_test - -import ( - "testing" - - "github.com/microsoft/TypeScript/tsc/internal/fourslash" - . "github.com/microsoft/TypeScript/tsc/internal/fourslash/tests/util" - "github.com/microsoft/TypeScript/tsc/internal/testutil" -) - -func TestCompletionsPathsJsonModuleWithAmd(t *testing.T) { - t.Parallel() - defer testutil.RecoverAndFail(t, "Panic on fourslash test") - const content = `// @module: amd -// @resolveJsonModule: true -// @Filename: /project/test.json -not read -// @Filename: /project/index.ts -import { } from ".//**/";` - f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) - defer done() - f.VerifyCompletions(t, "", &fourslash.CompletionsExpectedList{ - IsIncomplete: false, - ItemDefaults: &fourslash.CompletionsExpectedItemDefaults{ - CommitCharacters: &[]string{}, - EditRange: Ignored, - }, - Items: &fourslash.CompletionsExpectedItems{ - Exact: []fourslash.CompletionsExpectedItem{}, - }, - }) -} diff --git a/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.errors.txt b/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.errors.txt deleted file mode 100644 index 00c706f38089e..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.errors.txt +++ /dev/null @@ -1,10 +0,0 @@ -amdDependencyComment1.ts(3,21): error TS2307: Cannot find module 'm2' or its corresponding type declarations. - - -==== amdDependencyComment1.ts (1 errors) ==== - /// - - import m1 = require("m2") - ~~~~ -!!! error TS2307: Cannot find module 'm2' or its corresponding type declarations. - m1.f(); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.js b/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.js deleted file mode 100644 index e12e84748597b..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.js +++ /dev/null @@ -1,14 +0,0 @@ -//// [tests/cases/compiler/amdDependencyComment1.ts] //// - -//// [amdDependencyComment1.ts] -/// - -import m1 = require("m2") -m1.f(); - -//// [amdDependencyComment1.js] -"use strict"; -/// -Object.defineProperty(exports, "__esModule", { value: true }); -const m1 = require("m2"); -m1.f(); diff --git a/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.symbols b/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.symbols deleted file mode 100644 index 15ed066e79e15..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.symbols +++ /dev/null @@ -1,11 +0,0 @@ -//// [tests/cases/compiler/amdDependencyComment1.ts] //// - -=== amdDependencyComment1.ts === -/// - -import m1 = require("m2") ->m1 : Symbol(m1, Decl(amdDependencyComment1.ts, 0, 0)) - -m1.f(); ->m1 : Symbol(m1, Decl(amdDependencyComment1.ts, 0, 0)) - diff --git a/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.types b/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.types deleted file mode 100644 index 906cd203210ef..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/amdDependencyComment1.types +++ /dev/null @@ -1,14 +0,0 @@ -//// [tests/cases/compiler/amdDependencyComment1.ts] //// - -=== amdDependencyComment1.ts === -/// - -import m1 = require("m2") ->m1 : any - -m1.f(); ->m1.f() : any ->m1.f : any ->m1 : any ->f : any - diff --git a/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.errors.txt b/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.errors.txt deleted file mode 100644 index 10efca68a7a19..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.errors.txt +++ /dev/null @@ -1,10 +0,0 @@ -amdDependencyCommentName1.ts(3,21): error TS2307: Cannot find module 'm2' or its corresponding type declarations. - - -==== amdDependencyCommentName1.ts (1 errors) ==== - /// - - import m1 = require("m2") - ~~~~ -!!! error TS2307: Cannot find module 'm2' or its corresponding type declarations. - m1.f(); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.js b/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.js deleted file mode 100644 index 7538bd86ee39e..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.js +++ /dev/null @@ -1,14 +0,0 @@ -//// [tests/cases/compiler/amdDependencyCommentName1.ts] //// - -//// [amdDependencyCommentName1.ts] -/// - -import m1 = require("m2") -m1.f(); - -//// [amdDependencyCommentName1.js] -"use strict"; -/// -Object.defineProperty(exports, "__esModule", { value: true }); -const m1 = require("m2"); -m1.f(); diff --git a/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.symbols b/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.symbols deleted file mode 100644 index 1fd7912ae5729..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.symbols +++ /dev/null @@ -1,11 +0,0 @@ -//// [tests/cases/compiler/amdDependencyCommentName1.ts] //// - -=== amdDependencyCommentName1.ts === -/// - -import m1 = require("m2") ->m1 : Symbol(m1, Decl(amdDependencyCommentName1.ts, 0, 0)) - -m1.f(); ->m1 : Symbol(m1, Decl(amdDependencyCommentName1.ts, 0, 0)) - diff --git a/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.types b/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.types deleted file mode 100644 index 0be8c8da09d14..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/amdDependencyCommentName1.types +++ /dev/null @@ -1,14 +0,0 @@ -//// [tests/cases/compiler/amdDependencyCommentName1.ts] //// - -=== amdDependencyCommentName1.ts === -/// - -import m1 = require("m2") ->m1 : any - -m1.f(); ->m1.f() : any ->m1.f : any ->m1 : any ->f : any - diff --git a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.js b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.js deleted file mode 100644 index 2876103ddd2dc..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.js +++ /dev/null @@ -1,17 +0,0 @@ -//// [tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts] //// - -//// [file0.ts] - -//// [file1.ts] - -//// [file2.ts] -/// -/// -/// - -//// [file0.js] -"use strict"; -//// [file1.js] -"use strict"; -//// [file2.js] -"use strict"; diff --git a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.symbols b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.symbols deleted file mode 100644 index e757b4fcd33d0..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.symbols +++ /dev/null @@ -1,11 +0,0 @@ -//// [tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts] //// - -=== file2.ts === - -/// -/// -/// -=== file0.ts === - -=== file1.ts === - diff --git a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.types b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.types deleted file mode 100644 index e757b4fcd33d0..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.types +++ /dev/null @@ -1,11 +0,0 @@ -//// [tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts] //// - -=== file2.ts === - -/// -/// -/// -=== file0.ts === - -=== file1.ts === - diff --git a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.js b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.js deleted file mode 100644 index b55627c2f36bc..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.js +++ /dev/null @@ -1,48 +0,0 @@ -//// [tests/cases/compiler/doNotemitTripleSlashComments.ts] //// - -//// [file0.ts] -/// -/// -/// -var x = 10; - -/// -var y = "hello"; - - -/// - -//// [file1.ts] -/// - -function foo() { } - - -/// - - -var z = "world"; - -//// [file2.ts] -/// - - -/// ==================================== - - -function bar() { } - - - - -//// [file0.js] -"use strict"; -var x = 10; -var y = "hello"; -//// [file1.js] -"use strict"; -function foo() { } -var z = "world"; -//// [file2.js] -"use strict"; -function bar() { } diff --git a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.symbols b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.symbols deleted file mode 100644 index c1c099027ba8d..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.symbols +++ /dev/null @@ -1,41 +0,0 @@ -//// [tests/cases/compiler/doNotemitTripleSlashComments.ts] //// - -=== file2.ts === -/// - - -/// ==================================== - - -function bar() { } ->bar : Symbol(bar, Decl(file2.ts, 0, 0)) - - - -=== file0.ts === -/// -/// -/// -var x = 10; ->x : Symbol(x, Decl(file0.ts, 3, 3)) - -/// -var y = "hello"; ->y : Symbol(y, Decl(file0.ts, 6, 3)) - - -/// - -=== file1.ts === -/// - -function foo() { } ->foo : Symbol(foo, Decl(file1.ts, 0, 0)) - - -/// - - -var z = "world"; ->z : Symbol(z, Decl(file1.ts, 8, 3)) - diff --git a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.types b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.types deleted file mode 100644 index cc4c4f7e6b500..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.types +++ /dev/null @@ -1,44 +0,0 @@ -//// [tests/cases/compiler/doNotemitTripleSlashComments.ts] //// - -=== file2.ts === -/// - - -/// ==================================== - - -function bar() { } ->bar : () => void - - - -=== file0.ts === -/// -/// -/// -var x = 10; ->x : number ->10 : 10 - -/// -var y = "hello"; ->y : string ->"hello" : "hello" - - -/// - -=== file1.ts === -/// - -function foo() { } ->foo : () => void - - -/// - - -var z = "world"; ->z : string ->"world" : "world" - diff --git a/tsc/testdata/tests/cases/compiler/amdDependencyComment1.ts b/tsc/testdata/tests/cases/compiler/amdDependencyComment1.ts deleted file mode 100644 index e33c923da840f..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdDependencyComment1.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es2015 -//@module: commonjs -/// - -import m1 = require("m2") -m1.f(); \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/amdDependencyComment2.ts b/tsc/testdata/tests/cases/compiler/amdDependencyComment2.ts deleted file mode 100644 index 9bebcfd83ace9..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdDependencyComment2.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es2015 -//@module: amd -/// - -import m1 = require("m2") -m1.f(); \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/amdDependencyCommentName1.ts b/tsc/testdata/tests/cases/compiler/amdDependencyCommentName1.ts deleted file mode 100644 index 6f72f58480e68..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdDependencyCommentName1.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es2015 -//@module: commonjs -/// - -import m1 = require("m2") -m1.f(); \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/amdDependencyCommentName2.ts b/tsc/testdata/tests/cases/compiler/amdDependencyCommentName2.ts deleted file mode 100644 index 2555ac4642b62..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdDependencyCommentName2.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es2015 -//@module: amd -/// - -import m1 = require("m2") -m1.f(); \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/amdDependencyCommentName3.ts b/tsc/testdata/tests/cases/compiler/amdDependencyCommentName3.ts deleted file mode 100644 index 9f33e6d2b1c75..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdDependencyCommentName3.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @target: es2015 -//@module: amd -/// -/// -/// - -import m1 = require("m2") -m1.f(); \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/amdDependencyCommentName4.ts b/tsc/testdata/tests/cases/compiler/amdDependencyCommentName4.ts deleted file mode 100644 index 116268e689a29..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdDependencyCommentName4.ts +++ /dev/null @@ -1,22 +0,0 @@ -// @target: es2015 -//@module: amd -/// -/// -/// -/// - -import "unaliasedModule1"; - -import r1 = require("aliasedModule1"); -r1; - -import {p1, p2, p3} from "aliasedModule2"; -p1; - -import d from "aliasedModule3"; -d; - -import * as ns from "aliasedModule4"; -ns; - -import "unaliasedModule2"; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/amdModuleConstEnumUsage.ts b/tsc/testdata/tests/cases/compiler/amdModuleConstEnumUsage.ts deleted file mode 100644 index 3da012a474960..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdModuleConstEnumUsage.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @target: es2015 -// @module: amd -// @preserveConstEnums: true -// @baseUrl: /proj -// @filename: /proj/defs/cc.ts -export const enum CharCode { - A, - B -} -// @filename: /proj/component/file.ts - -import { CharCode } from 'defs/cc'; -export class User { - method(input: number) { - if (CharCode.A === input) {} - } -} diff --git a/tsc/testdata/tests/cases/compiler/amdModuleName1.ts b/tsc/testdata/tests/cases/compiler/amdModuleName1.ts deleted file mode 100644 index ed148d4a290a6..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdModuleName1.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @target: es2015 -//@module: amd -/// -class Foo { - x: number; - constructor() { - this.x = 5; - } -} -export = Foo; diff --git a/tsc/testdata/tests/cases/compiler/amdModuleName2.ts b/tsc/testdata/tests/cases/compiler/amdModuleName2.ts deleted file mode 100644 index 11aca63869cf7..0000000000000 --- a/tsc/testdata/tests/cases/compiler/amdModuleName2.ts +++ /dev/null @@ -1,11 +0,0 @@ -// @target: es2015 -//@module: amd -/// -/// -class Foo { - x: number; - constructor() { - this.x = 5; - } -} -export = Foo; diff --git a/tsc/testdata/tests/cases/compiler/declarationEmitAmdModuleNameDirective.ts b/tsc/testdata/tests/cases/compiler/declarationEmitAmdModuleNameDirective.ts deleted file mode 100644 index 925e671d54327..0000000000000 --- a/tsc/testdata/tests/cases/compiler/declarationEmitAmdModuleNameDirective.ts +++ /dev/null @@ -1,10 +0,0 @@ -// @target: es2015 -// @declaration: true -// @module: umd -// @filename: foo.ts -/// -export const foo = 1; -// @filename: bar.ts -/// -import {foo} from './foo'; -void foo; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts b/tsc/testdata/tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts deleted file mode 100644 index 4c94484a508d2..0000000000000 --- a/tsc/testdata/tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts +++ /dev/null @@ -1,11 +0,0 @@ -// @target: es2015 -// @removeComments: true - -// @Filename: file0.ts - -// @Filename: file1.ts - -// @Filename: file2.ts -/// -/// -/// \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/doNotemitTripleSlashComments.ts b/tsc/testdata/tests/cases/compiler/doNotemitTripleSlashComments.ts deleted file mode 100644 index 6fc42da088593..0000000000000 --- a/tsc/testdata/tests/cases/compiler/doNotemitTripleSlashComments.ts +++ /dev/null @@ -1,36 +0,0 @@ -// @target: es2015 -// @removeComments: true - -// @Filename: file0.ts -/// -/// -/// -var x = 10; - -/// -var y = "hello"; - - -/// - -// @Filename: file1.ts -/// - -function foo() { } - - -/// - - -var z = "world"; - -// @Filename: file2.ts -/// - - -/// ==================================== - - -function bar() { } - - diff --git a/tsc/testdata/tests/cases/compiler/es5-amd.ts b/tsc/testdata/tests/cases/compiler/es5-amd.ts deleted file mode 100644 index d08eb5ae14996..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es5-amd.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: false -// @declaration: false -// @module: amd - -class A -{ - constructor () - { - - } - - public B() - { - return 42; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/es5-declaration-amd.ts b/tsc/testdata/tests/cases/compiler/es5-declaration-amd.ts deleted file mode 100644 index 70f8b431c2eae..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es5-declaration-amd.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: false -// @declaration: true -// @module: amd - -class A -{ - constructor () - { - - } - - public B() - { - return 42; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/es5-souremap-amd.ts b/tsc/testdata/tests/cases/compiler/es5-souremap-amd.ts deleted file mode 100644 index 810c071968592..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es5-souremap-amd.ts +++ /dev/null @@ -1,16 +0,0 @@ -// @target: ES5, ES2015 -// @sourcemap: true -// @module: amd - -class A -{ - constructor () - { - - } - - public B() - { - return 42; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/es5ModuleWithModuleGenAmd.ts b/tsc/testdata/tests/cases/compiler/es5ModuleWithModuleGenAmd.ts deleted file mode 100644 index c5d307d04f8d3..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es5ModuleWithModuleGenAmd.ts +++ /dev/null @@ -1,13 +0,0 @@ -// @target: ES5, ES2015 -// @module: amd -export class A -{ - constructor () - { - } - - public B() - { - return 42; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/es6-amd.ts b/tsc/testdata/tests/cases/compiler/es6-amd.ts deleted file mode 100644 index a5fb99a86051d..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es6-amd.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @target: ES6 -// @sourcemap: false -// @declaration: false -// @module: amd - -class A -{ - constructor () - { - - } - - public B() - { - return 42; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/es6-declaration-amd.ts b/tsc/testdata/tests/cases/compiler/es6-declaration-amd.ts deleted file mode 100644 index 1dcfeca84979e..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es6-declaration-amd.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @target: ES6 -// @sourcemap: false -// @declaration: true -// @module: amd - -class A -{ - constructor () - { - - } - - public B() - { - return 42; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/es6-sourcemap-amd.ts b/tsc/testdata/tests/cases/compiler/es6-sourcemap-amd.ts deleted file mode 100644 index c00a697de940b..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es6-sourcemap-amd.ts +++ /dev/null @@ -1,16 +0,0 @@ -// @target: ES6 -// @sourcemap: true -// @module: amd - -class A -{ - constructor () - { - - } - - public B() - { - return 42; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingAmd.ts b/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingAmd.ts deleted file mode 100644 index 7457fab64fcc4..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingAmd.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @module: amd -// @declaration: true -// @target: ES5, ES2015 - -// @filename: es6ImportDefaultBindingAmd_0.ts -var a = 10; -export default a; - -// @filename: es6ImportDefaultBindingAmd_1.ts -import defaultBinding from "es6ImportDefaultBindingAmd_0"; -var x = defaultBinding; -import defaultBinding2 from "es6ImportDefaultBindingAmd_0"; // elide this import since defaultBinding2 is not used diff --git a/tsc/testdata/tests/cases/compiler/es6ImportNameSpaceImportAmd.ts b/tsc/testdata/tests/cases/compiler/es6ImportNameSpaceImportAmd.ts deleted file mode 100644 index d4bd6d892829f..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es6ImportNameSpaceImportAmd.ts +++ /dev/null @@ -1,11 +0,0 @@ -// @target: es2015 -// @module: amd -// @declaration: true - -// @filename: es6ImportNameSpaceImportAmd_0.ts -export var a = 10; - -// @filename: es6ImportNameSpaceImportAmd_1.ts -import * as nameSpaceBinding from "es6ImportNameSpaceImportAmd_0"; -var x = nameSpaceBinding.a; -import * as nameSpaceBinding2 from "es6ImportNameSpaceImportAmd_0"; // elide this diff --git a/tsc/testdata/tests/cases/compiler/es6ImportNamedImportAmd.ts b/tsc/testdata/tests/cases/compiler/es6ImportNamedImportAmd.ts deleted file mode 100644 index 2a3ea297378ad..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es6ImportNamedImportAmd.ts +++ /dev/null @@ -1,42 +0,0 @@ -// @target: es2015 -// @module: amd -// @declaration: true - -// @filename: es6ImportNamedImportAmd_0.ts -export var a = 10; -export var x = a; -export var m = a; -export var a1 = 10; -export var x1 = 10; -export var z1 = 10; -export var z2 = 10; -export var aaaa = 10; - -// @filename: es6ImportNamedImportAmd_1.ts -import { } from "es6ImportNamedImportAmd_0"; -import { a } from "es6ImportNamedImportAmd_0"; -var xxxx = a; -import { a as b } from "es6ImportNamedImportAmd_0"; -var xxxx = b; -import { x, a as y } from "es6ImportNamedImportAmd_0"; -var xxxx = x; -var xxxx = y; -import { x as z, } from "es6ImportNamedImportAmd_0"; -var xxxx = z; -import { m, } from "es6ImportNamedImportAmd_0"; -var xxxx = m; -import { a1, x1 } from "es6ImportNamedImportAmd_0"; -var xxxx = a1; -var xxxx = x1; -import { a1 as a11, x1 as x11 } from "es6ImportNamedImportAmd_0"; -var xxxx = a11; -var xxxx = x11; -import { z1 } from "es6ImportNamedImportAmd_0"; -var z111 = z1; -import { z2 as z3 } from "es6ImportNamedImportAmd_0"; -var z2 = z3; // z2 shouldn't give redeclare error - -// These are elided -import { aaaa } from "es6ImportNamedImportAmd_0"; -// These are elided -import { aaaa as bbbb } from "es6ImportNamedImportAmd_0"; diff --git a/tsc/testdata/tests/cases/compiler/es6ImportWithoutFromClauseAmd.ts b/tsc/testdata/tests/cases/compiler/es6ImportWithoutFromClauseAmd.ts deleted file mode 100644 index ab9b43893ef2b..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es6ImportWithoutFromClauseAmd.ts +++ /dev/null @@ -1,15 +0,0 @@ -// @target: es2015 -// @module: amd -// @declaration: true - -// @filename: es6ImportWithoutFromClauseAmd_0.ts -export var a = 10; - -// @filename: es6ImportWithoutFromClauseAmd_1.ts -export var b = 10; - -// @filename: es6ImportWithoutFromClauseAmd_2.ts -import "es6ImportWithoutFromClauseAmd_0"; -import "es6ImportWithoutFromClauseAmd_2"; -var _a = 10; -var _b = 10; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/es6ModuleWithModuleGenTargetAmd.ts b/tsc/testdata/tests/cases/compiler/es6ModuleWithModuleGenTargetAmd.ts deleted file mode 100644 index 9521ec6cbdb39..0000000000000 --- a/tsc/testdata/tests/cases/compiler/es6ModuleWithModuleGenTargetAmd.ts +++ /dev/null @@ -1,13 +0,0 @@ -// @target: ES6 -// @module: amd -export class A -{ - constructor () - { - } - - public B() - { - return 42; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/exportEqualsAmd.ts b/tsc/testdata/tests/cases/compiler/exportEqualsAmd.ts deleted file mode 100644 index 7bb02c87ba365..0000000000000 --- a/tsc/testdata/tests/cases/compiler/exportEqualsAmd.ts +++ /dev/null @@ -1,3 +0,0 @@ -// @target: es2015 -// @module: amd -export = { ["hi"]: "there" }; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/generatorES6InAMDModule.ts b/tsc/testdata/tests/cases/compiler/generatorES6InAMDModule.ts deleted file mode 100644 index d928ac3377cc1..0000000000000 --- a/tsc/testdata/tests/cases/compiler/generatorES6InAMDModule.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @strict: false -// @target: es6 -// @module: amd -export function* foo() { - yield -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/importHelpersAmd.ts b/tsc/testdata/tests/cases/compiler/importHelpersAmd.ts deleted file mode 100644 index e1904200ecee4..0000000000000 --- a/tsc/testdata/tests/cases/compiler/importHelpersAmd.ts +++ /dev/null @@ -1,21 +0,0 @@ -// @importHelpers: true -// @target: es5, es2015 -// @module: amd -// @filename: a.ts -export class A { } - -// @filename: b.ts -import { A } from "./a"; -export * from "./a"; -export class B extends A { } - -// @filename: tslib.d.ts -export declare function __extends(d: Function, b: Function): void; -export declare function __assign(t: any, ...sources: any[]): any; -export declare function __rest(t: any, propertyNames: string[]): any; -export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any; -export declare function __param(paramIndex: number, decorator: Function): Function; -export declare function __metadata(metadataKey: any, metadataValue: any): Function; -export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any; -export declare function __generator(thisArg: any, body: Function): any; -export declare function __exportStar(m: any, exports: any): void; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/isolatedModulesPlainFile-AMD.ts b/tsc/testdata/tests/cases/compiler/isolatedModulesPlainFile-AMD.ts deleted file mode 100644 index 23cda8623f2ee..0000000000000 --- a/tsc/testdata/tests/cases/compiler/isolatedModulesPlainFile-AMD.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es5, es2015 -// @module: amd -// @isolatedModules: true - -declare function run(a: number): void; -run(1); diff --git a/tsc/testdata/tests/cases/compiler/modulePrologueAMD.ts b/tsc/testdata/tests/cases/compiler/modulePrologueAMD.ts deleted file mode 100644 index 4899c5e8ca1c7..0000000000000 --- a/tsc/testdata/tests/cases/compiler/modulePrologueAMD.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @target: es2015 -// @module: amd -"use strict"; - -export class Foo {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/nestedRedeclarationInES6AMD.ts b/tsc/testdata/tests/cases/compiler/nestedRedeclarationInES6AMD.ts deleted file mode 100644 index e518e354cd086..0000000000000 --- a/tsc/testdata/tests/cases/compiler/nestedRedeclarationInES6AMD.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @target: ES6 -// @module: AMD -function a() { - { - let status = 1; - status = 2; - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/noImplicitUseStrict_amd.ts b/tsc/testdata/tests/cases/compiler/noImplicitUseStrict_amd.ts deleted file mode 100644 index b98487c2989c9..0000000000000 --- a/tsc/testdata/tests/cases/compiler/noImplicitUseStrict_amd.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @target: es2015 -// @module: amd -// @noImplicitUseStrict: true - -export var x = 0; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution1_amd.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution1_amd.ts deleted file mode 100644 index c05c2c7ebfe6d..0000000000000 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution1_amd.ts +++ /dev/null @@ -1,18 +0,0 @@ -// @target: es2015 -// @module: amd -// @traceResolution: true - -// @filename: c:/root/tsconfig.json -{ - "compilerOptions": { - "paths": { - "*": [ - "*", - "generated/*" - ] - } - } -} - -// @filename: c:/root/f1.ts -export var x = 1; diff --git a/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithAmd.ts b/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithAmd.ts deleted file mode 100644 index 085e03bfb0c41..0000000000000 --- a/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithAmd.ts +++ /dev/null @@ -1,21 +0,0 @@ -// @target: es2015 -// @module: amd -// @outdir: out/ -// @allowJs: true -// @fullEmitPaths: true -// @resolveJsonModule: true - -// @Filename: file1.ts -import b1 = require('./b'); -let x = b1.a; -import b2 = require('./b.json'); -if (x) { - let b = b2.b; - x = (b1.b === b); -} - -// @Filename: b.json -{ - "a": true, - "b": "hello" -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithModuleNodeResolutionEmitAmd.ts b/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithModuleNodeResolutionEmitAmd.ts deleted file mode 100644 index dc96c8fed66ad..0000000000000 --- a/tsc/testdata/tests/cases/compiler/requireOfJsonFileWithModuleNodeResolutionEmitAmd.ts +++ /dev/null @@ -1,15 +0,0 @@ -// @target: es2015 -// @module: amd -// @moduleResolution: bundler -// @outdir: out/ -// @fullEmitPaths: true -// @resolveJsonModule: true - -// @Filename: file1.ts -import * as b from './b.json'; - -// @Filename: b.json -{ - "a": true, - "b": "hello" -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/shorthand-property-es6-amd.ts b/tsc/testdata/tests/cases/compiler/shorthand-property-es6-amd.ts deleted file mode 100644 index 0f2a62ad86c4b..0000000000000 --- a/tsc/testdata/tests/cases/compiler/shorthand-property-es6-amd.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @target: ES6 -// @module: amd -// @declaration: true - -// @filename: test.ts -import {foo} from './foo'; -const baz = 42; -const bar = { foo, baz }; diff --git a/tsc/testdata/tests/cases/compiler/systemModule12.ts b/tsc/testdata/tests/cases/compiler/systemModule12.ts deleted file mode 100644 index 4a3d293b2e931..0000000000000 --- a/tsc/testdata/tests/cases/compiler/systemModule12.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es2015 -// @module: system -// @isolatedModules: true - -/// -import n from 'file1' diff --git a/tsc/testdata/tests/cases/compiler/umdDependencyComment2.ts b/tsc/testdata/tests/cases/compiler/umdDependencyComment2.ts deleted file mode 100644 index 75f8c6feb070f..0000000000000 --- a/tsc/testdata/tests/cases/compiler/umdDependencyComment2.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es2015 -//@module: umd -/// - -import m1 = require("m2") -m1.f(); diff --git a/tsc/testdata/tests/cases/compiler/umdDependencyCommentName1.ts b/tsc/testdata/tests/cases/compiler/umdDependencyCommentName1.ts deleted file mode 100644 index 569eb3544f5fd..0000000000000 --- a/tsc/testdata/tests/cases/compiler/umdDependencyCommentName1.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es2015 -//@module: umd -/// - -import m1 = require("m2") -m1.f(); diff --git a/tsc/testdata/tests/cases/compiler/umdDependencyCommentName2.ts b/tsc/testdata/tests/cases/compiler/umdDependencyCommentName2.ts deleted file mode 100644 index d77617f4eb0c4..0000000000000 --- a/tsc/testdata/tests/cases/compiler/umdDependencyCommentName2.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @target: es2015 -//@module: umd -/// -/// -/// - -import m1 = require("m2") -m1.f(); diff --git a/tsc/testdata/tests/cases/compiler/umdNamedAmdMode.ts b/tsc/testdata/tests/cases/compiler/umdNamedAmdMode.ts deleted file mode 100644 index 989de9afeb0e3..0000000000000 --- a/tsc/testdata/tests/cases/compiler/umdNamedAmdMode.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @target: es2015 -// @module: umd -// @filename: main.ts -/// -export const a = 1; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionAsyncES5AMD.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionAsyncES5AMD.ts deleted file mode 100644 index b68439e0a0d41..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionAsyncES5AMD.ts +++ /dev/null @@ -1,31 +0,0 @@ -// @module: amd -// @target: es5, es2015 -// @lib: es6 -// @filename: test.ts -export async function fn() { - const req = await import('./test') // ONE -} - -export class cl1 { - public async m() { - const req = await import('./test') // TWO - } -} - -export const obj = { - m: async () => { - const req = await import('./test') // THREE - } -} - -export class cl2 { - public p = { - m: async () => { - const req = await import('./test') // FOUR - } - } -} - -export const l = async () => { - const req = await import('./test') // FIVE -} diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionAsyncES6AMD.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionAsyncES6AMD.ts deleted file mode 100644 index a4b2997b8de79..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionAsyncES6AMD.ts +++ /dev/null @@ -1,30 +0,0 @@ -// @module: amd -// @target: es6 -// @filename: test.ts -export async function fn() { - const req = await import('./test') // ONE -} - -export class cl1 { - public async m() { - const req = await import('./test') // TWO - } -} - -export const obj = { - m: async () => { - const req = await import('./test') // THREE - } -} - -export class cl2 { - public p = { - m: async () => { - const req = await import('./test') // FOUR - } - } -} - -export const l = async () => { - const req = await import('./test') // FIVE -} diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionES5AMD.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionES5AMD.ts deleted file mode 100644 index 2dff4bab1dc05..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionES5AMD.ts +++ /dev/null @@ -1,30 +0,0 @@ -// @module: amd -// @target: es5, es2015 -// @lib: es6 -// @filename: 0.ts -export function foo() { return "foo"; } - -// @filename: 1.ts -import("./0"); -var p1 = import("./0"); -p1.then(zero => { - return zero.foo(); -}); - -export var p2 = import("./0"); - -function foo() { - const p2 = import("./0"); -} - -class C { - method() { - const loadAsync = import ("./0"); - } -} - -export class D { - method() { - const loadAsync = import ("./0"); - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionES6AMD.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionES6AMD.ts deleted file mode 100644 index 7e45b081ba4fb..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionES6AMD.ts +++ /dev/null @@ -1,29 +0,0 @@ -// @module: amd -// @target: es6 -// @filename: 0.ts -export function foo() { return "foo"; } - -// @filename: 1.ts -import("./0"); -var p1 = import("./0"); -p1.then(zero => { - return zero.foo(); -}); - -export var p2 = import("./0"); - -function foo() { - const p2 = import("./0"); -} - -class C { - method() { - const loadAsync = import ("./0"); - } -} - -export class D { - method() { - const loadAsync = import ("./0"); - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD1.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD1.ts deleted file mode 100644 index 7aafc5294ffd4..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD1.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @module: amd -// @target: esnext -// @filename: 0.ts -export function foo() { return "foo"; } - -// @filename: 1.ts -import("./0"); -var p1 = import("./0"); -p1.then(zero => { - return zero.foo(); -}); - -export var p2 = import("./0"); - -function foo() { - const p2 = import("./0"); -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD2.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD2.ts deleted file mode 100644 index 96b2fd4ceff65..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD2.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @module: amd -// @target: esnext -// @filename: 0.ts -export class B { - print() { return "I am B"} -} - -// @filename: 2.ts -// We use Promise for now as there is no way to specify shape of module object -function foo(x: Promise) { - x.then(value => { - let b = new value.B(); - b.print(); - }) -} - -foo(import("./0")); \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD3.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD3.ts deleted file mode 100644 index a2b287b4d9590..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD3.ts +++ /dev/null @@ -1,14 +0,0 @@ -// @module: amd -// @target: esnext -// @filename: 0.ts -export class B { - print() { return "I am B"} -} - -// @filename: 2.ts -async function foo() { - class C extends (await import("./0")).B {} - var c = new C(); - c.print(); -} -foo(); \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD4.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD4.ts deleted file mode 100644 index d4cb47324d97a..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInAMD4.ts +++ /dev/null @@ -1,43 +0,0 @@ -// @module: amd -// @target: esnext -// @useDefineForClassFields: false - -// @filename: 0.ts -export class B { - print() { return "I am B"} -} - -export function foo() { return "foo" } - -// @filename: 1.ts -export function backup() { return "backup"; } - -// @filename: 2.ts -declare var console: any; -class C { - private myModule = import("./0"); - method() { - const loadAsync = import("./0"); - this.myModule.then(Zero => { - console.log(Zero.foo()); - }, async err => { - console.log(err); - let one = await import("./1"); - console.log(one.backup()); - }); - } -} - -export class D { - private myModule = import("./0"); - method() { - const loadAsync = import("./0"); - this.myModule.then(Zero => { - console.log(Zero.foo()); - }, async err => { - console.log(err); - let one = await import("./1"); - console.log(one.backup()); - }); - } -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInExportEqualsAMD.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInExportEqualsAMD.ts deleted file mode 100644 index 77f348bd3fa11..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionInExportEqualsAMD.ts +++ /dev/null @@ -1,9 +0,0 @@ -// @module: amd -// @target: esnext -// @filename: something.ts -export = 42; - -// @filename: index.ts -export = async function() { - const something = await import("./something"); -}; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionNestedAMD.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionNestedAMD.ts deleted file mode 100644 index 1dbde4e19561d..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionNestedAMD.ts +++ /dev/null @@ -1,11 +0,0 @@ -// @module: amd -// @target: es6 -// @skipLibCheck: true -// @lib: es6 -// @filename: foo.ts -export default "./foo"; - -// @filename: index.ts -async function foo() { - return await import((await import("./foo")).default); -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionNestedAMD2.ts b/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionNestedAMD2.ts deleted file mode 100644 index 76888fdf5f106..0000000000000 --- a/tsc/testdata/tests/cases/conformance/dynamicImport/importCallExpressionNestedAMD2.ts +++ /dev/null @@ -1,11 +0,0 @@ -// @module: amd -// @target: es5, es2015 -// @skipLibCheck: true -// @lib: es6 -// @filename: foo.ts -export default "./foo"; - -// @filename: index.ts -async function foo() { - return await import((await import("./foo")).default); -} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts b/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts deleted file mode 100644 index 562f4a910c56b..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: ES6 -// @module: amd -// @filename: a.ts -export default class {} - -// @filename: b.ts -export default function() {} \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts b/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts deleted file mode 100644 index 8eb8a90c8d72a..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts +++ /dev/null @@ -1,14 +0,0 @@ -// @target: ES6 -// @experimentalDecorators: true -// @module: amd -// @filename: a.ts -var decorator: ClassDecorator; - -@decorator -export default class Foo {} - -// @filename: b.ts -var decorator: ClassDecorator; - -@decorator -export default class {} diff --git a/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts b/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts deleted file mode 100644 index 473dfbf6f7365..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: ES6 -// @module: amd -// @filename: a.ts -export default class Foo {} - -// @filename: b.ts -export default function foo() {} diff --git a/tsc/testdata/tests/cases/conformance/es6/modules/exportAndImport-es5-amd.ts b/tsc/testdata/tests/cases/conformance/es6/modules/exportAndImport-es5-amd.ts deleted file mode 100644 index 9af5374e60aca..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/modules/exportAndImport-es5-amd.ts +++ /dev/null @@ -1,12 +0,0 @@ -//@module: amd -//@target: ES5, ES2015 - -// @filename: m1.ts -export default function f1() { -} - -// @filename: m2.ts -import f1 from "./m1"; -export default function f2() { - f1(); -} diff --git a/tsc/testdata/tests/cases/conformance/es6/modules/exportStar-amd.ts b/tsc/testdata/tests/cases/conformance/es6/modules/exportStar-amd.ts deleted file mode 100644 index 3e849f77a983a..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/modules/exportStar-amd.ts +++ /dev/null @@ -1,29 +0,0 @@ -// @module: amd -// @target: ES5, ES2015 - -// @filename: t1.ts -export var x = 1; -export var y = 2; - -// @filename: t2.ts -export default "hello"; -export function foo() { } - -// @filename: t3.ts -var x = "x"; -var y = "y"; -var z = "z"; -export { x, y, z }; - -// @filename: t4.ts -export * from "./t1"; -export * from "./t2"; -export * from "./t3"; - -// @filename: main.ts -import hello, { x, y, z, foo } from "./t4"; -hello; -x; -y; -z; -foo; diff --git a/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports1-amd.ts b/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports1-amd.ts deleted file mode 100644 index 36ada10702f13..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports1-amd.ts +++ /dev/null @@ -1,35 +0,0 @@ -// @strict: false -// @module: amd -// @target: ES5, ES2015 - -// @filename: t1.ts -var v = 1; -function f() { } -class C { -} -interface I { -} -enum E { - A, B, C -} -const enum D { - A, B, C -} -namespace M { - export var x; -} -namespace N { - export interface I { - } -} -type T = number; -import a = M.x; - -export { v, f, C, I, E, D, M, N, T, a }; - -// @filename: t2.ts -export { v, f, C, I, E, D, M, N, T, a } from "./t1"; - -// @filename: t3.ts -import { v, f, C, I, E, D, M, N, T, a } from "./t1"; -export { v, f, C, I, E, D, M, N, T, a }; diff --git a/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports2-amd.ts b/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports2-amd.ts deleted file mode 100644 index 6dcaabdcdca2b..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports2-amd.ts +++ /dev/null @@ -1,13 +0,0 @@ -// @module: amd -// @target: ES5, ES2015 - -// @filename: t1.ts -export var x = "x"; -export var y = "y"; - -// @filename: t2.ts -export { x as y, y as x } from "./t1"; - -// @filename: t3.ts -import { x, y } from "./t1"; -export { x as y, y as x }; diff --git a/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports3-amd.ts b/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports3-amd.ts deleted file mode 100644 index 3deca257cb9bc..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports3-amd.ts +++ /dev/null @@ -1,35 +0,0 @@ -// @strict: false -// @module: amd -// @target: ES5, ES2015 - -// @filename: t1.ts -export var v = 1; -export function f() { } -export class C { -} -export interface I { -} -export enum E { - A, B, C -} -export const enum D { - A, B, C -} -export namespace M { - export var x; -} -export namespace N { - export interface I { - } -} -export type T = number; -export import a = M.x; - -export { v as v1, f as f1, C as C1, I as I1, E as E1, D as D1, M as M1, N as N1, T as T1, a as a1 }; - -// @filename: t2.ts -export { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; - -// @filename: t3.ts -import { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; -export { v, f, C, I, E, D, M, N, T, a }; diff --git a/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports4-amd.ts b/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports4-amd.ts deleted file mode 100644 index f921bff19304c..0000000000000 --- a/tsc/testdata/tests/cases/conformance/es6/modules/exportsAndImports4-amd.ts +++ /dev/null @@ -1,39 +0,0 @@ -// @module: amd -// @target: ES5, ES2015 - -// @filename: t1.ts -export default "hello"; - -// @filename: t2.ts -import a = require("./t1"); -a.default; -import b from "./t1"; -b; -import * as c from "./t1"; -c.default; -import { default as d } from "./t1"; -d; -import e1, * as e2 from "./t1"; -e1; -e2.default; -import f1, { default as f2 } from "./t1"; -f1; -f2; -import "./t1"; - -// @filename: t3.ts -import a = require("./t1"); -a.default; -import b from "./t1"; -b; -import * as c from "./t1"; -c.default; -import { default as d } from "./t1"; -d; -import e1, * as e2 from "./t1"; -e1; -e2.default; -import f1, { default as f2 } from "./t1"; -f1; -f2; -export { a, b, c, d, e1, e2, f1, f2 }; diff --git a/tsc/testdata/tests/cases/conformance/externalModules/amdImportAsPrimaryExpression.ts b/tsc/testdata/tests/cases/conformance/externalModules/amdImportAsPrimaryExpression.ts deleted file mode 100644 index 2ea909117f9cc..0000000000000 --- a/tsc/testdata/tests/cases/conformance/externalModules/amdImportAsPrimaryExpression.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @target: es2015 -// @module: amd -// @Filename: foo_0.ts -export enum E1 { - A,B,C -} - -// @Filename: foo_1.ts -import foo = require("./foo_0"); -if(foo.E1.A === 0){ - // Should cause runtime import - interesting optimization possibility, as gets inlined to 0. -} diff --git a/tsc/testdata/tests/cases/conformance/externalModules/amdImportNotAsPrimaryExpression.ts b/tsc/testdata/tests/cases/conformance/externalModules/amdImportNotAsPrimaryExpression.ts deleted file mode 100644 index c6c9886626a79..0000000000000 --- a/tsc/testdata/tests/cases/conformance/externalModules/amdImportNotAsPrimaryExpression.ts +++ /dev/null @@ -1,32 +0,0 @@ -// @target: es2015 -// @module: amd -// @Filename: foo_0.ts -export class C1 { - m1 = 42; - static s1 = true; -} - -export interface I1 { - name: string; - age: number; -} - -export namespace M1 { - export interface I2 { - foo: string; - } -} - -export enum E1 { - A,B,C -} - -// @Filename: foo_1.ts -import foo = require("./foo_0"); -// None of the below should cause a runtime dependency on foo_0 -import f = foo.M1; -var i: f.I2; -var x: foo.C1 = <{m1: number}>{}; -var y: typeof foo.C1.s1 = false; -var z: foo.M1.I2; -var e: number = 0; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts b/tsc/testdata/tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts deleted file mode 100644 index b58ccdbde73ce..0000000000000 --- a/tsc/testdata/tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts +++ /dev/null @@ -1,3 +0,0 @@ -// @target: ES5, ES2015 -// @module: amd -export class Object {} diff --git a/tsc/testdata/tests/cases/conformance/externalModules/exportNonInitializedVariablesAMD.ts b/tsc/testdata/tests/cases/conformance/externalModules/exportNonInitializedVariablesAMD.ts deleted file mode 100644 index 13fa3a8cf2703..0000000000000 --- a/tsc/testdata/tests/cases/conformance/externalModules/exportNonInitializedVariablesAMD.ts +++ /dev/null @@ -1,36 +0,0 @@ -// @target: es2015 -// @strict: false -//@module: amd - -var; -let; -const; - -export var a; -export let b; -export var c: string; -export let d: number; -class A {} -export var e: A; -export let f: A; - -namespace B { - export let a = 1, b, c = 2; - export let x, y, z; -} - -namespace C { - export var a = 1, b, c = 2; - export var x, y, z; -} - -// Shouldn't be filtered -export var a1 = 1; -export let b1 = 1; -export var c1: string = 'a'; -export let d1: number = 1; -class D {} -export var e1 = new D; -export let f1 = new D; -export var g1: D = new D; -export let h1: D = new D; diff --git a/tsc/testdata/tests/cases/conformance/externalModules/invalidSyntaxNamespaceImportWithAMD.ts b/tsc/testdata/tests/cases/conformance/externalModules/invalidSyntaxNamespaceImportWithAMD.ts deleted file mode 100644 index aead4844a256f..0000000000000 --- a/tsc/testdata/tests/cases/conformance/externalModules/invalidSyntaxNamespaceImportWithAMD.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: es2015 -// @module: amd -// @filename: 0.ts -export class C { } - -// @filename: 1.ts -import * from Zero from "./0" \ No newline at end of file diff --git a/tsc/testdata/tests/cases/conformance/typings/typingsLookupAmd.ts b/tsc/testdata/tests/cases/conformance/typings/typingsLookupAmd.ts deleted file mode 100644 index 053ed2b94b6df..0000000000000 --- a/tsc/testdata/tests/cases/conformance/typings/typingsLookupAmd.ts +++ /dev/null @@ -1,15 +0,0 @@ -// @target: es2015 -// @traceResolution: true -// @noImplicitReferences: true -// @currentDirectory: / -// @module: amd - -// @filename: /node_modules/@types/a/index.d.ts -export declare class A {} - -// @filename: /x/node_modules/@types/b/index.d.ts -import {A} from "a"; -export declare class B extends A {} - -// @filename: /x/y/foo.ts -import {B} from "b"; From cbf5623ea721215d1a7377543953aa1d79c2f604 Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2026 17:46:11 +0100 Subject: [PATCH 04/16] test: remove incidental AMD module options --- .../tests/autoImportPathsNodeModules_test.go | 2 +- ...ImportsWithRootDirsAndRootedPath01_test.go | 2 +- ...mportAllowSyntheticDefaultImports4_test.go | 2 +- ...rnalModuleWithInternalImportDeclaration.js | 28 + ...oduleWithInternalImportDeclaration.symbols | 36 + ...lModuleWithInternalImportDeclaration.types | 37 + ...lModuleWithoutInternalImportDeclaration.js | 27 + ...leWithoutInternalImportDeclaration.symbols | 32 + ...duleWithoutInternalImportDeclaration.types | 33 + .../augmentExportEquals1_1.errors.txt | 28 + .../compiler/augmentExportEquals1_1.js | 28 + .../compiler/augmentExportEquals1_1.symbols | 12 + .../compiler/augmentExportEquals1_1.types | 11 + .../augmentExportEquals2_1.errors.txt | 27 + .../compiler/augmentExportEquals2_1.js | 27 + .../compiler/augmentExportEquals2_1.symbols | 12 + .../compiler/augmentExportEquals2_1.types | 11 + .../augmentExportEquals3_1.errors.txt | 31 + .../compiler/augmentExportEquals3_1.js | 75 + .../compiler/augmentExportEquals3_1.symbols | 58 + .../compiler/augmentExportEquals3_1.types | 58 + .../augmentExportEquals4_1.errors.txt | 31 + .../compiler/augmentExportEquals4_1.js | 75 + .../compiler/augmentExportEquals4_1.symbols | 58 + .../compiler/augmentExportEquals4_1.types | 58 + .../augmentExportEquals6_1.errors.txt | 29 + .../compiler/augmentExportEquals6_1.js | 36 + .../compiler/augmentExportEquals6_1.symbols | 50 + .../compiler/augmentExportEquals6_1.types | 48 + .../compiler/augmentedTypesExternalModule1.js | 15 + .../augmentedTypesExternalModule1.symbols | 13 + .../augmentedTypesExternalModule1.types | 12 + .../reference/compiler/bangInModuleName.js | 20 + .../compiler/bangInModuleName.symbols | 23 + .../reference/compiler/bangInModuleName.types | 23 + ...edNamespaceDifferentFile(target=es2015).js | 32 + ...espaceDifferentFile(target=es2015).symbols | 45 + ...amespaceDifferentFile(target=es2015).types | 47 + .../reference/compiler/cacheResolutions.js | 26 + .../compiler/cacheResolutions.symbols | 14 + .../compiler/cacheResolutions.trace.json | 57 + .../reference/compiler/cacheResolutions.types | 17 + ...collisionExportsRequireAndClass.errors.txt | 43 + .../collisionExportsRequireAndClass.js | 86 + .../collisionExportsRequireAndClass.symbols | 57 + .../collisionExportsRequireAndClass.types | 57 + .../collisionExportsRequireAndEnum.errors.txt | 67 + .../collisionExportsRequireAndEnum.js | 140 + .../collisionExportsRequireAndEnum.symbols | 129 + .../collisionExportsRequireAndEnum.types | 129 + ...lisionExportsRequireAndFunction.errors.txt | 31 + .../collisionExportsRequireAndFunction.js | 57 + ...collisionExportsRequireAndFunction.symbols | 41 + .../collisionExportsRequireAndFunction.types | 47 + ...tsRequireAndInternalModuleAlias.errors.txt | 31 + ...ionExportsRequireAndInternalModuleAlias.js | 54 + ...portsRequireAndInternalModuleAlias.symbols | 65 + ...ExportsRequireAndInternalModuleAlias.types | 71 + ...ollisionExportsRequireAndModule.errors.txt | 104 + .../collisionExportsRequireAndModule.js | 191 ++ .../collisionExportsRequireAndModule.symbols | 156 + .../collisionExportsRequireAndModule.types | 142 + ...sRequireAndUninstantiatedModule.errors.txt | 23 + ...onExportsRequireAndUninstantiatedModule.js | 29 + ...ortsRequireAndUninstantiatedModule.symbols | 31 + ...xportsRequireAndUninstantiatedModule.types | 23 + .../collisionExportsRequireAndVar.errors.txt | 33 + .../compiler/collisionExportsRequireAndVar.js | 60 + .../collisionExportsRequireAndVar.symbols | 56 + .../collisionExportsRequireAndVar.types | 68 + .../commentsBeforeVariableStatement1.js | 11 + .../commentsBeforeVariableStatement1.symbols | 7 + .../commentsBeforeVariableStatement1.types | 7 + ...commentsDottedModuleName(target=es2015).js | 33 + ...ntsDottedModuleName(target=es2015).symbols | 13 + ...mentsDottedModuleName(target=es2015).types | 13 + ...sExternalModules(target=es2015).errors.txt | 64 + .../commentsExternalModules(target=es2015).js | 75 + ...entsExternalModules(target=es2015).symbols | 21 + ...mmentsExternalModules(target=es2015).types | 45 + ...ExternalModules2(target=es2015).errors.txt | 64 + ...commentsExternalModules2(target=es2015).js | 77 + ...ntsExternalModules2(target=es2015).symbols | 21 + ...mentsExternalModules2(target=es2015).types | 45 + ...iModuleMultiFile(target=es2015).errors.txt | 39 + ...entsMultiModuleMultiFile(target=es2015).js | 65 + ...ultiModuleMultiFile(target=es2015).symbols | 25 + ...sMultiModuleMultiFile(target=es2015).types | 26 + .../constEnumExternalModule.errors.txt | 14 + .../compiler/constEnumExternalModule.js | 17 + .../compiler/constEnumExternalModule.symbols | 10 + .../compiler/constEnumExternalModule.types | 12 + .../compiler/constEnumMergingWithValues1.js | 14 + .../constEnumMergingWithValues1.symbols | 17 + .../constEnumMergingWithValues1.types | 15 + .../compiler/constEnumMergingWithValues2.js | 15 + .../constEnumMergingWithValues2.symbols | 17 + .../constEnumMergingWithValues2.types | 15 + .../compiler/constEnumMergingWithValues3.js | 17 + .../constEnumMergingWithValues3.symbols | 18 + .../constEnumMergingWithValues3.types | 16 + .../compiler/constEnumMergingWithValues4.js | 21 + .../constEnumMergingWithValues4.symbols | 22 + .../constEnumMergingWithValues4.types | 21 + .../compiler/constEnumMergingWithValues5.js | 19 + .../constEnumMergingWithValues5.symbols | 14 + .../constEnumMergingWithValues5.types | 12 + ...peCheckObjectCreationExpression.errors.txt | 14 + ...rashIntypeCheckObjectCreationExpression.js | 24 + ...ntypeCheckObjectCreationExpression.symbols | 28 + ...hIntypeCheckObjectCreationExpression.types | 25 + ...ortAssignmentOfGenericInterface.errors.txt | 15 + ...lFileExportAssignmentOfGenericInterface.js | 23 + ...ExportAssignmentOfGenericInterface.symbols | 14 + ...leExportAssignmentOfGenericInterface.types | 14 + .../declFileExportImportChain.errors.txt | 27 + .../compiler/declFileExportImportChain.js | 34 + .../declFileExportImportChain.symbols | 14 + .../compiler/declFileExportImportChain.types | 13 + .../declFileExportImportChain2.errors.txt | 24 + .../compiler/declFileExportImportChain2.js | 31 + .../declFileExportImportChain2.symbols | 13 + .../compiler/declFileExportImportChain2.types | 12 + .../reference/compiler/declarationMerging2.js | 27 + .../compiler/declarationMerging2.symbols | 28 + .../compiler/declarationMerging2.types | 26 + .../dependencyViaImportAlias.errors.txt | 14 + .../compiler/dependencyViaImportAlias.js | 17 + .../compiler/dependencyViaImportAlias.symbols | 14 + .../compiler/dependencyViaImportAlias.types | 14 + .../deprecatedCompilerOptions2.errors.txt | 45 + .../compiler/deprecatedCompilerOptions2.js | 9 + .../deprecatedCompilerOptions2.symbols | 6 + .../compiler/deprecatedCompilerOptions2.types | 7 + .../deprecatedCompilerOptions6.errors.txt | 45 + .../compiler/deprecatedCompilerOptions6.js | 9 + .../deprecatedCompilerOptions6.symbols | 6 + .../compiler/deprecatedCompilerOptions6.types | 7 + .../destructuringInVariableDeclarations3.js | 17 + ...structuringInVariableDeclarations3.symbols | 10 + ...destructuringInVariableDeclarations3.types | 12 + .../destructuringInVariableDeclarations4.js | 17 + ...structuringInVariableDeclarations4.symbols | 11 + ...destructuringInVariableDeclarations4.types | 13 + ...ierShouldNotShortCircuitBaseTypeBinding.js | 38 + ...ouldNotShortCircuitBaseTypeBinding.symbols | 25 + ...ShouldNotShortCircuitBaseTypeBinding.types | 23 + .../reference/compiler/dynamicRequire.js | 13 + .../reference/compiler/dynamicRequire.symbols | 13 + .../reference/compiler/dynamicRequire.types | 16 + ...nding1WithExport(target=es2015).errors.txt | 12 + ...espaceBinding1WithExport(target=es2015).js | 31 + ...eBinding1WithExport(target=es2015).symbols | 18 + ...aceBinding1WithExport(target=es2015).types | 19 + ...WithNamespaceBindingDts1(target=es2015).js | 34 + ...amespaceBindingDts1(target=es2015).symbols | 18 + ...hNamespaceBindingDts1(target=es2015).types | 19 + ...ImportNameSpaceImportWithExport.errors.txt | 22 + .../es6ImportNameSpaceImportWithExport.js | 61 + ...es6ImportNameSpaceImportWithExport.symbols | 17 + .../es6ImportNameSpaceImportWithExport.types | 20 + ...ortAssignedTypeAsTypeAnnotation.errors.txt | 17 + .../exportAssignedTypeAsTypeAnnotation.js | 22 + ...exportAssignedTypeAsTypeAnnotation.symbols | 24 + .../exportAssignedTypeAsTypeAnnotation.types | 19 + .../compiler/exportAssignmentClass.errors.txt | 15 + .../compiler/exportAssignmentClass.js | 19 + .../compiler/exportAssignmentClass.symbols | 14 + .../compiler/exportAssignmentClass.types | 17 + .../compiler/exportAssignmentError.js | 19 + .../compiler/exportAssignmentError.symbols | 17 + .../compiler/exportAssignmentError.types | 17 + .../exportAssignmentFunction.errors.txt | 14 + .../compiler/exportAssignmentFunction.js | 17 + .../compiler/exportAssignmentFunction.symbols | 10 + .../compiler/exportAssignmentFunction.types | 11 + .../exportAssignmentInterface.errors.txt | 18 + .../compiler/exportAssignmentInterface.js | 21 + .../exportAssignmentInterface.symbols | 14 + .../compiler/exportAssignmentInterface.types | 15 + .../exportAssignmentInternalModule.errors.txt | 16 + .../exportAssignmentInternalModule.js | 19 + .../exportAssignmentInternalModule.symbols | 10 + .../exportAssignmentInternalModule.types | 12 + .../exportAssignmentOfGenericType1.errors.txt | 26 + .../exportAssignmentOfGenericType1.js | 29 + .../exportAssignmentOfGenericType1.symbols | 29 + .../exportAssignmentOfGenericType1.types | 28 + ...signmentWithImportStatementPrivacyError.js | 31 + ...entWithImportStatementPrivacyError.symbols | 59 + ...nmentWithImportStatementPrivacyError.types | 48 + .../exportAssignmentWithPrivacyError.js | 25 + .../exportAssignmentWithPrivacyError.symbols | 45 + .../exportAssignmentWithPrivacyError.types | 35 + .../compiler/exportEqualCallable.errors.txt | 19 + .../reference/compiler/exportEqualCallable.js | 24 + .../compiler/exportEqualCallable.symbols | 19 + .../compiler/exportEqualCallable.types | 20 + .../compiler/exportEqualNamespaces.js | 22 + .../compiler/exportEqualNamespaces.symbols | 33 + .../compiler/exportEqualNamespaces.types | 27 + .../reference/compiler/exportImport.js | 48 + .../reference/compiler/exportImport.symbols | 28 + .../reference/compiler/exportImport.types | 29 + ...stituteConstEnumForValue(target=es2015).js | 130 + ...teConstEnumForValue(target=es2015).symbols | 132 + ...tuteConstEnumForValue(target=es2015).types | 131 + .../exportImportMultipleFiles.errors.txt | 16 + .../compiler/exportImportMultipleFiles.js | 24 + .../exportImportMultipleFiles.symbols | 18 + .../compiler/exportImportMultipleFiles.types | 28 + .../exportImportNonInstantiatedModule2.js | 41 + ...exportImportNonInstantiatedModule2.symbols | 26 + .../exportImportNonInstantiatedModule2.types | 26 + .../compiler/exportStarForValues.errors.txt | 11 + .../reference/compiler/exportStarForValues.js | 31 + .../compiler/exportStarForValues.symbols | 12 + .../compiler/exportStarForValues.types | 11 + .../compiler/exportStarForValues2.errors.txt | 18 + .../compiler/exportStarForValues2.js | 54 + .../compiler/exportStarForValues2.symbols | 17 + .../compiler/exportStarForValues2.types | 18 + .../compiler/exportStarForValues3.errors.txt | 39 + .../compiler/exportStarForValues3.js | 105 + .../compiler/exportStarForValues3.symbols | 40 + .../compiler/exportStarForValues3.types | 40 + .../compiler/exportStarForValues4.errors.txt | 25 + .../compiler/exportStarForValues4.js | 59 + .../compiler/exportStarForValues4.symbols | 26 + .../compiler/exportStarForValues4.types | 25 + .../compiler/exportStarForValues5.errors.txt | 11 + .../compiler/exportStarForValues5.js | 31 + .../compiler/exportStarForValues5.symbols | 12 + .../compiler/exportStarForValues5.types | 11 + .../compiler/exportStarForValues7.errors.txt | 18 + .../compiler/exportStarForValues7.js | 56 + .../compiler/exportStarForValues7.symbols | 17 + .../compiler/exportStarForValues7.types | 18 + .../compiler/exportStarForValues8.errors.txt | 39 + .../compiler/exportStarForValues8.js | 109 + .../compiler/exportStarForValues8.symbols | 40 + .../compiler/exportStarForValues8.types | 40 + .../compiler/exportStarForValues9.errors.txt | 25 + .../compiler/exportStarForValues9.js | 61 + .../compiler/exportStarForValues9.symbols | 26 + .../compiler/exportStarForValues9.types | 25 + ...InterfaceInaccessibleInCallbackInModule.js | 19 + ...faceInaccessibleInCallbackInModule.symbols | 44 + ...erfaceInaccessibleInCallbackInModule.types | 30 + .../reference/compiler/exportedVariable1.js | 13 + .../compiler/exportedVariable1.symbols | 15 + .../compiler/exportedVariable1.types | 18 + .../exportingContainingVisibleType.errors.txt | 16 + .../exportingContainingVisibleType.js | 25 + .../exportingContainingVisibleType.symbols | 22 + .../exportingContainingVisibleType.types | 22 + .../exportsInAmbientModules1.errors.txt | 12 + .../compiler/exportsInAmbientModules1.js | 12 + .../compiler/exportsInAmbientModules1.symbols | 13 + .../compiler/exportsInAmbientModules1.types | 13 + .../exportsInAmbientModules2.errors.txt | 12 + .../compiler/exportsInAmbientModules2.js | 12 + .../compiler/exportsInAmbientModules2.symbols | 12 + .../compiler/exportsInAmbientModules2.types | 12 + .../externalModuleAssignToVar.errors.txt | 39 + .../compiler/externalModuleAssignToVar.js | 48 + .../externalModuleAssignToVar.symbols | 47 + .../compiler/externalModuleAssignToVar.types | 47 + ...rtDeclarationWithExportModifier.errors.txt | 12 + ...ceOfImportDeclarationWithExportModifier.js | 15 + ...mportDeclarationWithExportModifier.symbols | 9 + ...fImportDeclarationWithExportModifier.types | 12 + .../compiler/genericClassesInModule2.js | 44 + .../compiler/genericClassesInModule2.symbols | 63 + .../compiler/genericClassesInModule2.types | 49 + .../genericInterfaceFunctionTypeParameter.js | 18 + ...ericInterfaceFunctionTypeParameter.symbols | 22 + ...enericInterfaceFunctionTypeParameter.types | 17 + ...rsiveImplicitConstructorErrors1.errors.txt | 19 + ...ericRecursiveImplicitConstructorErrors1.js | 20 + ...ecursiveImplicitConstructorErrors1.symbols | 57 + ...cRecursiveImplicitConstructorErrors1.types | 33 + .../genericTypeWithMultipleBases2.errors.txt | 30 + .../compiler/genericTypeWithMultipleBases2.js | 29 + .../genericTypeWithMultipleBases2.symbols | 48 + .../genericTypeWithMultipleBases2.types | 39 + ...WithIndexerOfTypeParameterType2.errors.txt | 23 + .../genericWithIndexerOfTypeParameterType2.js | 35 + ...ricWithIndexerOfTypeParameterType2.symbols | 34 + ...nericWithIndexerOfTypeParameterType2.types | 30 + .../importDeclWithExportModifier.errors.txt | 16 + .../compiler/importDeclWithExportModifier.js | 17 + .../importDeclWithExportModifier.symbols | 18 + .../importDeclWithExportModifier.types | 15 + .../importShadowsGlobalName.errors.txt | 13 + .../compiler/importShadowsGlobalName.js | 17 + .../compiler/importShadowsGlobalName.symbols | 13 + .../compiler/importShadowsGlobalName.types | 13 + ...import_reference-exported-alias.errors.txt | 25 + .../import_reference-exported-alias.js | 30 + .../import_reference-exported-alias.symbols | 20 + .../import_reference-exported-alias.types | 24 + .../import_reference-to-type-alias.errors.txt | 21 + .../import_reference-to-type-alias.js | 25 + .../import_reference-to-type-alias.symbols | 16 + .../import_reference-to-type-alias.types | 22 + ...ecing-aliased-type-throug-array.errors.txt | 19 + ...-referenecing-aliased-type-throug-array.js | 24 + ...renecing-aliased-type-throug-array.symbols | 31 + ...ferenecing-aliased-type-throug-array.types | 30 + ...encing-an-imported-module-alias.errors.txt | 13 + ...ar-referencing-an-imported-module-alias.js | 17 + ...ferencing-an-imported-module-alias.symbols | 14 + ...referencing-an-imported-module-alias.types | 17 + .../importedAliasesInTypePositions.errors.txt | 22 + .../importedAliasesInTypePositions.js | 32 + .../importedAliasesInTypePositions.symbols | 26 + .../importedAliasesInTypePositions.types | 25 + .../compiler/importedModuleClassNameClash.js | 15 + .../importedModuleClassNameClash.symbols | 13 + .../importedModuleClassNameClash.types | 12 + .../importsInAmbientModules1.errors.txt | 12 + .../compiler/importsInAmbientModules1.js | 12 + .../compiler/importsInAmbientModules1.symbols | 13 + .../compiler/importsInAmbientModules1.types | 13 + .../importsInAmbientModules2.errors.txt | 12 + .../compiler/importsInAmbientModules2.js | 12 + .../compiler/importsInAmbientModules2.symbols | 13 + .../compiler/importsInAmbientModules2.types | 13 + .../importsInAmbientModules3.errors.txt | 12 + .../compiler/importsInAmbientModules3.js | 12 + .../compiler/importsInAmbientModules3.symbols | 9 + .../compiler/importsInAmbientModules3.types | 9 + .../instanceOfInExternalModules.errors.txt | 18 + .../compiler/instanceOfInExternalModules.js | 28 + .../instanceOfInExternalModules.symbols | 21 + .../instanceOfInExternalModules.types | 24 + .../compiler/interfaceDeclaration5.js | 14 + .../compiler/interfaceDeclaration5.symbols | 10 + .../compiler/interfaceDeclaration5.types | 9 + ...AliasEnumInsideTopLevelModuleWithExport.js | 42 + ...EnumInsideTopLevelModuleWithExport.symbols | 32 + ...asEnumInsideTopLevelModuleWithExport.types | 31 + ...asEnumInsideTopLevelModuleWithoutExport.js | 42 + ...mInsideTopLevelModuleWithoutExport.symbols | 32 + ...numInsideTopLevelModuleWithoutExport.types | 31 + ...sFunctionInsideTopLevelModuleWithExport.js | 37 + ...tionInsideTopLevelModuleWithExport.symbols | 28 + ...nctionInsideTopLevelModuleWithExport.types | 30 + ...alizedModuleInsideLocalModuleWithExport.js | 46 + ...dModuleInsideLocalModuleWithExport.symbols | 31 + ...zedModuleInsideLocalModuleWithExport.types | 31 + ...ModuleInsideTopLevelModuleWithoutExport.js | 39 + ...eInsideTopLevelModuleWithoutExport.symbols | 28 + ...uleInsideTopLevelModuleWithoutExport.types | 28 + ...iasInterfaceInsideLocalModuleWithExport.js | 32 + ...terfaceInsideLocalModuleWithExport.symbols | 24 + ...InterfaceInsideLocalModuleWithExport.types | 20 + ...InterfaceInsideLocalModuleWithoutExport.js | 32 + ...faceInsideLocalModuleWithoutExport.symbols | 24 + ...erfaceInsideLocalModuleWithoutExport.types | 20 + ...erfaceInsideTopLevelModuleWithoutExport.js | 25 + ...eInsideTopLevelModuleWithoutExport.symbols | 20 + ...aceInsideTopLevelModuleWithoutExport.types | 16 + ...zedModuleInsideTopLevelModuleWithExport.js | 33 + ...duleInsideTopLevelModuleWithExport.symbols | 33 + ...ModuleInsideTopLevelModuleWithExport.types | 27 + ...rnalAliasVarInsideLocalModuleWithExport.js | 36 + ...liasVarInsideLocalModuleWithExport.symbols | 23 + ...lAliasVarInsideLocalModuleWithExport.types | 24 + ...lAliasVarInsideLocalModuleWithoutExport.js | 35 + ...sVarInsideLocalModuleWithoutExport.symbols | 23 + ...iasVarInsideLocalModuleWithoutExport.types | 24 + ...lAliasVarInsideTopLevelModuleWithExport.js | 30 + ...sVarInsideTopLevelModuleWithExport.symbols | 20 + ...iasVarInsideTopLevelModuleWithExport.types | 21 + ...jsFileCompilationRestParamJsDocFunction.js | 51 + ...eCompilationRestParamJsDocFunction.symbols | 69 + ...ileCompilationRestParamJsDocFunction.types | 90 + .../compiler/keepImportsInDts1.errors.txt | 9 + .../reference/compiler/keepImportsInDts1.js | 15 + .../compiler/keepImportsInDts1.symbols | 8 + .../compiler/keepImportsInDts1.types | 8 + .../reference/compiler/keepImportsInDts2.js | 20 + .../compiler/keepImportsInDts2.symbols | 8 + .../compiler/keepImportsInDts2.types | 8 + ...berAccessMustUseModuleInstances.errors.txt | 21 + .../memberAccessMustUseModuleInstances.js | 32 + ...memberAccessMustUseModuleInstances.symbols | 23 + .../memberAccessMustUseModuleInstances.types | 28 + .../reference/compiler/mergedDeclarations6.js | 44 + .../compiler/mergedDeclarations6.symbols | 41 + .../compiler/mergedDeclarations6.types | 41 + .../moduleAliasAsFunctionArgument.errors.txt | 18 + .../compiler/moduleAliasAsFunctionArgument.js | 29 + .../moduleAliasAsFunctionArgument.symbols | 24 + .../moduleAliasAsFunctionArgument.types | 27 + ...gmentationCollidingNamesInAugmentation1.js | 76 + ...ationCollidingNamesInAugmentation1.symbols | 62 + ...ntationCollidingNamesInAugmentation1.types | 67 + .../moduleAugmentationsImports1.errors.txt | 65 + .../compiler/moduleAugmentationsImports1.js | 96 + .../moduleAugmentationsImports1.symbols | 102 + .../moduleAugmentationsImports1.types | 103 + .../moduleAugmentationsImports2.errors.txt | 73 + .../compiler/moduleAugmentationsImports2.js | 108 + .../moduleAugmentationsImports2.symbols | 107 + .../moduleAugmentationsImports2.types | 108 + .../moduleAugmentationsImports3.errors.txt | 68 + .../compiler/moduleAugmentationsImports3.js | 71 + .../moduleAugmentationsImports3.symbols | 49 + .../moduleAugmentationsImports3.types | 61 + .../moduleAugmentationsImports4.errors.txt | 69 + .../compiler/moduleAugmentationsImports4.js | 72 + .../moduleAugmentationsImports4.symbols | 83 + .../moduleAugmentationsImports4.types | 92 + ...ImportedForTypeArgumentPosition.errors.txt | 15 + .../moduleImportedForTypeArgumentPosition.js | 20 + ...uleImportedForTypeArgumentPosition.symbols | 18 + ...oduleImportedForTypeArgumentPosition.types | 16 + .../compiler/moduleMergeConstructor.js | 70 + .../compiler/moduleMergeConstructor.symbols | 50 + .../compiler/moduleMergeConstructor.types | 49 + .../reference/compiler/objectIndexer.js | 27 + .../reference/compiler/objectIndexer.symbols | 33 + .../reference/compiler/objectIndexer.types | 29 + ...thMappingBasedModuleResolution6_classic.js | 24 + ...pingBasedModuleResolution6_classic.symbols | 24 + ...gBasedModuleResolution6_classic.trace.json | 37 + ...appingBasedModuleResolution6_classic.types | 26 + ...heckAnonymousFunctionParameter2.errors.txt | 20 + ...privacyCheckAnonymousFunctionParameter2.js | 39 + ...cyCheckAnonymousFunctionParameter2.symbols | 38 + ...vacyCheckAnonymousFunctionParameter2.types | 34 + ...lbackOfInterfaceMethodWithTypeParameter.js | 22 + ...OfInterfaceMethodWithTypeParameter.symbols | 21 + ...ckOfInterfaceMethodWithTypeParameter.types | 13 + ...mentOnExportedGenericInterface2.errors.txt | 19 + ...rtAssignmentOnExportedGenericInterface2.js | 36 + ...ignmentOnExportedGenericInterface2.symbols | 30 + ...ssignmentOnExportedGenericInterface2.types | 25 + ...arameterReferenceInConstructorParameter.js | 37 + ...terReferenceInConstructorParameter.symbols | 29 + ...meterReferenceInConstructorParameter.types | 25 + .../compiler/privacyGetter(target=es2015).js | 377 +++ .../privacyGetter(target=es2015).symbols | 388 +++ .../privacyGetter(target=es2015).types | 382 +++ .../reference/compiler/privacyGloFunc.js | 952 ++++++ .../reference/compiler/privacyGloFunc.symbols | 1011 +++++++ .../reference/compiler/privacyGloFunc.types | 987 ++++++ ...calInternalReferenceImportWithoutExport.js | 358 +++ ...ternalReferenceImportWithoutExport.symbols | 512 ++++ ...InternalReferenceImportWithoutExport.types | 516 ++++ ...pLevelInternalReferenceImportWithExport.js | 263 ++ ...lInternalReferenceImportWithExport.symbols | 299 ++ ...velInternalReferenceImportWithExport.types | 299 ++ ...velInternalReferenceImportWithoutExport.js | 259 ++ ...ternalReferenceImportWithoutExport.symbols | 299 ++ ...InternalReferenceImportWithoutExport.types | 299 ++ .../privatePropertyUsingObjectType.errors.txt | 24 + .../privatePropertyUsingObjectType.js | 20 + .../privatePropertyUsingObjectType.symbols | 30 + .../privatePropertyUsingObjectType.types | 25 + ...elativeNamesInClassicResolution.errors.txt | 10 + .../relativeNamesInClassicResolution.js | 16 + .../relativeNamesInClassicResolution.symbols | 10 + .../relativeNamesInClassicResolution.types | 11 + .../compiler/requireEmitSemicolon.errors.txt | 23 + .../compiler/requireEmitSemicolon.js | 47 + .../compiler/requireEmitSemicolon.symbols | 37 + .../compiler/requireEmitSemicolon.types | 42 + .../sourceMapValidationExportAssignment.js | 14 + ...sourceMapValidationExportAssignment.js.map | 3 + ...apValidationExportAssignment.sourcemap.txt | 47 + ...ourceMapValidationExportAssignment.symbols | 12 + .../sourceMapValidationExportAssignment.types | 12 + .../reference/compiler/topLevelExports.js | 16 + .../compiler/topLevelExports.symbols | 17 + .../reference/compiler/topLevelExports.types | 21 + .../tsconfigMapOptionsAreCaseInsensitive.js | 27 + ...configMapOptionsAreCaseInsensitive.symbols | 20 + ...tsconfigMapOptionsAreCaseInsensitive.types | 22 + ...ypeAliasDeclarationEmit2(target=es2015).js | 14 + ...iasDeclarationEmit2(target=es2015).symbols | 9 + ...AliasDeclarationEmit2(target=es2015).types | 7 + ...ompatibilityAccrossDeclarations.errors.txt | 36 + ...rameterCompatibilityAccrossDeclarations.js | 41 + ...erCompatibilityAccrossDeclarations.symbols | 62 + ...eterCompatibilityAccrossDeclarations.types | 58 + .../reference/compiler/typeResolution.js | 254 ++ .../reference/compiler/typeResolution.js.map | 3 + .../compiler/typeResolution.sourcemap.txt | 2668 +++++++++++++++++ .../reference/compiler/typeResolution.symbols | 367 +++ .../reference/compiler/typeResolution.types | 361 +++ .../compiler/varArgsOnConstructorTypes.js | 46 + .../varArgsOnConstructorTypes.symbols | 69 + .../compiler/varArgsOnConstructorTypes.types | 68 + .../reference/compiler/withExportDecl.js | 132 + .../reference/compiler/withExportDecl.symbols | 131 + .../reference/compiler/withExportDecl.types | 158 + .../compiler/withImportDecl.errors.txt | 47 + .../reference/compiler/withImportDecl.js | 88 + .../reference/compiler/withImportDecl.symbols | 82 + .../reference/compiler/withImportDecl.types | 101 + .../ambientExternalModuleMerging.js | 27 + .../ambientExternalModuleMerging.symbols | 34 + .../ambientExternalModuleMerging.types | 34 + .../ambientInsideNonAmbientExternalModule.js | 12 + ...ientInsideNonAmbientExternalModule.symbols | 18 + ...mbientInsideNonAmbientExternalModule.types | 16 + .../exportAssignmentCircularModules.js | 48 + .../exportAssignmentCircularModules.symbols | 50 + .../exportAssignmentCircularModules.types | 50 + ...exportAssignmentMergedInterface.errors.txt | 38 + .../exportAssignmentMergedInterface.js | 37 + .../exportAssignmentMergedInterface.symbols | 65 + .../exportAssignmentMergedInterface.types | 70 + .../exportAssignmentTopLevelClodule.js | 36 + .../exportAssignmentTopLevelClodule.symbols | 32 + .../exportAssignmentTopLevelClodule.types | 37 + ...xportAssignmentTopLevelEnumdule.errors.txt | 21 + .../exportAssignmentTopLevelEnumdule.js | 39 + .../exportAssignmentTopLevelEnumdule.symbols | 41 + .../exportAssignmentTopLevelEnumdule.types | 43 + .../exportAssignmentTopLevelFundule.js | 34 + .../exportAssignmentTopLevelFundule.symbols | 31 + .../exportAssignmentTopLevelFundule.types | 36 + .../exportAssignmentTopLevelIdentifier.js | 28 + ...exportAssignmentTopLevelIdentifier.symbols | 23 + .../exportAssignmentTopLevelIdentifier.types | 26 + .../conformance/importImportOnlyModule.js | 37 + .../importImportOnlyModule.symbols | 28 + .../conformance/importImportOnlyModule.types | 31 + .../conformance/tsxElementResolution17.js | 37 + .../tsxElementResolution17.symbols | 45 + .../conformance/tsxElementResolution17.types | 41 + ...tsxPreserveEmit1(target=es2015).errors.txt | 39 + .../tsxPreserveEmit1(target=es2015).js | 49 + .../tsxPreserveEmit1(target=es2015).symbols | 35 + .../tsxPreserveEmit1(target=es2015).types | 37 + .../tsxPreserveEmit2(target=es2015).js | 11 + .../tsxPreserveEmit2(target=es2015).symbols | 10 + .../tsxPreserveEmit2(target=es2015).types | 11 + .../conformance/tsxPreserveEmit3.errors.txt | 20 + .../reference/conformance/tsxPreserveEmit3.js | 23 + .../conformance/tsxPreserveEmit3.symbols | 26 + .../conformance/tsxPreserveEmit3.types | 20 + .../reference/conformance/tsxSfcReturnNull.js | 27 + .../conformance/tsxSfcReturnNull.symbols | 28 + .../conformance/tsxSfcReturnNull.types | 31 + .../tsxSfcReturnNullStrictNullChecks.js | 27 + .../tsxSfcReturnNullStrictNullChecks.symbols | 28 + .../tsxSfcReturnNullStrictNullChecks.types | 31 + ...elessFunctionComponentOverload1.errors.txt | 54 + .../tsxStatelessFunctionComponentOverload1.js | 72 + ...tatelessFunctionComponentOverload1.symbols | 198 ++ ...xStatelessFunctionComponentOverload1.types | 208 ++ ...elessFunctionComponentOverload2.errors.txt | 41 + .../tsxStatelessFunctionComponentOverload2.js | 66 + ...tatelessFunctionComponentOverload2.symbols | 108 + ...xStatelessFunctionComponentOverload2.types | 134 + .../tsxStatelessFunctionComponentOverload3.js | 43 + ...tatelessFunctionComponentOverload3.symbols | 100 + ...xStatelessFunctionComponentOverload3.types | 104 + ...ctionComponentWithDefaultTypeParameter1.js | 30 + ...ComponentWithDefaultTypeParameter1.symbols | 38 + ...onComponentWithDefaultTypeParameter1.types | 36 + ...ponentWithDefaultTypeParameter2.errors.txt | 22 + ...ctionComponentWithDefaultTypeParameter2.js | 29 + ...ComponentWithDefaultTypeParameter2.symbols | 34 + ...onComponentWithDefaultTypeParameter2.types | 32 + ...tsxStatelessFunctionComponents3.errors.txt | 25 + .../tsxStatelessFunctionComponents3.js | 38 + .../tsxStatelessFunctionComponents3.symbols | 51 + .../tsxStatelessFunctionComponents3.types | 60 + ...essFunctionComponentsWithTypeArguments1.js | 55 + ...nctionComponentsWithTypeArguments1.symbols | 114 + ...FunctionComponentsWithTypeArguments1.types | 104 + ...ionComponentsWithTypeArguments2.errors.txt | 71 + ...essFunctionComponentsWithTypeArguments2.js | 57 + ...nctionComponentsWithTypeArguments2.symbols | 111 + ...FunctionComponentsWithTypeArguments2.types | 99 + ...essFunctionComponentsWithTypeArguments3.js | 48 + ...nctionComponentsWithTypeArguments3.symbols | 132 + ...FunctionComponentsWithTypeArguments3.types | 122 + ...essFunctionComponentsWithTypeArguments5.js | 39 + ...nctionComponentsWithTypeArguments5.symbols | 86 + ...FunctionComponentsWithTypeArguments5.types | 80 + .../usingDeclarationsTopLevelOfModule.2.js | 29 + ...rnalModuleWithInternalImportDeclaration.ts | 2 +- ...lModuleWithoutInternalImportDeclaration.ts | 2 +- .../cases/compiler/augmentExportEquals1_1.ts | 2 +- .../cases/compiler/augmentExportEquals2_1.ts | 2 +- .../cases/compiler/augmentExportEquals3_1.ts | 2 +- .../cases/compiler/augmentExportEquals4_1.ts | 2 +- .../cases/compiler/augmentExportEquals6_1.ts | 2 +- .../compiler/augmentedTypesExternalModule1.ts | 2 +- .../tests/cases/compiler/bangInModuleName.ts | 2 +- .../blockScopedNamespaceDifferentFile.ts | 3 +- .../tests/cases/compiler/cacheResolutions.ts | 2 +- .../collisionExportsRequireAndClass.ts | 2 +- .../collisionExportsRequireAndEnum.ts | 2 +- .../collisionExportsRequireAndFunction.ts | 2 +- ...ionExportsRequireAndInternalModuleAlias.ts | 2 +- .../collisionExportsRequireAndModule.ts | 2 +- ...onExportsRequireAndUninstantiatedModule.ts | 2 +- .../compiler/collisionExportsRequireAndVar.ts | 2 +- .../commentsBeforeVariableStatement1.ts | 2 +- .../compiler/commentsDottedModuleName.ts | 2 +- .../cases/compiler/commentsExternalModules.ts | 2 +- .../compiler/commentsExternalModules2.ts | 2 +- .../compiler/commentsMultiModuleMultiFile.ts | 2 +- .../cases/compiler/constEnumExternalModule.ts | 2 +- .../compiler/constEnumMergingWithValues1.ts | 2 +- .../compiler/constEnumMergingWithValues2.ts | 2 +- .../compiler/constEnumMergingWithValues3.ts | 2 +- .../compiler/constEnumMergingWithValues4.ts | 2 +- .../compiler/constEnumMergingWithValues5.ts | 2 +- ...rashIntypeCheckObjectCreationExpression.ts | 2 +- ...lFileExportAssignmentOfGenericInterface.ts | 2 +- .../compiler/declFileExportImportChain.ts | 2 +- .../compiler/declFileExportImportChain2.ts | 2 +- .../cases/compiler/declarationMerging2.ts | 2 +- .../compiler/dependencyViaImportAlias.ts | 2 +- .../compiler/deprecatedCompilerOptions2.ts | 6 +- .../compiler/deprecatedCompilerOptions6.ts | 6 +- .../destructuringInVariableDeclarations3.ts | 2 +- .../destructuringInVariableDeclarations4.ts | 2 +- ...ierShouldNotShortCircuitBaseTypeBinding.ts | 2 +- .../tests/cases/compiler/dynamicRequire.ts | 3 +- .../emitHelpersWithLocalCollisions.ts | 2 +- ...FollowedWithNamespaceBinding1WithExport.ts | 2 +- ...BindingFollowedWithNamespaceBindingDts1.ts | 2 +- .../es6ImportNameSpaceImportWithExport.ts | 2 +- .../exportAssignedTypeAsTypeAnnotation.ts | 2 +- .../cases/compiler/exportAssignmentClass.ts | 2 +- .../cases/compiler/exportAssignmentError.ts | 2 +- .../compiler/exportAssignmentFunction.ts | 2 +- .../compiler/exportAssignmentInterface.ts | 2 +- .../exportAssignmentInternalModule.ts | 2 +- .../exportAssignmentOfGenericType1.ts | 2 +- ...signmentWithImportStatementPrivacyError.ts | 2 +- .../exportAssignmentWithPrivacyError.ts | 2 +- .../exportEmptyArrayBindingPattern.ts | 2 +- .../exportEmptyObjectBindingPattern.ts | 2 +- .../cases/compiler/exportEqualCallable.ts | 2 +- .../cases/compiler/exportEqualNamespaces.ts | 2 +- .../tests/cases/compiler/exportImport.ts | 2 +- ...ortImportCanSubstituteConstEnumForValue.ts | 2 +- .../compiler/exportImportMultipleFiles.ts | 2 +- .../exportImportNonInstantiatedModule2.ts | 2 +- .../tests/cases/compiler/exportObjectRest.ts | 2 +- .../cases/compiler/exportStarForValues.ts | 2 +- .../cases/compiler/exportStarForValues2.ts | 2 +- .../cases/compiler/exportStarForValues3.ts | 2 +- .../cases/compiler/exportStarForValues4.ts | 2 +- .../cases/compiler/exportStarForValues5.ts | 2 +- .../cases/compiler/exportStarForValues7.ts | 2 +- .../cases/compiler/exportStarForValues8.ts | 2 +- .../cases/compiler/exportStarForValues9.ts | 2 +- ...InterfaceInaccessibleInCallbackInModule.ts | 2 +- .../tests/cases/compiler/exportedVariable1.ts | 2 +- .../exportingContainingVisibleType.ts | 2 +- .../compiler/exportsInAmbientModules1.ts | 2 +- .../compiler/exportsInAmbientModules2.ts | 2 +- .../compiler/externalModuleAssignToVar.ts | 2 +- ...ceOfImportDeclarationWithExportModifier.ts | 2 +- .../cases/compiler/genericClassesInModule2.ts | 2 +- .../genericInterfaceFunctionTypeParameter.ts | 2 +- ...ericRecursiveImplicitConstructorErrors1.ts | 2 +- .../compiler/genericTypeWithMultipleBases2.ts | 2 +- .../genericWithIndexerOfTypeParameterType2.ts | 2 +- .../cases/compiler/impliedNodeFormatEmit1.ts | 2 +- .../compiler/importDeclWithExportModifier.ts | 2 +- .../compiler/importHelpersWithExportStarAs.ts | 2 +- .../importHelpersWithImportOrExportDefault.ts | 2 +- ...lpersWithImportOrExportDefaultNoTslib.1.ts | 2 +- ...lpersWithImportOrExportDefaultNoTslib.2.ts | 2 +- ...lpersWithImportOrExportDefaultNoTslib.3.ts | 2 +- .../compiler/importHelpersWithImportStarAs.ts | 2 +- .../importHelpersWithLocalCollisions.ts | 2 +- .../cases/compiler/importShadowsGlobalName.ts | 2 +- .../import_reference-exported-alias.ts | 2 +- .../import_reference-to-type-alias.ts | 2 +- ...-referenecing-aliased-type-throug-array.ts | 2 +- ...ar-referencing-an-imported-module-alias.ts | 2 +- .../importedAliasesInTypePositions.ts | 4 +- .../compiler/importedModuleClassNameClash.ts | 2 +- .../compiler/importsInAmbientModules1.ts | 2 +- .../compiler/importsInAmbientModules2.ts | 2 +- .../compiler/importsInAmbientModules3.ts | 2 +- .../compiler/instanceOfInExternalModules.ts | 2 +- .../cases/compiler/interfaceDeclaration5.ts | 2 +- ...AliasEnumInsideTopLevelModuleWithExport.ts | 2 +- ...asEnumInsideTopLevelModuleWithoutExport.ts | 2 +- ...sFunctionInsideTopLevelModuleWithExport.ts | 2 +- ...alizedModuleInsideLocalModuleWithExport.ts | 2 +- ...ModuleInsideTopLevelModuleWithoutExport.ts | 2 +- ...iasInterfaceInsideLocalModuleWithExport.ts | 2 +- ...InterfaceInsideLocalModuleWithoutExport.ts | 2 +- ...erfaceInsideTopLevelModuleWithoutExport.ts | 2 +- ...zedModuleInsideTopLevelModuleWithExport.ts | 2 +- ...rnalAliasVarInsideLocalModuleWithExport.ts | 2 +- ...lAliasVarInsideLocalModuleWithoutExport.ts | 2 +- ...lAliasVarInsideTopLevelModuleWithExport.ts | 2 +- ...jsFileCompilationRestParamJsDocFunction.ts | 3 +- .../tests/cases/compiler/keepImportsInDts1.ts | 2 +- .../tests/cases/compiler/keepImportsInDts2.ts | 2 +- .../memberAccessMustUseModuleInstances.ts | 2 +- .../cases/compiler/mergedDeclarations6.ts | 2 +- .../compiler/moduleAliasAsFunctionArgument.ts | 2 +- ...gmentationCollidingNamesInAugmentation1.ts | 2 +- .../compiler/moduleAugmentationsImports1.ts | 3 +- .../compiler/moduleAugmentationsImports2.ts | 3 +- .../compiler/moduleAugmentationsImports3.ts | 3 +- .../compiler/moduleAugmentationsImports4.ts | 3 +- .../moduleImportedForTypeArgumentPosition.ts | 2 +- .../cases/compiler/moduleMergeConstructor.ts | 2 +- .../tests/cases/compiler/objectIndexer.ts | 2 +- ...thMappingBasedModuleResolution2_classic.ts | 2 +- ...thMappingBasedModuleResolution3_classic.ts | 2 +- ...thMappingBasedModuleResolution4_classic.ts | 2 +- ...thMappingBasedModuleResolution5_classic.ts | 2 +- ...thMappingBasedModuleResolution6_classic.ts | 2 +- ...thMappingBasedModuleResolution7_classic.ts | 2 +- ...thMappingBasedModuleResolution8_classic.ts | 2 +- ...privacyCheckAnonymousFunctionParameter2.ts | 2 +- ...lbackOfInterfaceMethodWithTypeParameter.ts | 2 +- ...rtAssignmentOnExportedGenericInterface2.ts | 2 +- ...arameterReferenceInConstructorParameter.ts | 2 +- .../tests/cases/compiler/privacyGetter.ts | 2 +- .../tests/cases/compiler/privacyGloFunc.ts | 2 +- ...calInternalReferenceImportWithoutExport.ts | 2 +- ...pLevelInternalReferenceImportWithExport.ts | 2 +- ...velInternalReferenceImportWithoutExport.ts | 2 +- .../privatePropertyUsingObjectType.ts | 2 +- .../relativeNamesInClassicResolution.ts | 2 +- .../cases/compiler/requireEmitSemicolon.ts | 2 +- .../sourceMapValidationExportAssignment.ts | 2 +- .../tests/cases/compiler/topLevelExports.ts | 2 +- .../tsconfigMapOptionsAreCaseInsensitive.ts | 4 +- .../compiler/typeAliasDeclarationEmit2.ts | 2 +- ...rameterCompatibilityAccrossDeclarations.ts | 2 +- .../tests/cases/compiler/typeResolution.ts | 2 +- .../compiler/varArgsOnConstructorTypes.ts | 2 +- .../tests/cases/compiler/withExportDecl.ts | 2 +- .../tests/cases/compiler/withImportDecl.ts | 2 +- .../ambient/ambientExternalModuleMerging.ts | 2 +- .../ambientInsideNonAmbientExternalModule.ts | 2 +- .../classStaticBlock/classStaticBlock24.ts | 2 +- .../es2020/modules/exportAsNamespace1.ts | 2 +- .../es2020/modules/exportAsNamespace2.ts | 2 +- .../es2020/modules/exportAsNamespace3.ts | 2 +- .../es2020/modules/exportAsNamespace4.ts | 2 +- ...itraryModuleNamespaceIdentifiers_module.ts | 2 +- .../exportAssignmentCircularModules.ts | 2 +- .../exportAssignmentMergedInterface.ts | 2 +- .../exportAssignmentTopLevelClodule.ts | 2 +- .../exportAssignmentTopLevelEnumdule.ts | 2 +- .../exportAssignmentTopLevelFundule.ts | 2 +- .../exportAssignmentTopLevelIdentifier.ts | 2 +- .../externalModules/importImportOnlyModule.ts | 2 +- .../typeOnly/preserveValueImports_module.ts | 2 +- .../jsx/tsxElementResolution17.tsx | 2 +- .../conformance/jsx/tsxPreserveEmit1.tsx | 2 +- .../conformance/jsx/tsxPreserveEmit2.tsx | 2 +- .../conformance/jsx/tsxPreserveEmit3.tsx | 2 +- .../conformance/jsx/tsxSfcReturnNull.tsx | 2 +- .../jsx/tsxSfcReturnNullStrictNullChecks.tsx | 2 +- ...tsxStatelessFunctionComponentOverload1.tsx | 2 +- ...tsxStatelessFunctionComponentOverload2.tsx | 2 +- ...tsxStatelessFunctionComponentOverload3.tsx | 2 +- ...tionComponentWithDefaultTypeParameter1.tsx | 2 +- ...tionComponentWithDefaultTypeParameter2.tsx | 2 +- .../jsx/tsxStatelessFunctionComponents3.tsx | 2 +- ...ssFunctionComponentsWithTypeArguments1.tsx | 2 +- ...ssFunctionComponentsWithTypeArguments2.tsx | 2 +- ...ssFunctionComponentsWithTypeArguments3.tsx | 2 +- ...ssFunctionComponentsWithTypeArguments5.tsx | 2 +- .../usingDeclarationsTopLevelOfModule.1.ts | 2 +- .../usingDeclarationsTopLevelOfModule.2.ts | 2 +- .../usingDeclarationsTopLevelOfModule.3.ts | 2 +- 782 files changed, 31049 insertions(+), 202 deletions(-) create mode 100644 tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.js create mode 100644 tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.types create mode 100644 tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.js create mode 100644 tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.types create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.js create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.types create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.js create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.types create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.js create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.types create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.js create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.types create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.js create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.types create mode 100644 tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.js create mode 100644 tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.types create mode 100644 tsc/testdata/baselines/reference/compiler/bangInModuleName.js create mode 100644 tsc/testdata/baselines/reference/compiler/bangInModuleName.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/bangInModuleName.types create mode 100644 tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/cacheResolutions.js create mode 100644 tsc/testdata/baselines/reference/compiler/cacheResolutions.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/cacheResolutions.trace.json create mode 100644 tsc/testdata/baselines/reference/compiler/cacheResolutions.types create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.js create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.types create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.js create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.types create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.js create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.types create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.js create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.types create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.js create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.types create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.js create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.types create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.js create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.types create mode 100644 tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.js create mode 100644 tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.types create mode 100644 tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumExternalModule.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumExternalModule.js create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumExternalModule.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumExternalModule.types create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.js create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.types create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.js create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.types create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.js create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.types create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.js create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.types create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.js create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.types create mode 100644 tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.js create mode 100644 tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.types create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.js create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.types create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportImportChain.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportImportChain.js create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportImportChain.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportImportChain.types create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.js create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.types create mode 100644 tsc/testdata/baselines/reference/compiler/declarationMerging2.js create mode 100644 tsc/testdata/baselines/reference/compiler/declarationMerging2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/declarationMerging2.types create mode 100644 tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.js create mode 100644 tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.types create mode 100644 tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.js create mode 100644 tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.types create mode 100644 tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.js create mode 100644 tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.types create mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.js create mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.types create mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.js create mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.types create mode 100644 tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.js create mode 100644 tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.types create mode 100644 tsc/testdata/baselines/reference/compiler/dynamicRequire.js create mode 100644 tsc/testdata/baselines/reference/compiler/dynamicRequire.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/dynamicRequire.types create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentClass.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentClass.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentClass.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentClass.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentError.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentError.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentError.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportEqualCallable.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportEqualCallable.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportEqualCallable.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportEqualCallable.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportImport.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportImport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportImport.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues2.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues2.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues3.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues3.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues3.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues3.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues4.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues4.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues4.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues4.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues5.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues5.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues5.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues5.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues7.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues7.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues7.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues7.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues8.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues8.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues8.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues8.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues9.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues9.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues9.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportStarForValues9.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportedVariable1.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportedVariable1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportedVariable1.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.types create mode 100644 tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.js create mode 100644 tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.types create mode 100644 tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.js create mode 100644 tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.types create mode 100644 tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.js create mode 100644 tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.types create mode 100644 tsc/testdata/baselines/reference/compiler/genericClassesInModule2.js create mode 100644 tsc/testdata/baselines/reference/compiler/genericClassesInModule2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/genericClassesInModule2.types create mode 100644 tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.js create mode 100644 tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.types create mode 100644 tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.js create mode 100644 tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.types create mode 100644 tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.js create mode 100644 tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.types create mode 100644 tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.js create mode 100644 tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.types create mode 100644 tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.js create mode 100644 tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.types create mode 100644 tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.js create mode 100644 tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.types create mode 100644 tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.js create mode 100644 tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.types create mode 100644 tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.js create mode 100644 tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.types create mode 100644 tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.js create mode 100644 tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.types create mode 100644 tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.js create mode 100644 tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.types create mode 100644 tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.js create mode 100644 tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.types create mode 100644 tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.js create mode 100644 tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.types create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.js create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.types create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.js create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.types create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.js create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.types create mode 100644 tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.js create mode 100644 tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.types create mode 100644 tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.js create mode 100644 tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.js create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.types create mode 100644 tsc/testdata/baselines/reference/compiler/keepImportsInDts1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/keepImportsInDts1.js create mode 100644 tsc/testdata/baselines/reference/compiler/keepImportsInDts1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/keepImportsInDts1.types create mode 100644 tsc/testdata/baselines/reference/compiler/keepImportsInDts2.js create mode 100644 tsc/testdata/baselines/reference/compiler/keepImportsInDts2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/keepImportsInDts2.types create mode 100644 tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.js create mode 100644 tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.types create mode 100644 tsc/testdata/baselines/reference/compiler/mergedDeclarations6.js create mode 100644 tsc/testdata/baselines/reference/compiler/mergedDeclarations6.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/mergedDeclarations6.types create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.js create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.types create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.js create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.types create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.js create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.types create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.js create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.types create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.js create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.types create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.js create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.types create mode 100644 tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.js create mode 100644 tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.types create mode 100644 tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.js create mode 100644 tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.types create mode 100644 tsc/testdata/baselines/reference/compiler/objectIndexer.js create mode 100644 tsc/testdata/baselines/reference/compiler/objectIndexer.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/objectIndexer.types create mode 100644 tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.js create mode 100644 tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.trace.json create mode 100644 tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyGloFunc.js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyGloFunc.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyGloFunc.types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.js create mode 100644 tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.types create mode 100644 tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.js create mode 100644 tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.types create mode 100644 tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.js create mode 100644 tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.types create mode 100644 tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.js create mode 100644 tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.types create mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js create mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js.map create mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.sourcemap.txt create mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.types create mode 100644 tsc/testdata/baselines/reference/compiler/topLevelExports.js create mode 100644 tsc/testdata/baselines/reference/compiler/topLevelExports.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/topLevelExports.types create mode 100644 tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.js create mode 100644 tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.types create mode 100644 tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.js create mode 100644 tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.types create mode 100644 tsc/testdata/baselines/reference/compiler/typeResolution.js create mode 100644 tsc/testdata/baselines/reference/compiler/typeResolution.js.map create mode 100644 tsc/testdata/baselines/reference/compiler/typeResolution.sourcemap.txt create mode 100644 tsc/testdata/baselines/reference/compiler/typeResolution.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/typeResolution.types create mode 100644 tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.js create mode 100644 tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.types create mode 100644 tsc/testdata/baselines/reference/compiler/withExportDecl.js create mode 100644 tsc/testdata/baselines/reference/compiler/withExportDecl.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/withExportDecl.types create mode 100644 tsc/testdata/baselines/reference/compiler/withImportDecl.errors.txt create mode 100644 tsc/testdata/baselines/reference/compiler/withImportDecl.js create mode 100644 tsc/testdata/baselines/reference/compiler/withImportDecl.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/withImportDecl.types create mode 100644 tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.js create mode 100644 tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.types create mode 100644 tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.js create mode 100644 tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.types create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.js create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.types create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.js create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.types create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.js create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.types create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.js create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.types create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.js create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.types create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.js create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.types create mode 100644 tsc/testdata/baselines/reference/conformance/importImportOnlyModule.js create mode 100644 tsc/testdata/baselines/reference/conformance/importImportOnlyModule.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/importImportOnlyModule.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxElementResolution17.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxElementResolution17.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxElementResolution17.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.errors.txt create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.types create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.js create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.symbols create mode 100644 tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.types create mode 100644 tsc/testdata/baselines/reference/conformance/usingDeclarationsTopLevelOfModule.2.js diff --git a/tsc/internal/fourslash/tests/autoImportPathsNodeModules_test.go b/tsc/internal/fourslash/tests/autoImportPathsNodeModules_test.go index 97206cffbf8ee..30c23ecd3128f 100644 --- a/tsc/internal/fourslash/tests/autoImportPathsNodeModules_test.go +++ b/tsc/internal/fourslash/tests/autoImportPathsNodeModules_test.go @@ -14,7 +14,7 @@ func TestAutoImportPathsNodeModules(t *testing.T) { const content = `// @Filename: tsconfig.json { "compilerOptions": { - "module": "amd", + "module": "commonjs", "moduleResolution": "node", "rootDir": "ts", "baseUrl": ".", diff --git a/tsc/internal/fourslash/tests/autoImportsWithRootDirsAndRootedPath01_test.go b/tsc/internal/fourslash/tests/autoImportsWithRootDirsAndRootedPath01_test.go index 8941aef0ca09d..c44b0e72d1e90 100644 --- a/tsc/internal/fourslash/tests/autoImportsWithRootDirsAndRootedPath01_test.go +++ b/tsc/internal/fourslash/tests/autoImportsWithRootDirsAndRootedPath01_test.go @@ -18,7 +18,7 @@ func TestAutoImportsWithRootDirsAndRootedPath01(t *testing.T) { // @Filename: /dir/tsconfig.json { "compilerOptions": { - "module": "amd", + "module": "commonjs", "moduleResolution": "classic", "rootDirs": ["D:/"] } diff --git a/tsc/internal/fourslash/tests/importNameCodeFixNewImportAllowSyntheticDefaultImports4_test.go b/tsc/internal/fourslash/tests/importNameCodeFixNewImportAllowSyntheticDefaultImports4_test.go index 9fce2c89e1d51..a860c52768ee2 100644 --- a/tsc/internal/fourslash/tests/importNameCodeFixNewImportAllowSyntheticDefaultImports4_test.go +++ b/tsc/internal/fourslash/tests/importNameCodeFixNewImportAllowSyntheticDefaultImports4_test.go @@ -11,7 +11,7 @@ func TestImportNameCodeFixNewImportAllowSyntheticDefaultImports4(t *testing.T) { t.Parallel() defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `// @AllowSyntheticDefaultImports: false -// @Module: amd +// @Module: commonjs // @Filename: a/f1.ts [|export var x = 0; bar/*0*/();|] diff --git a/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.js b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.js new file mode 100644 index 0000000000000..964cfbe5b81a5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration.ts] //// + +//// [ambientExternalModuleWithInternalImportDeclaration_0.ts] +declare module 'M' { + namespace C { + export var f: number; + } + class C { + foo(): void; + } + import X = C; + export = X; + +} + +//// [ambientExternalModuleWithInternalImportDeclaration_1.ts] +/// +import A = require('M'); +var c = new A(); + +//// [ambientExternalModuleWithInternalImportDeclaration_0.js] +"use strict"; +//// [ambientExternalModuleWithInternalImportDeclaration_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const A = require("M"); +var c = new A(); diff --git a/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.symbols b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.symbols new file mode 100644 index 0000000000000..fdf8cd926e457 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.symbols @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration.ts] //// + +=== ambientExternalModuleWithInternalImportDeclaration_1.ts === +/// +import A = require('M'); +>A : Symbol(A, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 0, 0)) + +var c = new A(); +>c : Symbol(c, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 2, 3)) +>A : Symbol(A, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 0, 0)) + +=== ambientExternalModuleWithInternalImportDeclaration_0.ts === +declare module 'M' { +>'M' : Symbol("M", Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 0)) + + namespace C { +>C : Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) + + export var f: number; +>f : Symbol(f, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 2, 18)) + } + class C { +>C : Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) + + foo(): void; +>foo : Symbol(C.foo, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 4, 13)) + } + import X = C; +>X : Symbol(X, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 6, 5)) +>C : Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) + + export = X; +>X : Symbol(X, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 6, 5)) + +} + diff --git a/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.types b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.types new file mode 100644 index 0000000000000..48467e93beafd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithInternalImportDeclaration.types @@ -0,0 +1,37 @@ +//// [tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration.ts] //// + +=== ambientExternalModuleWithInternalImportDeclaration_1.ts === +/// +import A = require('M'); +>A : typeof A + +var c = new A(); +>c : A +>new A() : A +>A : typeof A + +=== ambientExternalModuleWithInternalImportDeclaration_0.ts === +declare module 'M' { +>'M' : typeof import("M") + + namespace C { +>C : typeof C + + export var f: number; +>f : number + } + class C { +>C : C + + foo(): void; +>foo : () => void + } + import X = C; +>X : typeof C +>C : C + + export = X; +>X : C + +} + diff --git a/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.js b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.js new file mode 100644 index 0000000000000..61787d8f48c7d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration.ts] //// + +//// [ambientExternalModuleWithoutInternalImportDeclaration_0.ts] +declare module 'M' { + namespace C { + export var f: number; + } + class C { + foo(): void; + } + export = C; + +} + +//// [ambientExternalModuleWithoutInternalImportDeclaration_1.ts] +/// +import A = require('M'); +var c = new A(); + +//// [ambientExternalModuleWithoutInternalImportDeclaration_0.js] +"use strict"; +//// [ambientExternalModuleWithoutInternalImportDeclaration_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const A = require("M"); +var c = new A(); diff --git a/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.symbols b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.symbols new file mode 100644 index 0000000000000..e19eb1ba36eee --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.symbols @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration.ts] //// + +=== ambientExternalModuleWithoutInternalImportDeclaration_1.ts === +/// +import A = require('M'); +>A : Symbol(A, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 0, 0)) + +var c = new A(); +>c : Symbol(c, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 2, 3)) +>A : Symbol(A, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 0, 0)) + +=== ambientExternalModuleWithoutInternalImportDeclaration_0.ts === +declare module 'M' { +>'M' : Symbol("M", Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 0)) + + namespace C { +>C : Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) + + export var f: number; +>f : Symbol(f, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 2, 18)) + } + class C { +>C : Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) + + foo(): void; +>foo : Symbol(C.foo, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 4, 13)) + } + export = C; +>C : Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) + +} + diff --git a/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.types b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.types new file mode 100644 index 0000000000000..db7961c451a6a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/ambientExternalModuleWithoutInternalImportDeclaration.types @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration.ts] //// + +=== ambientExternalModuleWithoutInternalImportDeclaration_1.ts === +/// +import A = require('M'); +>A : typeof A + +var c = new A(); +>c : A +>new A() : A +>A : typeof A + +=== ambientExternalModuleWithoutInternalImportDeclaration_0.ts === +declare module 'M' { +>'M' : typeof import("M") + + namespace C { +>C : typeof C + + export var f: number; +>f : number + } + class C { +>C : C + + foo(): void; +>foo : () => void + } + export = C; +>C : C + +} + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.errors.txt b/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.errors.txt new file mode 100644 index 0000000000000..5c5a317a82ad6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.errors.txt @@ -0,0 +1,28 @@ +file3.ts(1,20): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file3.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + + +==== file3.ts (2 errors) ==== + import x = require("file1"); + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + import "file2"; + ~~~~~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + let a: x.A; // should not work +==== file1.d.ts (0 errors) ==== + declare module "file1" { + var x: number; + export = x; + } + +==== file2.ts (0 errors) ==== + /// + import x = require("file1"); + + // augmentation for 'file1' + // should error since 'file1' does not have namespace meaning + declare module "file1" { + interface A { a } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.js b/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.js new file mode 100644 index 0000000000000..b76e754ad41c0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/augmentExportEquals1_1.ts] //// + +//// [file1.d.ts] +declare module "file1" { + var x: number; + export = x; +} + +//// [file2.ts] +/// +import x = require("file1"); + +// augmentation for 'file1' +// should error since 'file1' does not have namespace meaning +declare module "file1" { + interface A { a } +} + +//// [file3.ts] +import x = require("file1"); +import "file2"; +let a: x.A; // should not work + +//// [file3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("file2"); +let a; // should not work diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.symbols b/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.symbols new file mode 100644 index 0000000000000..debcc87715d3c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/augmentExportEquals1_1.ts] //// + +=== file3.ts === +import x = require("file1"); +>x : Symbol(x, Decl(file3.ts, 0, 0)) + +import "file2"; +let a: x.A; // should not work +>a : Symbol(a, Decl(file3.ts, 2, 3)) +>x : Symbol(x, Decl(file3.ts, 0, 0)) +>A : Symbol(x.A) + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.types b/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.types new file mode 100644 index 0000000000000..ca7dc818b484a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals1_1.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/augmentExportEquals1_1.ts] //// + +=== file3.ts === +import x = require("file1"); +>x : any + +import "file2"; +let a: x.A; // should not work +>a : x.A +>x : any + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.errors.txt b/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.errors.txt new file mode 100644 index 0000000000000..45cec64aaca6b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.errors.txt @@ -0,0 +1,27 @@ +file3.ts(1,20): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file3.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + + +==== file3.ts (2 errors) ==== + import x = require("file1"); + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + import "file2"; + ~~~~~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + let a: x.A; // should not work +==== file1.d.ts (0 errors) ==== + declare module "file1" { + function foo(): void; + export = foo; + } + +==== file2.ts (0 errors) ==== + /// + import x = require("file1"); + + // should error since './file1' does not have namespace meaning + declare module "file1" { + interface A { a } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.js b/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.js new file mode 100644 index 0000000000000..920219754da4e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/augmentExportEquals2_1.ts] //// + +//// [file1.d.ts] +declare module "file1" { + function foo(): void; + export = foo; +} + +//// [file2.ts] +/// +import x = require("file1"); + +// should error since './file1' does not have namespace meaning +declare module "file1" { + interface A { a } +} + +//// [file3.ts] +import x = require("file1"); +import "file2"; +let a: x.A; // should not work + +//// [file3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("file2"); +let a; // should not work diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.symbols b/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.symbols new file mode 100644 index 0000000000000..d096d496a2027 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/augmentExportEquals2_1.ts] //// + +=== file3.ts === +import x = require("file1"); +>x : Symbol(x, Decl(file3.ts, 0, 0)) + +import "file2"; +let a: x.A; // should not work +>a : Symbol(a, Decl(file3.ts, 2, 3)) +>x : Symbol(x, Decl(file3.ts, 0, 0)) +>A : Symbol(x.A) + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.types b/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.types new file mode 100644 index 0000000000000..1f6e77bc00aa5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals2_1.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/augmentExportEquals2_1.ts] //// + +=== file3.ts === +import x = require("file1"); +>x : any + +import "file2"; +let a: x.A; // should not work +>a : x.A +>x : any + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.errors.txt b/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.errors.txt new file mode 100644 index 0000000000000..2e80db957f502 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.errors.txt @@ -0,0 +1,31 @@ +file3.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + + +==== file1.d.ts (0 errors) ==== + declare module "file1" { + function foo(): void; + namespace foo { + export var v: number; + } + export = foo; + } + + +==== file2.ts (0 errors) ==== + /// + import x = require("file1"); + x.b = 1; + + // OK - './file1' is a namespace + declare module "file1" { + interface A { a } + let b: number; + } + +==== file3.ts (1 errors) ==== + import * as x from "file1"; + import "file2"; + ~~~~~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + let a: x.A; + let b = x.b; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.js b/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.js new file mode 100644 index 0000000000000..11a8bc10a6227 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.js @@ -0,0 +1,75 @@ +//// [tests/cases/compiler/augmentExportEquals3_1.ts] //// + +//// [file1.d.ts] +declare module "file1" { + function foo(): void; + namespace foo { + export var v: number; + } + export = foo; +} + + +//// [file2.ts] +/// +import x = require("file1"); +x.b = 1; + +// OK - './file1' is a namespace +declare module "file1" { + interface A { a } + let b: number; +} + +//// [file3.ts] +import * as x from "file1"; +import "file2"; +let a: x.A; +let b = x.b; + +//// [file2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const x = require("file1"); +x.b = 1; +//// [file3.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +const x = __importStar(require("file1")); +require("file2"); +let a; +let b = x.b; diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.symbols b/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.symbols new file mode 100644 index 0000000000000..35b57d0f18996 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.symbols @@ -0,0 +1,58 @@ +//// [tests/cases/compiler/augmentExportEquals3_1.ts] //// + +=== file1.d.ts === +declare module "file1" { +>"file1" : Symbol("file1", Decl(file1.d.ts, 0, 0)) + + function foo(): void; +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 25), Decl(file2.ts, 2, 8)) + + namespace foo { +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 25), Decl(file2.ts, 2, 8)) + + export var v: number; +>v : Symbol(v, Decl(file1.d.ts, 3, 18)) + } + export = foo; +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 25), Decl(file2.ts, 2, 8)) +} + + +=== file2.ts === +/// +import x = require("file1"); +>x : Symbol(x, Decl(file2.ts, 0, 0)) + +x.b = 1; +>x.b : Symbol(x.b, Decl(file2.ts, 7, 7)) +>x : Symbol(x, Decl(file2.ts, 0, 0)) +>b : Symbol(x.b, Decl(file2.ts, 7, 7)) + +// OK - './file1' is a namespace +declare module "file1" { +>"file1" : Symbol(x, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 25), Decl(file2.ts, 2, 8)) + + interface A { a } +>A : Symbol(A, Decl(file2.ts, 5, 24)) +>a : Symbol(A.a, Decl(file2.ts, 6, 17)) + + let b: number; +>b : Symbol(b, Decl(file2.ts, 7, 7)) +} + +=== file3.ts === +import * as x from "file1"; +>x : Symbol(x, Decl(file3.ts, 0, 6)) + +import "file2"; +let a: x.A; +>a : Symbol(a, Decl(file3.ts, 2, 3)) +>x : Symbol(x, Decl(file3.ts, 0, 6)) +>A : Symbol(x.A, Decl(file2.ts, 5, 24)) + +let b = x.b; +>b : Symbol(b, Decl(file3.ts, 3, 3)) +>x.b : Symbol(x.b, Decl(file2.ts, 7, 7)) +>x : Symbol(x, Decl(file3.ts, 0, 6)) +>b : Symbol(x.b, Decl(file2.ts, 7, 7)) + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.types b/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.types new file mode 100644 index 0000000000000..4a70df2240d62 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals3_1.types @@ -0,0 +1,58 @@ +//// [tests/cases/compiler/augmentExportEquals3_1.ts] //// + +=== file1.d.ts === +declare module "file1" { +>"file1" : typeof import("file1") + + function foo(): void; +>foo : typeof import("file1") + + namespace foo { +>foo : typeof import("file1") + + export var v: number; +>v : number + } + export = foo; +>foo : typeof import("file1") +} + + +=== file2.ts === +/// +import x = require("file1"); +>x : typeof x + +x.b = 1; +>x.b = 1 : 1 +>x.b : number +>x : typeof x +>b : number +>1 : 1 + +// OK - './file1' is a namespace +declare module "file1" { +>"file1" : typeof x + + interface A { a } +>a : any + + let b: number; +>b : number +} + +=== file3.ts === +import * as x from "file1"; +>x : typeof x + +import "file2"; +let a: x.A; +>a : x.A +>x : any + +let b = x.b; +>b : number +>x.b : number +>x : typeof x +>b : number + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.errors.txt b/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.errors.txt new file mode 100644 index 0000000000000..ddc265251fbe9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.errors.txt @@ -0,0 +1,31 @@ +file3.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + + +==== file1.d.ts (0 errors) ==== + declare module "file1" { + class foo {} + namespace foo { + export var v: number; + } + export = foo; + } + + +==== file2.ts (0 errors) ==== + /// + import x = require("file1"); + x.b = 1; + + // OK - './file1' is a namespace + declare module "file1" { + interface A { a } + let b: number; + } + +==== file3.ts (1 errors) ==== + import * as x from "file1"; + import "file2"; + ~~~~~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + let a: x.A; + let b = x.b; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.js b/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.js new file mode 100644 index 0000000000000..aeb29910e41df --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.js @@ -0,0 +1,75 @@ +//// [tests/cases/compiler/augmentExportEquals4_1.ts] //// + +//// [file1.d.ts] +declare module "file1" { + class foo {} + namespace foo { + export var v: number; + } + export = foo; +} + + +//// [file2.ts] +/// +import x = require("file1"); +x.b = 1; + +// OK - './file1' is a namespace +declare module "file1" { + interface A { a } + let b: number; +} + +//// [file3.ts] +import * as x from "file1"; +import "file2"; +let a: x.A; +let b = x.b; + +//// [file2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const x = require("file1"); +x.b = 1; +//// [file3.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +const x = __importStar(require("file1")); +require("file2"); +let a; +let b = x.b; diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.symbols b/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.symbols new file mode 100644 index 0000000000000..cfc4ac9f37eef --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.symbols @@ -0,0 +1,58 @@ +//// [tests/cases/compiler/augmentExportEquals4_1.ts] //// + +=== file1.d.ts === +declare module "file1" { +>"file1" : Symbol("file1", Decl(file1.d.ts, 0, 0)) + + class foo {} +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 16), Decl(file2.ts, 2, 8)) + + namespace foo { +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 16), Decl(file2.ts, 2, 8)) + + export var v: number; +>v : Symbol(v, Decl(file1.d.ts, 3, 18)) + } + export = foo; +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 16), Decl(file2.ts, 2, 8)) +} + + +=== file2.ts === +/// +import x = require("file1"); +>x : Symbol(x, Decl(file2.ts, 0, 0)) + +x.b = 1; +>x.b : Symbol(x.b, Decl(file2.ts, 7, 7)) +>x : Symbol(x, Decl(file2.ts, 0, 0)) +>b : Symbol(x.b, Decl(file2.ts, 7, 7)) + +// OK - './file1' is a namespace +declare module "file1" { +>"file1" : Symbol(x, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 16), Decl(file2.ts, 2, 8)) + + interface A { a } +>A : Symbol(A, Decl(file2.ts, 5, 24)) +>a : Symbol(A.a, Decl(file2.ts, 6, 17)) + + let b: number; +>b : Symbol(b, Decl(file2.ts, 7, 7)) +} + +=== file3.ts === +import * as x from "file1"; +>x : Symbol(x, Decl(file3.ts, 0, 6)) + +import "file2"; +let a: x.A; +>a : Symbol(a, Decl(file3.ts, 2, 3)) +>x : Symbol(x, Decl(file3.ts, 0, 6)) +>A : Symbol(x.A, Decl(file2.ts, 5, 24)) + +let b = x.b; +>b : Symbol(b, Decl(file3.ts, 3, 3)) +>x.b : Symbol(x.b, Decl(file2.ts, 7, 7)) +>x : Symbol(x, Decl(file3.ts, 0, 6)) +>b : Symbol(x.b, Decl(file2.ts, 7, 7)) + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.types b/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.types new file mode 100644 index 0000000000000..fcd4b549c4c2f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals4_1.types @@ -0,0 +1,58 @@ +//// [tests/cases/compiler/augmentExportEquals4_1.ts] //// + +=== file1.d.ts === +declare module "file1" { +>"file1" : typeof import("file1") + + class foo {} +>foo : import("file1") + + namespace foo { +>foo : typeof import("file1") + + export var v: number; +>v : number + } + export = foo; +>foo : import("file1") +} + + +=== file2.ts === +/// +import x = require("file1"); +>x : typeof x + +x.b = 1; +>x.b = 1 : 1 +>x.b : number +>x : typeof x +>b : number +>1 : 1 + +// OK - './file1' is a namespace +declare module "file1" { +>"file1" : typeof x + + interface A { a } +>a : any + + let b: number; +>b : number +} + +=== file3.ts === +import * as x from "file1"; +>x : typeof x + +import "file2"; +let a: x.A; +>a : x.A +>x : any + +let b = x.b; +>b : number +>x.b : number +>x : typeof x +>b : number + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.errors.txt b/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.errors.txt new file mode 100644 index 0000000000000..176a7018e74df --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.errors.txt @@ -0,0 +1,29 @@ +file3.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + + +==== file1.d.ts (0 errors) ==== + declare module "file1" { + class foo {} + namespace foo { + class A {} + } + export = foo; + } + + +==== file2.ts (0 errors) ==== + /// + import x = require("file1"); + + // OK - './file1' is a namespace + declare module "file1" { + interface A { a: number } + } + +==== file3.ts (1 errors) ==== + import * as x from "file1"; + import "file2"; + ~~~~~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'file2'. + let a: x.A; + let b = a.a; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.js b/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.js new file mode 100644 index 0000000000000..d71ffa5c38469 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/augmentExportEquals6_1.ts] //// + +//// [file1.d.ts] +declare module "file1" { + class foo {} + namespace foo { + class A {} + } + export = foo; +} + + +//// [file2.ts] +/// +import x = require("file1"); + +// OK - './file1' is a namespace +declare module "file1" { + interface A { a: number } +} + +//// [file3.ts] +import * as x from "file1"; +import "file2"; +let a: x.A; +let b = a.a; + +//// [file2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("file2"); +let a; +let b = a.a; diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.symbols b/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.symbols new file mode 100644 index 0000000000000..3a5b2f4e73f58 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.symbols @@ -0,0 +1,50 @@ +//// [tests/cases/compiler/augmentExportEquals6_1.ts] //// + +=== file1.d.ts === +declare module "file1" { +>"file1" : Symbol("file1", Decl(file1.d.ts, 0, 0)) + + class foo {} +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 16), Decl(file2.ts, 1, 28)) + + namespace foo { +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 16), Decl(file2.ts, 1, 28)) + + class A {} +>A : Symbol(A, Decl(file1.d.ts, 2, 19), Decl(file2.ts, 4, 24)) + } + export = foo; +>foo : Symbol(foo, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 16), Decl(file2.ts, 1, 28)) +} + + +=== file2.ts === +/// +import x = require("file1"); +>x : Symbol(x, Decl(file2.ts, 0, 0)) + +// OK - './file1' is a namespace +declare module "file1" { +>"file1" : Symbol(x, Decl(file1.d.ts, 0, 24), Decl(file1.d.ts, 1, 16), Decl(file2.ts, 1, 28)) + + interface A { a: number } +>A : Symbol(A, Decl(file1.d.ts, 2, 19), Decl(file2.ts, 4, 24)) +>a : Symbol(A.a, Decl(file2.ts, 5, 17)) +} + +=== file3.ts === +import * as x from "file1"; +>x : Symbol(x, Decl(file3.ts, 0, 6)) + +import "file2"; +let a: x.A; +>a : Symbol(a, Decl(file3.ts, 2, 3)) +>x : Symbol(x, Decl(file3.ts, 0, 6)) +>A : Symbol(x.A, Decl(file1.d.ts, 2, 19), Decl(file2.ts, 4, 24)) + +let b = a.a; +>b : Symbol(b, Decl(file3.ts, 3, 3)) +>a.a : Symbol(x.A.a, Decl(file2.ts, 5, 17)) +>a : Symbol(a, Decl(file3.ts, 2, 3)) +>a : Symbol(x.A.a, Decl(file2.ts, 5, 17)) + diff --git a/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.types b/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.types new file mode 100644 index 0000000000000..181c6bba01268 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentExportEquals6_1.types @@ -0,0 +1,48 @@ +//// [tests/cases/compiler/augmentExportEquals6_1.ts] //// + +=== file1.d.ts === +declare module "file1" { +>"file1" : typeof import("file1") + + class foo {} +>foo : import("file1") + + namespace foo { +>foo : typeof import("file1") + + class A {} +>A : A + } + export = foo; +>foo : import("file1") +} + + +=== file2.ts === +/// +import x = require("file1"); +>x : typeof x + +// OK - './file1' is a namespace +declare module "file1" { +>"file1" : typeof x + + interface A { a: number } +>a : number +} + +=== file3.ts === +import * as x from "file1"; +>x : typeof x + +import "file2"; +let a: x.A; +>a : x.A +>x : any + +let b = a.a; +>b : number +>a.a : number +>a : x.A +>a : number + diff --git a/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.js b/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.js new file mode 100644 index 0000000000000..ddc80b5e749d0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/augmentedTypesExternalModule1.ts] //// + +//// [augmentedTypesExternalModule1.ts] +export var a = 1; +class c5 { public foo() { } } +namespace c5 { } // should be ok everywhere + +//// [augmentedTypesExternalModule1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 1; +class c5 { + foo() { } +} diff --git a/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.symbols b/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.symbols new file mode 100644 index 0000000000000..9734c040ca6da --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/augmentedTypesExternalModule1.ts] //// + +=== augmentedTypesExternalModule1.ts === +export var a = 1; +>a : Symbol(a, Decl(augmentedTypesExternalModule1.ts, 0, 10)) + +class c5 { public foo() { } } +>c5 : Symbol(c5, Decl(augmentedTypesExternalModule1.ts, 0, 17), Decl(augmentedTypesExternalModule1.ts, 1, 29)) +>foo : Symbol(c5.foo, Decl(augmentedTypesExternalModule1.ts, 1, 10)) + +namespace c5 { } // should be ok everywhere +>c5 : Symbol(c5, Decl(augmentedTypesExternalModule1.ts, 0, 17), Decl(augmentedTypesExternalModule1.ts, 1, 29)) + diff --git a/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.types b/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.types new file mode 100644 index 0000000000000..5efb4ecd2fb74 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/augmentedTypesExternalModule1.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/augmentedTypesExternalModule1.ts] //// + +=== augmentedTypesExternalModule1.ts === +export var a = 1; +>a : number +>1 : 1 + +class c5 { public foo() { } } +>c5 : c5 +>foo : () => void + +namespace c5 { } // should be ok everywhere diff --git a/tsc/testdata/baselines/reference/compiler/bangInModuleName.js b/tsc/testdata/baselines/reference/compiler/bangInModuleName.js new file mode 100644 index 0000000000000..dfb21310a2bc1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/bangInModuleName.js @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/bangInModuleName.ts] //// + +//// [a.d.ts] +declare module "http" { +} + +declare module 'intern/dojo/node!http' { + import http = require('http'); + export = http; +} + +//// [a.ts] +/// + +import * as http from 'intern/dojo/node!http'; + +//// [a.js] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tsc/testdata/baselines/reference/compiler/bangInModuleName.symbols b/tsc/testdata/baselines/reference/compiler/bangInModuleName.symbols new file mode 100644 index 0000000000000..0477ca0793e0c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/bangInModuleName.symbols @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/bangInModuleName.ts] //// + +=== a.ts === +/// + +import * as http from 'intern/dojo/node!http'; +>http : Symbol(http, Decl(a.ts, 2, 6)) + +=== a.d.ts === +declare module "http" { +>"http" : Symbol("http", Decl(a.d.ts, 0, 0)) +} + +declare module 'intern/dojo/node!http' { +>'intern/dojo/node!http' : Symbol("intern/dojo/node!http", Decl(a.d.ts, 1, 1)) + + import http = require('http'); +>http : Symbol(http, Decl(a.d.ts, 3, 40)) + + export = http; +>http : Symbol(http, Decl(a.d.ts, 3, 40)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/bangInModuleName.types b/tsc/testdata/baselines/reference/compiler/bangInModuleName.types new file mode 100644 index 0000000000000..025c852ede7fc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/bangInModuleName.types @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/bangInModuleName.ts] //// + +=== a.ts === +/// + +import * as http from 'intern/dojo/node!http'; +>http : typeof http + +=== a.d.ts === +declare module "http" { +>"http" : typeof import("http") +} + +declare module 'intern/dojo/node!http' { +>'intern/dojo/node!http' : typeof import("intern/dojo/node!http") + + import http = require('http'); +>http : typeof http + + export = http; +>http : typeof http +} + diff --git a/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).js b/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).js new file mode 100644 index 0000000000000..49b8c0cc83051 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).js @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/blockScopedNamespaceDifferentFile.ts] //// + +//// [test.ts] +namespace C { + export class Name { + static funcData = A.AA.func(); + static someConst = A.AA.foo; + + constructor(parameters) {} + } +} + +//// [typings.d.ts] +declare namespace A { + namespace AA { + function func(): number; + const foo = ""; + } +} + + +//// [test.js] +"use strict"; +var C; +(function (C) { + class Name { + constructor(parameters) { } + } + Name.funcData = A.AA.func(); + Name.someConst = A.AA.foo; + C.Name = Name; +})(C || (C = {})); diff --git a/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).symbols new file mode 100644 index 0000000000000..565eb550cddd2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).symbols @@ -0,0 +1,45 @@ +//// [tests/cases/compiler/blockScopedNamespaceDifferentFile.ts] //// + +=== test.ts === +namespace C { +>C : Symbol(C, Decl(test.ts, 0, 0)) + + export class Name { +>Name : Symbol(Name, Decl(test.ts, 0, 13)) + + static funcData = A.AA.func(); +>funcData : Symbol(Name.funcData, Decl(test.ts, 1, 23)) +>A.AA.func : Symbol(A.AA.func, Decl(typings.d.ts, 1, 18)) +>A.AA : Symbol(A.AA, Decl(typings.d.ts, 0, 21)) +>A : Symbol(A, Decl(typings.d.ts, 0, 0)) +>AA : Symbol(A.AA, Decl(typings.d.ts, 0, 21)) +>func : Symbol(A.AA.func, Decl(typings.d.ts, 1, 18)) + + static someConst = A.AA.foo; +>someConst : Symbol(Name.someConst, Decl(test.ts, 2, 38)) +>A.AA.foo : Symbol(A.AA.foo, Decl(typings.d.ts, 3, 13)) +>A.AA : Symbol(A.AA, Decl(typings.d.ts, 0, 21)) +>A : Symbol(A, Decl(typings.d.ts, 0, 0)) +>AA : Symbol(A.AA, Decl(typings.d.ts, 0, 21)) +>foo : Symbol(A.AA.foo, Decl(typings.d.ts, 3, 13)) + + constructor(parameters) {} +>parameters : Symbol(parameters, Decl(test.ts, 5, 20)) + } +} + +=== typings.d.ts === +declare namespace A { +>A : Symbol(A, Decl(typings.d.ts, 0, 0)) + + namespace AA { +>AA : Symbol(AA, Decl(typings.d.ts, 0, 21)) + + function func(): number; +>func : Symbol(func, Decl(typings.d.ts, 1, 18)) + + const foo = ""; +>foo : Symbol(foo, Decl(typings.d.ts, 3, 13)) + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).types b/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).types new file mode 100644 index 0000000000000..48d60bab74124 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/blockScopedNamespaceDifferentFile(target=es2015).types @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/blockScopedNamespaceDifferentFile.ts] //// + +=== test.ts === +namespace C { +>C : typeof C + + export class Name { +>Name : Name + + static funcData = A.AA.func(); +>funcData : number +>A.AA.func() : number +>A.AA.func : () => number +>A.AA : typeof A.AA +>A : typeof A +>AA : typeof A.AA +>func : () => number + + static someConst = A.AA.foo; +>someConst : string +>A.AA.foo : "" +>A.AA : typeof A.AA +>A : typeof A +>AA : typeof A.AA +>foo : "" + + constructor(parameters) {} +>parameters : any + } +} + +=== typings.d.ts === +declare namespace A { +>A : typeof A + + namespace AA { +>AA : typeof AA + + function func(): number; +>func : () => number + + const foo = ""; +>foo : "" +>"" : "" + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/cacheResolutions.js b/tsc/testdata/baselines/reference/compiler/cacheResolutions.js new file mode 100644 index 0000000000000..59b9a455619dc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/cacheResolutions.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/cacheResolutions.ts] //// + +//// [app.ts] +export let x = 1; + +//// [lib1.ts] +export let x = 1; + +//// [lib2.ts] +export let x = 1; + +//// [app.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x = 1; +//// [lib1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x = 1; +//// [lib2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x = 1; diff --git a/tsc/testdata/baselines/reference/compiler/cacheResolutions.symbols b/tsc/testdata/baselines/reference/compiler/cacheResolutions.symbols new file mode 100644 index 0000000000000..8bdcae6654ceb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/cacheResolutions.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/cacheResolutions.ts] //// + +=== /a/b/c/app.ts === +export let x = 1; +>x : Symbol(x, Decl(app.ts, 0, 10)) + +=== /a/b/c/lib1.ts === +export let x = 1; +>x : Symbol(x, Decl(lib1.ts, 0, 10)) + +=== /a/b/c/lib2.ts === +export let x = 1; +>x : Symbol(x, Decl(lib2.ts, 0, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/cacheResolutions.trace.json b/tsc/testdata/baselines/reference/compiler/cacheResolutions.trace.json new file mode 100644 index 0000000000000..fff26ed32a10b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/cacheResolutions.trace.json @@ -0,0 +1,57 @@ +======== Resolving module 'tslib' from '/a/b/c/app.ts'. ======== +Module resolution kind is not specified, using 'Bundler'. +Resolving in CJS mode with conditions 'require', 'types'. +File '/a/b/c/package.json' does not exist. +File '/a/b/package.json' does not exist. +File '/a/package.json' does not exist. +File '/package.json' does not exist. +Loading module 'tslib' from 'node_modules' folder, target file types: TypeScript, JavaScript, Declaration, JSON. +Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Directory '/a/b/c/node_modules' does not exist, skipping all lookups in it. +Directory '/a/b/node_modules' does not exist, skipping all lookups in it. +Directory '/a/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 '/a/b/c/node_modules' does not exist, skipping all lookups in it. +Directory '/a/b/node_modules' does not exist, skipping all lookups in it. +Directory '/a/node_modules' does not exist, skipping all lookups in it. +Directory '/node_modules' does not exist, skipping all lookups in it. +======== Module name 'tslib' was not resolved. ======== +======== Resolving module 'tslib' from '/a/b/c/lib1.ts'. ======== +Module resolution kind is not specified, using 'Bundler'. +Resolving in CJS mode with conditions 'require', 'types'. +File '/a/b/c/package.json' does not exist according to earlier cached lookups. +File '/a/b/package.json' does not exist according to earlier cached lookups. +File '/a/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +Loading module 'tslib' from 'node_modules' folder, target file types: TypeScript, JavaScript, Declaration, JSON. +Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Directory '/a/b/c/node_modules' does not exist, skipping all lookups in it. +Directory '/a/b/node_modules' does not exist, skipping all lookups in it. +Directory '/a/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 '/a/b/c/node_modules' does not exist, skipping all lookups in it. +Directory '/a/b/node_modules' does not exist, skipping all lookups in it. +Directory '/a/node_modules' does not exist, skipping all lookups in it. +Directory '/node_modules' does not exist, skipping all lookups in it. +======== Module name 'tslib' was not resolved. ======== +======== Resolving module 'tslib' from '/a/b/c/lib2.ts'. ======== +Module resolution kind is not specified, using 'Bundler'. +Resolving in CJS mode with conditions 'require', 'types'. +File '/a/b/c/package.json' does not exist according to earlier cached lookups. +File '/a/b/package.json' does not exist according to earlier cached lookups. +File '/a/package.json' does not exist according to earlier cached lookups. +File '/package.json' does not exist according to earlier cached lookups. +Loading module 'tslib' from 'node_modules' folder, target file types: TypeScript, JavaScript, Declaration, JSON. +Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration. +Directory '/a/b/c/node_modules' does not exist, skipping all lookups in it. +Directory '/a/b/node_modules' does not exist, skipping all lookups in it. +Directory '/a/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 '/a/b/c/node_modules' does not exist, skipping all lookups in it. +Directory '/a/b/node_modules' does not exist, skipping all lookups in it. +Directory '/a/node_modules' does not exist, skipping all lookups in it. +Directory '/node_modules' does not exist, skipping all lookups in it. +======== Module name 'tslib' was not resolved. ======== diff --git a/tsc/testdata/baselines/reference/compiler/cacheResolutions.types b/tsc/testdata/baselines/reference/compiler/cacheResolutions.types new file mode 100644 index 0000000000000..af9a4d6388a8b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/cacheResolutions.types @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/cacheResolutions.ts] //// + +=== /a/b/c/app.ts === +export let x = 1; +>x : number +>1 : 1 + +=== /a/b/c/lib1.ts === +export let x = 1; +>x : number +>1 : 1 + +=== /a/b/c/lib2.ts === +export let x = 1; +>x : number +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.errors.txt b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.errors.txt new file mode 100644 index 0000000000000..a2635142096ff --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.errors.txt @@ -0,0 +1,43 @@ +collisionExportsRequireAndClass_externalmodule.ts(1,14): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. +collisionExportsRequireAndClass_externalmodule.ts(3,14): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + + +==== collisionExportsRequireAndClass_externalmodule.ts (2 errors) ==== + export class require { + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + } + export class exports { + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + } + namespace m1 { + class require { + } + class exports { + } + } + namespace m2 { + export class require { + } + export class exports { + } + } + +==== collisionExportsRequireAndClass_globalFile.ts (0 errors) ==== + class require { + } + class exports { + } + namespace m3 { + class require { + } + class exports { + } + } + namespace m4 { + export class require { + } + export class exports { + } + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.js b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.js new file mode 100644 index 0000000000000..05d0d4eb88505 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.js @@ -0,0 +1,86 @@ +//// [tests/cases/compiler/collisionExportsRequireAndClass.ts] //// + +//// [collisionExportsRequireAndClass_externalmodule.ts] +export class require { +} +export class exports { +} +namespace m1 { + class require { + } + class exports { + } +} +namespace m2 { + export class require { + } + export class exports { + } +} + +//// [collisionExportsRequireAndClass_globalFile.ts] +class require { +} +class exports { +} +namespace m3 { + class require { + } + class exports { + } +} +namespace m4 { + export class require { + } + export class exports { + } +} + +//// [collisionExportsRequireAndClass_externalmodule.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.exports = exports.require = void 0; +class require { +} +exports.require = require; +class exports { +} +exports.exports = exports; +var m1; +(function (m1) { + class require { + } + class exports { + } +})(m1 || (m1 = {})); +var m2; +(function (m2) { + class require { + } + m2.require = require; + class exports { + } + m2.exports = exports; +})(m2 || (m2 = {})); +//// [collisionExportsRequireAndClass_globalFile.js] +"use strict"; +class require { +} +class exports { +} +var m3; +(function (m3) { + class require { + } + class exports { + } +})(m3 || (m3 = {})); +var m4; +(function (m4) { + class require { + } + m4.require = require; + class exports { + } + m4.exports = exports; +})(m4 || (m4 = {})); diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.symbols b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.symbols new file mode 100644 index 0000000000000..d6446f9ea733b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.symbols @@ -0,0 +1,57 @@ +//// [tests/cases/compiler/collisionExportsRequireAndClass.ts] //// + +=== collisionExportsRequireAndClass_externalmodule.ts === +export class require { +>require : Symbol(require, Decl(collisionExportsRequireAndClass_externalmodule.ts, 0, 0)) +} +export class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndClass_externalmodule.ts, 1, 1)) +} +namespace m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndClass_externalmodule.ts, 3, 1)) + + class require { +>require : Symbol(require, Decl(collisionExportsRequireAndClass_externalmodule.ts, 4, 14)) + } + class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndClass_externalmodule.ts, 6, 5)) + } +} +namespace m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndClass_externalmodule.ts, 9, 1)) + + export class require { +>require : Symbol(require, Decl(collisionExportsRequireAndClass_externalmodule.ts, 10, 14)) + } + export class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndClass_externalmodule.ts, 12, 5)) + } +} + +=== collisionExportsRequireAndClass_globalFile.ts === +class require { +>require : Symbol(require, Decl(collisionExportsRequireAndClass_globalFile.ts, 0, 0)) +} +class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndClass_globalFile.ts, 1, 1)) +} +namespace m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndClass_globalFile.ts, 3, 1)) + + class require { +>require : Symbol(require, Decl(collisionExportsRequireAndClass_globalFile.ts, 4, 14)) + } + class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndClass_globalFile.ts, 6, 5)) + } +} +namespace m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndClass_globalFile.ts, 9, 1)) + + export class require { +>require : Symbol(require, Decl(collisionExportsRequireAndClass_globalFile.ts, 10, 14)) + } + export class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndClass_globalFile.ts, 12, 5)) + } +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.types b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.types new file mode 100644 index 0000000000000..d9bc7269dbe2d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndClass.types @@ -0,0 +1,57 @@ +//// [tests/cases/compiler/collisionExportsRequireAndClass.ts] //// + +=== collisionExportsRequireAndClass_externalmodule.ts === +export class require { +>require : require +} +export class exports { +>exports : exports +} +namespace m1 { +>m1 : typeof m1 + + class require { +>require : require + } + class exports { +>exports : exports + } +} +namespace m2 { +>m2 : typeof m2 + + export class require { +>require : require + } + export class exports { +>exports : exports + } +} + +=== collisionExportsRequireAndClass_globalFile.ts === +class require { +>require : require +} +class exports { +>exports : exports +} +namespace m3 { +>m3 : typeof m3 + + class require { +>require : require + } + class exports { +>exports : exports + } +} +namespace m4 { +>m4 : typeof m4 + + export class require { +>require : require + } + export class exports { +>exports : exports + } +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.errors.txt b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.errors.txt new file mode 100644 index 0000000000000..c929a282c8d49 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.errors.txt @@ -0,0 +1,67 @@ +collisionExportsRequireAndEnum_externalmodule.ts(1,13): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. +collisionExportsRequireAndEnum_externalmodule.ts(5,13): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + + +==== collisionExportsRequireAndEnum_externalmodule.ts (2 errors) ==== + export enum require { // Error + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + _thisVal1, + _thisVal2, + } + export enum exports { // Error + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + _thisVal1, + _thisVal2, + } + namespace m1 { + enum require { + _thisVal1, + _thisVal2, + } + enum exports { + _thisVal1, + _thisVal2, + } + } + namespace m2 { + export enum require { + _thisVal1, + _thisVal2, + } + export enum exports { + _thisVal1, + _thisVal2, + } + } + +==== collisionExportsRequireAndEnum_globalFile.ts (0 errors) ==== + enum require { + _thisVal1, + _thisVal2, + } + enum exports { + _thisVal1, + _thisVal2, + } + namespace m3 { + enum require { + _thisVal1, + _thisVal2, + } + enum exports { + _thisVal1, + _thisVal2, + } + } + namespace m4 { + export enum require { + _thisVal1, + _thisVal2, + } + export enum exports { + _thisVal1, + _thisVal2, + } + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.js b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.js new file mode 100644 index 0000000000000..92701f2c56563 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.js @@ -0,0 +1,140 @@ +//// [tests/cases/compiler/collisionExportsRequireAndEnum.ts] //// + +//// [collisionExportsRequireAndEnum_externalmodule.ts] +export enum require { // Error + _thisVal1, + _thisVal2, +} +export enum exports { // Error + _thisVal1, + _thisVal2, +} +namespace m1 { + enum require { + _thisVal1, + _thisVal2, + } + enum exports { + _thisVal1, + _thisVal2, + } +} +namespace m2 { + export enum require { + _thisVal1, + _thisVal2, + } + export enum exports { + _thisVal1, + _thisVal2, + } +} + +//// [collisionExportsRequireAndEnum_globalFile.ts] +enum require { + _thisVal1, + _thisVal2, +} +enum exports { + _thisVal1, + _thisVal2, +} +namespace m3 { + enum require { + _thisVal1, + _thisVal2, + } + enum exports { + _thisVal1, + _thisVal2, + } +} +namespace m4 { + export enum require { + _thisVal1, + _thisVal2, + } + export enum exports { + _thisVal1, + _thisVal2, + } +} + +//// [collisionExportsRequireAndEnum_externalmodule.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.exports = exports.require = void 0; +var require; +(function (require) { + require[require["_thisVal1"] = 0] = "_thisVal1"; + require[require["_thisVal2"] = 1] = "_thisVal2"; +})(require || (exports.require = require = {})); +var exports; +(function (exports) { + exports[exports["_thisVal1"] = 0] = "_thisVal1"; + exports[exports["_thisVal2"] = 1] = "_thisVal2"; +})(exports || (exports.exports = exports = {})); +var m1; +(function (m1) { + let require; + (function (require) { + require[require["_thisVal1"] = 0] = "_thisVal1"; + require[require["_thisVal2"] = 1] = "_thisVal2"; + })(require || (require = {})); + let exports; + (function (exports) { + exports[exports["_thisVal1"] = 0] = "_thisVal1"; + exports[exports["_thisVal2"] = 1] = "_thisVal2"; + })(exports || (exports = {})); +})(m1 || (m1 = {})); +var m2; +(function (m2) { + let require; + (function (require) { + require[require["_thisVal1"] = 0] = "_thisVal1"; + require[require["_thisVal2"] = 1] = "_thisVal2"; + })(require = m2.require || (m2.require = {})); + let exports; + (function (exports) { + exports[exports["_thisVal1"] = 0] = "_thisVal1"; + exports[exports["_thisVal2"] = 1] = "_thisVal2"; + })(exports = m2.exports || (m2.exports = {})); +})(m2 || (m2 = {})); +//// [collisionExportsRequireAndEnum_globalFile.js] +"use strict"; +var require; +(function (require) { + require[require["_thisVal1"] = 0] = "_thisVal1"; + require[require["_thisVal2"] = 1] = "_thisVal2"; +})(require || (require = {})); +var exports; +(function (exports) { + exports[exports["_thisVal1"] = 0] = "_thisVal1"; + exports[exports["_thisVal2"] = 1] = "_thisVal2"; +})(exports || (exports = {})); +var m3; +(function (m3) { + let require; + (function (require) { + require[require["_thisVal1"] = 0] = "_thisVal1"; + require[require["_thisVal2"] = 1] = "_thisVal2"; + })(require || (require = {})); + let exports; + (function (exports) { + exports[exports["_thisVal1"] = 0] = "_thisVal1"; + exports[exports["_thisVal2"] = 1] = "_thisVal2"; + })(exports || (exports = {})); +})(m3 || (m3 = {})); +var m4; +(function (m4) { + let require; + (function (require) { + require[require["_thisVal1"] = 0] = "_thisVal1"; + require[require["_thisVal2"] = 1] = "_thisVal2"; + })(require = m4.require || (m4.require = {})); + let exports; + (function (exports) { + exports[exports["_thisVal1"] = 0] = "_thisVal1"; + exports[exports["_thisVal2"] = 1] = "_thisVal2"; + })(exports = m4.exports || (m4.exports = {})); +})(m4 || (m4 = {})); diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.symbols b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.symbols new file mode 100644 index 0000000000000..4ea0e744f4398 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.symbols @@ -0,0 +1,129 @@ +//// [tests/cases/compiler/collisionExportsRequireAndEnum.ts] //// + +=== collisionExportsRequireAndEnum_externalmodule.ts === +export enum require { // Error +>require : Symbol(require, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 0, 0)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 0, 21)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 1, 14)) +} +export enum exports { // Error +>exports : Symbol(exports, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 3, 1)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 4, 21)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 5, 14)) +} +namespace m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 7, 1)) + + enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 8, 14)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 9, 18)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 10, 18)) + } + enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 12, 5)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 13, 18)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 14, 18)) + } +} +namespace m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 17, 1)) + + export enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 18, 14)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 19, 25)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 20, 18)) + } + export enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 22, 5)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 23, 25)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndEnum_externalmodule.ts, 24, 18)) + } +} + +=== collisionExportsRequireAndEnum_globalFile.ts === +enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndEnum_globalFile.ts, 0, 0)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndEnum_globalFile.ts, 0, 14)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndEnum_globalFile.ts, 1, 14)) +} +enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndEnum_globalFile.ts, 3, 1)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndEnum_globalFile.ts, 4, 14)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndEnum_globalFile.ts, 5, 14)) +} +namespace m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndEnum_globalFile.ts, 7, 1)) + + enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndEnum_globalFile.ts, 8, 14)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndEnum_globalFile.ts, 9, 18)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndEnum_globalFile.ts, 10, 18)) + } + enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndEnum_globalFile.ts, 12, 5)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndEnum_globalFile.ts, 13, 18)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndEnum_globalFile.ts, 14, 18)) + } +} +namespace m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndEnum_globalFile.ts, 17, 1)) + + export enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndEnum_globalFile.ts, 18, 14)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndEnum_globalFile.ts, 19, 25)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndEnum_globalFile.ts, 20, 18)) + } + export enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndEnum_globalFile.ts, 22, 5)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndEnum_globalFile.ts, 23, 25)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndEnum_globalFile.ts, 24, 18)) + } +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.types b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.types new file mode 100644 index 0000000000000..3cde99df60634 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndEnum.types @@ -0,0 +1,129 @@ +//// [tests/cases/compiler/collisionExportsRequireAndEnum.ts] //// + +=== collisionExportsRequireAndEnum_externalmodule.ts === +export enum require { // Error +>require : require + + _thisVal1, +>_thisVal1 : require._thisVal1 + + _thisVal2, +>_thisVal2 : require._thisVal2 +} +export enum exports { // Error +>exports : exports + + _thisVal1, +>_thisVal1 : exports._thisVal1 + + _thisVal2, +>_thisVal2 : exports._thisVal2 +} +namespace m1 { +>m1 : typeof m1 + + enum require { +>require : require + + _thisVal1, +>_thisVal1 : require._thisVal1 + + _thisVal2, +>_thisVal2 : require._thisVal2 + } + enum exports { +>exports : exports + + _thisVal1, +>_thisVal1 : exports._thisVal1 + + _thisVal2, +>_thisVal2 : exports._thisVal2 + } +} +namespace m2 { +>m2 : typeof m2 + + export enum require { +>require : require + + _thisVal1, +>_thisVal1 : require._thisVal1 + + _thisVal2, +>_thisVal2 : require._thisVal2 + } + export enum exports { +>exports : exports + + _thisVal1, +>_thisVal1 : exports._thisVal1 + + _thisVal2, +>_thisVal2 : exports._thisVal2 + } +} + +=== collisionExportsRequireAndEnum_globalFile.ts === +enum require { +>require : require + + _thisVal1, +>_thisVal1 : require._thisVal1 + + _thisVal2, +>_thisVal2 : require._thisVal2 +} +enum exports { +>exports : exports + + _thisVal1, +>_thisVal1 : exports._thisVal1 + + _thisVal2, +>_thisVal2 : exports._thisVal2 +} +namespace m3 { +>m3 : typeof m3 + + enum require { +>require : require + + _thisVal1, +>_thisVal1 : require._thisVal1 + + _thisVal2, +>_thisVal2 : require._thisVal2 + } + enum exports { +>exports : exports + + _thisVal1, +>_thisVal1 : exports._thisVal1 + + _thisVal2, +>_thisVal2 : exports._thisVal2 + } +} +namespace m4 { +>m4 : typeof m4 + + export enum require { +>require : require + + _thisVal1, +>_thisVal1 : require._thisVal1 + + _thisVal2, +>_thisVal2 : require._thisVal2 + } + export enum exports { +>exports : exports + + _thisVal1, +>_thisVal1 : exports._thisVal1 + + _thisVal2, +>_thisVal2 : exports._thisVal2 + } +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.errors.txt b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.errors.txt new file mode 100644 index 0000000000000..414dfe834f90f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.errors.txt @@ -0,0 +1,31 @@ +collisionExportsRequireAndFunction.ts(1,17): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +collisionExportsRequireAndFunction.ts(4,17): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + + +==== collisionExportsRequireAndFunction.ts (2 errors) ==== + export function exports() { + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + return 1; + } + export function require() { + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + return "require"; + } + namespace m1 { + function exports() { + return 1; + } + function require() { + return "require"; + } + } + namespace m2 { + export function exports() { + return 1; + } + export function require() { + return "require"; + } + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.js b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.js new file mode 100644 index 0000000000000..2f59c38f75b07 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.js @@ -0,0 +1,57 @@ +//// [tests/cases/compiler/collisionExportsRequireAndFunction.ts] //// + +//// [collisionExportsRequireAndFunction.ts] +export function exports() { + return 1; +} +export function require() { + return "require"; +} +namespace m1 { + function exports() { + return 1; + } + function require() { + return "require"; + } +} +namespace m2 { + export function exports() { + return 1; + } + export function require() { + return "require"; + } +} + +//// [collisionExportsRequireAndFunction.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.exports = exports; +exports.require = require; +function exports() { + return 1; +} +function require() { + return "require"; +} +var m1; +(function (m1) { + function exports() { + return 1; + } + function require() { + return "require"; + } +})(m1 || (m1 = {})); +var m2; +(function (m2) { + function exports() { + return 1; + } + m2.exports = exports; + function require() { + return "require"; + } + m2.require = require; +})(m2 || (m2 = {})); diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.symbols b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.symbols new file mode 100644 index 0000000000000..ec4800881fcc0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.symbols @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/collisionExportsRequireAndFunction.ts] //// + +=== collisionExportsRequireAndFunction.ts === +export function exports() { +>exports : Symbol(exports, Decl(collisionExportsRequireAndFunction.ts, 0, 0)) + + return 1; +} +export function require() { +>require : Symbol(require, Decl(collisionExportsRequireAndFunction.ts, 2, 1)) + + return "require"; +} +namespace m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndFunction.ts, 5, 1)) + + function exports() { +>exports : Symbol(exports, Decl(collisionExportsRequireAndFunction.ts, 6, 14)) + + return 1; + } + function require() { +>require : Symbol(require, Decl(collisionExportsRequireAndFunction.ts, 9, 5)) + + return "require"; + } +} +namespace m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndFunction.ts, 13, 1)) + + export function exports() { +>exports : Symbol(exports, Decl(collisionExportsRequireAndFunction.ts, 14, 14)) + + return 1; + } + export function require() { +>require : Symbol(require, Decl(collisionExportsRequireAndFunction.ts, 17, 5)) + + return "require"; + } +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.types b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.types new file mode 100644 index 0000000000000..8774b8341a134 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndFunction.types @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/collisionExportsRequireAndFunction.ts] //// + +=== collisionExportsRequireAndFunction.ts === +export function exports() { +>exports : () => number + + return 1; +>1 : 1 +} +export function require() { +>require : () => string + + return "require"; +>"require" : "require" +} +namespace m1 { +>m1 : typeof m1 + + function exports() { +>exports : () => number + + return 1; +>1 : 1 + } + function require() { +>require : () => string + + return "require"; +>"require" : "require" + } +} +namespace m2 { +>m2 : typeof m2 + + export function exports() { +>exports : () => number + + return 1; +>1 : 1 + } + export function require() { +>require : () => string + + return "require"; +>"require" : "require" + } +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.errors.txt b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.errors.txt new file mode 100644 index 0000000000000..6eb1079637611 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.errors.txt @@ -0,0 +1,31 @@ +collisionExportsRequireAndInternalModuleAlias.ts(5,8): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +collisionExportsRequireAndInternalModuleAlias.ts(6,8): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + + +==== collisionExportsRequireAndInternalModuleAlias.ts (2 errors) ==== + export namespace m { + export class c { + } + } + import exports = m.c; + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + import require = m.c; + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + new exports(); + new require(); + + namespace m1 { + import exports = m.c; + import require = m.c; + new exports(); + new require(); + } + + namespace m2 { + export import exports = m.c; + export import require = m.c; + new exports(); + new require(); + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.js b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.js new file mode 100644 index 0000000000000..20b9f38cd1a3f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.js @@ -0,0 +1,54 @@ +//// [tests/cases/compiler/collisionExportsRequireAndInternalModuleAlias.ts] //// + +//// [collisionExportsRequireAndInternalModuleAlias.ts] +export namespace m { + export class c { + } +} +import exports = m.c; +import require = m.c; +new exports(); +new require(); + +namespace m1 { + import exports = m.c; + import require = m.c; + new exports(); + new require(); +} + +namespace m2 { + export import exports = m.c; + export import require = m.c; + new exports(); + new require(); +} + +//// [collisionExportsRequireAndInternalModuleAlias.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.m = void 0; +var m; +(function (m) { + class c { + } + m.c = c; +})(m || (exports.m = m = {})); +var exports = m.c; +var require = m.c; +new exports(); +new require(); +var m1; +(function (m1) { + var exports = m.c; + var require = m.c; + new exports(); + new require(); +})(m1 || (m1 = {})); +var m2; +(function (m2) { + m2.exports = m.c; + m2.require = m.c; + new m2.exports(); + new m2.require(); +})(m2 || (m2 = {})); diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.symbols b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.symbols new file mode 100644 index 0000000000000..af2fc2c8a3197 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.symbols @@ -0,0 +1,65 @@ +//// [tests/cases/compiler/collisionExportsRequireAndInternalModuleAlias.ts] //// + +=== collisionExportsRequireAndInternalModuleAlias.ts === +export namespace m { +>m : Symbol(m, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 20)) + } +} +import exports = m.c; +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 3, 1)) +>m : Symbol(m, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 20)) + +import require = m.c; +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 4, 21)) +>m : Symbol(m, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 20)) + +new exports(); +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 3, 1)) + +new require(); +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 4, 21)) + +namespace m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 7, 14)) + + import exports = m.c; +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 9, 14)) +>m : Symbol(m, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 20)) + + import require = m.c; +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 10, 25)) +>m : Symbol(m, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 20)) + + new exports(); +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 9, 14)) + + new require(); +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 10, 25)) +} + +namespace m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 14, 1)) + + export import exports = m.c; +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 16, 14)) +>m : Symbol(m, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 20)) + + export import require = m.c; +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 17, 32)) +>m : Symbol(m, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 0, 20)) + + new exports(); +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 16, 14)) + + new require(); +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAlias.ts, 17, 32)) +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.types b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.types new file mode 100644 index 0000000000000..cb386b3fd95ba --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndInternalModuleAlias.types @@ -0,0 +1,71 @@ +//// [tests/cases/compiler/collisionExportsRequireAndInternalModuleAlias.ts] //// + +=== collisionExportsRequireAndInternalModuleAlias.ts === +export namespace m { +>m : typeof m + + export class c { +>c : c + } +} +import exports = m.c; +>exports : typeof exports +>m : typeof m +>c : exports + +import require = m.c; +>require : typeof exports +>m : typeof m +>c : exports + +new exports(); +>new exports() : exports +>exports : typeof exports + +new require(); +>new require() : exports +>require : typeof exports + +namespace m1 { +>m1 : typeof m1 + + import exports = m.c; +>exports : typeof exports +>m : typeof m +>c : exports + + import require = m.c; +>require : typeof exports +>m : typeof m +>c : exports + + new exports(); +>new exports() : exports +>exports : typeof exports + + new require(); +>new require() : exports +>require : typeof exports +} + +namespace m2 { +>m2 : typeof m2 + + export import exports = m.c; +>exports : typeof exports +>m : typeof m +>c : exports + + export import require = m.c; +>require : typeof exports +>m : typeof m +>c : exports + + new exports(); +>new exports() : exports +>exports : typeof exports + + new require(); +>new require() : exports +>require : typeof exports +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.errors.txt b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.errors.txt new file mode 100644 index 0000000000000..aecf2080c3bc7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.errors.txt @@ -0,0 +1,104 @@ +collisionExportsRequireAndModule_externalmodule.ts(1,18): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. +collisionExportsRequireAndModule_externalmodule.ts(8,5): error TS2322: Type 'null' is not assignable to type 'I'. +collisionExportsRequireAndModule_externalmodule.ts(10,18): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +collisionExportsRequireAndModule_externalmodule.ts(17,5): error TS2322: Type 'null' is not assignable to type 'I'. + + +==== collisionExportsRequireAndModule_externalmodule.ts (4 errors) ==== + export namespace require { + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + export interface I { + } + export class C { + } + } + export function foo(): require.I { + return null; + ~~~~~~ +!!! error TS2322: Type 'null' is not assignable to type 'I'. + } + export namespace exports { + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + export interface I { + } + export class C { + } + } + export function foo2(): exports.I { + return null; + ~~~~~~ +!!! error TS2322: Type 'null' is not assignable to type 'I'. + } + namespace m1 { + namespace require { + export interface I { + } + export class C { + } + } + namespace exports { + export interface I { + } + export class C { + } + } + } + namespace m2 { + export namespace require { + export interface I { + } + export class C { + } + } + export namespace exports { + export interface I { + } + export class C { + } + } + } + +==== collisionExportsRequireAndModule_globalFile.ts (0 errors) ==== + namespace require { + export interface I { + } + export class C { + } + } + namespace exports { + export interface I { + } + export class C { + } + } + namespace m3 { + namespace require { + export interface I { + } + export class C { + } + } + namespace exports { + export interface I { + } + export class C { + } + } + } + namespace m4 { + export namespace require { + export interface I { + } + export class C { + } + } + export namespace exports { + export interface I { + } + export class C { + } + } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.js b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.js new file mode 100644 index 0000000000000..bede80115730e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.js @@ -0,0 +1,191 @@ +//// [tests/cases/compiler/collisionExportsRequireAndModule.ts] //// + +//// [collisionExportsRequireAndModule_externalmodule.ts] +export namespace require { + export interface I { + } + export class C { + } +} +export function foo(): require.I { + return null; +} +export namespace exports { + export interface I { + } + export class C { + } +} +export function foo2(): exports.I { + return null; +} +namespace m1 { + namespace require { + export interface I { + } + export class C { + } + } + namespace exports { + export interface I { + } + export class C { + } + } +} +namespace m2 { + export namespace require { + export interface I { + } + export class C { + } + } + export namespace exports { + export interface I { + } + export class C { + } + } +} + +//// [collisionExportsRequireAndModule_globalFile.ts] +namespace require { + export interface I { + } + export class C { + } +} +namespace exports { + export interface I { + } + export class C { + } +} +namespace m3 { + namespace require { + export interface I { + } + export class C { + } + } + namespace exports { + export interface I { + } + export class C { + } + } +} +namespace m4 { + export namespace require { + export interface I { + } + export class C { + } + } + export namespace exports { + export interface I { + } + export class C { + } + } +} + + +//// [collisionExportsRequireAndModule_externalmodule.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.exports = exports.require = void 0; +exports.foo = foo; +exports.foo2 = foo2; +var require; +(function (require) { + class C { + } + require.C = C; +})(require || (exports.require = require = {})); +function foo() { + return null; +} +var exports; +(function (exports) { + class C { + } + exports.C = C; +})(exports || (exports.exports = exports = {})); +function foo2() { + return null; +} +var m1; +(function (m1) { + let require; + (function (require) { + class C { + } + require.C = C; + })(require || (require = {})); + let exports; + (function (exports) { + class C { + } + exports.C = C; + })(exports || (exports = {})); +})(m1 || (m1 = {})); +var m2; +(function (m2) { + let require; + (function (require) { + class C { + } + require.C = C; + })(require = m2.require || (m2.require = {})); + let exports; + (function (exports) { + class C { + } + exports.C = C; + })(exports = m2.exports || (m2.exports = {})); +})(m2 || (m2 = {})); +//// [collisionExportsRequireAndModule_globalFile.js] +"use strict"; +var require; +(function (require) { + class C { + } + require.C = C; +})(require || (require = {})); +var exports; +(function (exports) { + class C { + } + exports.C = C; +})(exports || (exports = {})); +var m3; +(function (m3) { + let require; + (function (require) { + class C { + } + require.C = C; + })(require || (require = {})); + let exports; + (function (exports) { + class C { + } + exports.C = C; + })(exports || (exports = {})); +})(m3 || (m3 = {})); +var m4; +(function (m4) { + let require; + (function (require) { + class C { + } + require.C = C; + })(require = m4.require || (m4.require = {})); + let exports; + (function (exports) { + class C { + } + exports.C = C; + })(exports = m4.exports || (m4.exports = {})); +})(m4 || (m4 = {})); diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.symbols b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.symbols new file mode 100644 index 0000000000000..77e441d951e31 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.symbols @@ -0,0 +1,156 @@ +//// [tests/cases/compiler/collisionExportsRequireAndModule.ts] //// + +=== collisionExportsRequireAndModule_externalmodule.ts === +export namespace require { +>require : Symbol(require, Decl(collisionExportsRequireAndModule_externalmodule.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_externalmodule.ts, 0, 26)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_externalmodule.ts, 2, 5)) + } +} +export function foo(): require.I { +>foo : Symbol(foo, Decl(collisionExportsRequireAndModule_externalmodule.ts, 5, 1)) +>require : Symbol(require, Decl(collisionExportsRequireAndModule_externalmodule.ts, 0, 0)) +>I : Symbol(require.I, Decl(collisionExportsRequireAndModule_externalmodule.ts, 0, 26)) + + return null; +} +export namespace exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndModule_externalmodule.ts, 8, 1)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_externalmodule.ts, 9, 26)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_externalmodule.ts, 11, 5)) + } +} +export function foo2(): exports.I { +>foo2 : Symbol(foo2, Decl(collisionExportsRequireAndModule_externalmodule.ts, 14, 1)) +>exports : Symbol(exports, Decl(collisionExportsRequireAndModule_externalmodule.ts, 8, 1)) +>I : Symbol(exports.I, Decl(collisionExportsRequireAndModule_externalmodule.ts, 9, 26)) + + return null; +} +namespace m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndModule_externalmodule.ts, 17, 1)) + + namespace require { +>require : Symbol(require, Decl(collisionExportsRequireAndModule_externalmodule.ts, 18, 14)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_externalmodule.ts, 19, 23)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_externalmodule.ts, 21, 9)) + } + } + namespace exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndModule_externalmodule.ts, 24, 5)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_externalmodule.ts, 25, 23)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_externalmodule.ts, 27, 9)) + } + } +} +namespace m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndModule_externalmodule.ts, 31, 1)) + + export namespace require { +>require : Symbol(require, Decl(collisionExportsRequireAndModule_externalmodule.ts, 32, 14)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_externalmodule.ts, 33, 30)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_externalmodule.ts, 35, 9)) + } + } + export namespace exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndModule_externalmodule.ts, 38, 5)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_externalmodule.ts, 39, 30)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_externalmodule.ts, 41, 9)) + } + } +} + +=== collisionExportsRequireAndModule_globalFile.ts === +namespace require { +>require : Symbol(require, Decl(collisionExportsRequireAndModule_globalFile.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_globalFile.ts, 0, 19)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_globalFile.ts, 2, 5)) + } +} +namespace exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndModule_globalFile.ts, 5, 1)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_globalFile.ts, 6, 19)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_globalFile.ts, 8, 5)) + } +} +namespace m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndModule_globalFile.ts, 11, 1)) + + namespace require { +>require : Symbol(require, Decl(collisionExportsRequireAndModule_globalFile.ts, 12, 14)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_globalFile.ts, 13, 23)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_globalFile.ts, 15, 9)) + } + } + namespace exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndModule_globalFile.ts, 18, 5)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_globalFile.ts, 19, 23)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_globalFile.ts, 21, 9)) + } + } +} +namespace m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndModule_globalFile.ts, 25, 1)) + + export namespace require { +>require : Symbol(require, Decl(collisionExportsRequireAndModule_globalFile.ts, 26, 14)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_globalFile.ts, 27, 30)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_globalFile.ts, 29, 9)) + } + } + export namespace exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndModule_globalFile.ts, 32, 5)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndModule_globalFile.ts, 33, 30)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndModule_globalFile.ts, 35, 9)) + } + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.types b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.types new file mode 100644 index 0000000000000..171367ef95eb5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndModule.types @@ -0,0 +1,142 @@ +//// [tests/cases/compiler/collisionExportsRequireAndModule.ts] //// + +=== collisionExportsRequireAndModule_externalmodule.ts === +export namespace require { +>require : typeof require + + export interface I { + } + export class C { +>C : C + } +} +export function foo(): require.I { +>foo : () => require.I +>require : any + + return null; +} +export namespace exports { +>exports : typeof exports + + export interface I { + } + export class C { +>C : C + } +} +export function foo2(): exports.I { +>foo2 : () => exports.I +>exports : any + + return null; +} +namespace m1 { +>m1 : typeof m1 + + namespace require { +>require : typeof require + + export interface I { + } + export class C { +>C : C + } + } + namespace exports { +>exports : typeof exports + + export interface I { + } + export class C { +>C : C + } + } +} +namespace m2 { +>m2 : typeof m2 + + export namespace require { +>require : typeof require + + export interface I { + } + export class C { +>C : C + } + } + export namespace exports { +>exports : typeof exports + + export interface I { + } + export class C { +>C : C + } + } +} + +=== collisionExportsRequireAndModule_globalFile.ts === +namespace require { +>require : typeof require + + export interface I { + } + export class C { +>C : C + } +} +namespace exports { +>exports : typeof exports + + export interface I { + } + export class C { +>C : C + } +} +namespace m3 { +>m3 : typeof m3 + + namespace require { +>require : typeof require + + export interface I { + } + export class C { +>C : C + } + } + namespace exports { +>exports : typeof exports + + export interface I { + } + export class C { +>C : C + } + } +} +namespace m4 { +>m4 : typeof m4 + + export namespace require { +>require : typeof require + + export interface I { + } + export class C { +>C : C + } + } + export namespace exports { +>exports : typeof exports + + export interface I { + } + export class C { +>C : C + } + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.errors.txt b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.errors.txt new file mode 100644 index 0000000000000..7b302a77ad064 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.errors.txt @@ -0,0 +1,23 @@ +collisionExportsRequireAndUninstantiatedModule.ts(6,5): error TS2322: Type 'null' is not assignable to type 'I'. +collisionExportsRequireAndUninstantiatedModule.ts(13,5): error TS2322: Type 'null' is not assignable to type 'I'. + + +==== collisionExportsRequireAndUninstantiatedModule.ts (2 errors) ==== + export namespace require { // no error + export interface I { + } + } + export function foo(): require.I { + return null; + ~~~~~~ +!!! error TS2322: Type 'null' is not assignable to type 'I'. + } + export namespace exports { // no error + export interface I { + } + } + export function foo2(): exports.I { + return null; + ~~~~~~ +!!! error TS2322: Type 'null' is not assignable to type 'I'. + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.js b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.js new file mode 100644 index 0000000000000..e06e3bf0c0021 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts] //// + +//// [collisionExportsRequireAndUninstantiatedModule.ts] +export namespace require { // no error + export interface I { + } +} +export function foo(): require.I { + return null; +} +export namespace exports { // no error + export interface I { + } +} +export function foo2(): exports.I { + return null; +} + +//// [collisionExportsRequireAndUninstantiatedModule.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +exports.foo2 = foo2; +function foo() { + return null; +} +function foo2() { + return null; +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.symbols b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.symbols new file mode 100644 index 0000000000000..cc04d6ddaee28 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.symbols @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts] //// + +=== collisionExportsRequireAndUninstantiatedModule.ts === +export namespace require { // no error +>require : Symbol(require, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 26)) + } +} +export function foo(): require.I { +>foo : Symbol(foo, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 3, 1)) +>require : Symbol(require, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 0)) +>I : Symbol(require.I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 26)) + + return null; +} +export namespace exports { // no error +>exports : Symbol(exports, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 6, 1)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 7, 26)) + } +} +export function foo2(): exports.I { +>foo2 : Symbol(foo2, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 10, 1)) +>exports : Symbol(exports, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 6, 1)) +>I : Symbol(exports.I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 7, 26)) + + return null; +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.types b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.types new file mode 100644 index 0000000000000..3f9b481ce32b3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndUninstantiatedModule.types @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts] //// + +=== collisionExportsRequireAndUninstantiatedModule.ts === +export namespace require { // no error + export interface I { + } +} +export function foo(): require.I { +>foo : () => require.I +>require : any + + return null; +} +export namespace exports { // no error + export interface I { + } +} +export function foo2(): exports.I { +>foo2 : () => exports.I +>exports : any + + return null; +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.errors.txt b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.errors.txt new file mode 100644 index 0000000000000..5d6c84e914cdd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.errors.txt @@ -0,0 +1,33 @@ +collisionExportsRequireAndVar_externalmodule.ts(3,5): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +collisionExportsRequireAndVar_externalmodule.ts(4,5): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + + +==== collisionExportsRequireAndVar_externalmodule.ts (2 errors) ==== + export function foo() { + } + var exports = 1; + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + var require = "require"; + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + namespace m1 { + var exports = 0; + var require = "require"; + } + namespace m2 { + export var exports = 0; + export var require = "require"; + } + +==== collisionExportsRequireAndVar_globalFile.ts (0 errors) ==== + var exports = 0; + var require = "require"; + namespace m3 { + var exports = 0; + var require = "require"; + } + namespace m4 { + export var exports = 0; + export var require = "require"; + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.js b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.js new file mode 100644 index 0000000000000..047fa9113c877 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.js @@ -0,0 +1,60 @@ +//// [tests/cases/compiler/collisionExportsRequireAndVar.ts] //// + +//// [collisionExportsRequireAndVar_externalmodule.ts] +export function foo() { +} +var exports = 1; +var require = "require"; +namespace m1 { + var exports = 0; + var require = "require"; +} +namespace m2 { + export var exports = 0; + export var require = "require"; +} + +//// [collisionExportsRequireAndVar_globalFile.ts] +var exports = 0; +var require = "require"; +namespace m3 { + var exports = 0; + var require = "require"; +} +namespace m4 { + export var exports = 0; + export var require = "require"; +} + +//// [collisionExportsRequireAndVar_externalmodule.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo() { +} +var exports = 1; +var require = "require"; +var m1; +(function (m1) { + var exports = 0; + var require = "require"; +})(m1 || (m1 = {})); +var m2; +(function (m2) { + m2.exports = 0; + m2.require = "require"; +})(m2 || (m2 = {})); +//// [collisionExportsRequireAndVar_globalFile.js] +"use strict"; +var exports = 0; +var require = "require"; +var m3; +(function (m3) { + var exports = 0; + var require = "require"; +})(m3 || (m3 = {})); +var m4; +(function (m4) { + m4.exports = 0; + m4.require = "require"; +})(m4 || (m4 = {})); diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.symbols b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.symbols new file mode 100644 index 0000000000000..70ac97df745c6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.symbols @@ -0,0 +1,56 @@ +//// [tests/cases/compiler/collisionExportsRequireAndVar.ts] //// + +=== collisionExportsRequireAndVar_externalmodule.ts === +export function foo() { +>foo : Symbol(foo, Decl(collisionExportsRequireAndVar_externalmodule.ts, 0, 0)) +} +var exports = 1; +>exports : Symbol(exports, Decl(collisionExportsRequireAndVar_externalmodule.ts, 2, 3)) + +var require = "require"; +>require : Symbol(require, Decl(collisionExportsRequireAndVar_externalmodule.ts, 3, 3)) + +namespace m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndVar_externalmodule.ts, 3, 24)) + + var exports = 0; +>exports : Symbol(exports, Decl(collisionExportsRequireAndVar_externalmodule.ts, 5, 7)) + + var require = "require"; +>require : Symbol(require, Decl(collisionExportsRequireAndVar_externalmodule.ts, 6, 7)) +} +namespace m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndVar_externalmodule.ts, 7, 1)) + + export var exports = 0; +>exports : Symbol(exports, Decl(collisionExportsRequireAndVar_externalmodule.ts, 9, 14)) + + export var require = "require"; +>require : Symbol(require, Decl(collisionExportsRequireAndVar_externalmodule.ts, 10, 14)) +} + +=== collisionExportsRequireAndVar_globalFile.ts === +var exports = 0; +>exports : Symbol(exports, Decl(collisionExportsRequireAndVar_globalFile.ts, 0, 3)) + +var require = "require"; +>require : Symbol(require, Decl(collisionExportsRequireAndVar_globalFile.ts, 1, 3)) + +namespace m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndVar_globalFile.ts, 1, 24)) + + var exports = 0; +>exports : Symbol(exports, Decl(collisionExportsRequireAndVar_globalFile.ts, 3, 7)) + + var require = "require"; +>require : Symbol(require, Decl(collisionExportsRequireAndVar_globalFile.ts, 4, 7)) +} +namespace m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndVar_globalFile.ts, 5, 1)) + + export var exports = 0; +>exports : Symbol(exports, Decl(collisionExportsRequireAndVar_globalFile.ts, 7, 14)) + + export var require = "require"; +>require : Symbol(require, Decl(collisionExportsRequireAndVar_globalFile.ts, 8, 14)) +} diff --git a/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.types b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.types new file mode 100644 index 0000000000000..d69f30d9cba8e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/collisionExportsRequireAndVar.types @@ -0,0 +1,68 @@ +//// [tests/cases/compiler/collisionExportsRequireAndVar.ts] //// + +=== collisionExportsRequireAndVar_externalmodule.ts === +export function foo() { +>foo : () => void +} +var exports = 1; +>exports : number +>1 : 1 + +var require = "require"; +>require : string +>"require" : "require" + +namespace m1 { +>m1 : typeof m1 + + var exports = 0; +>exports : number +>0 : 0 + + var require = "require"; +>require : string +>"require" : "require" +} +namespace m2 { +>m2 : typeof m2 + + export var exports = 0; +>exports : number +>0 : 0 + + export var require = "require"; +>require : string +>"require" : "require" +} + +=== collisionExportsRequireAndVar_globalFile.ts === +var exports = 0; +>exports : number +>0 : 0 + +var require = "require"; +>require : string +>"require" : "require" + +namespace m3 { +>m3 : typeof m3 + + var exports = 0; +>exports : number +>0 : 0 + + var require = "require"; +>require : string +>"require" : "require" +} +namespace m4 { +>m4 : typeof m4 + + export var exports = 0; +>exports : number +>0 : 0 + + export var require = "require"; +>require : string +>"require" : "require" +} diff --git a/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.js b/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.js new file mode 100644 index 0000000000000..22b48534738bb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.js @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/commentsBeforeVariableStatement1.ts] //// + +//// [commentsBeforeVariableStatement1.ts] +/** b's comment*/ +export var b: number; + + +//// [commentsBeforeVariableStatement1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = void 0; diff --git a/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.symbols b/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.symbols new file mode 100644 index 0000000000000..f7bf2435af4b0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.symbols @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/commentsBeforeVariableStatement1.ts] //// + +=== commentsBeforeVariableStatement1.ts === +/** b's comment*/ +export var b: number; +>b : Symbol(b, Decl(commentsBeforeVariableStatement1.ts, 1, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.types b/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.types new file mode 100644 index 0000000000000..af719ce11e8f2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsBeforeVariableStatement1.types @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/commentsBeforeVariableStatement1.ts] //// + +=== commentsBeforeVariableStatement1.ts === +/** b's comment*/ +export var b: number; +>b : number + diff --git a/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).js b/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).js new file mode 100644 index 0000000000000..33e55c614c3b5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).js @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/commentsDottedModuleName.ts] //// + +//// [commentsDottedModuleName.ts] +/** this is multi declare module*/ +export namespace outerModule.InnerModule { + /// class b comment + export class b { + } +} + +//// [commentsDottedModuleName.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.outerModule = void 0; +/** this is multi declare module*/ +var outerModule; +(function (outerModule) { + var InnerModule; + (function (InnerModule) { + /// class b comment + class b { + } + InnerModule.b = b; + })(InnerModule = outerModule.InnerModule || (outerModule.InnerModule = {})); +})(outerModule || (exports.outerModule = outerModule = {})); + + +//// [commentsDottedModuleName.d.ts] +/** this is multi declare module*/ +export declare namespace outerModule.InnerModule { + class b { + } +} diff --git a/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).symbols new file mode 100644 index 0000000000000..f30db4fce00ce --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/commentsDottedModuleName.ts] //// + +=== commentsDottedModuleName.ts === +/** this is multi declare module*/ +export namespace outerModule.InnerModule { +>outerModule : Symbol(outerModule, Decl(commentsDottedModuleName.ts, 0, 0)) +>InnerModule : Symbol(InnerModule, Decl(commentsDottedModuleName.ts, 1, 29)) + + /// class b comment + export class b { +>b : Symbol(b, Decl(commentsDottedModuleName.ts, 1, 42)) + } +} diff --git a/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).types b/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).types new file mode 100644 index 0000000000000..ce40cccc64dcf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsDottedModuleName(target=es2015).types @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/commentsDottedModuleName.ts] //// + +=== commentsDottedModuleName.ts === +/** this is multi declare module*/ +export namespace outerModule.InnerModule { +>outerModule : typeof outerModule +>InnerModule : typeof InnerModule + + /// class b comment + export class b { +>b : b + } +} diff --git a/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).errors.txt b/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).errors.txt new file mode 100644 index 0000000000000..180e8158bf46a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).errors.txt @@ -0,0 +1,64 @@ +commentsExternalModules_1.ts(2,25): error TS2307: Cannot find module 'commentsExternalModules_0' or its corresponding type declarations. + + +==== commentsExternalModules_1.ts (1 errors) ==== + /**This is on import declaration*/ + import extMod = require("commentsExternalModules_0"); // trailing comment1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'commentsExternalModules_0' or its corresponding type declarations. + extMod.m1.fooExport(); + var newVar = new extMod.m1.m2.c(); + extMod.m4.fooExport(); + var newVar2 = new extMod.m4.m2.c(); + +==== commentsExternalModules_0.ts (0 errors) ==== + /** Module comment*/ + export namespace m1 { + /** b's comment*/ + export var b: number; + /** foo's comment*/ + function foo() { + return b; + } + /** m2 comments*/ + export namespace m2 { + /** class comment;*/ + export class c { + }; + /** i*/ + export var i = new c(); + } + /** exported function*/ + export function fooExport() { + return foo(); + } + } + m1.fooExport(); + var myvar = new m1.m2.c(); + + /** Module comment */ + export namespace m4 { + /** b's comment */ + export var b: number; + /** foo's comment + */ + function foo() { + return b; + } + /** m2 comments + */ + export namespace m2 { + /** class comment; */ + export class c { + }; + /** i */ + export var i = new c(); + } + /** exported function */ + export function fooExport() { + return foo(); + } + } + m4.fooExport(); + var myvar2 = new m4.m2.c(); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).js b/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).js new file mode 100644 index 0000000000000..59ed456b71925 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).js @@ -0,0 +1,75 @@ +//// [tests/cases/compiler/commentsExternalModules.ts] //// + +//// [commentsExternalModules_0.ts] +/** Module comment*/ +export namespace m1 { + /** b's comment*/ + export var b: number; + /** foo's comment*/ + function foo() { + return b; + } + /** m2 comments*/ + export namespace m2 { + /** class comment;*/ + export class c { + }; + /** i*/ + export var i = new c(); + } + /** exported function*/ + export function fooExport() { + return foo(); + } +} +m1.fooExport(); +var myvar = new m1.m2.c(); + +/** Module comment */ +export namespace m4 { + /** b's comment */ + export var b: number; + /** foo's comment + */ + function foo() { + return b; + } + /** m2 comments + */ + export namespace m2 { + /** class comment; */ + export class c { + }; + /** i */ + export var i = new c(); + } + /** exported function */ + export function fooExport() { + return foo(); + } +} +m4.fooExport(); +var myvar2 = new m4.m2.c(); + +//// [commentsExternalModules_1.ts] +/**This is on import declaration*/ +import extMod = require("commentsExternalModules_0"); // trailing comment1 +extMod.m1.fooExport(); +var newVar = new extMod.m1.m2.c(); +extMod.m4.fooExport(); +var newVar2 = new extMod.m4.m2.c(); + + +//// [commentsExternalModules_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/**This is on import declaration*/ +const extMod = require("commentsExternalModules_0"); // trailing comment1 +extMod.m1.fooExport(); +var newVar = new extMod.m1.m2.c(); +extMod.m4.fooExport(); +var newVar2 = new extMod.m4.m2.c(); + + +//// [commentsExternalModules_1.d.ts] +export {}; diff --git a/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).symbols new file mode 100644 index 0000000000000..fb9732a70d847 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).symbols @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/commentsExternalModules.ts] //// + +=== commentsExternalModules_1.ts === +/**This is on import declaration*/ +import extMod = require("commentsExternalModules_0"); // trailing comment1 +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +extMod.m1.fooExport(); +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +var newVar = new extMod.m1.m2.c(); +>newVar : Symbol(newVar, Decl(commentsExternalModules_1.ts, 3, 3)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +extMod.m4.fooExport(); +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +var newVar2 = new extMod.m4.m2.c(); +>newVar2 : Symbol(newVar2, Decl(commentsExternalModules_1.ts, 5, 3)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).types b/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).types new file mode 100644 index 0000000000000..cfecac79f8e33 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsExternalModules(target=es2015).types @@ -0,0 +1,45 @@ +//// [tests/cases/compiler/commentsExternalModules.ts] //// + +=== commentsExternalModules_1.ts === +/**This is on import declaration*/ +import extMod = require("commentsExternalModules_0"); // trailing comment1 +>extMod : any + +extMod.m1.fooExport(); +>extMod.m1.fooExport() : any +>extMod.m1.fooExport : any +>extMod.m1 : any +>extMod : any +>m1 : any +>fooExport : any + +var newVar = new extMod.m1.m2.c(); +>newVar : any +>new extMod.m1.m2.c() : any +>extMod.m1.m2.c : any +>extMod.m1.m2 : any +>extMod.m1 : any +>extMod : any +>m1 : any +>m2 : any +>c : any + +extMod.m4.fooExport(); +>extMod.m4.fooExport() : any +>extMod.m4.fooExport : any +>extMod.m4 : any +>extMod : any +>m4 : any +>fooExport : any + +var newVar2 = new extMod.m4.m2.c(); +>newVar2 : any +>new extMod.m4.m2.c() : any +>extMod.m4.m2.c : any +>extMod.m4.m2 : any +>extMod.m4 : any +>extMod : any +>m4 : any +>m2 : any +>c : any + diff --git a/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).errors.txt b/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).errors.txt new file mode 100644 index 0000000000000..e63e7082a3f28 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).errors.txt @@ -0,0 +1,64 @@ +commentsExternalModules_1.ts(2,25): error TS2307: Cannot find module 'commentsExternalModules2_0' or its corresponding type declarations. + + +==== commentsExternalModules_1.ts (1 errors) ==== + /**This is on import declaration*/ + import extMod = require("commentsExternalModules2_0"); // trailing comment 1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'commentsExternalModules2_0' or its corresponding type declarations. + extMod.m1.fooExport(); + export var newVar = new extMod.m1.m2.c(); + extMod.m4.fooExport(); + export var newVar2 = new extMod.m4.m2.c(); + +==== commentsExternalModules2_0.ts (0 errors) ==== + /** Module comment*/ + export namespace m1 { + /** b's comment*/ + export var b: number; + /** foo's comment*/ + function foo() { + return b; + } + /** m2 comments*/ + export namespace m2 { + /** class comment;*/ + export class c { + }; + /** i*/ + export var i = new c(); + } + /** exported function*/ + export function fooExport() { + return foo(); + } + } + m1.fooExport(); + var myvar = new m1.m2.c(); + + /** Module comment */ + export namespace m4 { + /** b's comment */ + export var b: number; + /** foo's comment + */ + function foo() { + return b; + } + /** m2 comments + */ + export namespace m2 { + /** class comment; */ + export class c { + }; + /** i */ + export var i = new c(); + } + /** exported function */ + export function fooExport() { + return foo(); + } + } + m4.fooExport(); + var myvar2 = new m4.m2.c(); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).js b/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).js new file mode 100644 index 0000000000000..1af3808c94fba --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).js @@ -0,0 +1,77 @@ +//// [tests/cases/compiler/commentsExternalModules2.ts] //// + +//// [commentsExternalModules2_0.ts] +/** Module comment*/ +export namespace m1 { + /** b's comment*/ + export var b: number; + /** foo's comment*/ + function foo() { + return b; + } + /** m2 comments*/ + export namespace m2 { + /** class comment;*/ + export class c { + }; + /** i*/ + export var i = new c(); + } + /** exported function*/ + export function fooExport() { + return foo(); + } +} +m1.fooExport(); +var myvar = new m1.m2.c(); + +/** Module comment */ +export namespace m4 { + /** b's comment */ + export var b: number; + /** foo's comment + */ + function foo() { + return b; + } + /** m2 comments + */ + export namespace m2 { + /** class comment; */ + export class c { + }; + /** i */ + export var i = new c(); + } + /** exported function */ + export function fooExport() { + return foo(); + } +} +m4.fooExport(); +var myvar2 = new m4.m2.c(); + +//// [commentsExternalModules_1.ts] +/**This is on import declaration*/ +import extMod = require("commentsExternalModules2_0"); // trailing comment 1 +extMod.m1.fooExport(); +export var newVar = new extMod.m1.m2.c(); +extMod.m4.fooExport(); +export var newVar2 = new extMod.m4.m2.c(); + + +//// [commentsExternalModules_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.newVar2 = exports.newVar = void 0; +/**This is on import declaration*/ +const extMod = require("commentsExternalModules2_0"); // trailing comment 1 +extMod.m1.fooExport(); +exports.newVar = new extMod.m1.m2.c(); +extMod.m4.fooExport(); +exports.newVar2 = new extMod.m4.m2.c(); + + +//// [commentsExternalModules_1.d.ts] +export declare var newVar: any; +export declare var newVar2: any; diff --git a/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).symbols new file mode 100644 index 0000000000000..9fd3f1d1a9f8d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).symbols @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/commentsExternalModules2.ts] //// + +=== commentsExternalModules_1.ts === +/**This is on import declaration*/ +import extMod = require("commentsExternalModules2_0"); // trailing comment 1 +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +extMod.m1.fooExport(); +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +export var newVar = new extMod.m1.m2.c(); +>newVar : Symbol(newVar, Decl(commentsExternalModules_1.ts, 3, 10)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +extMod.m4.fooExport(); +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +export var newVar2 = new extMod.m4.m2.c(); +>newVar2 : Symbol(newVar2, Decl(commentsExternalModules_1.ts, 5, 10)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).types b/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).types new file mode 100644 index 0000000000000..7f2d709d9fd7a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsExternalModules2(target=es2015).types @@ -0,0 +1,45 @@ +//// [tests/cases/compiler/commentsExternalModules2.ts] //// + +=== commentsExternalModules_1.ts === +/**This is on import declaration*/ +import extMod = require("commentsExternalModules2_0"); // trailing comment 1 +>extMod : any + +extMod.m1.fooExport(); +>extMod.m1.fooExport() : any +>extMod.m1.fooExport : any +>extMod.m1 : any +>extMod : any +>m1 : any +>fooExport : any + +export var newVar = new extMod.m1.m2.c(); +>newVar : any +>new extMod.m1.m2.c() : any +>extMod.m1.m2.c : any +>extMod.m1.m2 : any +>extMod.m1 : any +>extMod : any +>m1 : any +>m2 : any +>c : any + +extMod.m4.fooExport(); +>extMod.m4.fooExport() : any +>extMod.m4.fooExport : any +>extMod.m4 : any +>extMod : any +>m4 : any +>fooExport : any + +export var newVar2 = new extMod.m4.m2.c(); +>newVar2 : any +>new extMod.m4.m2.c() : any +>extMod.m4.m2.c : any +>extMod.m4.m2 : any +>extMod.m4 : any +>extMod : any +>m4 : any +>m2 : any +>c : any + diff --git a/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).errors.txt b/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).errors.txt new file mode 100644 index 0000000000000..4d71c6d5803c3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).errors.txt @@ -0,0 +1,39 @@ +commentsMultiModuleMultiFile_1.ts(1,20): error TS2307: Cannot find module 'commentsMultiModuleMultiFile_0' or its corresponding type declarations. + + +==== commentsMultiModuleMultiFile_1.ts (1 errors) ==== + import m = require('commentsMultiModuleMultiFile_0'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'commentsMultiModuleMultiFile_0' or its corresponding type declarations. + /** this is multi module 3 comment*/ + export namespace multiM { + /** class d comment*/ + export class d { + } + + /// class f comment + export class f { + } + } + new multiM.d(); +==== commentsMultiModuleMultiFile_0.ts (0 errors) ==== + /** this is multi declare module*/ + export namespace multiM { + /// class b comment + export class b { + } + } + /** thi is multi module 2*/ + export namespace multiM { + /** class c comment*/ + export class c { + } + + // class e comment + export class e { + } + } + + new multiM.b(); + new multiM.c(); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).js b/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).js new file mode 100644 index 0000000000000..292b6dffbec99 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).js @@ -0,0 +1,65 @@ +//// [tests/cases/compiler/commentsMultiModuleMultiFile.ts] //// + +//// [commentsMultiModuleMultiFile_0.ts] +/** this is multi declare module*/ +export namespace multiM { + /// class b comment + export class b { + } +} +/** thi is multi module 2*/ +export namespace multiM { + /** class c comment*/ + export class c { + } + + // class e comment + export class e { + } +} + +new multiM.b(); +new multiM.c(); + +//// [commentsMultiModuleMultiFile_1.ts] +import m = require('commentsMultiModuleMultiFile_0'); +/** this is multi module 3 comment*/ +export namespace multiM { + /** class d comment*/ + export class d { + } + + /// class f comment + export class f { + } +} +new multiM.d(); + +//// [commentsMultiModuleMultiFile_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.multiM = void 0; +/** this is multi module 3 comment*/ +var multiM; +(function (multiM) { + /** class d comment*/ + class d { + } + multiM.d = d; + /// class f comment + class f { + } + multiM.f = f; +})(multiM || (exports.multiM = multiM = {})); +new multiM.d(); + + +//// [commentsMultiModuleMultiFile_1.d.ts] +/** this is multi module 3 comment*/ +export declare namespace multiM { + /** class d comment*/ + class d { + } + class f { + } +} diff --git a/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).symbols new file mode 100644 index 0000000000000..561cd8636512d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).symbols @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/commentsMultiModuleMultiFile.ts] //// + +=== commentsMultiModuleMultiFile_1.ts === +import m = require('commentsMultiModuleMultiFile_0'); +>m : Symbol(m, Decl(commentsMultiModuleMultiFile_1.ts, 0, 0)) + +/** this is multi module 3 comment*/ +export namespace multiM { +>multiM : Symbol(multiM, Decl(commentsMultiModuleMultiFile_1.ts, 0, 53)) + + /** class d comment*/ + export class d { +>d : Symbol(d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 25)) + } + + /// class f comment + export class f { +>f : Symbol(f, Decl(commentsMultiModuleMultiFile_1.ts, 5, 5)) + } +} +new multiM.d(); +>multiM.d : Symbol(multiM.d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 25)) +>multiM : Symbol(multiM, Decl(commentsMultiModuleMultiFile_1.ts, 0, 53)) +>d : Symbol(multiM.d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 25)) + diff --git a/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).types b/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).types new file mode 100644 index 0000000000000..4c619088de6eb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/commentsMultiModuleMultiFile(target=es2015).types @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/commentsMultiModuleMultiFile.ts] //// + +=== commentsMultiModuleMultiFile_1.ts === +import m = require('commentsMultiModuleMultiFile_0'); +>m : any + +/** this is multi module 3 comment*/ +export namespace multiM { +>multiM : typeof multiM + + /** class d comment*/ + export class d { +>d : d + } + + /// class f comment + export class f { +>f : f + } +} +new multiM.d(); +>new multiM.d() : multiM.d +>multiM.d : typeof multiM.d +>multiM : typeof multiM +>d : typeof multiM.d + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.errors.txt b/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.errors.txt new file mode 100644 index 0000000000000..3c65fee023fe5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.errors.txt @@ -0,0 +1,14 @@ +m2.ts(1,20): error TS2307: Cannot find module 'm1' or its corresponding type declarations. + + +==== m2.ts (1 errors) ==== + import A = require('m1') + ~~~~ +!!! error TS2307: Cannot find module 'm1' or its corresponding type declarations. + var v = A.V; +==== m1.ts (0 errors) ==== + const enum E { + V = 100 + } + + export = E \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.js b/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.js new file mode 100644 index 0000000000000..e0d49b427ea7f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/constEnumExternalModule.ts] //// + +//// [m1.ts] +const enum E { + V = 100 +} + +export = E +//// [m2.ts] +import A = require('m1') +var v = A.V; + +//// [m2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const A = require("m1"); +var v = A.V; diff --git a/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.symbols b/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.symbols new file mode 100644 index 0000000000000..0fadd8eb6987d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/constEnumExternalModule.ts] //// + +=== m2.ts === +import A = require('m1') +>A : Symbol(A, Decl(m2.ts, 0, 0)) + +var v = A.V; +>v : Symbol(v, Decl(m2.ts, 1, 3)) +>A : Symbol(A, Decl(m2.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.types b/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.types new file mode 100644 index 0000000000000..ff6de7111a23c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumExternalModule.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/constEnumExternalModule.ts] //// + +=== m2.ts === +import A = require('m1') +>A : any + +var v = A.V; +>v : any +>A.V : any +>A : any +>V : any + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.js b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.js new file mode 100644 index 0000000000000..79d3912456706 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.js @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/constEnumMergingWithValues1.ts] //// + +//// [m1.ts] +function foo() {} +namespace foo { + const enum E { X } +} + +export = foo + +//// [m1.js] +"use strict"; +function foo() { } +module.exports = foo; diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.symbols b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.symbols new file mode 100644 index 0000000000000..3dbda36c0c1dc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/constEnumMergingWithValues1.ts] //// + +=== m1.ts === +function foo() {} +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 17)) + +namespace foo { +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 17)) + + const enum E { X } +>E : Symbol(E, Decl(m1.ts, 1, 15)) +>X : Symbol(E.X, Decl(m1.ts, 2, 18)) +} + +export = foo +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 17)) + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.types b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.types new file mode 100644 index 0000000000000..3fcb45f7f6973 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues1.types @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/constEnumMergingWithValues1.ts] //// + +=== m1.ts === +function foo() {} +>foo : typeof foo + +namespace foo { + const enum E { X } +>E : E +>X : E.X +} + +export = foo +>foo : typeof foo + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.js b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.js new file mode 100644 index 0000000000000..bddd97e2d9e38 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/constEnumMergingWithValues2.ts] //// + +//// [m1.ts] +class foo {} +namespace foo { + const enum E { X } +} + +export = foo + +//// [m1.js] +"use strict"; +class foo { +} +module.exports = foo; diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.symbols b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.symbols new file mode 100644 index 0000000000000..0c1fc623dec6b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/constEnumMergingWithValues2.ts] //// + +=== m1.ts === +class foo {} +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 12)) + +namespace foo { +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 12)) + + const enum E { X } +>E : Symbol(E, Decl(m1.ts, 1, 15)) +>X : Symbol(E.X, Decl(m1.ts, 2, 18)) +} + +export = foo +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 12)) + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.types b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.types new file mode 100644 index 0000000000000..3cde49a728d72 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues2.types @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/constEnumMergingWithValues2.ts] //// + +=== m1.ts === +class foo {} +>foo : foo + +namespace foo { + const enum E { X } +>E : E +>X : E.X +} + +export = foo +>foo : foo + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.js b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.js new file mode 100644 index 0000000000000..1b6a441e2a4b8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/constEnumMergingWithValues3.ts] //// + +//// [m1.ts] +enum foo { A } +namespace foo { + const enum E { X } +} + +export = foo + +//// [m1.js] +"use strict"; +var foo; +(function (foo) { + foo[foo["A"] = 0] = "A"; +})(foo || (foo = {})); +module.exports = foo; diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.symbols b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.symbols new file mode 100644 index 0000000000000..07114431ddf8d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.symbols @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/constEnumMergingWithValues3.ts] //// + +=== m1.ts === +enum foo { A } +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 14)) +>A : Symbol(foo.A, Decl(m1.ts, 0, 10)) + +namespace foo { +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 14)) + + const enum E { X } +>E : Symbol(E, Decl(m1.ts, 1, 15)) +>X : Symbol(E.X, Decl(m1.ts, 2, 18)) +} + +export = foo +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 0, 14)) + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.types b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.types new file mode 100644 index 0000000000000..c2debccc2f5ae --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues3.types @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/constEnumMergingWithValues3.ts] //// + +=== m1.ts === +enum foo { A } +>foo : foo +>A : foo.A + +namespace foo { + const enum E { X } +>E : E +>X : E.X +} + +export = foo +>foo : foo + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.js b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.js new file mode 100644 index 0000000000000..37c221f184c5f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/constEnumMergingWithValues4.ts] //// + +//// [m1.ts] +namespace foo { + const enum E { X } +} + +namespace foo { + var x = 1; +} + + +export = foo + +//// [m1.js] +"use strict"; +var foo; +(function (foo) { + var x = 1; +})(foo || (foo = {})); +module.exports = foo; diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.symbols b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.symbols new file mode 100644 index 0000000000000..fbfe492e87c79 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.symbols @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/constEnumMergingWithValues4.ts] //// + +=== m1.ts === +namespace foo { +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 2, 1)) + + const enum E { X } +>E : Symbol(E, Decl(m1.ts, 0, 15)) +>X : Symbol(E.X, Decl(m1.ts, 1, 18)) +} + +namespace foo { +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 2, 1)) + + var x = 1; +>x : Symbol(x, Decl(m1.ts, 5, 7)) +} + + +export = foo +>foo : Symbol(foo, Decl(m1.ts, 0, 0), Decl(m1.ts, 2, 1)) + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.types b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.types new file mode 100644 index 0000000000000..b1a632567c91e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues4.types @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/constEnumMergingWithValues4.ts] //// + +=== m1.ts === +namespace foo { + const enum E { X } +>E : E +>X : E.X +} + +namespace foo { +>foo : typeof foo + + var x = 1; +>x : number +>1 : 1 +} + + +export = foo +>foo : typeof foo + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.js b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.js new file mode 100644 index 0000000000000..2ef3638be5aed --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/constEnumMergingWithValues5.ts] //// + +//// [m1.ts] +namespace foo { + const enum E { X } +} + +export = foo + +//// [m1.js] +"use strict"; +var foo; +(function (foo) { + let E; + (function (E) { + E[E["X"] = 0] = "X"; + })(E || (E = {})); +})(foo || (foo = {})); +module.exports = foo; diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.symbols b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.symbols new file mode 100644 index 0000000000000..78ec7648311e3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/constEnumMergingWithValues5.ts] //// + +=== m1.ts === +namespace foo { +>foo : Symbol(foo, Decl(m1.ts, 0, 0)) + + const enum E { X } +>E : Symbol(E, Decl(m1.ts, 0, 15)) +>X : Symbol(E.X, Decl(m1.ts, 1, 18)) +} + +export = foo +>foo : Symbol(foo, Decl(m1.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.types b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.types new file mode 100644 index 0000000000000..00b1c91419b77 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/constEnumMergingWithValues5.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/constEnumMergingWithValues5.ts] //// + +=== m1.ts === +namespace foo { + const enum E { X } +>E : E +>X : E.X +} + +export = foo +>foo : typeof foo + diff --git a/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.errors.txt b/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.errors.txt new file mode 100644 index 0000000000000..b1c070056b052 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.errors.txt @@ -0,0 +1,14 @@ +crashIntypeCheckObjectCreationExpression.ts(3,45): error TS2304: Cannot find name 'X'. + + +==== crashIntypeCheckObjectCreationExpression.ts (1 errors) ==== + export class BuildWorkspaceService { + public injectRequestService(service: P0) { + this.injectBuildService(new X(service)); + ~ +!!! error TS2304: Cannot find name 'X'. + } + public injectBuildService(service: P0) { + } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.js b/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.js new file mode 100644 index 0000000000000..a11bf980be3a7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/crashIntypeCheckObjectCreationExpression.ts] //// + +//// [crashIntypeCheckObjectCreationExpression.ts] +export class BuildWorkspaceService { + public injectRequestService(service: P0) { + this.injectBuildService(new X(service)); + } + public injectBuildService(service: P0) { + } +} + + +//// [crashIntypeCheckObjectCreationExpression.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BuildWorkspaceService = void 0; +class BuildWorkspaceService { + injectRequestService(service) { + this.injectBuildService(new X(service)); + } + injectBuildService(service) { + } +} +exports.BuildWorkspaceService = BuildWorkspaceService; diff --git a/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.symbols b/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.symbols new file mode 100644 index 0000000000000..a9a0175009dfb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/crashIntypeCheckObjectCreationExpression.ts] //// + +=== crashIntypeCheckObjectCreationExpression.ts === +export class BuildWorkspaceService { +>BuildWorkspaceService : Symbol(BuildWorkspaceService, Decl(crashIntypeCheckObjectCreationExpression.ts, 0, 0)) + + public injectRequestService(service: P0) { +>injectRequestService : Symbol(BuildWorkspaceService.injectRequestService, Decl(crashIntypeCheckObjectCreationExpression.ts, 0, 36)) +>P0 : Symbol(P0, Decl(crashIntypeCheckObjectCreationExpression.ts, 1, 32)) +>P1 : Symbol(P1, Decl(crashIntypeCheckObjectCreationExpression.ts, 1, 35)) +>P2 : Symbol(P2, Decl(crashIntypeCheckObjectCreationExpression.ts, 1, 39)) +>service : Symbol(service, Decl(crashIntypeCheckObjectCreationExpression.ts, 1, 44)) +>P0 : Symbol(P0, Decl(crashIntypeCheckObjectCreationExpression.ts, 1, 32)) + + this.injectBuildService(new X(service)); +>this.injectBuildService : Symbol(BuildWorkspaceService.injectBuildService, Decl(crashIntypeCheckObjectCreationExpression.ts, 3, 5)) +>this : Symbol(BuildWorkspaceService, Decl(crashIntypeCheckObjectCreationExpression.ts, 0, 0)) +>injectBuildService : Symbol(BuildWorkspaceService.injectBuildService, Decl(crashIntypeCheckObjectCreationExpression.ts, 3, 5)) +>service : Symbol(service, Decl(crashIntypeCheckObjectCreationExpression.ts, 1, 44)) + } + public injectBuildService(service: P0) { +>injectBuildService : Symbol(BuildWorkspaceService.injectBuildService, Decl(crashIntypeCheckObjectCreationExpression.ts, 3, 5)) +>P0 : Symbol(P0, Decl(crashIntypeCheckObjectCreationExpression.ts, 4, 30)) +>service : Symbol(service, Decl(crashIntypeCheckObjectCreationExpression.ts, 4, 34)) +>P0 : Symbol(P0, Decl(crashIntypeCheckObjectCreationExpression.ts, 4, 30)) + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.types b/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.types new file mode 100644 index 0000000000000..71b464049228f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/crashIntypeCheckObjectCreationExpression.types @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/crashIntypeCheckObjectCreationExpression.ts] //// + +=== crashIntypeCheckObjectCreationExpression.ts === +export class BuildWorkspaceService { +>BuildWorkspaceService : BuildWorkspaceService + + public injectRequestService(service: P0) { +>injectRequestService : (service: P0) => void +>service : P0 + + this.injectBuildService(new X(service)); +>this.injectBuildService(new X(service)) : void +>this.injectBuildService : (service: P0_1) => void +>this : this +>injectBuildService : (service: P0_1) => void +>new X(service) : any +>X : any +>service : P0 + } + public injectBuildService(service: P0) { +>injectBuildService : (service: P0) => void +>service : P0 + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.errors.txt b/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.errors.txt new file mode 100644 index 0000000000000..12565c8aa1a61 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.errors.txt @@ -0,0 +1,15 @@ +declFileExportAssignmentOfGenericInterface_1.ts(1,20): error TS2307: Cannot find module 'declFileExportAssignmentOfGenericInterface_0' or its corresponding type declarations. + + +==== declFileExportAssignmentOfGenericInterface_1.ts (1 errors) ==== + import a = require('declFileExportAssignmentOfGenericInterface_0'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'declFileExportAssignmentOfGenericInterface_0' or its corresponding type declarations. + export var x: a>; + x.a; +==== declFileExportAssignmentOfGenericInterface_0.ts (0 errors) ==== + interface Foo { + a: string; + } + export = Foo; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.js b/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.js new file mode 100644 index 0000000000000..b6c6be646d76f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.js @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/declFileExportAssignmentOfGenericInterface.ts] //// + +//// [declFileExportAssignmentOfGenericInterface_0.ts] +interface Foo { + a: string; +} +export = Foo; + +//// [declFileExportAssignmentOfGenericInterface_1.ts] +import a = require('declFileExportAssignmentOfGenericInterface_0'); +export var x: a>; +x.a; + +//// [declFileExportAssignmentOfGenericInterface_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x.a; + + +//// [declFileExportAssignmentOfGenericInterface_1.d.ts] +import a = require('declFileExportAssignmentOfGenericInterface_0'); +export declare var x: a>; diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.symbols b/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.symbols new file mode 100644 index 0000000000000..c23524a1eaa8b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/declFileExportAssignmentOfGenericInterface.ts] //// + +=== declFileExportAssignmentOfGenericInterface_1.ts === +import a = require('declFileExportAssignmentOfGenericInterface_0'); +>a : Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) + +export var x: a>; +>x : Symbol(x, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 1, 10)) +>a : Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) +>a : Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) + +x.a; +>x : Symbol(x, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 1, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.types b/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.types new file mode 100644 index 0000000000000..1b6a529291c5d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportAssignmentOfGenericInterface.types @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/declFileExportAssignmentOfGenericInterface.ts] //// + +=== declFileExportAssignmentOfGenericInterface_1.ts === +import a = require('declFileExportAssignmentOfGenericInterface_0'); +>a : any + +export var x: a>; +>x : a> + +x.a; +>x.a : any +>x : a> +>a : any + diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.errors.txt b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.errors.txt new file mode 100644 index 0000000000000..efaf98be6c434 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.errors.txt @@ -0,0 +1,27 @@ +declFileExportImportChain_d.ts(1,20): error TS2307: Cannot find module 'declFileExportImportChain_c' or its corresponding type declarations. + + +==== declFileExportImportChain_d.ts (1 errors) ==== + import c = require("declFileExportImportChain_c"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'declFileExportImportChain_c' or its corresponding type declarations. + export var x: c.b1.a.m2.c1; +==== declFileExportImportChain_a.ts (0 errors) ==== + namespace m1 { + export namespace m2 { + export class c1 { + } + } + } + export = m1; + +==== declFileExportImportChain_b.ts (0 errors) ==== + export import a = require("declFileExportImportChain_a"); + +==== declFileExportImportChain_b1.ts (0 errors) ==== + import b = require("declFileExportImportChain_b"); + export = b; + +==== declFileExportImportChain_c.ts (0 errors) ==== + export import b1 = require("declFileExportImportChain_b1"); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.js b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.js new file mode 100644 index 0000000000000..cb13b821d1f99 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.js @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/declFileExportImportChain.ts] //// + +//// [declFileExportImportChain_a.ts] +namespace m1 { + export namespace m2 { + export class c1 { + } + } +} +export = m1; + +//// [declFileExportImportChain_b.ts] +export import a = require("declFileExportImportChain_a"); + +//// [declFileExportImportChain_b1.ts] +import b = require("declFileExportImportChain_b"); +export = b; + +//// [declFileExportImportChain_c.ts] +export import b1 = require("declFileExportImportChain_b1"); + +//// [declFileExportImportChain_d.ts] +import c = require("declFileExportImportChain_c"); +export var x: c.b1.a.m2.c1; + +//// [declFileExportImportChain_d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; + + +//// [declFileExportImportChain_d.d.ts] +import c = require("declFileExportImportChain_c"); +export declare var x: c.b1.a.m2.c1; diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.symbols b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.symbols new file mode 100644 index 0000000000000..1f8ccabafb25d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/declFileExportImportChain.ts] //// + +=== declFileExportImportChain_d.ts === +import c = require("declFileExportImportChain_c"); +>c : Symbol(c, Decl(declFileExportImportChain_d.ts, 0, 0)) + +export var x: c.b1.a.m2.c1; +>x : Symbol(x, Decl(declFileExportImportChain_d.ts, 1, 10)) +>c : Symbol(c, Decl(declFileExportImportChain_d.ts, 0, 0)) +>b1 : Symbol(c.b1) +>a : Symbol(c.b1.a) +>m2 : Symbol(c.b1.a.m2) +>c1 : Symbol(c.b1.a.m2.c1) + diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.types b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.types new file mode 100644 index 0000000000000..7229a84d65c17 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain.types @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/declFileExportImportChain.ts] //// + +=== declFileExportImportChain_d.ts === +import c = require("declFileExportImportChain_c"); +>c : any + +export var x: c.b1.a.m2.c1; +>x : c.b1.a.m2.c1 +>c : any +>b1 : any +>a : any +>m2 : any + diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.errors.txt b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.errors.txt new file mode 100644 index 0000000000000..250637928e15b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.errors.txt @@ -0,0 +1,24 @@ +declFileExportImportChain2_d.ts(1,20): error TS2307: Cannot find module 'declFileExportImportChain2_c' or its corresponding type declarations. + + +==== declFileExportImportChain2_d.ts (1 errors) ==== + import c = require("declFileExportImportChain2_c"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'declFileExportImportChain2_c' or its corresponding type declarations. + export var x: c.b.m2.c1; +==== declFileExportImportChain2_a.ts (0 errors) ==== + namespace m1 { + export namespace m2 { + export class c1 { + } + } + } + export = m1; + +==== declFileExportImportChain2_b.ts (0 errors) ==== + import a = require("declFileExportImportChain2_a"); + export = a; + +==== declFileExportImportChain2_c.ts (0 errors) ==== + export import b = require("declFileExportImportChain2_b"); + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.js b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.js new file mode 100644 index 0000000000000..cae64b2314ed3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.js @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/declFileExportImportChain2.ts] //// + +//// [declFileExportImportChain2_a.ts] +namespace m1 { + export namespace m2 { + export class c1 { + } + } +} +export = m1; + +//// [declFileExportImportChain2_b.ts] +import a = require("declFileExportImportChain2_a"); +export = a; + +//// [declFileExportImportChain2_c.ts] +export import b = require("declFileExportImportChain2_b"); + +//// [declFileExportImportChain2_d.ts] +import c = require("declFileExportImportChain2_c"); +export var x: c.b.m2.c1; + +//// [declFileExportImportChain2_d.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; + + +//// [declFileExportImportChain2_d.d.ts] +import c = require("declFileExportImportChain2_c"); +export declare var x: c.b.m2.c1; diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.symbols b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.symbols new file mode 100644 index 0000000000000..c47240c8fabac --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/declFileExportImportChain2.ts] //// + +=== declFileExportImportChain2_d.ts === +import c = require("declFileExportImportChain2_c"); +>c : Symbol(c, Decl(declFileExportImportChain2_d.ts, 0, 0)) + +export var x: c.b.m2.c1; +>x : Symbol(x, Decl(declFileExportImportChain2_d.ts, 1, 10)) +>c : Symbol(c, Decl(declFileExportImportChain2_d.ts, 0, 0)) +>b : Symbol(c.b) +>m2 : Symbol(c.b.m2) +>c1 : Symbol(c.b.m2.c1) + diff --git a/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.types b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.types new file mode 100644 index 0000000000000..1d01872b92132 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declFileExportImportChain2.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/declFileExportImportChain2.ts] //// + +=== declFileExportImportChain2_d.ts === +import c = require("declFileExportImportChain2_c"); +>c : any + +export var x: c.b.m2.c1; +>x : c.b.m2.c1 +>c : any +>b : any +>m2 : any + diff --git a/tsc/testdata/baselines/reference/compiler/declarationMerging2.js b/tsc/testdata/baselines/reference/compiler/declarationMerging2.js new file mode 100644 index 0000000000000..124dcdb52d9b0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declarationMerging2.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/declarationMerging2.ts] //// + +//// [a.ts] +export class A { + protected _f: number; + getF() { return this._f; } +} + +//// [b.ts] +export {} +declare module "./a" { + interface A { + run(); + } +} + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { + getF() { return this._f; } +} +exports.A = A; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tsc/testdata/baselines/reference/compiler/declarationMerging2.symbols b/tsc/testdata/baselines/reference/compiler/declarationMerging2.symbols new file mode 100644 index 0000000000000..f6805ffcecec5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declarationMerging2.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/declarationMerging2.ts] //// + +=== a.ts === +export class A { +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(b.ts, 1, 22)) + + protected _f: number; +>_f : Symbol(A._f, Decl(a.ts, 0, 16)) + + getF() { return this._f; } +>getF : Symbol(A.getF, Decl(a.ts, 1, 25)) +>this._f : Symbol(A._f, Decl(a.ts, 0, 16)) +>this : Symbol(A, Decl(a.ts, 0, 0), Decl(b.ts, 1, 22)) +>_f : Symbol(A._f, Decl(a.ts, 0, 16)) +} + +=== b.ts === +export {} +declare module "./a" { +>"./a" : Symbol("./a", Decl(a.ts, 0, 0), Decl(b.ts, 0, 9)) + + interface A { +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(b.ts, 1, 22)) + + run(); +>run : Symbol(A.run, Decl(b.ts, 2, 17)) + } +} diff --git a/tsc/testdata/baselines/reference/compiler/declarationMerging2.types b/tsc/testdata/baselines/reference/compiler/declarationMerging2.types new file mode 100644 index 0000000000000..fb3a5a8e38736 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/declarationMerging2.types @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/declarationMerging2.ts] //// + +=== a.ts === +export class A { +>A : A + + protected _f: number; +>_f : number + + getF() { return this._f; } +>getF : () => number +>this._f : number +>this : this +>_f : number +} + +=== b.ts === +export {} +declare module "./a" { +>"./a" : typeof import("./a") + + interface A { + run(); +>run : () => any + } +} diff --git a/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.errors.txt b/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.errors.txt new file mode 100644 index 0000000000000..8dcfd24bcef2f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.errors.txt @@ -0,0 +1,14 @@ +B.ts(1,20): error TS2307: Cannot find module 'A' or its corresponding type declarations. + + +==== B.ts (1 errors) ==== + import a = require('A'); + ~~~ +!!! error TS2307: Cannot find module 'A' or its corresponding type declarations. + + import A = a.A; + + export = A; +==== A.ts (0 errors) ==== + export class A { + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.js b/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.js new file mode 100644 index 0000000000000..0f057245c9bc9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/dependencyViaImportAlias.ts] //// + +//// [A.ts] +export class A { +} +//// [B.ts] +import a = require('A'); + +import A = a.A; + +export = A; + +//// [B.js] +"use strict"; +const a = require("A"); +var A = a.A; +module.exports = A; diff --git a/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.symbols b/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.symbols new file mode 100644 index 0000000000000..31bfff1385d89 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/dependencyViaImportAlias.ts] //// + +=== B.ts === +import a = require('A'); +>a : Symbol(a, Decl(B.ts, 0, 0)) + +import A = a.A; +>A : Symbol(A, Decl(B.ts, 0, 24)) +>a : Symbol(a, Decl(B.ts, 0, 0)) +>A : Symbol(a) + +export = A; +>A : Symbol(A, Decl(B.ts, 0, 24)) + diff --git a/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.types b/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.types new file mode 100644 index 0000000000000..fb1a6fd4a29de --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/dependencyViaImportAlias.types @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/dependencyViaImportAlias.ts] //// + +=== B.ts === +import a = require('A'); +>a : any + +import A = a.A; +>A : any +>a : any +>A : any + +export = A; +>A : any + diff --git a/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.errors.txt b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.errors.txt new file mode 100644 index 0000000000000..ed29b1aca57d2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.errors.txt @@ -0,0 +1,45 @@ +/foo/tsconfig.json(4,19): error TS6046: Argument for '--target' option must be: 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'esnext'. +/foo/tsconfig.json(5,9): error TS5023: Unknown compiler option 'noImplicitUseStrict'. +/foo/tsconfig.json(6,9): error TS5023: Unknown compiler option 'keyofStringsOnly'. +/foo/tsconfig.json(7,9): error TS5023: Unknown compiler option 'suppressExcessPropertyErrors'. +/foo/tsconfig.json(8,9): error TS5023: Unknown compiler option 'suppressImplicitAnyIndexErrors'. +/foo/tsconfig.json(9,9): error TS5023: Unknown compiler option 'noStrictGenericChecks'. +/foo/tsconfig.json(10,9): error TS5023: Unknown compiler option 'charset'. +/foo/tsconfig.json(11,9): error TS5023: Unknown compiler option 'out'. + + +==== /foo/tsconfig.json (8 errors) ==== + { + "compilerOptions": { + "module": "commonjs", + "target": "ES3", + ~~~~~ +!!! error TS6046: Argument for '--target' option must be: 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'esnext'. + "noImplicitUseStrict": true, + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'noImplicitUseStrict'. + "keyofStringsOnly": true, + ~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'keyofStringsOnly'. + "suppressExcessPropertyErrors": true, + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'suppressExcessPropertyErrors'. + "suppressImplicitAnyIndexErrors": true, + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'suppressImplicitAnyIndexErrors'. + "noStrictGenericChecks": true, + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'noStrictGenericChecks'. + "charset": "utf8", + ~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'charset'. + "out": "dist.js", + ~~~~~ +!!! error TS5023: Unknown compiler option 'out'. + "ignoreDeprecations": "5.0" + } + } + +==== /foo/a.ts (0 errors) ==== + const a = 1; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.js b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.js new file mode 100644 index 0000000000000..3b8fcc03c2caf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.js @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/deprecatedCompilerOptions2.ts] //// + +//// [a.ts] +const a = 1; + + +//// [a.js] +"use strict"; +const a = 1; diff --git a/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.symbols b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.symbols new file mode 100644 index 0000000000000..946026b89ea81 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.symbols @@ -0,0 +1,6 @@ +//// [tests/cases/compiler/deprecatedCompilerOptions2.ts] //// + +=== /foo/a.ts === +const a = 1; +>a : Symbol(a, Decl(a.ts, 0, 5)) + diff --git a/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.types b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.types new file mode 100644 index 0000000000000..efeb14fc9a69c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions2.types @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/deprecatedCompilerOptions2.ts] //// + +=== /foo/a.ts === +const a = 1; +>a : 1 +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.errors.txt b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.errors.txt new file mode 100644 index 0000000000000..caad86fccfa21 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.errors.txt @@ -0,0 +1,45 @@ +/foo/tsconfig.json(4,19): error TS6046: Argument for '--target' option must be: 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'esnext'. +/foo/tsconfig.json(5,9): error TS5023: Unknown compiler option 'noImplicitUseStrict'. +/foo/tsconfig.json(6,9): error TS5023: Unknown compiler option 'keyofStringsOnly'. +/foo/tsconfig.json(7,9): error TS5023: Unknown compiler option 'suppressExcessPropertyErrors'. +/foo/tsconfig.json(8,9): error TS5023: Unknown compiler option 'suppressImplicitAnyIndexErrors'. +/foo/tsconfig.json(9,9): error TS5023: Unknown compiler option 'noStrictGenericChecks'. +/foo/tsconfig.json(10,9): error TS5023: Unknown compiler option 'charset'. +/foo/tsconfig.json(11,9): error TS5023: Unknown compiler option 'out'. + + +==== /foo/tsconfig.json (8 errors) ==== + { + "compilerOptions": { + "module": "commonjs", + "target": "ES3", + ~~~~~ +!!! error TS6046: Argument for '--target' option must be: 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', 'es2024', 'es2025', 'esnext'. + "noImplicitUseStrict": true, + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'noImplicitUseStrict'. + "keyofStringsOnly": true, + ~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'keyofStringsOnly'. + "suppressExcessPropertyErrors": true, + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'suppressExcessPropertyErrors'. + "suppressImplicitAnyIndexErrors": true, + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'suppressImplicitAnyIndexErrors'. + "noStrictGenericChecks": true, + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'noStrictGenericChecks'. + "charset": "utf8", + ~~~~~~~~~ +!!! error TS5023: Unknown compiler option 'charset'. + "out": "dist.js", + ~~~~~ +!!! error TS5023: Unknown compiler option 'out'. + "ignoreDeprecations": "5.1" + } + } + +==== /foo/a.ts (0 errors) ==== + const a = 1; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.js b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.js new file mode 100644 index 0000000000000..f03077cb3efef --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.js @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/deprecatedCompilerOptions6.ts] //// + +//// [a.ts] +const a = 1; + + +//// [a.js] +"use strict"; +const a = 1; diff --git a/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.symbols b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.symbols new file mode 100644 index 0000000000000..d3e67bb0bacdc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.symbols @@ -0,0 +1,6 @@ +//// [tests/cases/compiler/deprecatedCompilerOptions6.ts] //// + +=== /foo/a.ts === +const a = 1; +>a : Symbol(a, Decl(a.ts, 0, 5)) + diff --git a/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.types b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.types new file mode 100644 index 0000000000000..cf265215b9539 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/deprecatedCompilerOptions6.types @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/deprecatedCompilerOptions6.ts] //// + +=== /foo/a.ts === +const a = 1; +>a : 1 +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.js b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.js new file mode 100644 index 0000000000000..2e810fbfea48e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/destructuringInVariableDeclarations3.ts] //// + +//// [destructuringInVariableDeclarations3.ts] +export let { toString } = 1; +{ + let { toFixed } = 1; +} + + +//// [destructuringInVariableDeclarations3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.toString = void 0; +({ toString: exports.toString } = 1); +{ + let { toFixed } = 1; +} diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.symbols b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.symbols new file mode 100644 index 0000000000000..491c508939779 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/destructuringInVariableDeclarations3.ts] //// + +=== destructuringInVariableDeclarations3.ts === +export let { toString } = 1; +>toString : Symbol(toString, Decl(destructuringInVariableDeclarations3.ts, 0, 12)) +{ + let { toFixed } = 1; +>toFixed : Symbol(toFixed, Decl(destructuringInVariableDeclarations3.ts, 2, 9)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.types b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.types new file mode 100644 index 0000000000000..17daad7f48cfd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/destructuringInVariableDeclarations3.ts] //// + +=== destructuringInVariableDeclarations3.ts === +export let { toString } = 1; +>toString : (radix?: number) => string +>1 : 1 +{ + let { toFixed } = 1; +>toFixed : (fractionDigits?: number) => string +>1 : 1 +} + diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.js b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.js new file mode 100644 index 0000000000000..f244117cfeb19 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/destructuringInVariableDeclarations4.ts] //// + +//// [destructuringInVariableDeclarations4.ts] +let { toString } = 1; +{ + let { toFixed } = 1; +} +export {}; + + +//// [destructuringInVariableDeclarations4.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +let { toString } = 1; +{ + let { toFixed } = 1; +} diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.symbols b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.symbols new file mode 100644 index 0000000000000..2cbeabd770475 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.symbols @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/destructuringInVariableDeclarations4.ts] //// + +=== destructuringInVariableDeclarations4.ts === +let { toString } = 1; +>toString : Symbol(toString, Decl(destructuringInVariableDeclarations4.ts, 0, 5)) +{ + let { toFixed } = 1; +>toFixed : Symbol(toFixed, Decl(destructuringInVariableDeclarations4.ts, 2, 9)) +} +export {}; + diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.types b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.types new file mode 100644 index 0000000000000..5e2bfa384b308 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.types @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/destructuringInVariableDeclarations4.ts] //// + +=== destructuringInVariableDeclarations4.ts === +let { toString } = 1; +>toString : (radix?: number) => string +>1 : 1 +{ + let { toFixed } = 1; +>toFixed : (fractionDigits?: number) => string +>1 : 1 +} +export {}; + diff --git a/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.js b/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.js new file mode 100644 index 0000000000000..3d8bed909036b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.js @@ -0,0 +1,38 @@ +//// [tests/cases/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.ts] //// + +//// [duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.ts] +export interface IPoint {} + +export namespace Shapes { + + export class Point implements IPoint {} + +} + +//// [duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_1.ts] +//var x = new Shapes.Point(); +//interface IPoint {} + +//namespace Shapes { + +// export class Point implements IPoint {} + +//} + +//// [duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Shapes = void 0; +var Shapes; +(function (Shapes) { + class Point { + } + Shapes.Point = Point; +})(Shapes || (exports.Shapes = Shapes = {})); +//// [duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_1.js] +"use strict"; +//var x = new Shapes.Point(); +//interface IPoint {} +//namespace Shapes { +// export class Point implements IPoint {} +//} diff --git a/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.symbols b/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.symbols new file mode 100644 index 0000000000000..46895adac8fd0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.symbols @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.ts] //// + +=== duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.ts === +export interface IPoint {} +>IPoint : Symbol(IPoint, Decl(duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.ts, 0, 0)) + +export namespace Shapes { +>Shapes : Symbol(Shapes, Decl(duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.ts, 0, 26)) + + export class Point implements IPoint {} +>Point : Symbol(Point, Decl(duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.ts, 2, 25)) +>IPoint : Symbol(IPoint, Decl(duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.ts, 0, 0)) + +} + +=== duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_1.ts === + +//var x = new Shapes.Point(); +//interface IPoint {} + +//namespace Shapes { + +// export class Point implements IPoint {} + +//} diff --git a/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.types b/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.types new file mode 100644 index 0000000000000..1493f2e59b89d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.types @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.ts] //// + +=== duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.ts === +export interface IPoint {} + +export namespace Shapes { +>Shapes : typeof Shapes + + export class Point implements IPoint {} +>Point : Point + +} + +=== duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_1.ts === + +//var x = new Shapes.Point(); +//interface IPoint {} + +//namespace Shapes { + +// export class Point implements IPoint {} + +//} diff --git a/tsc/testdata/baselines/reference/compiler/dynamicRequire.js b/tsc/testdata/baselines/reference/compiler/dynamicRequire.js new file mode 100644 index 0000000000000..55f15d5b938cd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/dynamicRequire.js @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/dynamicRequire.ts] //// + +//// [a.js] +function foo(name) { + var s = require("t/" + name) +} + + +//// [a.js] +"use strict"; +function foo(name) { + var s = require("t/" + name); +} diff --git a/tsc/testdata/baselines/reference/compiler/dynamicRequire.symbols b/tsc/testdata/baselines/reference/compiler/dynamicRequire.symbols new file mode 100644 index 0000000000000..d665cff06604f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/dynamicRequire.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/dynamicRequire.ts] //// + +=== a.js === +function foo(name) { +>foo : Symbol(foo, Decl(a.js, 0, 0)) +>name : Symbol(name, Decl(a.js, 0, 13)) + + var s = require("t/" + name) +>s : Symbol(s, Decl(a.js, 1, 7)) +>require : Symbol(require) +>name : Symbol(name, Decl(a.js, 0, 13)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/dynamicRequire.types b/tsc/testdata/baselines/reference/compiler/dynamicRequire.types new file mode 100644 index 0000000000000..605f6da667395 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/dynamicRequire.types @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/dynamicRequire.ts] //// + +=== a.js === +function foo(name) { +>foo : (name: any) => void +>name : any + + var s = require("t/" + name) +>s : any +>require("t/" + name) : any +>require : any +>"t/" + name : string +>"t/" : "t/" +>name : any +} + diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).errors.txt b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).errors.txt new file mode 100644 index 0000000000000..8d696684e5d4c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).errors.txt @@ -0,0 +1,12 @@ +client.ts(1,1): error TS1191: An import declaration cannot have modifiers. + + +==== server.ts (0 errors) ==== + var a = 10; + export default a; + +==== client.ts (1 errors) ==== + export import defaultBinding, * as nameSpaceBinding from "./server"; + ~~~~~~ +!!! error TS1191: An import declaration cannot have modifiers. + export var x: number = defaultBinding; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).js b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).js new file mode 100644 index 0000000000000..c5a18d86f534f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).js @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport.ts] //// + +//// [server.ts] +var a = 10; +export default a; + +//// [client.ts] +export import defaultBinding, * as nameSpaceBinding from "./server"; +export var x: number = defaultBinding; + +//// [server.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var a = 10; +exports.default = a; +//// [client.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const server_1 = __importDefault(require("./server")); +exports.x = server_1.default; + + +//// [server.d.ts] +declare var a: number; +export default a; +//// [client.d.ts] +export declare var x: number; diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).symbols new file mode 100644 index 0000000000000..42acdc7dd56b0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).symbols @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport.ts] //// + +=== server.ts === +var a = 10; +>a : Symbol(a, Decl(server.ts, 0, 3)) + +export default a; +>a : Symbol(a, Decl(server.ts, 0, 3)) + +=== client.ts === +export import defaultBinding, * as nameSpaceBinding from "./server"; +>defaultBinding : Symbol(defaultBinding, Decl(client.ts, 0, 13)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(client.ts, 0, 29)) + +export var x: number = defaultBinding; +>x : Symbol(x, Decl(client.ts, 1, 10)) +>defaultBinding : Symbol(defaultBinding, Decl(client.ts, 0, 13)) + diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).types b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).types new file mode 100644 index 0000000000000..13748a465dd09 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport(target=es2015).types @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport.ts] //// + +=== server.ts === +var a = 10; +>a : number +>10 : 10 + +export default a; +>a : number + +=== client.ts === +export import defaultBinding, * as nameSpaceBinding from "./server"; +>defaultBinding : number +>nameSpaceBinding : typeof nameSpaceBinding + +export var x: number = defaultBinding; +>x : number +>defaultBinding : number + diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).js b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).js new file mode 100644 index 0000000000000..f819347e8bbdf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).js @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.ts] //// + +//// [server.ts] +class a { } +export default a; + +//// [client.ts] +import defaultBinding, * as nameSpaceBinding from "./server"; +export var x = new defaultBinding(); + +//// [server.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class a { +} +exports.default = a; +//// [client.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const server_1 = __importDefault(require("./server")); +exports.x = new server_1.default(); + + +//// [server.d.ts] +declare class a { +} +export default a; +//// [client.d.ts] +import defaultBinding from "./server"; +export declare var x: defaultBinding; diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).symbols new file mode 100644 index 0000000000000..6227c06b0ee62 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).symbols @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.ts] //// + +=== server.ts === +class a { } +>a : Symbol(a, Decl(server.ts, 0, 0)) + +export default a; +>a : Symbol(a, Decl(server.ts, 0, 0)) + +=== client.ts === +import defaultBinding, * as nameSpaceBinding from "./server"; +>defaultBinding : Symbol(defaultBinding, Decl(client.ts, 0, 6)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(client.ts, 0, 22)) + +export var x = new defaultBinding(); +>x : Symbol(x, Decl(client.ts, 1, 10)) +>defaultBinding : Symbol(defaultBinding, Decl(client.ts, 0, 6)) + diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).types b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).types new file mode 100644 index 0000000000000..c6866e6c4afbf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1(target=es2015).types @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.ts] //// + +=== server.ts === +class a { } +>a : a + +export default a; +>a : a + +=== client.ts === +import defaultBinding, * as nameSpaceBinding from "./server"; +>defaultBinding : typeof defaultBinding +>nameSpaceBinding : typeof nameSpaceBinding + +export var x = new defaultBinding(); +>x : defaultBinding +>new defaultBinding() : defaultBinding +>defaultBinding : typeof defaultBinding + diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.errors.txt b/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.errors.txt new file mode 100644 index 0000000000000..b74395f6dda49 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.errors.txt @@ -0,0 +1,22 @@ +client.ts(1,1): error TS1191: An import declaration cannot have modifiers. +client.ts(1,42): error TS2307: Cannot find module 'server' or its corresponding type declarations. +client.ts(3,1): error TS1191: An import declaration cannot have modifiers. +client.ts(3,43): error TS2307: Cannot find module 'server' or its corresponding type declarations. + + +==== server.ts (0 errors) ==== + export var a = 10; + +==== client.ts (4 errors) ==== + export import * as nameSpaceBinding from "server"; + ~~~~~~ +!!! error TS1191: An import declaration cannot have modifiers. + ~~~~~~~~ +!!! error TS2307: Cannot find module 'server' or its corresponding type declarations. + export var x = nameSpaceBinding.a; + export import * as nameSpaceBinding2 from "server"; // Not referenced imports + ~~~~~~ +!!! error TS1191: An import declaration cannot have modifiers. + ~~~~~~~~ +!!! error TS2307: Cannot find module 'server' or its corresponding type declarations. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.js b/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.js new file mode 100644 index 0000000000000..df2036a7e2061 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.js @@ -0,0 +1,61 @@ +//// [tests/cases/compiler/es6ImportNameSpaceImportWithExport.ts] //// + +//// [server.ts] +export var a = 10; + +//// [client.ts] +export import * as nameSpaceBinding from "server"; +export var x = nameSpaceBinding.a; +export import * as nameSpaceBinding2 from "server"; // Not referenced imports + + +//// [server.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 10; +//// [client.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const nameSpaceBinding = __importStar(require("server")); +exports.x = nameSpaceBinding.a; + + +//// [server.d.ts] +export declare var a: number; +//// [client.d.ts] +export declare var x: any; diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.symbols b/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.symbols new file mode 100644 index 0000000000000..c801ff874ce1c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/es6ImportNameSpaceImportWithExport.ts] //// + +=== server.ts === +export var a = 10; +>a : Symbol(a, Decl(server.ts, 0, 10)) + +=== client.ts === +export import * as nameSpaceBinding from "server"; +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(client.ts, 0, 13)) + +export var x = nameSpaceBinding.a; +>x : Symbol(x, Decl(client.ts, 1, 10)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(client.ts, 0, 13)) + +export import * as nameSpaceBinding2 from "server"; // Not referenced imports +>nameSpaceBinding2 : Symbol(nameSpaceBinding2, Decl(client.ts, 2, 13)) + diff --git a/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.types b/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.types new file mode 100644 index 0000000000000..f84d6324e8038 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/es6ImportNameSpaceImportWithExport.types @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/es6ImportNameSpaceImportWithExport.ts] //// + +=== server.ts === +export var a = 10; +>a : number +>10 : 10 + +=== client.ts === +export import * as nameSpaceBinding from "server"; +>nameSpaceBinding : any + +export var x = nameSpaceBinding.a; +>x : any +>nameSpaceBinding.a : any +>nameSpaceBinding : any +>a : any + +export import * as nameSpaceBinding2 from "server"; // Not referenced imports +>nameSpaceBinding2 : any + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.errors.txt b/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.errors.txt new file mode 100644 index 0000000000000..330e44f8a43be --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.errors.txt @@ -0,0 +1,17 @@ +exportAssignedTypeAsTypeAnnotation_1.ts(2,23): error TS2307: Cannot find module 'exportAssignedTypeAsTypeAnnotation_0' or its corresponding type declarations. + + +==== exportAssignedTypeAsTypeAnnotation_1.ts (1 errors) ==== + /// + import test = require('exportAssignedTypeAsTypeAnnotation_0'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'exportAssignedTypeAsTypeAnnotation_0' or its corresponding type declarations. + var t2: test; // should not raise a 'container type' error + +==== exportAssignedTypeAsTypeAnnotation_0.ts (0 errors) ==== + interface x { + (): Date; + foo: string; + } + export = x; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.js b/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.js new file mode 100644 index 0000000000000..a5f7a6f4994b0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/exportAssignedTypeAsTypeAnnotation.ts] //// + +//// [exportAssignedTypeAsTypeAnnotation_0.ts] +interface x { + (): Date; + foo: string; +} +export = x; + +//// [exportAssignedTypeAsTypeAnnotation_1.ts] +/// +import test = require('exportAssignedTypeAsTypeAnnotation_0'); +var t2: test; // should not raise a 'container type' error + + +//// [exportAssignedTypeAsTypeAnnotation_0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [exportAssignedTypeAsTypeAnnotation_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var t2; // should not raise a 'container type' error diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.symbols new file mode 100644 index 0000000000000..45c069ffdb6db --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.symbols @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/exportAssignedTypeAsTypeAnnotation.ts] //// + +=== exportAssignedTypeAsTypeAnnotation_1.ts === +/// +import test = require('exportAssignedTypeAsTypeAnnotation_0'); +>test : Symbol(test, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 0, 0)) + +var t2: test; // should not raise a 'container type' error +>t2 : Symbol(t2, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 2, 3)) +>test : Symbol(test, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 0, 0)) + +=== exportAssignedTypeAsTypeAnnotation_0.ts === +interface x { +>x : Symbol(x, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 0, 0)) + + (): Date; +>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + + foo: string; +>foo : Symbol(x.foo, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 1, 13)) +} +export = x; +>x : Symbol(x, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.types b/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.types new file mode 100644 index 0000000000000..0d879a2960500 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignedTypeAsTypeAnnotation.types @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/exportAssignedTypeAsTypeAnnotation.ts] //// + +=== exportAssignedTypeAsTypeAnnotation_1.ts === +/// +import test = require('exportAssignedTypeAsTypeAnnotation_0'); +>test : any + +var t2: test; // should not raise a 'container type' error +>t2 : test + +=== exportAssignedTypeAsTypeAnnotation_0.ts === +interface x { + (): Date; + foo: string; +>foo : string +} +export = x; +>x : x + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.errors.txt b/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.errors.txt new file mode 100644 index 0000000000000..23274b0c68580 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.errors.txt @@ -0,0 +1,15 @@ +exportAssignmentClass_B.ts(1,20): error TS2307: Cannot find module 'exportAssignmentClass_A' or its corresponding type declarations. + + +==== exportAssignmentClass_B.ts (1 errors) ==== + import D = require("exportAssignmentClass_A"); + ~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'exportAssignmentClass_A' or its corresponding type declarations. + + var d = new D(); + var x = d.p; +==== exportAssignmentClass_A.ts (0 errors) ==== + class C { public p = 0; } + + export = C; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.js b/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.js new file mode 100644 index 0000000000000..2c40737187e98 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/exportAssignmentClass.ts] //// + +//// [exportAssignmentClass_A.ts] +class C { public p = 0; } + +export = C; + +//// [exportAssignmentClass_B.ts] +import D = require("exportAssignmentClass_A"); + +var d = new D(); +var x = d.p; + +//// [exportAssignmentClass_B.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const D = require("exportAssignmentClass_A"); +var d = new D(); +var x = d.p; diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.symbols new file mode 100644 index 0000000000000..40abf433d42ea --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/exportAssignmentClass.ts] //// + +=== exportAssignmentClass_B.ts === +import D = require("exportAssignmentClass_A"); +>D : Symbol(D, Decl(exportAssignmentClass_B.ts, 0, 0)) + +var d = new D(); +>d : Symbol(d, Decl(exportAssignmentClass_B.ts, 2, 3)) +>D : Symbol(D, Decl(exportAssignmentClass_B.ts, 0, 0)) + +var x = d.p; +>x : Symbol(x, Decl(exportAssignmentClass_B.ts, 3, 3)) +>d : Symbol(d, Decl(exportAssignmentClass_B.ts, 2, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.types b/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.types new file mode 100644 index 0000000000000..2919832844800 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentClass.types @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/exportAssignmentClass.ts] //// + +=== exportAssignmentClass_B.ts === +import D = require("exportAssignmentClass_A"); +>D : any + +var d = new D(); +>d : any +>new D() : any +>D : any + +var x = d.p; +>x : any +>d.p : any +>d : any +>p : any + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentError.js b/tsc/testdata/baselines/reference/compiler/exportAssignmentError.js new file mode 100644 index 0000000000000..4983706f70ca9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentError.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/exportAssignmentError.ts] //// + +//// [exportEqualsModule_A.ts] +namespace M { + export var x; +} + +import M2 = M; + +export = M2; // should not error + + +//// [exportEqualsModule_A.js] +"use strict"; +var M; +(function (M) { +})(M || (M = {})); +var M2 = M; +module.exports = M2; diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentError.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignmentError.symbols new file mode 100644 index 0000000000000..ff333e602f627 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentError.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/exportAssignmentError.ts] //// + +=== exportEqualsModule_A.ts === +namespace M { +>M : Symbol(M, Decl(exportEqualsModule_A.ts, 0, 0)) + + export var x; +>x : Symbol(x, Decl(exportEqualsModule_A.ts, 1, 11)) +} + +import M2 = M; +>M2 : Symbol(M2, Decl(exportEqualsModule_A.ts, 2, 1)) +>M : Symbol(M, Decl(exportEqualsModule_A.ts, 0, 0)) + +export = M2; // should not error +>M2 : Symbol(M2, Decl(exportEqualsModule_A.ts, 2, 1)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentError.types b/tsc/testdata/baselines/reference/compiler/exportAssignmentError.types new file mode 100644 index 0000000000000..03654f38ce4ab --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentError.types @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/exportAssignmentError.ts] //// + +=== exportEqualsModule_A.ts === +namespace M { +>M : typeof M + + export var x; +>x : any +} + +import M2 = M; +>M2 : typeof M +>M : typeof M + +export = M2; // should not error +>M2 : typeof M + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.errors.txt b/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.errors.txt new file mode 100644 index 0000000000000..861f9cc56cb79 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.errors.txt @@ -0,0 +1,14 @@ +exportAssignmentFunction_B.ts(1,26): error TS2307: Cannot find module 'exportAssignmentFunction_A' or its corresponding type declarations. + + +==== exportAssignmentFunction_B.ts (1 errors) ==== + import fooFunc = require("exportAssignmentFunction_A"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'exportAssignmentFunction_A' or its corresponding type declarations. + + var n: number = fooFunc(); +==== exportAssignmentFunction_A.ts (0 errors) ==== + function foo() { return 0; } + + export = foo; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.js b/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.js new file mode 100644 index 0000000000000..ac5142a7b10a2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/exportAssignmentFunction.ts] //// + +//// [exportAssignmentFunction_A.ts] +function foo() { return 0; } + +export = foo; + +//// [exportAssignmentFunction_B.ts] +import fooFunc = require("exportAssignmentFunction_A"); + +var n: number = fooFunc(); + +//// [exportAssignmentFunction_B.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fooFunc = require("exportAssignmentFunction_A"); +var n = fooFunc(); diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.symbols new file mode 100644 index 0000000000000..d73fc22db7d30 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/exportAssignmentFunction.ts] //// + +=== exportAssignmentFunction_B.ts === +import fooFunc = require("exportAssignmentFunction_A"); +>fooFunc : Symbol(fooFunc, Decl(exportAssignmentFunction_B.ts, 0, 0)) + +var n: number = fooFunc(); +>n : Symbol(n, Decl(exportAssignmentFunction_B.ts, 2, 3)) +>fooFunc : Symbol(fooFunc, Decl(exportAssignmentFunction_B.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.types b/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.types new file mode 100644 index 0000000000000..fe0bfb1f674ef --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentFunction.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/exportAssignmentFunction.ts] //// + +=== exportAssignmentFunction_B.ts === +import fooFunc = require("exportAssignmentFunction_A"); +>fooFunc : any + +var n: number = fooFunc(); +>n : number +>fooFunc() : any +>fooFunc : any + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.errors.txt b/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.errors.txt new file mode 100644 index 0000000000000..11f9fd23c4b39 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.errors.txt @@ -0,0 +1,18 @@ +exportAssignmentInterface_B.ts(1,21): error TS2307: Cannot find module 'exportAssignmentInterface_A' or its corresponding type declarations. + + +==== exportAssignmentInterface_B.ts (1 errors) ==== + import I1 = require("exportAssignmentInterface_A"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'exportAssignmentInterface_A' or its corresponding type declarations. + + var i: I1; + + var n: number = i.p1; +==== exportAssignmentInterface_A.ts (0 errors) ==== + interface A { + p1: number; + } + + export = A; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.js b/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.js new file mode 100644 index 0000000000000..fe3d58f9125e6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/exportAssignmentInterface.ts] //// + +//// [exportAssignmentInterface_A.ts] +interface A { + p1: number; +} + +export = A; + +//// [exportAssignmentInterface_B.ts] +import I1 = require("exportAssignmentInterface_A"); + +var i: I1; + +var n: number = i.p1; + +//// [exportAssignmentInterface_B.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var i; +var n = i.p1; diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.symbols new file mode 100644 index 0000000000000..ba2d95a63f404 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/exportAssignmentInterface.ts] //// + +=== exportAssignmentInterface_B.ts === +import I1 = require("exportAssignmentInterface_A"); +>I1 : Symbol(I1, Decl(exportAssignmentInterface_B.ts, 0, 0)) + +var i: I1; +>i : Symbol(i, Decl(exportAssignmentInterface_B.ts, 2, 3)) +>I1 : Symbol(I1, Decl(exportAssignmentInterface_B.ts, 0, 0)) + +var n: number = i.p1; +>n : Symbol(n, Decl(exportAssignmentInterface_B.ts, 4, 3)) +>i : Symbol(i, Decl(exportAssignmentInterface_B.ts, 2, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.types b/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.types new file mode 100644 index 0000000000000..a3b059914d488 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentInterface.types @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/exportAssignmentInterface.ts] //// + +=== exportAssignmentInterface_B.ts === +import I1 = require("exportAssignmentInterface_A"); +>I1 : any + +var i: I1; +>i : I1 + +var n: number = i.p1; +>n : number +>i.p1 : any +>i : I1 +>p1 : any + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.errors.txt b/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.errors.txt new file mode 100644 index 0000000000000..386cda68ec238 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.errors.txt @@ -0,0 +1,16 @@ +exportAssignmentInternalModule_B.ts(1,23): error TS2307: Cannot find module 'exportAssignmentInternalModule_A' or its corresponding type declarations. + + +==== exportAssignmentInternalModule_B.ts (1 errors) ==== + import modM = require("exportAssignmentInternalModule_A"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'exportAssignmentInternalModule_A' or its corresponding type declarations. + + var n: number = modM.x; +==== exportAssignmentInternalModule_A.ts (0 errors) ==== + namespace M { + export var x; + } + + export = M; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.js b/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.js new file mode 100644 index 0000000000000..507098a7ed108 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/exportAssignmentInternalModule.ts] //// + +//// [exportAssignmentInternalModule_A.ts] +namespace M { + export var x; +} + +export = M; + +//// [exportAssignmentInternalModule_B.ts] +import modM = require("exportAssignmentInternalModule_A"); + +var n: number = modM.x; + +//// [exportAssignmentInternalModule_B.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const modM = require("exportAssignmentInternalModule_A"); +var n = modM.x; diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.symbols new file mode 100644 index 0000000000000..437e2fbfd1985 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/exportAssignmentInternalModule.ts] //// + +=== exportAssignmentInternalModule_B.ts === +import modM = require("exportAssignmentInternalModule_A"); +>modM : Symbol(modM, Decl(exportAssignmentInternalModule_B.ts, 0, 0)) + +var n: number = modM.x; +>n : Symbol(n, Decl(exportAssignmentInternalModule_B.ts, 2, 3)) +>modM : Symbol(modM, Decl(exportAssignmentInternalModule_B.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.types b/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.types new file mode 100644 index 0000000000000..d04bc6fce3c23 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentInternalModule.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/exportAssignmentInternalModule.ts] //// + +=== exportAssignmentInternalModule_B.ts === +import modM = require("exportAssignmentInternalModule_A"); +>modM : any + +var n: number = modM.x; +>n : number +>modM.x : any +>modM : any +>x : any + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.errors.txt b/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.errors.txt new file mode 100644 index 0000000000000..4194c67feb980 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.errors.txt @@ -0,0 +1,26 @@ +exportAssignmentOfGenericType1_0.ts(2,14): error TS2564: Property 'foo' has no initializer and is not definitely assigned in the constructor. +exportAssignmentOfGenericType1_1.ts(2,20): error TS2307: Cannot find module 'exportAssignmentOfGenericType1_0' or its corresponding type declarations. +exportAssignmentOfGenericType1_1.ts(6,17): error TS2454: Variable 'm' is used before being assigned. +exportAssignmentOfGenericType1_1.ts(6,19): error TS2339: Property 'foo' does not exist on type 'M'. + + +==== exportAssignmentOfGenericType1_1.ts (3 errors) ==== + /// + import q = require("exportAssignmentOfGenericType1_0"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'exportAssignmentOfGenericType1_0' or its corresponding type declarations. + + class M extends q { } + var m: M; + var r: string = m.foo; + ~ +!!! error TS2454: Variable 'm' is used before being assigned. + ~~~ +!!! error TS2339: Property 'foo' does not exist on type 'M'. + +==== exportAssignmentOfGenericType1_0.ts (1 errors) ==== + export = T; + class T { foo: X; } + ~~~ +!!! error TS2564: Property 'foo' has no initializer and is not definitely assigned in the constructor. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.js b/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.js new file mode 100644 index 0000000000000..ec174d1b7aae7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/exportAssignmentOfGenericType1.ts] //// + +//// [exportAssignmentOfGenericType1_0.ts] +export = T; +class T { foo: X; } + +//// [exportAssignmentOfGenericType1_1.ts] +/// +import q = require("exportAssignmentOfGenericType1_0"); + +class M extends q { } +var m: M; +var r: string = m.foo; + + +//// [exportAssignmentOfGenericType1_0.js] +"use strict"; +class T { +} +module.exports = T; +//// [exportAssignmentOfGenericType1_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const q = require("exportAssignmentOfGenericType1_0"); +class M extends q { +} +var m; +var r = m.foo; diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.symbols new file mode 100644 index 0000000000000..b2c1b5f6ade33 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.symbols @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/exportAssignmentOfGenericType1.ts] //// + +=== exportAssignmentOfGenericType1_1.ts === +/// +import q = require("exportAssignmentOfGenericType1_0"); +>q : Symbol(q, Decl(exportAssignmentOfGenericType1_1.ts, 0, 0)) + +class M extends q { } +>M : Symbol(M, Decl(exportAssignmentOfGenericType1_1.ts, 1, 55)) +>q : Symbol(q, Decl(exportAssignmentOfGenericType1_1.ts, 0, 0)) + +var m: M; +>m : Symbol(m, Decl(exportAssignmentOfGenericType1_1.ts, 4, 3)) +>M : Symbol(M, Decl(exportAssignmentOfGenericType1_1.ts, 1, 55)) + +var r: string = m.foo; +>r : Symbol(r, Decl(exportAssignmentOfGenericType1_1.ts, 5, 3)) +>m : Symbol(m, Decl(exportAssignmentOfGenericType1_1.ts, 4, 3)) + +=== exportAssignmentOfGenericType1_0.ts === +export = T; +>T : Symbol(T, Decl(exportAssignmentOfGenericType1_0.ts, 0, 11)) + +class T { foo: X; } +>T : Symbol(T, Decl(exportAssignmentOfGenericType1_0.ts, 0, 11)) +>X : Symbol(X, Decl(exportAssignmentOfGenericType1_0.ts, 1, 8)) +>foo : Symbol(T.foo, Decl(exportAssignmentOfGenericType1_0.ts, 1, 12)) +>X : Symbol(X, Decl(exportAssignmentOfGenericType1_0.ts, 1, 8)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.types b/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.types new file mode 100644 index 0000000000000..045ed4241f6e9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentOfGenericType1.types @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/exportAssignmentOfGenericType1.ts] //// + +=== exportAssignmentOfGenericType1_1.ts === +/// +import q = require("exportAssignmentOfGenericType1_0"); +>q : any + +class M extends q { } +>M : M +>q : any + +var m: M; +>m : M + +var r: string = m.foo; +>r : string +>m.foo : any +>m : M +>foo : any + +=== exportAssignmentOfGenericType1_0.ts === +export = T; +>T : T + +class T { foo: X; } +>T : T +>foo : X + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.js b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.js new file mode 100644 index 0000000000000..1362b5b2103b1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.js @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts] //// + +//// [exportAssignmentWithImportStatementPrivacyError.ts] +namespace m2 { + export interface connectModule { + (res, req, next): void; + } + export interface connectExport { + use: (mod: connectModule) => connectExport; + listen: (port: number) => void; + } + +} + +namespace M { + export var server: { + (): m2.connectExport; + test1: m2.connectModule; + test2(): m2.connectModule; + }; +} +import M22 = M; + +export = M; + +//// [exportAssignmentWithImportStatementPrivacyError.js] +"use strict"; +var M; +(function (M) { +})(M || (M = {})); +module.exports = M; diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.symbols new file mode 100644 index 0000000000000..324d72049a1f8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.symbols @@ -0,0 +1,59 @@ +//// [tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts] //// + +=== exportAssignmentWithImportStatementPrivacyError.ts === +namespace m2 { +>m2 : Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) + + export interface connectModule { +>connectModule : Symbol(connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 14)) + + (res, req, next): void; +>res : Symbol(res, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 9)) +>req : Symbol(req, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 13)) +>next : Symbol(next, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 18)) + } + export interface connectExport { +>connectExport : Symbol(connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) + + use: (mod: connectModule) => connectExport; +>use : Symbol(connectExport.use, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 4, 36)) +>mod : Symbol(mod, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 5, 14)) +>connectModule : Symbol(connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 14)) +>connectExport : Symbol(connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) + + listen: (port: number) => void; +>listen : Symbol(connectExport.listen, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 5, 51)) +>port : Symbol(port, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 6, 17)) + } + +} + +namespace M { +>M : Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) + + export var server: { +>server : Symbol(server, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 12, 14)) + + (): m2.connectExport; +>m2 : Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) +>connectExport : Symbol(m2.connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) + + test1: m2.connectModule; +>test1 : Symbol(test1, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 13, 29)) +>m2 : Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) +>connectModule : Symbol(m2.connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 14)) + + test2(): m2.connectModule; +>test2 : Symbol(test2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 14, 32)) +>m2 : Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) +>connectModule : Symbol(m2.connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 14)) + + }; +} +import M22 = M; +>M22 : Symbol(M22, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 17, 1)) +>M : Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) + +export = M; +>M : Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.types b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.types new file mode 100644 index 0000000000000..db44fae92af93 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithImportStatementPrivacyError.types @@ -0,0 +1,48 @@ +//// [tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts] //// + +=== exportAssignmentWithImportStatementPrivacyError.ts === +namespace m2 { + export interface connectModule { + (res, req, next): void; +>res : any +>req : any +>next : any + } + export interface connectExport { + use: (mod: connectModule) => connectExport; +>use : (mod: connectModule) => connectExport +>mod : connectModule + + listen: (port: number) => void; +>listen : (port: number) => void +>port : number + } + +} + +namespace M { +>M : typeof M + + export var server: { +>server : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } + + (): m2.connectExport; +>m2 : any + + test1: m2.connectModule; +>test1 : m2.connectModule +>m2 : any + + test2(): m2.connectModule; +>test2 : () => m2.connectModule +>m2 : any + + }; +} +import M22 = M; +>M22 : typeof M +>M : typeof M + +export = M; +>M : typeof M + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.js b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.js new file mode 100644 index 0000000000000..502d3113e69e5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/exportAssignmentWithPrivacyError.ts] //// + +//// [exportAssignmentWithPrivacyError.ts] +interface connectmodule { + (res, req, next): void; +} +interface connectexport { + use: (mod: connectmodule) => connectexport; + listen: (port: number) => void; +} + +var server: { + (): connectexport; + test1: connectmodule; + test2(): connectmodule; +}; + +export = server; + + + +//// [exportAssignmentWithPrivacyError.js] +"use strict"; +var server; +module.exports = server; diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.symbols b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.symbols new file mode 100644 index 0000000000000..c744020f4b2bf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.symbols @@ -0,0 +1,45 @@ +//// [tests/cases/compiler/exportAssignmentWithPrivacyError.ts] //// + +=== exportAssignmentWithPrivacyError.ts === +interface connectmodule { +>connectmodule : Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) + + (res, req, next): void; +>res : Symbol(res, Decl(exportAssignmentWithPrivacyError.ts, 1, 5)) +>req : Symbol(req, Decl(exportAssignmentWithPrivacyError.ts, 1, 9)) +>next : Symbol(next, Decl(exportAssignmentWithPrivacyError.ts, 1, 14)) +} +interface connectexport { +>connectexport : Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) + + use: (mod: connectmodule) => connectexport; +>use : Symbol(connectexport.use, Decl(exportAssignmentWithPrivacyError.ts, 3, 25)) +>mod : Symbol(mod, Decl(exportAssignmentWithPrivacyError.ts, 4, 10)) +>connectmodule : Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) +>connectexport : Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) + + listen: (port: number) => void; +>listen : Symbol(connectexport.listen, Decl(exportAssignmentWithPrivacyError.ts, 4, 47)) +>port : Symbol(port, Decl(exportAssignmentWithPrivacyError.ts, 5, 13)) +} + +var server: { +>server : Symbol(server, Decl(exportAssignmentWithPrivacyError.ts, 8, 3)) + + (): connectexport; +>connectexport : Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) + + test1: connectmodule; +>test1 : Symbol(test1, Decl(exportAssignmentWithPrivacyError.ts, 9, 22)) +>connectmodule : Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) + + test2(): connectmodule; +>test2 : Symbol(test2, Decl(exportAssignmentWithPrivacyError.ts, 10, 25)) +>connectmodule : Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) + +}; + +export = server; +>server : Symbol(server, Decl(exportAssignmentWithPrivacyError.ts, 8, 3)) + + diff --git a/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.types b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.types new file mode 100644 index 0000000000000..6bf982d56e3c0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportAssignmentWithPrivacyError.types @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/exportAssignmentWithPrivacyError.ts] //// + +=== exportAssignmentWithPrivacyError.ts === +interface connectmodule { + (res, req, next): void; +>res : any +>req : any +>next : any +} +interface connectexport { + use: (mod: connectmodule) => connectexport; +>use : (mod: connectmodule) => connectexport +>mod : connectmodule + + listen: (port: number) => void; +>listen : (port: number) => void +>port : number +} + +var server: { +>server : { (): connectexport; test1: connectmodule; test2(): connectmodule; } + + (): connectexport; + test1: connectmodule; +>test1 : connectmodule + + test2(): connectmodule; +>test2 : () => connectmodule + +}; + +export = server; +>server : { (): connectexport; test1: connectmodule; test2(): connectmodule; } + + diff --git a/tsc/testdata/baselines/reference/compiler/exportEqualCallable.errors.txt b/tsc/testdata/baselines/reference/compiler/exportEqualCallable.errors.txt new file mode 100644 index 0000000000000..51dd6e5ea964f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportEqualCallable.errors.txt @@ -0,0 +1,19 @@ +exportEqualCallable_0.ts(4,10): error TS2454: Variable 'server' is used before being assigned. +exportEqualCallable_1.ts(2,26): error TS2307: Cannot find module 'exportEqualCallable_0' or its corresponding type declarations. + + +==== exportEqualCallable_1.ts (1 errors) ==== + /// + import connect = require('exportEqualCallable_0'); + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'exportEqualCallable_0' or its corresponding type declarations. + connect(); + +==== exportEqualCallable_0.ts (1 errors) ==== + var server: { + (): any; + }; + export = server; + ~~~~~~ +!!! error TS2454: Variable 'server' is used before being assigned. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportEqualCallable.js b/tsc/testdata/baselines/reference/compiler/exportEqualCallable.js new file mode 100644 index 0000000000000..b8f3c164e1787 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportEqualCallable.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/exportEqualCallable.ts] //// + +//// [exportEqualCallable_0.ts] +var server: { + (): any; +}; +export = server; + +//// [exportEqualCallable_1.ts] +/// +import connect = require('exportEqualCallable_0'); +connect(); + + +//// [exportEqualCallable_0.js] +"use strict"; +var server; +module.exports = server; +//// [exportEqualCallable_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const connect = require("exportEqualCallable_0"); +connect(); diff --git a/tsc/testdata/baselines/reference/compiler/exportEqualCallable.symbols b/tsc/testdata/baselines/reference/compiler/exportEqualCallable.symbols new file mode 100644 index 0000000000000..953d7444a551f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportEqualCallable.symbols @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/exportEqualCallable.ts] //// + +=== exportEqualCallable_1.ts === +/// +import connect = require('exportEqualCallable_0'); +>connect : Symbol(connect, Decl(exportEqualCallable_1.ts, 0, 0)) + +connect(); +>connect : Symbol(connect, Decl(exportEqualCallable_1.ts, 0, 0)) + +=== exportEqualCallable_0.ts === +var server: { +>server : Symbol(server, Decl(exportEqualCallable_0.ts, 0, 3)) + + (): any; +}; +export = server; +>server : Symbol(server, Decl(exportEqualCallable_0.ts, 0, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportEqualCallable.types b/tsc/testdata/baselines/reference/compiler/exportEqualCallable.types new file mode 100644 index 0000000000000..45ad366e6ac0c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportEqualCallable.types @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/exportEqualCallable.ts] //// + +=== exportEqualCallable_1.ts === +/// +import connect = require('exportEqualCallable_0'); +>connect : any + +connect(); +>connect() : any +>connect : any + +=== exportEqualCallable_0.ts === +var server: { +>server : () => any + + (): any; +}; +export = server; +>server : () => any + diff --git a/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.js b/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.js new file mode 100644 index 0000000000000..18c8cf5668332 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/exportEqualNamespaces.ts] //// + +//// [exportEqualNamespaces.ts] +declare namespace server { + interface Server extends Object { } +} + +interface server { + (): server.Server; + startTime: Date; +} + +var x = 5; +var server = new Date(); +export = server; + + +//// [exportEqualNamespaces.js] +"use strict"; +var x = 5; +var server = new Date(); +module.exports = server; diff --git a/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.symbols b/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.symbols new file mode 100644 index 0000000000000..35ee66c7b6bab --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.symbols @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/exportEqualNamespaces.ts] //// + +=== exportEqualNamespaces.ts === +declare namespace server { +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) + + interface Server extends Object { } +>Server : Symbol(Server, Decl(exportEqualNamespaces.ts, 0, 26)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +} + +interface server { +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) + + (): server.Server; +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) +>Server : Symbol(server.Server, Decl(exportEqualNamespaces.ts, 0, 26)) + + startTime: Date; +>startTime : Symbol(server.startTime, Decl(exportEqualNamespaces.ts, 5, 22)) +>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +} + +var x = 5; +>x : Symbol(x, Decl(exportEqualNamespaces.ts, 9, 3)) + +var server = new Date(); +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) +>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +export = server; +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.types b/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.types new file mode 100644 index 0000000000000..e7724037a5528 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportEqualNamespaces.types @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/exportEqualNamespaces.ts] //// + +=== exportEqualNamespaces.ts === +declare namespace server { + interface Server extends Object { } +} + +interface server { + (): server.Server; +>server : any + + startTime: Date; +>startTime : Date +} + +var x = 5; +>x : number +>5 : 5 + +var server = new Date(); +>server : Date +>new Date() : Date +>Date : DateConstructor + +export = server; +>server : server + diff --git a/tsc/testdata/baselines/reference/compiler/exportImport.js b/tsc/testdata/baselines/reference/compiler/exportImport.js new file mode 100644 index 0000000000000..98ce23521ab19 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImport.js @@ -0,0 +1,48 @@ +//// [tests/cases/compiler/exportImport.ts] //// + +//// [w1.ts] +export = Widget1 +class Widget1 { name = 'one'; } + +//// [exporter.ts] +export import w = require('./w1'); + +//// [consumer.ts] +import e = require('./exporter'); + +export function w(): e.w { // Should be OK + return new e.w(); +} + +//// [w1.js] +"use strict"; +class Widget1 { + constructor() { + this.name = 'one'; + } +} +module.exports = Widget1; +//// [exporter.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.w = require("./w1"); +//// [consumer.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.w = w; +const e = require("./exporter"); +function w() { + return new e.w(); +} + + +//// [w1.d.ts] +export = Widget1; +declare class Widget1 { + name: string; +} +//// [exporter.d.ts] +export import w = require('./w1'); +//// [consumer.d.ts] +import e = require('./exporter'); +export declare function w(): e.w; diff --git a/tsc/testdata/baselines/reference/compiler/exportImport.symbols b/tsc/testdata/baselines/reference/compiler/exportImport.symbols new file mode 100644 index 0000000000000..df91436d721ee --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImport.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/exportImport.ts] //// + +=== consumer.ts === +import e = require('./exporter'); +>e : Symbol(e, Decl(consumer.ts, 0, 0)) + +export function w(): e.w { // Should be OK +>w : Symbol(w, Decl(consumer.ts, 0, 33)) +>e : Symbol(e, Decl(consumer.ts, 0, 0)) +>w : Symbol(e.w, Decl(exporter.ts, 0, 0)) + + return new e.w(); +>e.w : Symbol(e.w, Decl(exporter.ts, 0, 0)) +>e : Symbol(e, Decl(consumer.ts, 0, 0)) +>w : Symbol(e.w, Decl(exporter.ts, 0, 0)) +} +=== w1.ts === +export = Widget1 +>Widget1 : Symbol(Widget1, Decl(w1.ts, 0, 16)) + +class Widget1 { name = 'one'; } +>Widget1 : Symbol(Widget1, Decl(w1.ts, 0, 16)) +>name : Symbol(Widget1.name, Decl(w1.ts, 1, 15)) + +=== exporter.ts === +export import w = require('./w1'); +>w : Symbol(w, Decl(exporter.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportImport.types b/tsc/testdata/baselines/reference/compiler/exportImport.types new file mode 100644 index 0000000000000..b47c62f0da647 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImport.types @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/exportImport.ts] //// + +=== consumer.ts === +import e = require('./exporter'); +>e : typeof e + +export function w(): e.w { // Should be OK +>w : () => e.w +>e : any + + return new e.w(); +>new e.w() : e.w +>e.w : typeof e.w +>e : typeof e +>w : typeof e.w +} +=== w1.ts === +export = Widget1 +>Widget1 : Widget1 + +class Widget1 { name = 'one'; } +>Widget1 : Widget1 +>name : string +>'one' : "one" + +=== exporter.ts === +export import w = require('./w1'); +>w : typeof w + diff --git a/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).js b/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).js new file mode 100644 index 0000000000000..6e9a48643c5cc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).js @@ -0,0 +1,130 @@ +//// [tests/cases/compiler/exportImportCanSubstituteConstEnumForValue.ts] //// + +//// [exportImportCanSubstituteConstEnumForValue.ts] +namespace MsPortalFx.ViewModels.Dialogs { + + export const enum DialogResult { + Abort, + Cancel, + Ignore, + No, + Ok, + Retry, + Yes, + } + + export interface DialogResultCallback { + (result: MsPortalFx.ViewModels.Dialogs.DialogResult): void; + } + + export function someExportedFunction() { + } + + export const enum MessageBoxButtons { + AbortRetryIgnore, + OK, + OKCancel, + RetryCancel, + YesNo, + YesNoCancel, + } +} + + +namespace MsPortalFx.ViewModels { + + /** + * For some reason javascript code is emitted for this re-exported const enum. + */ + export import ReExportedEnum = Dialogs.DialogResult; + + /** + * Not exported to show difference. No javascript is emmitted (as expected) + */ + import DialogButtons = Dialogs.MessageBoxButtons; + + /** + * Re-exporting a function type to show difference. No javascript is emmitted (as expected) + */ + export import Callback = Dialogs.DialogResultCallback; + + export class SomeUsagesOfTheseConsts { + constructor() { + // these do get replaced by the const value + const value1 = ReExportedEnum.Cancel; + console.log(value1); + const value2 = DialogButtons.OKCancel; + console.log(value2); + } + } +} + + +//// [exportImportCanSubstituteConstEnumForValue.js] +"use strict"; +var MsPortalFx; +(function (MsPortalFx) { + var ViewModels; + (function (ViewModels) { + var Dialogs; + (function (Dialogs) { + function someExportedFunction() { + } + Dialogs.someExportedFunction = someExportedFunction; + })(Dialogs = ViewModels.Dialogs || (ViewModels.Dialogs = {})); + })(ViewModels = MsPortalFx.ViewModels || (MsPortalFx.ViewModels = {})); +})(MsPortalFx || (MsPortalFx = {})); +(function (MsPortalFx) { + var ViewModels; + (function (ViewModels) { + class SomeUsagesOfTheseConsts { + constructor() { + // these do get replaced by the const value + const value1 = 1 /* ReExportedEnum.Cancel */; + console.log(value1); + const value2 = 2 /* DialogButtons.OKCancel */; + console.log(value2); + } + } + ViewModels.SomeUsagesOfTheseConsts = SomeUsagesOfTheseConsts; + })(ViewModels = MsPortalFx.ViewModels || (MsPortalFx.ViewModels = {})); +})(MsPortalFx || (MsPortalFx = {})); + + +//// [exportImportCanSubstituteConstEnumForValue.d.ts] +declare namespace MsPortalFx.ViewModels.Dialogs { + const enum DialogResult { + Abort = 0, + Cancel = 1, + Ignore = 2, + No = 3, + Ok = 4, + Retry = 5, + Yes = 6 + } + interface DialogResultCallback { + (result: MsPortalFx.ViewModels.Dialogs.DialogResult): void; + } + function someExportedFunction(): void; + const enum MessageBoxButtons { + AbortRetryIgnore = 0, + OK = 1, + OKCancel = 2, + RetryCancel = 3, + YesNo = 4, + YesNoCancel = 5 + } +} +declare namespace MsPortalFx.ViewModels { + /** + * For some reason javascript code is emitted for this re-exported const enum. + */ + export import ReExportedEnum = Dialogs.DialogResult; + /** + * Re-exporting a function type to show difference. No javascript is emmitted (as expected) + */ + export import Callback = Dialogs.DialogResultCallback; + class SomeUsagesOfTheseConsts { + constructor(); + } +} diff --git a/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).symbols new file mode 100644 index 0000000000000..c94e113918142 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).symbols @@ -0,0 +1,132 @@ +//// [tests/cases/compiler/exportImportCanSubstituteConstEnumForValue.ts] //// + +=== exportImportCanSubstituteConstEnumForValue.ts === +namespace MsPortalFx.ViewModels.Dialogs { +>MsPortalFx : Symbol(MsPortalFx, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 0), Decl(exportImportCanSubstituteConstEnumForValue.ts, 27, 1)) +>ViewModels : Symbol(ViewModels, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 21), Decl(exportImportCanSubstituteConstEnumForValue.ts, 30, 21)) +>Dialogs : Symbol(Dialogs, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 32)) + + export const enum DialogResult { +>DialogResult : Symbol(DialogResult, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 41)) + + Abort, +>Abort : Symbol(ReExportedEnum.Abort, Decl(exportImportCanSubstituteConstEnumForValue.ts, 2, 36)) + + Cancel, +>Cancel : Symbol(ReExportedEnum.Cancel, Decl(exportImportCanSubstituteConstEnumForValue.ts, 3, 14)) + + Ignore, +>Ignore : Symbol(ReExportedEnum.Ignore, Decl(exportImportCanSubstituteConstEnumForValue.ts, 4, 15)) + + No, +>No : Symbol(ReExportedEnum.No, Decl(exportImportCanSubstituteConstEnumForValue.ts, 5, 15)) + + Ok, +>Ok : Symbol(ReExportedEnum.Ok, Decl(exportImportCanSubstituteConstEnumForValue.ts, 6, 11)) + + Retry, +>Retry : Symbol(ReExportedEnum.Retry, Decl(exportImportCanSubstituteConstEnumForValue.ts, 7, 11)) + + Yes, +>Yes : Symbol(ReExportedEnum.Yes, Decl(exportImportCanSubstituteConstEnumForValue.ts, 8, 14)) + } + + export interface DialogResultCallback { +>DialogResultCallback : Symbol(DialogResultCallback, Decl(exportImportCanSubstituteConstEnumForValue.ts, 10, 5)) + + (result: MsPortalFx.ViewModels.Dialogs.DialogResult): void; +>result : Symbol(result, Decl(exportImportCanSubstituteConstEnumForValue.ts, 13, 9)) +>MsPortalFx : Symbol(MsPortalFx, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 0), Decl(exportImportCanSubstituteConstEnumForValue.ts, 27, 1)) +>ViewModels : Symbol(ViewModels, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 21), Decl(exportImportCanSubstituteConstEnumForValue.ts, 30, 21)) +>Dialogs : Symbol(Dialogs, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 32)) +>DialogResult : Symbol(DialogResult, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 41)) + } + + export function someExportedFunction() { +>someExportedFunction : Symbol(someExportedFunction, Decl(exportImportCanSubstituteConstEnumForValue.ts, 14, 5)) + } + + export const enum MessageBoxButtons { +>MessageBoxButtons : Symbol(MessageBoxButtons, Decl(exportImportCanSubstituteConstEnumForValue.ts, 17, 5)) + + AbortRetryIgnore, +>AbortRetryIgnore : Symbol(MessageBoxButtons.AbortRetryIgnore, Decl(exportImportCanSubstituteConstEnumForValue.ts, 19, 41)) + + OK, +>OK : Symbol(MessageBoxButtons.OK, Decl(exportImportCanSubstituteConstEnumForValue.ts, 20, 25)) + + OKCancel, +>OKCancel : Symbol(MessageBoxButtons.OKCancel, Decl(exportImportCanSubstituteConstEnumForValue.ts, 21, 11)) + + RetryCancel, +>RetryCancel : Symbol(MessageBoxButtons.RetryCancel, Decl(exportImportCanSubstituteConstEnumForValue.ts, 22, 17)) + + YesNo, +>YesNo : Symbol(MessageBoxButtons.YesNo, Decl(exportImportCanSubstituteConstEnumForValue.ts, 23, 20)) + + YesNoCancel, +>YesNoCancel : Symbol(MessageBoxButtons.YesNoCancel, Decl(exportImportCanSubstituteConstEnumForValue.ts, 24, 14)) + } +} + + +namespace MsPortalFx.ViewModels { +>MsPortalFx : Symbol(MsPortalFx, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 0), Decl(exportImportCanSubstituteConstEnumForValue.ts, 27, 1)) +>ViewModels : Symbol(ViewModels, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 21), Decl(exportImportCanSubstituteConstEnumForValue.ts, 30, 21)) + + /** + * For some reason javascript code is emitted for this re-exported const enum. + */ + export import ReExportedEnum = Dialogs.DialogResult; +>ReExportedEnum : Symbol(ReExportedEnum, Decl(exportImportCanSubstituteConstEnumForValue.ts, 30, 33)) +>Dialogs : Symbol(Dialogs, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 32)) +>DialogResult : Symbol(ReExportedEnum, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 41)) + + /** + * Not exported to show difference. No javascript is emmitted (as expected) + */ + import DialogButtons = Dialogs.MessageBoxButtons; +>DialogButtons : Symbol(DialogButtons, Decl(exportImportCanSubstituteConstEnumForValue.ts, 35, 56)) +>Dialogs : Symbol(Dialogs, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 32)) +>MessageBoxButtons : Symbol(DialogButtons, Decl(exportImportCanSubstituteConstEnumForValue.ts, 17, 5)) + + /** + * Re-exporting a function type to show difference. No javascript is emmitted (as expected) + */ + export import Callback = Dialogs.DialogResultCallback; +>Callback : Symbol(Callback, Decl(exportImportCanSubstituteConstEnumForValue.ts, 40, 53)) +>Dialogs : Symbol(Dialogs, Decl(exportImportCanSubstituteConstEnumForValue.ts, 0, 32)) +>DialogResultCallback : Symbol(Callback, Decl(exportImportCanSubstituteConstEnumForValue.ts, 10, 5)) + + export class SomeUsagesOfTheseConsts { +>SomeUsagesOfTheseConsts : Symbol(SomeUsagesOfTheseConsts, Decl(exportImportCanSubstituteConstEnumForValue.ts, 45, 58)) + + constructor() { + // these do get replaced by the const value + const value1 = ReExportedEnum.Cancel; +>value1 : Symbol(value1, Decl(exportImportCanSubstituteConstEnumForValue.ts, 50, 17)) +>ReExportedEnum.Cancel : Symbol(ReExportedEnum.Cancel, Decl(exportImportCanSubstituteConstEnumForValue.ts, 3, 14)) +>ReExportedEnum : Symbol(ReExportedEnum, Decl(exportImportCanSubstituteConstEnumForValue.ts, 30, 33)) +>Cancel : Symbol(ReExportedEnum.Cancel, Decl(exportImportCanSubstituteConstEnumForValue.ts, 3, 14)) + + console.log(value1); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>value1 : Symbol(value1, Decl(exportImportCanSubstituteConstEnumForValue.ts, 50, 17)) + + const value2 = DialogButtons.OKCancel; +>value2 : Symbol(value2, Decl(exportImportCanSubstituteConstEnumForValue.ts, 52, 17)) +>DialogButtons.OKCancel : Symbol(DialogButtons.OKCancel, Decl(exportImportCanSubstituteConstEnumForValue.ts, 21, 11)) +>DialogButtons : Symbol(DialogButtons, Decl(exportImportCanSubstituteConstEnumForValue.ts, 35, 56)) +>OKCancel : Symbol(DialogButtons.OKCancel, Decl(exportImportCanSubstituteConstEnumForValue.ts, 21, 11)) + + console.log(value2); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>value2 : Symbol(value2, Decl(exportImportCanSubstituteConstEnumForValue.ts, 52, 17)) + } + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).types b/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).types new file mode 100644 index 0000000000000..7b301ee3c58a5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportCanSubstituteConstEnumForValue(target=es2015).types @@ -0,0 +1,131 @@ +//// [tests/cases/compiler/exportImportCanSubstituteConstEnumForValue.ts] //// + +=== exportImportCanSubstituteConstEnumForValue.ts === +namespace MsPortalFx.ViewModels.Dialogs { +>MsPortalFx : typeof MsPortalFx +>ViewModels : typeof ViewModels +>Dialogs : typeof Dialogs + + export const enum DialogResult { +>DialogResult : DialogResult + + Abort, +>Abort : DialogResult.Abort + + Cancel, +>Cancel : DialogResult.Cancel + + Ignore, +>Ignore : DialogResult.Ignore + + No, +>No : DialogResult.No + + Ok, +>Ok : DialogResult.Ok + + Retry, +>Retry : DialogResult.Retry + + Yes, +>Yes : DialogResult.Yes + } + + export interface DialogResultCallback { + (result: MsPortalFx.ViewModels.Dialogs.DialogResult): void; +>result : DialogResult +>MsPortalFx : any +>ViewModels : any +>Dialogs : any + } + + export function someExportedFunction() { +>someExportedFunction : () => void + } + + export const enum MessageBoxButtons { +>MessageBoxButtons : MessageBoxButtons + + AbortRetryIgnore, +>AbortRetryIgnore : MessageBoxButtons.AbortRetryIgnore + + OK, +>OK : MessageBoxButtons.OK + + OKCancel, +>OKCancel : MessageBoxButtons.OKCancel + + RetryCancel, +>RetryCancel : MessageBoxButtons.RetryCancel + + YesNo, +>YesNo : MessageBoxButtons.YesNo + + YesNoCancel, +>YesNoCancel : MessageBoxButtons.YesNoCancel + } +} + + +namespace MsPortalFx.ViewModels { +>MsPortalFx : typeof MsPortalFx +>ViewModels : typeof ViewModels + + /** + * For some reason javascript code is emitted for this re-exported const enum. + */ + export import ReExportedEnum = Dialogs.DialogResult; +>ReExportedEnum : typeof ReExportedEnum +>Dialogs : typeof Dialogs +>DialogResult : ReExportedEnum + + /** + * Not exported to show difference. No javascript is emmitted (as expected) + */ + import DialogButtons = Dialogs.MessageBoxButtons; +>DialogButtons : typeof DialogButtons +>Dialogs : typeof Dialogs +>MessageBoxButtons : DialogButtons + + /** + * Re-exporting a function type to show difference. No javascript is emmitted (as expected) + */ + export import Callback = Dialogs.DialogResultCallback; +>Callback : any +>Dialogs : typeof Dialogs +>DialogResultCallback : Callback + + export class SomeUsagesOfTheseConsts { +>SomeUsagesOfTheseConsts : SomeUsagesOfTheseConsts + + constructor() { + // these do get replaced by the const value + const value1 = ReExportedEnum.Cancel; +>value1 : ReExportedEnum.Cancel +>ReExportedEnum.Cancel : ReExportedEnum.Cancel +>ReExportedEnum : typeof ReExportedEnum +>Cancel : ReExportedEnum.Cancel + + console.log(value1); +>console.log(value1) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>value1 : ReExportedEnum.Cancel + + const value2 = DialogButtons.OKCancel; +>value2 : DialogButtons.OKCancel +>DialogButtons.OKCancel : DialogButtons.OKCancel +>DialogButtons : typeof DialogButtons +>OKCancel : DialogButtons.OKCancel + + console.log(value2); +>console.log(value2) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>value2 : DialogButtons.OKCancel + } + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.errors.txt b/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.errors.txt new file mode 100644 index 0000000000000..eafba97d38f5f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.errors.txt @@ -0,0 +1,16 @@ +exportImportMultipleFiles_library.ts(1,30): error TS2307: Cannot find module 'exportImportMultipleFiles_math' or its corresponding type declarations. + + +==== exportImportMultipleFiles_userCode.ts (0 errors) ==== + import lib = require('./exportImportMultipleFiles_library'); + lib.math.add(3, 4); // Shouldnt be error + +==== exportImportMultipleFiles_math.ts (0 errors) ==== + export function add(a, b) { return a + b; } + +==== exportImportMultipleFiles_library.ts (1 errors) ==== + export import math = require("exportImportMultipleFiles_math"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'exportImportMultipleFiles_math' or its corresponding type declarations. + math.add(3, 4); // OK + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.js b/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.js new file mode 100644 index 0000000000000..0a9c0e29c1016 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/exportImportMultipleFiles.ts] //// + +//// [exportImportMultipleFiles_math.ts] +export function add(a, b) { return a + b; } + +//// [exportImportMultipleFiles_library.ts] +export import math = require("exportImportMultipleFiles_math"); +math.add(3, 4); // OK + +//// [exportImportMultipleFiles_userCode.ts] +import lib = require('./exportImportMultipleFiles_library'); +lib.math.add(3, 4); // Shouldnt be error + + +//// [exportImportMultipleFiles_library.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.math = require("exportImportMultipleFiles_math"); +exports.math.add(3, 4); // OK +//// [exportImportMultipleFiles_userCode.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const lib = require("./exportImportMultipleFiles_library"); +lib.math.add(3, 4); // Shouldnt be error diff --git a/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.symbols b/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.symbols new file mode 100644 index 0000000000000..31eedaee862bf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.symbols @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/exportImportMultipleFiles.ts] //// + +=== exportImportMultipleFiles_userCode.ts === +import lib = require('./exportImportMultipleFiles_library'); +>lib : Symbol(lib, Decl(exportImportMultipleFiles_userCode.ts, 0, 0)) + +lib.math.add(3, 4); // Shouldnt be error +>lib.math : Symbol(lib.math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) +>lib : Symbol(lib, Decl(exportImportMultipleFiles_userCode.ts, 0, 0)) +>math : Symbol(lib.math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) + +=== exportImportMultipleFiles_library.ts === +export import math = require("exportImportMultipleFiles_math"); +>math : Symbol(math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) + +math.add(3, 4); // OK +>math : Symbol(math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.types b/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.types new file mode 100644 index 0000000000000..2e0b43e5b8a98 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportMultipleFiles.types @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/exportImportMultipleFiles.ts] //// + +=== exportImportMultipleFiles_userCode.ts === +import lib = require('./exportImportMultipleFiles_library'); +>lib : typeof lib + +lib.math.add(3, 4); // Shouldnt be error +>lib.math.add(3, 4) : any +>lib.math.add : any +>lib.math : any +>lib : typeof lib +>math : any +>add : any +>3 : 3 +>4 : 4 + +=== exportImportMultipleFiles_library.ts === +export import math = require("exportImportMultipleFiles_math"); +>math : any + +math.add(3, 4); // OK +>math.add(3, 4) : any +>math.add : any +>math : any +>add : any +>3 : 3 +>4 : 4 + diff --git a/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.js b/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.js new file mode 100644 index 0000000000000..d0de496c6da94 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.js @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/exportImportNonInstantiatedModule2.ts] //// + +//// [w1.ts] +export = Widget1 +interface Widget1 { name: string; } + +//// [exporter.ts] +export import w = require('./w1'); + +//// [consumer.ts] +import e = require('./exporter'); + +export function w(): e.w { // Should be OK + return {name: 'value' }; +} + +//// [w1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [exporter.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [consumer.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.w = w; +function w() { + return { name: 'value' }; +} + + +//// [w1.d.ts] +export = Widget1; +interface Widget1 { + name: string; +} +//// [exporter.d.ts] +export import w = require('./w1'); +//// [consumer.d.ts] +import e = require('./exporter'); +export declare function w(): e.w; diff --git a/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.symbols b/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.symbols new file mode 100644 index 0000000000000..a441b529cd37b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.symbols @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/exportImportNonInstantiatedModule2.ts] //// + +=== consumer.ts === +import e = require('./exporter'); +>e : Symbol(e, Decl(consumer.ts, 0, 0)) + +export function w(): e.w { // Should be OK +>w : Symbol(w, Decl(consumer.ts, 0, 33)) +>e : Symbol(e, Decl(consumer.ts, 0, 0)) +>w : Symbol(e.w, Decl(exporter.ts, 0, 0)) + + return {name: 'value' }; +>name : Symbol(name, Decl(consumer.ts, 3, 12)) +} +=== w1.ts === +export = Widget1 +>Widget1 : Symbol(Widget1, Decl(w1.ts, 0, 16)) + +interface Widget1 { name: string; } +>Widget1 : Symbol(Widget1, Decl(w1.ts, 0, 16)) +>name : Symbol(Widget1.name, Decl(w1.ts, 1, 19)) + +=== exporter.ts === +export import w = require('./w1'); +>w : Symbol(w, Decl(exporter.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.types b/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.types new file mode 100644 index 0000000000000..9ae93058fde9b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportImportNonInstantiatedModule2.types @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/exportImportNonInstantiatedModule2.ts] //// + +=== consumer.ts === +import e = require('./exporter'); +>e : typeof e + +export function w(): e.w { // Should be OK +>w : () => e.w +>e : any + + return {name: 'value' }; +>{name: 'value' } : { name: string; } +>name : string +>'value' : "value" +} +=== w1.ts === +export = Widget1 +>Widget1 : Widget1 + +interface Widget1 { name: string; } +>name : string + +=== exporter.ts === +export import w = require('./w1'); +>w : any + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues.errors.txt b/tsc/testdata/baselines/reference/compiler/exportStarForValues.errors.txt new file mode 100644 index 0000000000000..9c8a32f785829 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues.errors.txt @@ -0,0 +1,11 @@ +file2.ts(1,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. + + +==== file1.ts (0 errors) ==== + export interface Foo { x } + +==== file2.ts (1 errors) ==== + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + var x; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues.js b/tsc/testdata/baselines/reference/compiler/exportStarForValues.js new file mode 100644 index 0000000000000..9c468454182bb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues.js @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/exportStarForValues.ts] //// + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +var x; + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file1"), exports); +var x; diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues.symbols b/tsc/testdata/baselines/reference/compiler/exportStarForValues.symbols new file mode 100644 index 0000000000000..0327a066b8c09 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/exportStarForValues.ts] //// + +=== file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(file1.ts, 0, 22)) + +=== file2.ts === +export * from "file1" +var x; +>x : Symbol(x, Decl(file2.ts, 1, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues.types b/tsc/testdata/baselines/reference/compiler/exportStarForValues.types new file mode 100644 index 0000000000000..aa9264c0320ef --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/exportStarForValues.ts] //// + +=== file1.ts === +export interface Foo { x } +>x : any + +=== file2.ts === +export * from "file1" +var x; +>x : any + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues2.errors.txt b/tsc/testdata/baselines/reference/compiler/exportStarForValues2.errors.txt new file mode 100644 index 0000000000000..5636a44b000f5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues2.errors.txt @@ -0,0 +1,18 @@ +file2.ts(1,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file3.ts(1,15): error TS2307: Cannot find module 'file2' or its corresponding type declarations. + + +==== file1.ts (0 errors) ==== + export interface Foo { x } + +==== file2.ts (1 errors) ==== + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + var x = 1; + +==== file3.ts (1 errors) ==== + export * from "file2" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file2' or its corresponding type declarations. + var x = 1; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues2.js b/tsc/testdata/baselines/reference/compiler/exportStarForValues2.js new file mode 100644 index 0000000000000..79bde6f7db993 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues2.js @@ -0,0 +1,54 @@ +//// [tests/cases/compiler/exportStarForValues2.ts] //// + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +var x = 1; + +//// [file3.ts] +export * from "file2" +var x = 1; + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file1"), exports); +var x = 1; +//// [file3.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file2"), exports); +var x = 1; diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues2.symbols b/tsc/testdata/baselines/reference/compiler/exportStarForValues2.symbols new file mode 100644 index 0000000000000..4f0d0436275ea --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues2.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/exportStarForValues2.ts] //// + +=== file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(file1.ts, 0, 22)) + +=== file2.ts === +export * from "file1" +var x = 1; +>x : Symbol(x, Decl(file2.ts, 1, 3)) + +=== file3.ts === +export * from "file2" +var x = 1; +>x : Symbol(x, Decl(file3.ts, 1, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues2.types b/tsc/testdata/baselines/reference/compiler/exportStarForValues2.types new file mode 100644 index 0000000000000..196166581b39c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues2.types @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/exportStarForValues2.ts] //// + +=== file1.ts === +export interface Foo { x } +>x : any + +=== file2.ts === +export * from "file1" +var x = 1; +>x : number +>1 : 1 + +=== file3.ts === +export * from "file2" +var x = 1; +>x : number +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues3.errors.txt b/tsc/testdata/baselines/reference/compiler/exportStarForValues3.errors.txt new file mode 100644 index 0000000000000..a98b2e95ea373 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues3.errors.txt @@ -0,0 +1,39 @@ +file2.ts(2,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file3.ts(2,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file4.ts(2,15): error TS2307: Cannot find module 'file2' or its corresponding type declarations. +file4.ts(3,15): error TS2307: Cannot find module 'file3' or its corresponding type declarations. +file5.ts(1,15): error TS2307: Cannot find module 'file4' or its corresponding type declarations. + + +==== file1.ts (0 errors) ==== + export interface Foo { x } + +==== file2.ts (1 errors) ==== + export interface A { x } + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + var x = 1; + +==== file3.ts (1 errors) ==== + export interface B { x } + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + var x = 1; + +==== file4.ts (2 errors) ==== + export interface C { x } + export * from "file2" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file2' or its corresponding type declarations. + export * from "file3" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file3' or its corresponding type declarations. + var x = 1; + +==== file5.ts (1 errors) ==== + export * from "file4" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file4' or its corresponding type declarations. + var x = 1; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues3.js b/tsc/testdata/baselines/reference/compiler/exportStarForValues3.js new file mode 100644 index 0000000000000..109cb5e768771 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues3.js @@ -0,0 +1,105 @@ +//// [tests/cases/compiler/exportStarForValues3.ts] //// + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export interface A { x } +export * from "file1" +var x = 1; + +//// [file3.ts] +export interface B { x } +export * from "file1" +var x = 1; + +//// [file4.ts] +export interface C { x } +export * from "file2" +export * from "file3" +var x = 1; + +//// [file5.ts] +export * from "file4" +var x = 1; + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file1"), exports); +var x = 1; +//// [file3.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file1"), exports); +var x = 1; +//// [file4.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file2"), exports); +__exportStar(require("file3"), exports); +var x = 1; +//// [file5.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file4"), exports); +var x = 1; diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues3.symbols b/tsc/testdata/baselines/reference/compiler/exportStarForValues3.symbols new file mode 100644 index 0000000000000..5bad1078155f4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues3.symbols @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/exportStarForValues3.ts] //// + +=== file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(file1.ts, 0, 22)) + +=== file2.ts === +export interface A { x } +>A : Symbol(A, Decl(file2.ts, 0, 0)) +>x : Symbol(A.x, Decl(file2.ts, 0, 20)) + +export * from "file1" +var x = 1; +>x : Symbol(x, Decl(file2.ts, 2, 3)) + +=== file3.ts === +export interface B { x } +>B : Symbol(B, Decl(file3.ts, 0, 0)) +>x : Symbol(B.x, Decl(file3.ts, 0, 20)) + +export * from "file1" +var x = 1; +>x : Symbol(x, Decl(file3.ts, 2, 3)) + +=== file4.ts === +export interface C { x } +>C : Symbol(C, Decl(file4.ts, 0, 0)) +>x : Symbol(C.x, Decl(file4.ts, 0, 20)) + +export * from "file2" +export * from "file3" +var x = 1; +>x : Symbol(x, Decl(file4.ts, 3, 3)) + +=== file5.ts === +export * from "file4" +var x = 1; +>x : Symbol(x, Decl(file5.ts, 1, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues3.types b/tsc/testdata/baselines/reference/compiler/exportStarForValues3.types new file mode 100644 index 0000000000000..7eb9e419a7e8e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues3.types @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/exportStarForValues3.ts] //// + +=== file1.ts === +export interface Foo { x } +>x : any + +=== file2.ts === +export interface A { x } +>x : any + +export * from "file1" +var x = 1; +>x : number +>1 : 1 + +=== file3.ts === +export interface B { x } +>x : any + +export * from "file1" +var x = 1; +>x : number +>1 : 1 + +=== file4.ts === +export interface C { x } +>x : any + +export * from "file2" +export * from "file3" +var x = 1; +>x : number +>1 : 1 + +=== file5.ts === +export * from "file4" +var x = 1; +>x : number +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues4.errors.txt b/tsc/testdata/baselines/reference/compiler/exportStarForValues4.errors.txt new file mode 100644 index 0000000000000..fa4c097c47b7a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues4.errors.txt @@ -0,0 +1,25 @@ +file2.ts(2,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file2.ts(3,15): error TS2307: Cannot find module 'file3' or its corresponding type declarations. +file3.ts(2,15): error TS2307: Cannot find module 'file2' or its corresponding type declarations. + + +==== file1.ts (0 errors) ==== + export interface Foo { x } + +==== file2.ts (2 errors) ==== + export interface A { x } + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + export * from "file3" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file3' or its corresponding type declarations. + var x = 1; + +==== file3.ts (1 errors) ==== + export interface B { x } + export * from "file2" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file2' or its corresponding type declarations. + var x = 1; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues4.js b/tsc/testdata/baselines/reference/compiler/exportStarForValues4.js new file mode 100644 index 0000000000000..fe10b7c4151ba --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues4.js @@ -0,0 +1,59 @@ +//// [tests/cases/compiler/exportStarForValues4.ts] //// + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export interface A { x } +export * from "file1" +export * from "file3" +var x = 1; + +//// [file3.ts] +export interface B { x } +export * from "file2" +var x = 1; + + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file1"), exports); +__exportStar(require("file3"), exports); +var x = 1; +//// [file3.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("file2"), exports); +var x = 1; diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues4.symbols b/tsc/testdata/baselines/reference/compiler/exportStarForValues4.symbols new file mode 100644 index 0000000000000..6ea3823bdb0bb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues4.symbols @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/exportStarForValues4.ts] //// + +=== file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(file1.ts, 0, 22)) + +=== file2.ts === +export interface A { x } +>A : Symbol(A, Decl(file2.ts, 0, 0)) +>x : Symbol(A.x, Decl(file2.ts, 0, 20)) + +export * from "file1" +export * from "file3" +var x = 1; +>x : Symbol(x, Decl(file2.ts, 3, 3)) + +=== file3.ts === +export interface B { x } +>B : Symbol(B, Decl(file3.ts, 0, 0)) +>x : Symbol(B.x, Decl(file3.ts, 0, 20)) + +export * from "file2" +var x = 1; +>x : Symbol(x, Decl(file3.ts, 2, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues4.types b/tsc/testdata/baselines/reference/compiler/exportStarForValues4.types new file mode 100644 index 0000000000000..2571c2c5d8587 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues4.types @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/exportStarForValues4.ts] //// + +=== file1.ts === +export interface Foo { x } +>x : any + +=== file2.ts === +export interface A { x } +>x : any + +export * from "file1" +export * from "file3" +var x = 1; +>x : number +>1 : 1 + +=== file3.ts === +export interface B { x } +>x : any + +export * from "file2" +var x = 1; +>x : number +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues5.errors.txt b/tsc/testdata/baselines/reference/compiler/exportStarForValues5.errors.txt new file mode 100644 index 0000000000000..5904c2977943f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues5.errors.txt @@ -0,0 +1,11 @@ +file2.ts(1,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. + + +==== file1.ts (0 errors) ==== + export interface Foo { x } + +==== file2.ts (1 errors) ==== + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + export var x; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues5.js b/tsc/testdata/baselines/reference/compiler/exportStarForValues5.js new file mode 100644 index 0000000000000..32be7c4a92c11 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues5.js @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/exportStarForValues5.ts] //// + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +export var x; + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file1"), exports); diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues5.symbols b/tsc/testdata/baselines/reference/compiler/exportStarForValues5.symbols new file mode 100644 index 0000000000000..b168b701e53d9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues5.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/exportStarForValues5.ts] //// + +=== file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(file1.ts, 0, 22)) + +=== file2.ts === +export * from "file1" +export var x; +>x : Symbol(x, Decl(file2.ts, 1, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues5.types b/tsc/testdata/baselines/reference/compiler/exportStarForValues5.types new file mode 100644 index 0000000000000..bbb495b7d300c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues5.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/exportStarForValues5.ts] //// + +=== file1.ts === +export interface Foo { x } +>x : any + +=== file2.ts === +export * from "file1" +export var x; +>x : any + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues7.errors.txt b/tsc/testdata/baselines/reference/compiler/exportStarForValues7.errors.txt new file mode 100644 index 0000000000000..931c6174b11a6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues7.errors.txt @@ -0,0 +1,18 @@ +file2.ts(1,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file3.ts(1,15): error TS2307: Cannot find module 'file2' or its corresponding type declarations. + + +==== file1.ts (0 errors) ==== + export interface Foo { x } + +==== file2.ts (1 errors) ==== + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + export var x = 1; + +==== file3.ts (1 errors) ==== + export * from "file2" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file2' or its corresponding type declarations. + export var x = 1; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues7.js b/tsc/testdata/baselines/reference/compiler/exportStarForValues7.js new file mode 100644 index 0000000000000..be769e8be0b74 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues7.js @@ -0,0 +1,56 @@ +//// [tests/cases/compiler/exportStarForValues7.ts] //// + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +export var x = 1; + +//// [file3.ts] +export * from "file2" +export var x = 1; + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file1"), exports); +exports.x = 1; +//// [file3.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file2"), exports); +exports.x = 1; diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues7.symbols b/tsc/testdata/baselines/reference/compiler/exportStarForValues7.symbols new file mode 100644 index 0000000000000..204085c5f1e58 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues7.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/exportStarForValues7.ts] //// + +=== file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(file1.ts, 0, 22)) + +=== file2.ts === +export * from "file1" +export var x = 1; +>x : Symbol(x, Decl(file2.ts, 1, 10)) + +=== file3.ts === +export * from "file2" +export var x = 1; +>x : Symbol(x, Decl(file3.ts, 1, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues7.types b/tsc/testdata/baselines/reference/compiler/exportStarForValues7.types new file mode 100644 index 0000000000000..3029250c3942d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues7.types @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/exportStarForValues7.ts] //// + +=== file1.ts === +export interface Foo { x } +>x : any + +=== file2.ts === +export * from "file1" +export var x = 1; +>x : number +>1 : 1 + +=== file3.ts === +export * from "file2" +export var x = 1; +>x : number +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues8.errors.txt b/tsc/testdata/baselines/reference/compiler/exportStarForValues8.errors.txt new file mode 100644 index 0000000000000..e4f893e4fc475 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues8.errors.txt @@ -0,0 +1,39 @@ +file2.ts(2,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file3.ts(2,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file4.ts(2,15): error TS2307: Cannot find module 'file2' or its corresponding type declarations. +file4.ts(3,15): error TS2307: Cannot find module 'file3' or its corresponding type declarations. +file5.ts(1,15): error TS2307: Cannot find module 'file4' or its corresponding type declarations. + + +==== file1.ts (0 errors) ==== + export interface Foo { x } + +==== file2.ts (1 errors) ==== + export interface A { x } + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + export var x = 1; + +==== file3.ts (1 errors) ==== + export interface B { x } + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + export var x = 1; + +==== file4.ts (2 errors) ==== + export interface C { x } + export * from "file2" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file2' or its corresponding type declarations. + export * from "file3" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file3' or its corresponding type declarations. + export var x = 1; + +==== file5.ts (1 errors) ==== + export * from "file4" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file4' or its corresponding type declarations. + export var x = 1; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues8.js b/tsc/testdata/baselines/reference/compiler/exportStarForValues8.js new file mode 100644 index 0000000000000..f1dfd136c17b6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues8.js @@ -0,0 +1,109 @@ +//// [tests/cases/compiler/exportStarForValues8.ts] //// + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export interface A { x } +export * from "file1" +export var x = 1; + +//// [file3.ts] +export interface B { x } +export * from "file1" +export var x = 1; + +//// [file4.ts] +export interface C { x } +export * from "file2" +export * from "file3" +export var x = 1; + +//// [file5.ts] +export * from "file4" +export var x = 1; + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file1"), exports); +exports.x = 1; +//// [file3.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file1"), exports); +exports.x = 1; +//// [file4.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file2"), exports); +__exportStar(require("file3"), exports); +exports.x = 1; +//// [file5.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file4"), exports); +exports.x = 1; diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues8.symbols b/tsc/testdata/baselines/reference/compiler/exportStarForValues8.symbols new file mode 100644 index 0000000000000..c647d39a6af3f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues8.symbols @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/exportStarForValues8.ts] //// + +=== file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(file1.ts, 0, 22)) + +=== file2.ts === +export interface A { x } +>A : Symbol(A, Decl(file2.ts, 0, 0)) +>x : Symbol(A.x, Decl(file2.ts, 0, 20)) + +export * from "file1" +export var x = 1; +>x : Symbol(x, Decl(file2.ts, 2, 10)) + +=== file3.ts === +export interface B { x } +>B : Symbol(B, Decl(file3.ts, 0, 0)) +>x : Symbol(B.x, Decl(file3.ts, 0, 20)) + +export * from "file1" +export var x = 1; +>x : Symbol(x, Decl(file3.ts, 2, 10)) + +=== file4.ts === +export interface C { x } +>C : Symbol(C, Decl(file4.ts, 0, 0)) +>x : Symbol(C.x, Decl(file4.ts, 0, 20)) + +export * from "file2" +export * from "file3" +export var x = 1; +>x : Symbol(x, Decl(file4.ts, 3, 10)) + +=== file5.ts === +export * from "file4" +export var x = 1; +>x : Symbol(x, Decl(file5.ts, 1, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues8.types b/tsc/testdata/baselines/reference/compiler/exportStarForValues8.types new file mode 100644 index 0000000000000..9484a148a1776 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues8.types @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/exportStarForValues8.ts] //// + +=== file1.ts === +export interface Foo { x } +>x : any + +=== file2.ts === +export interface A { x } +>x : any + +export * from "file1" +export var x = 1; +>x : number +>1 : 1 + +=== file3.ts === +export interface B { x } +>x : any + +export * from "file1" +export var x = 1; +>x : number +>1 : 1 + +=== file4.ts === +export interface C { x } +>x : any + +export * from "file2" +export * from "file3" +export var x = 1; +>x : number +>1 : 1 + +=== file5.ts === +export * from "file4" +export var x = 1; +>x : number +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues9.errors.txt b/tsc/testdata/baselines/reference/compiler/exportStarForValues9.errors.txt new file mode 100644 index 0000000000000..b937bb920a981 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues9.errors.txt @@ -0,0 +1,25 @@ +file2.ts(2,15): error TS2307: Cannot find module 'file1' or its corresponding type declarations. +file2.ts(3,15): error TS2307: Cannot find module 'file3' or its corresponding type declarations. +file3.ts(2,15): error TS2307: Cannot find module 'file2' or its corresponding type declarations. + + +==== file1.ts (0 errors) ==== + export interface Foo { x } + +==== file2.ts (2 errors) ==== + export interface A { x } + export * from "file1" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + export * from "file3" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file3' or its corresponding type declarations. + export var x = 1; + +==== file3.ts (1 errors) ==== + export interface B { x } + export * from "file2" + ~~~~~~~ +!!! error TS2307: Cannot find module 'file2' or its corresponding type declarations. + export var x = 1; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues9.js b/tsc/testdata/baselines/reference/compiler/exportStarForValues9.js new file mode 100644 index 0000000000000..afe81e92ac6c4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues9.js @@ -0,0 +1,61 @@ +//// [tests/cases/compiler/exportStarForValues9.ts] //// + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export interface A { x } +export * from "file1" +export * from "file3" +export var x = 1; + +//// [file3.ts] +export interface B { x } +export * from "file2" +export var x = 1; + + +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [file2.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file1"), exports); +__exportStar(require("file3"), exports); +exports.x = 1; +//// [file3.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +__exportStar(require("file2"), exports); +exports.x = 1; diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues9.symbols b/tsc/testdata/baselines/reference/compiler/exportStarForValues9.symbols new file mode 100644 index 0000000000000..f32531326adb9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues9.symbols @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/exportStarForValues9.ts] //// + +=== file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(file1.ts, 0, 22)) + +=== file2.ts === +export interface A { x } +>A : Symbol(A, Decl(file2.ts, 0, 0)) +>x : Symbol(A.x, Decl(file2.ts, 0, 20)) + +export * from "file1" +export * from "file3" +export var x = 1; +>x : Symbol(x, Decl(file2.ts, 3, 10)) + +=== file3.ts === +export interface B { x } +>B : Symbol(B, Decl(file3.ts, 0, 0)) +>x : Symbol(B.x, Decl(file3.ts, 0, 20)) + +export * from "file2" +export var x = 1; +>x : Symbol(x, Decl(file3.ts, 2, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportStarForValues9.types b/tsc/testdata/baselines/reference/compiler/exportStarForValues9.types new file mode 100644 index 0000000000000..95072682811ce --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportStarForValues9.types @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/exportStarForValues9.ts] //// + +=== file1.ts === +export interface Foo { x } +>x : any + +=== file2.ts === +export interface A { x } +>x : any + +export * from "file1" +export * from "file3" +export var x = 1; +>x : number +>1 : 1 + +=== file3.ts === +export interface B { x } +>x : any + +export * from "file2" +export var x = 1; +>x : number +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.js b/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.js new file mode 100644 index 0000000000000..19d20f5cef063 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts] //// + +//// [exportedInterfaceInaccessibleInCallbackInModule.ts] +export interface ProgressCallback { + (progress:any):any; +} + +// --- Generic promise +export declare class TPromise { + + constructor(init:(complete: (value:V)=>void, error:(err:any)=>void, progress:ProgressCallback)=>void, oncancel?: any); + + // removing this method fixes the error squiggle..... + public then(success?: (value:V)=>TPromise, error?: (err:any)=>TPromise, progress?:ProgressCallback): TPromise; +} + +//// [exportedInterfaceInaccessibleInCallbackInModule.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.symbols b/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.symbols new file mode 100644 index 0000000000000..2da8d6ee76af0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.symbols @@ -0,0 +1,44 @@ +//// [tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts] //// + +=== exportedInterfaceInaccessibleInCallbackInModule.ts === +export interface ProgressCallback { +>ProgressCallback : Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) + + (progress:any):any; +>progress : Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 1, 2)) +} + +// --- Generic promise +export declare class TPromise { +>TPromise : Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) +>V : Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) + + constructor(init:(complete: (value:V)=>void, error:(err:any)=>void, progress:ProgressCallback)=>void, oncancel?: any); +>init : Symbol(init, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 13)) +>complete : Symbol(complete, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 19)) +>value : Symbol(value, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 30)) +>V : Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) +>error : Symbol(error, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 45)) +>err : Symbol(err, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 53)) +>progress : Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 68)) +>ProgressCallback : Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) +>oncancel : Symbol(oncancel, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 102)) + + // removing this method fixes the error squiggle..... + public then(success?: (value:V)=>TPromise, error?: (err:any)=>TPromise, progress?:ProgressCallback): TPromise; +>then : Symbol(TPromise.then, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 119)) +>U : Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +>success : Symbol(success, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 16)) +>value : Symbol(value, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 27)) +>V : Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) +>TPromise : Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) +>U : Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +>error : Symbol(error, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 49)) +>err : Symbol(err, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 59)) +>TPromise : Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) +>U : Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +>progress : Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 81)) +>ProgressCallback : Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) +>TPromise : Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) +>U : Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +} diff --git a/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.types b/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.types new file mode 100644 index 0000000000000..d8f62bb41e32c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportedInterfaceInaccessibleInCallbackInModule.types @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts] //// + +=== exportedInterfaceInaccessibleInCallbackInModule.ts === +export interface ProgressCallback { + (progress:any):any; +>progress : any +} + +// --- Generic promise +export declare class TPromise { +>TPromise : TPromise + + constructor(init:(complete: (value:V)=>void, error:(err:any)=>void, progress:ProgressCallback)=>void, oncancel?: any); +>init : (complete: (value: V) => void, error: (err: any) => void, progress: ProgressCallback) => void +>complete : (value: V) => void +>value : V +>error : (err: any) => void +>err : any +>progress : ProgressCallback +>oncancel : any + + // removing this method fixes the error squiggle..... + public then(success?: (value:V)=>TPromise, error?: (err:any)=>TPromise, progress?:ProgressCallback): TPromise; +>then : (success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback) => TPromise +>success : ((value: V) => TPromise) | undefined +>value : V +>error : ((err: any) => TPromise) | undefined +>err : any +>progress : ProgressCallback | undefined +} diff --git a/tsc/testdata/baselines/reference/compiler/exportedVariable1.js b/tsc/testdata/baselines/reference/compiler/exportedVariable1.js new file mode 100644 index 0000000000000..0a260c38fb031 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportedVariable1.js @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/exportedVariable1.ts] //// + +//// [exportedVariable1.ts] +export var foo = {name: "Bill"}; +var upper = foo.name.toUpperCase(); + + +//// [exportedVariable1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = void 0; +exports.foo = { name: "Bill" }; +var upper = exports.foo.name.toUpperCase(); diff --git a/tsc/testdata/baselines/reference/compiler/exportedVariable1.symbols b/tsc/testdata/baselines/reference/compiler/exportedVariable1.symbols new file mode 100644 index 0000000000000..8f90b8b6f1e37 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportedVariable1.symbols @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/exportedVariable1.ts] //// + +=== exportedVariable1.ts === +export var foo = {name: "Bill"}; +>foo : Symbol(foo, Decl(exportedVariable1.ts, 0, 10)) +>name : Symbol(name, Decl(exportedVariable1.ts, 0, 18)) + +var upper = foo.name.toUpperCase(); +>upper : Symbol(upper, Decl(exportedVariable1.ts, 1, 3)) +>foo.name.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>foo.name : Symbol(name, Decl(exportedVariable1.ts, 0, 18)) +>foo : Symbol(foo, Decl(exportedVariable1.ts, 0, 10)) +>name : Symbol(name, Decl(exportedVariable1.ts, 0, 18)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportedVariable1.types b/tsc/testdata/baselines/reference/compiler/exportedVariable1.types new file mode 100644 index 0000000000000..c36c806d25b26 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportedVariable1.types @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/exportedVariable1.ts] //// + +=== exportedVariable1.ts === +export var foo = {name: "Bill"}; +>foo : { name: string; } +>{name: "Bill"} : { name: string; } +>name : string +>"Bill" : "Bill" + +var upper = foo.name.toUpperCase(); +>upper : string +>foo.name.toUpperCase() : string +>foo.name.toUpperCase : () => string +>foo.name : string +>foo : { name: string; } +>name : string +>toUpperCase : () => string + diff --git a/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.errors.txt b/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.errors.txt new file mode 100644 index 0000000000000..30013d2a09b4c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.errors.txt @@ -0,0 +1,16 @@ +exportingContainingVisibleType.ts(4,16): error TS2454: Variable 'i' is used before being assigned. + + +==== exportingContainingVisibleType.ts (1 errors) ==== + class Foo { + public get foo() { + var i: Foo; + return i; // Should be fine (previous bug report visibility error). + ~ +!!! error TS2454: Variable 'i' is used before being assigned. + + } + } + + export var x = 5; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.js b/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.js new file mode 100644 index 0000000000000..f3c4040a724a6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/exportingContainingVisibleType.ts] //// + +//// [exportingContainingVisibleType.ts] +class Foo { + public get foo() { + var i: Foo; + return i; // Should be fine (previous bug report visibility error). + + } +} + +export var x = 5; + + +//// [exportingContainingVisibleType.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +class Foo { + get foo() { + var i; + return i; // Should be fine (previous bug report visibility error). + } +} +exports.x = 5; diff --git a/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.symbols b/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.symbols new file mode 100644 index 0000000000000..9541507d35a3e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.symbols @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/exportingContainingVisibleType.ts] //// + +=== exportingContainingVisibleType.ts === +class Foo { +>Foo : Symbol(Foo, Decl(exportingContainingVisibleType.ts, 0, 0)) + + public get foo() { +>foo : Symbol(Foo.foo, Decl(exportingContainingVisibleType.ts, 0, 11)) + + var i: Foo; +>i : Symbol(i, Decl(exportingContainingVisibleType.ts, 2, 11)) +>Foo : Symbol(Foo, Decl(exportingContainingVisibleType.ts, 0, 0)) + + return i; // Should be fine (previous bug report visibility error). +>i : Symbol(i, Decl(exportingContainingVisibleType.ts, 2, 11)) + + } +} + +export var x = 5; +>x : Symbol(x, Decl(exportingContainingVisibleType.ts, 8, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.types b/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.types new file mode 100644 index 0000000000000..b0d8defde3187 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportingContainingVisibleType.types @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/exportingContainingVisibleType.ts] //// + +=== exportingContainingVisibleType.ts === +class Foo { +>Foo : Foo + + public get foo() { +>foo : Foo + + var i: Foo; +>i : Foo + + return i; // Should be fine (previous bug report visibility error). +>i : Foo + + } +} + +export var x = 5; +>x : number +>5 : 5 + diff --git a/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.errors.txt b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.errors.txt new file mode 100644 index 0000000000000..f7f881b891d16 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.errors.txt @@ -0,0 +1,12 @@ +main.ts(2,21): error TS2307: Cannot find module 'external' or its corresponding type declarations. + + +==== external.d.ts (0 errors) ==== + export var x: number + +==== main.ts (1 errors) ==== + declare module "M" { + export {x} from "external" + ~~~~~~~~~~ +!!! error TS2307: Cannot find module 'external' or its corresponding type declarations. + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.js b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.js new file mode 100644 index 0000000000000..15e673bb038cd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/exportsInAmbientModules1.ts] //// + +//// [external.d.ts] +export var x: number + +//// [main.ts] +declare module "M" { + export {x} from "external" +} + +//// [main.js] +"use strict"; diff --git a/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.symbols b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.symbols new file mode 100644 index 0000000000000..5bdf37cad95e7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/exportsInAmbientModules1.ts] //// + +=== external.d.ts === +export var x: number +>x : Symbol(x, Decl(external.d.ts, 0, 10)) + +=== main.ts === +declare module "M" { +>"M" : Symbol("M", Decl(main.ts, 0, 0)) + + export {x} from "external" +>x : Symbol(x, Decl(main.ts, 1, 12)) +} diff --git a/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.types b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.types new file mode 100644 index 0000000000000..d09b3f2ac8a24 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules1.types @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/exportsInAmbientModules1.ts] //// + +=== external.d.ts === +export var x: number +>x : number + +=== main.ts === +declare module "M" { +>"M" : typeof import("M") + + export {x} from "external" +>x : any +} diff --git a/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.errors.txt b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.errors.txt new file mode 100644 index 0000000000000..627d3cd7bfcec --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.errors.txt @@ -0,0 +1,12 @@ +main.ts(2,19): error TS2307: Cannot find module 'external' or its corresponding type declarations. + + +==== external.d.ts (0 errors) ==== + export default class C {} + +==== main.ts (1 errors) ==== + declare module "M" { + export * from "external" + ~~~~~~~~~~ +!!! error TS2307: Cannot find module 'external' or its corresponding type declarations. + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.js b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.js new file mode 100644 index 0000000000000..3a191fa47d4f2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/exportsInAmbientModules2.ts] //// + +//// [external.d.ts] +export default class C {} + +//// [main.ts] +declare module "M" { + export * from "external" +} + +//// [main.js] +"use strict"; diff --git a/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.symbols b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.symbols new file mode 100644 index 0000000000000..34fb7d3446977 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/exportsInAmbientModules2.ts] //// + +=== external.d.ts === +export default class C {} +>C : Symbol(C, Decl(external.d.ts, 0, 0)) + +=== main.ts === +declare module "M" { +>"M" : Symbol("M", Decl(main.ts, 0, 0)) + + export * from "external" +} diff --git a/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.types b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.types new file mode 100644 index 0000000000000..ad1f3d16c60d0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/exportsInAmbientModules2.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/exportsInAmbientModules2.ts] //// + +=== external.d.ts === +export default class C {} +>C : C + +=== main.ts === +declare module "M" { +>"M" : typeof import("M") + + export * from "external" +} diff --git a/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.errors.txt b/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.errors.txt new file mode 100644 index 0000000000000..39ac5a3746b44 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.errors.txt @@ -0,0 +1,39 @@ +externalModuleAssignToVar_core.ts(2,22): error TS2307: Cannot find module 'externalModuleAssignToVar_core_require' or its corresponding type declarations. +externalModuleAssignToVar_core.ts(6,23): error TS2307: Cannot find module 'externalModuleAssignToVar_core_require2' or its corresponding type declarations. +externalModuleAssignToVar_core.ts(10,23): error TS2307: Cannot find module 'externalModuleAssignToVar_ext' or its corresponding type declarations. +externalModuleAssignToVar_core_require.ts(1,18): error TS2564: Property 'bar' has no initializer and is not definitely assigned in the constructor. + + +==== externalModuleAssignToVar_core.ts (3 errors) ==== + /// + import ext = require('externalModuleAssignToVar_core_require'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'externalModuleAssignToVar_core_require' or its corresponding type declarations. + var y1: { C: new() => ext.C; } = ext; + y1 = ext; // ok + + import ext2 = require('externalModuleAssignToVar_core_require2'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'externalModuleAssignToVar_core_require2' or its corresponding type declarations. + var y2: new() => ext2 = ext2; + y2 = ext2; // ok + + import ext3 = require('externalModuleAssignToVar_ext'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'externalModuleAssignToVar_ext' or its corresponding type declarations. + var y3: new () => ext3 = ext3; + y3 = ext3; // ok + +==== externalModuleAssignToVar_ext.ts (0 errors) ==== + class D { foo: string; } + export = D; + +==== externalModuleAssignToVar_core_require.ts (1 errors) ==== + export class C { bar: string; } + ~~~ +!!! error TS2564: Property 'bar' has no initializer and is not definitely assigned in the constructor. + +==== externalModuleAssignToVar_core_require2.ts (0 errors) ==== + class C { baz: string; } + export = C; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.js b/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.js new file mode 100644 index 0000000000000..f3802158a67f9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.js @@ -0,0 +1,48 @@ +//// [tests/cases/compiler/externalModuleAssignToVar.ts] //// + +//// [externalModuleAssignToVar_ext.ts] +class D { foo: string; } +export = D; + +//// [externalModuleAssignToVar_core_require.ts] +export class C { bar: string; } + +//// [externalModuleAssignToVar_core_require2.ts] +class C { baz: string; } +export = C; + +//// [externalModuleAssignToVar_core.ts] +/// +import ext = require('externalModuleAssignToVar_core_require'); +var y1: { C: new() => ext.C; } = ext; +y1 = ext; // ok + +import ext2 = require('externalModuleAssignToVar_core_require2'); +var y2: new() => ext2 = ext2; +y2 = ext2; // ok + +import ext3 = require('externalModuleAssignToVar_ext'); +var y3: new () => ext3 = ext3; +y3 = ext3; // ok + + +//// [externalModuleAssignToVar_core_require.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.C = void 0; +class C { +} +exports.C = C; +//// [externalModuleAssignToVar_core.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const ext = require("externalModuleAssignToVar_core_require"); +var y1 = ext; +y1 = ext; // ok +const ext2 = require("externalModuleAssignToVar_core_require2"); +var y2 = ext2; +y2 = ext2; // ok +const ext3 = require("externalModuleAssignToVar_ext"); +var y3 = ext3; +y3 = ext3; // ok diff --git a/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.symbols b/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.symbols new file mode 100644 index 0000000000000..e118f6fbcb72c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.symbols @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/externalModuleAssignToVar.ts] //// + +=== externalModuleAssignToVar_core.ts === +/// +import ext = require('externalModuleAssignToVar_core_require'); +>ext : Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) + +var y1: { C: new() => ext.C; } = ext; +>y1 : Symbol(y1, Decl(externalModuleAssignToVar_core.ts, 2, 3)) +>C : Symbol(C, Decl(externalModuleAssignToVar_core.ts, 2, 9)) +>ext : Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) +>C : Symbol(ext.C) +>ext : Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) + +y1 = ext; // ok +>y1 : Symbol(y1, Decl(externalModuleAssignToVar_core.ts, 2, 3)) +>ext : Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) + +import ext2 = require('externalModuleAssignToVar_core_require2'); +>ext2 : Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) + +var y2: new() => ext2 = ext2; +>y2 : Symbol(y2, Decl(externalModuleAssignToVar_core.ts, 6, 3)) +>ext2 : Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) +>ext2 : Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) + +y2 = ext2; // ok +>y2 : Symbol(y2, Decl(externalModuleAssignToVar_core.ts, 6, 3)) +>ext2 : Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) + +import ext3 = require('externalModuleAssignToVar_ext'); +>ext3 : Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) + +var y3: new () => ext3 = ext3; +>y3 : Symbol(y3, Decl(externalModuleAssignToVar_core.ts, 10, 3)) +>ext3 : Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) +>ext3 : Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) + +y3 = ext3; // ok +>y3 : Symbol(y3, Decl(externalModuleAssignToVar_core.ts, 10, 3)) +>ext3 : Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) + +=== externalModuleAssignToVar_core_require.ts === +export class C { bar: string; } +>C : Symbol(C, Decl(externalModuleAssignToVar_core_require.ts, 0, 0)) +>bar : Symbol(C.bar, Decl(externalModuleAssignToVar_core_require.ts, 0, 16)) + diff --git a/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.types b/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.types new file mode 100644 index 0000000000000..50e43f47b118d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/externalModuleAssignToVar.types @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/externalModuleAssignToVar.ts] //// + +=== externalModuleAssignToVar_core.ts === +/// +import ext = require('externalModuleAssignToVar_core_require'); +>ext : any + +var y1: { C: new() => ext.C; } = ext; +>y1 : { C: new () => ext.C; } +>C : new () => ext.C +>ext : any +>ext : any + +y1 = ext; // ok +>y1 = ext : any +>y1 : { C: new () => ext.C; } +>ext : any + +import ext2 = require('externalModuleAssignToVar_core_require2'); +>ext2 : any + +var y2: new() => ext2 = ext2; +>y2 : new () => ext2 +>ext2 : any + +y2 = ext2; // ok +>y2 = ext2 : any +>y2 : new () => ext2 +>ext2 : any + +import ext3 = require('externalModuleAssignToVar_ext'); +>ext3 : any + +var y3: new () => ext3 = ext3; +>y3 : new () => ext3 +>ext3 : any + +y3 = ext3; // ok +>y3 = ext3 : any +>y3 : new () => ext3 +>ext3 : any + +=== externalModuleAssignToVar_core_require.ts === +export class C { bar: string; } +>C : C +>bar : string + diff --git a/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.errors.txt b/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.errors.txt new file mode 100644 index 0000000000000..ed2db13acbc46 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.errors.txt @@ -0,0 +1,12 @@ +externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts(1,31): error TS2307: Cannot find module 'externalModuleReferenceOfImportDeclarationWithExportModifier_0' or its corresponding type declarations. + + +==== externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts (1 errors) ==== + export import file1 = require('externalModuleReferenceOfImportDeclarationWithExportModifier_0'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'externalModuleReferenceOfImportDeclarationWithExportModifier_0' or its corresponding type declarations. + file1.foo(); + +==== externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts (0 errors) ==== + export function foo() { }; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.js b/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.js new file mode 100644 index 0000000000000..97929fed6b47f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.ts] //// + +//// [externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts] +export function foo() { }; + +//// [externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts] +export import file1 = require('externalModuleReferenceOfImportDeclarationWithExportModifier_0'); +file1.foo(); + + +//// [externalModuleReferenceOfImportDeclarationWithExportModifier_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.file1 = require("externalModuleReferenceOfImportDeclarationWithExportModifier_0"); +exports.file1.foo(); diff --git a/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.symbols b/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.symbols new file mode 100644 index 0000000000000..a58f76073a229 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.symbols @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.ts] //// + +=== externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts === +export import file1 = require('externalModuleReferenceOfImportDeclarationWithExportModifier_0'); +>file1 : Symbol(file1, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts, 0, 0)) + +file1.foo(); +>file1 : Symbol(file1, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.types b/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.types new file mode 100644 index 0000000000000..4412d2b377b36 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.ts] //// + +=== externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts === +export import file1 = require('externalModuleReferenceOfImportDeclarationWithExportModifier_0'); +>file1 : any + +file1.foo(); +>file1.foo() : any +>file1.foo : any +>file1 : any +>foo : any + diff --git a/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.js b/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.js new file mode 100644 index 0000000000000..80068f7cdcf8b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.js @@ -0,0 +1,44 @@ +//// [tests/cases/compiler/genericClassesInModule2.ts] //// + +//// [genericClassesInModule2.ts] +export class A{ + constructor( public callback: (self: A) => void) { + var child = new B(this); + } + AAA( callback: (self: A) => void) { + var child = new B(this); + } +} + +export interface C{ + child: B; + (self: C): void; + new(callback: (self: C) => void) +} + +export class B { + constructor(public parent: T2) { } +} + + + +//// [genericClassesInModule2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.B = exports.A = void 0; +class A { + constructor(callback) { + this.callback = callback; + var child = new B(this); + } + AAA(callback) { + var child = new B(this); + } +} +exports.A = A; +class B { + constructor(parent) { + this.parent = parent; + } +} +exports.B = B; diff --git a/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.symbols b/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.symbols new file mode 100644 index 0000000000000..a5562ee13d8ef --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.symbols @@ -0,0 +1,63 @@ +//// [tests/cases/compiler/genericClassesInModule2.ts] //// + +=== genericClassesInModule2.ts === +export class A{ +>A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) + + constructor( public callback: (self: A) => void) { +>callback : Symbol(A.callback, Decl(genericClassesInModule2.ts, 1, 16)) +>self : Symbol(self, Decl(genericClassesInModule2.ts, 1, 35)) +>A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) + + var child = new B(this); +>child : Symbol(child, Decl(genericClassesInModule2.ts, 2, 11)) +>B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) +>this : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) + } + AAA( callback: (self: A) => void) { +>AAA : Symbol(A.AAA, Decl(genericClassesInModule2.ts, 3, 5)) +>callback : Symbol(callback, Decl(genericClassesInModule2.ts, 4, 8)) +>self : Symbol(self, Decl(genericClassesInModule2.ts, 4, 20)) +>A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) + + var child = new B(this); +>child : Symbol(child, Decl(genericClassesInModule2.ts, 5, 11)) +>B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) +>this : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) + } +} + +export interface C{ +>C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) + + child: B; +>child : Symbol(C.child, Decl(genericClassesInModule2.ts, 9, 23)) +>B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) + + (self: C): void; +>self : Symbol(self, Decl(genericClassesInModule2.ts, 11, 5)) +>C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) + + new(callback: (self: C) => void) +>callback : Symbol(callback, Decl(genericClassesInModule2.ts, 12, 8)) +>self : Symbol(self, Decl(genericClassesInModule2.ts, 12, 19)) +>C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) +} + +export class B { +>B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) +>T2 : Symbol(T2, Decl(genericClassesInModule2.ts, 15, 15)) + + constructor(public parent: T2) { } +>parent : Symbol(B.parent, Decl(genericClassesInModule2.ts, 16, 16)) +>T2 : Symbol(T2, Decl(genericClassesInModule2.ts, 15, 15)) +} + + diff --git a/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.types b/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.types new file mode 100644 index 0000000000000..2409d468dff02 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericClassesInModule2.types @@ -0,0 +1,49 @@ +//// [tests/cases/compiler/genericClassesInModule2.ts] //// + +=== genericClassesInModule2.ts === +export class A{ +>A : A + + constructor( public callback: (self: A) => void) { +>callback : (self: A) => void +>self : A + + var child = new B(this); +>child : B +>new B(this) : B +>B : typeof B +>this : this + } + AAA( callback: (self: A) => void) { +>AAA : (callback: (self: A) => void) => void +>callback : (self: A) => void +>self : A + + var child = new B(this); +>child : B +>new B(this) : B +>B : typeof B +>this : this + } +} + +export interface C{ + child: B; +>child : B + + (self: C): void; +>self : C + + new(callback: (self: C) => void) +>callback : (self: C) => void +>self : C +} + +export class B { +>B : B + + constructor(public parent: T2) { } +>parent : T2 +} + + diff --git a/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.js b/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.js new file mode 100644 index 0000000000000..420da1d46c6d4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.js @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts] //// + +//// [genericInterfaceFunctionTypeParameter.ts] +export interface IFoo { } +export function foo(fn: (ifoo: IFoo) => void) { + foo(fn); // Invocation is necessary to repro (!) +} + + + + +//// [genericInterfaceFunctionTypeParameter.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = foo; +function foo(fn) { + foo(fn); // Invocation is necessary to repro (!) +} diff --git a/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.symbols b/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.symbols new file mode 100644 index 0000000000000..7ba56c973bdbd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.symbols @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts] //// + +=== genericInterfaceFunctionTypeParameter.ts === +export interface IFoo { } +>IFoo : Symbol(IFoo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 0)) +>A : Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 22)) + +export function foo(fn: (ifoo: IFoo) => void) { +>foo : Symbol(foo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 28)) +>A : Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 20)) +>fn : Symbol(fn, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 23)) +>ifoo : Symbol(ifoo, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 28)) +>IFoo : Symbol(IFoo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 0)) +>A : Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 20)) + + foo(fn); // Invocation is necessary to repro (!) +>foo : Symbol(foo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 28)) +>fn : Symbol(fn, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 23)) +} + + + diff --git a/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.types b/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.types new file mode 100644 index 0000000000000..dd2c780bdbab4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericInterfaceFunctionTypeParameter.types @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts] //// + +=== genericInterfaceFunctionTypeParameter.ts === +export interface IFoo { } +export function foo(fn: (ifoo: IFoo) => void) { +>foo : (fn: (ifoo: IFoo) => void) => void +>fn : (ifoo: IFoo) => void +>ifoo : IFoo + + foo(fn); // Invocation is necessary to repro (!) +>foo(fn) : void +>foo : (fn: (ifoo: IFoo) => void) => void +>fn : (ifoo: IFoo) => void +} + + + diff --git a/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.errors.txt b/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.errors.txt new file mode 100644 index 0000000000000..2e2efb0b33045 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.errors.txt @@ -0,0 +1,19 @@ +genericRecursiveImplicitConstructorErrors1.ts(9,49): error TS2314: Generic type 'PullTypeSymbol' requires 3 type argument(s). + + +==== genericRecursiveImplicitConstructorErrors1.ts (1 errors) ==== + export declare namespace TypeScript { + class PullSymbol { } + class PullSignatureSymbol extends PullSymbol { + public addSpecialization(signature: PullSignatureSymbol, typeArguments: PullTypeSymbol[]): void; + } + class PullTypeSymbol extends PullSymbol { + public findTypeParameter(name: string): PullTypeParameterSymbol; + } + class PullTypeParameterSymbol extends PullTypeSymbol { + ~~~~~~~~~~~~~~ +!!! error TS2314: Generic type 'PullTypeSymbol' requires 3 type argument(s). + } + } + + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.js b/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.js new file mode 100644 index 0000000000000..3b4a08fc8a8ef --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.js @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/genericRecursiveImplicitConstructorErrors1.ts] //// + +//// [genericRecursiveImplicitConstructorErrors1.ts] +export declare namespace TypeScript { + class PullSymbol { } + class PullSignatureSymbol extends PullSymbol { + public addSpecialization(signature: PullSignatureSymbol, typeArguments: PullTypeSymbol[]): void; + } + class PullTypeSymbol extends PullSymbol { + public findTypeParameter(name: string): PullTypeParameterSymbol; + } + class PullTypeParameterSymbol extends PullTypeSymbol { + } +} + + + +//// [genericRecursiveImplicitConstructorErrors1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.symbols b/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.symbols new file mode 100644 index 0000000000000..d556094b61859 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.symbols @@ -0,0 +1,57 @@ +//// [tests/cases/compiler/genericRecursiveImplicitConstructorErrors1.ts] //// + +=== genericRecursiveImplicitConstructorErrors1.ts === +export declare namespace TypeScript { +>TypeScript : Symbol(TypeScript, Decl(genericRecursiveImplicitConstructorErrors1.ts, 0, 0)) + + class PullSymbol { } +>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 0, 37)) + + class PullSignatureSymbol extends PullSymbol { +>PullSignatureSymbol : Symbol(PullSignatureSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 1, 22)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 2, 29)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 2, 31)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 2, 33)) +>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 0, 37)) + + public addSpecialization(signature: PullSignatureSymbol, typeArguments: PullTypeSymbol[]): void; +>addSpecialization : Symbol(PullSignatureSymbol.addSpecialization, Decl(genericRecursiveImplicitConstructorErrors1.ts, 2, 56)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 27)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 29)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 31)) +>signature : Symbol(signature, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 34)) +>PullSignatureSymbol : Symbol(PullSignatureSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 1, 22)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 27)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 29)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 31)) +>typeArguments : Symbol(typeArguments, Decl(genericRecursiveImplicitConstructorErrors1.ts, 3, 72)) +>PullTypeSymbol : Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 4, 3)) + } + class PullTypeSymbol extends PullSymbol { +>PullTypeSymbol : Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 4, 3)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 5, 24)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 5, 26)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 5, 28)) +>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 0, 37)) + + public findTypeParameter(name: string): PullTypeParameterSymbol; +>findTypeParameter : Symbol(PullTypeSymbol.findTypeParameter, Decl(genericRecursiveImplicitConstructorErrors1.ts, 5, 51)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 29)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 31)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 33)) +>name : Symbol(name, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 36)) +>PullTypeParameterSymbol : Symbol(PullTypeParameterSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 7, 3)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 29)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 31)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 6, 33)) + } + class PullTypeParameterSymbol extends PullTypeSymbol { +>PullTypeParameterSymbol : Symbol(PullTypeParameterSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 7, 3)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors1.ts, 8, 33)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors1.ts, 8, 35)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors1.ts, 8, 37)) +>PullTypeSymbol : Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors1.ts, 4, 3)) + } +} + + diff --git a/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.types b/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.types new file mode 100644 index 0000000000000..c50a5f3ff9812 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericRecursiveImplicitConstructorErrors1.types @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/genericRecursiveImplicitConstructorErrors1.ts] //// + +=== genericRecursiveImplicitConstructorErrors1.ts === +export declare namespace TypeScript { +>TypeScript : typeof TypeScript + + class PullSymbol { } +>PullSymbol : PullSymbol + + class PullSignatureSymbol extends PullSymbol { +>PullSignatureSymbol : PullSignatureSymbol +>PullSymbol : PullSymbol + + public addSpecialization(signature: PullSignatureSymbol, typeArguments: PullTypeSymbol[]): void; +>addSpecialization : (signature: PullSignatureSymbol, typeArguments: PullTypeSymbol[]) => void +>signature : PullSignatureSymbol +>typeArguments : PullTypeSymbol[] + } + class PullTypeSymbol extends PullSymbol { +>PullTypeSymbol : PullTypeSymbol +>PullSymbol : PullSymbol + + public findTypeParameter(name: string): PullTypeParameterSymbol; +>findTypeParameter : (name: string) => PullTypeParameterSymbol +>name : string + } + class PullTypeParameterSymbol extends PullTypeSymbol { +>PullTypeParameterSymbol : PullTypeParameterSymbol +>PullTypeSymbol : typeof PullTypeSymbol + } +} + + diff --git a/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.errors.txt b/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.errors.txt new file mode 100644 index 0000000000000..eeab11ebed2c2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.errors.txt @@ -0,0 +1,30 @@ +genericTypeWithMultipleBases2.ts(14,1): error TS2454: Variable 'x' is used before being assigned. +genericTypeWithMultipleBases2.ts(15,1): error TS2454: Variable 'x' is used before being assigned. +genericTypeWithMultipleBases2.ts(16,1): error TS2454: Variable 'x' is used before being assigned. + + +==== genericTypeWithMultipleBases2.ts (3 errors) ==== + export interface I1 { + m1: () => void; + } + + export interface I2 { + m2: () => void; + } + + export interface I3 extends I2, I1 { + p1: T; + } + + var x: I3; + x.p1; + ~ +!!! error TS2454: Variable 'x' is used before being assigned. + x.m1(); + ~ +!!! error TS2454: Variable 'x' is used before being assigned. + x.m2(); + ~ +!!! error TS2454: Variable 'x' is used before being assigned. + + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.js b/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.js new file mode 100644 index 0000000000000..47e914745d9ac --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/genericTypeWithMultipleBases2.ts] //// + +//// [genericTypeWithMultipleBases2.ts] +export interface I1 { + m1: () => void; +} + +export interface I2 { + m2: () => void; +} + +export interface I3 extends I2, I1 { + p1: T; +} + +var x: I3; +x.p1; +x.m1(); +x.m2(); + + + +//// [genericTypeWithMultipleBases2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var x; +x.p1; +x.m1(); +x.m2(); diff --git a/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.symbols b/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.symbols new file mode 100644 index 0000000000000..ee8c13d4c0c71 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.symbols @@ -0,0 +1,48 @@ +//// [tests/cases/compiler/genericTypeWithMultipleBases2.ts] //// + +=== genericTypeWithMultipleBases2.ts === +export interface I1 { +>I1 : Symbol(I1, Decl(genericTypeWithMultipleBases2.ts, 0, 0)) + + m1: () => void; +>m1 : Symbol(I1.m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) +} + +export interface I2 { +>I2 : Symbol(I2, Decl(genericTypeWithMultipleBases2.ts, 2, 1)) + + m2: () => void; +>m2 : Symbol(I2.m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) +} + +export interface I3 extends I2, I1 { +>I3 : Symbol(I3, Decl(genericTypeWithMultipleBases2.ts, 6, 1)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases2.ts, 8, 20)) +>I2 : Symbol(I2, Decl(genericTypeWithMultipleBases2.ts, 2, 1)) +>I1 : Symbol(I1, Decl(genericTypeWithMultipleBases2.ts, 0, 0)) + + p1: T; +>p1 : Symbol(I3.p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases2.ts, 8, 20)) +} + +var x: I3; +>x : Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) +>I3 : Symbol(I3, Decl(genericTypeWithMultipleBases2.ts, 6, 1)) + +x.p1; +>x.p1 : Symbol(I3.p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) +>p1 : Symbol(I3.p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) + +x.m1(); +>x.m1 : Symbol(I1.m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) +>m1 : Symbol(I1.m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) + +x.m2(); +>x.m2 : Symbol(I2.m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) +>m2 : Symbol(I2.m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) + + diff --git a/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.types b/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.types new file mode 100644 index 0000000000000..7e7d53f0df254 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericTypeWithMultipleBases2.types @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/genericTypeWithMultipleBases2.ts] //// + +=== genericTypeWithMultipleBases2.ts === +export interface I1 { + m1: () => void; +>m1 : () => void +} + +export interface I2 { + m2: () => void; +>m2 : () => void +} + +export interface I3 extends I2, I1 { + p1: T; +>p1 : T +} + +var x: I3; +>x : I3 + +x.p1; +>x.p1 : number +>x : I3 +>p1 : number + +x.m1(); +>x.m1() : void +>x.m1 : () => void +>x : I3 +>m1 : () => void + +x.m2(); +>x.m2() : void +>x.m2 : () => void +>x : I3 +>m2 : () => void + + diff --git a/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.errors.txt b/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.errors.txt new file mode 100644 index 0000000000000..0d713d28bb96b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.errors.txt @@ -0,0 +1,23 @@ +genericWithIndexerOfTypeParameterType2.ts(2,5): error TS2564: Property '_itemsByKey' has no initializer and is not definitely assigned in the constructor. +genericWithIndexerOfTypeParameterType2.ts(12,5): error TS2564: Property '__isNew' has no initializer and is not definitely assigned in the constructor. + + +==== genericWithIndexerOfTypeParameterType2.ts (2 errors) ==== + export class Collection { + _itemsByKey: { [key: string]: TItem; }; + ~~~~~~~~~~~ +!!! error TS2564: Property '_itemsByKey' has no initializer and is not definitely assigned in the constructor. + } + + export class List extends Collection{ + Bar() {} + } + + export class CollectionItem {} + + export class ListItem extends CollectionItem { + __isNew: boolean; + ~~~~~~~ +!!! error TS2564: Property '__isNew' has no initializer and is not definitely assigned in the constructor. + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.js b/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.js new file mode 100644 index 0000000000000..22087829057a2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts] //// + +//// [genericWithIndexerOfTypeParameterType2.ts] +export class Collection { + _itemsByKey: { [key: string]: TItem; }; +} + +export class List extends Collection{ + Bar() {} +} + +export class CollectionItem {} + +export class ListItem extends CollectionItem { + __isNew: boolean; +} + + +//// [genericWithIndexerOfTypeParameterType2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ListItem = exports.CollectionItem = exports.List = exports.Collection = void 0; +class Collection { +} +exports.Collection = Collection; +class List extends Collection { + Bar() { } +} +exports.List = List; +class CollectionItem { +} +exports.CollectionItem = CollectionItem; +class ListItem extends CollectionItem { +} +exports.ListItem = ListItem; diff --git a/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.symbols b/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.symbols new file mode 100644 index 0000000000000..b28f9ff99494a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.symbols @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts] //// + +=== genericWithIndexerOfTypeParameterType2.ts === +export class Collection { +>Collection : Symbol(Collection, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 0)) +>TItem : Symbol(TItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 24)) +>CollectionItem : Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) + + _itemsByKey: { [key: string]: TItem; }; +>_itemsByKey : Symbol(Collection._itemsByKey, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 55)) +>key : Symbol(key, Decl(genericWithIndexerOfTypeParameterType2.ts, 1, 20)) +>TItem : Symbol(TItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 24)) +} + +export class List extends Collection{ +>List : Symbol(List, Decl(genericWithIndexerOfTypeParameterType2.ts, 2, 1)) +>Collection : Symbol(Collection, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 0)) +>ListItem : Symbol(ListItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 8, 30)) + + Bar() {} +>Bar : Symbol(List.Bar, Decl(genericWithIndexerOfTypeParameterType2.ts, 4, 47)) +} + +export class CollectionItem {} +>CollectionItem : Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) + +export class ListItem extends CollectionItem { +>ListItem : Symbol(ListItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 8, 30)) +>CollectionItem : Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) + + __isNew: boolean; +>__isNew : Symbol(ListItem.__isNew, Decl(genericWithIndexerOfTypeParameterType2.ts, 10, 46)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.types b/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.types new file mode 100644 index 0000000000000..8ac8f0a0e990b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/genericWithIndexerOfTypeParameterType2.types @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts] //// + +=== genericWithIndexerOfTypeParameterType2.ts === +export class Collection { +>Collection : Collection + + _itemsByKey: { [key: string]: TItem; }; +>_itemsByKey : { [key: string]: TItem; } +>key : string +} + +export class List extends Collection{ +>List : List +>Collection : Collection + + Bar() {} +>Bar : () => void +} + +export class CollectionItem {} +>CollectionItem : CollectionItem + +export class ListItem extends CollectionItem { +>ListItem : ListItem +>CollectionItem : CollectionItem + + __isNew: boolean; +>__isNew : boolean +} + diff --git a/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.errors.txt b/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.errors.txt new file mode 100644 index 0000000000000..8da059494431f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.errors.txt @@ -0,0 +1,16 @@ +importDeclWithExportModifier.ts(5,19): error TS2708: Cannot use namespace 'x' as a value. +importDeclWithExportModifier.ts(5,21): error TS2694: Namespace 'x' has no exported member 'c'. + + +==== importDeclWithExportModifier.ts (2 errors) ==== + namespace x { + interface c { + } + } + export import a = x.c; + ~ +!!! error TS2708: Cannot use namespace 'x' as a value. + ~ +!!! error TS2694: Namespace 'x' has no exported member 'c'. + var b: a; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.js b/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.js new file mode 100644 index 0000000000000..d6854d687e0a1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/importDeclWithExportModifier.ts] //// + +//// [importDeclWithExportModifier.ts] +namespace x { + interface c { + } +} +export import a = x.c; +var b: a; + + +//// [importDeclWithExportModifier.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = x.c; +var b; diff --git a/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.symbols b/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.symbols new file mode 100644 index 0000000000000..4a640c83b1667 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.symbols @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/importDeclWithExportModifier.ts] //// + +=== importDeclWithExportModifier.ts === +namespace x { +>x : Symbol(x, Decl(importDeclWithExportModifier.ts, 0, 0)) + + interface c { +>c : Symbol(c, Decl(importDeclWithExportModifier.ts, 0, 13)) + } +} +export import a = x.c; +>a : Symbol(a, Decl(importDeclWithExportModifier.ts, 3, 1)) +>x : Symbol(x, Decl(importDeclWithExportModifier.ts, 0, 0)) + +var b: a; +>b : Symbol(b, Decl(importDeclWithExportModifier.ts, 5, 3)) +>a : Symbol(a, Decl(importDeclWithExportModifier.ts, 3, 1)) + diff --git a/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.types b/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.types new file mode 100644 index 0000000000000..56d8610ee0836 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importDeclWithExportModifier.types @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/importDeclWithExportModifier.ts] //// + +=== importDeclWithExportModifier.ts === +namespace x { + interface c { + } +} +export import a = x.c; +>a : any +>x : any +>c : any + +var b: a; +>b : a + diff --git a/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.errors.txt b/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.errors.txt new file mode 100644 index 0000000000000..e6bf1c2970e46 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.errors.txt @@ -0,0 +1,13 @@ +Bar.ts(1,24): error TS2307: Cannot find module 'Foo' or its corresponding type declarations. + + +==== Bar.ts (1 errors) ==== + import Error = require('Foo'); + ~~~~~ +!!! error TS2307: Cannot find module 'Foo' or its corresponding type declarations. + class Bar extends Error {} + export = Bar; +==== Foo.ts (0 errors) ==== + class Foo {} + export = Foo; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.js b/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.js new file mode 100644 index 0000000000000..ad3538db5e0f6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/importShadowsGlobalName.ts] //// + +//// [Foo.ts] +class Foo {} +export = Foo; + +//// [Bar.ts] +import Error = require('Foo'); +class Bar extends Error {} +export = Bar; + +//// [Bar.js] +"use strict"; +const Error = require("Foo"); +class Bar extends Error { +} +module.exports = Bar; diff --git a/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.symbols b/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.symbols new file mode 100644 index 0000000000000..489990f9f66c0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/importShadowsGlobalName.ts] //// + +=== Bar.ts === +import Error = require('Foo'); +>Error : Symbol(Error, Decl(Bar.ts, 0, 0)) + +class Bar extends Error {} +>Bar : Symbol(Bar, Decl(Bar.ts, 0, 30)) +>Error : Symbol(Error, Decl(Bar.ts, 0, 0)) + +export = Bar; +>Bar : Symbol(Bar, Decl(Bar.ts, 0, 30)) + diff --git a/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.types b/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.types new file mode 100644 index 0000000000000..76f88a0a3b16e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importShadowsGlobalName.types @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/importShadowsGlobalName.ts] //// + +=== Bar.ts === +import Error = require('Foo'); +>Error : any + +class Bar extends Error {} +>Bar : Bar +>Error : any + +export = Bar; +>Bar : Bar + diff --git a/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.errors.txt b/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.errors.txt new file mode 100644 index 0000000000000..727bb97e5dcf8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.errors.txt @@ -0,0 +1,25 @@ +file2.ts(1,24): error TS2307: Cannot find module 'file1' or its corresponding type declarations. + + +==== file2.ts (1 errors) ==== + import appJs = require("file1"); + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + import Services = appJs.Services; + import UserServices = Services.UserServices; + var x = new UserServices().getUserName(); + +==== file1.ts (0 errors) ==== + namespace App { + export namespace Services { + export class UserServices { + public getUserName(): string { + return "Bill Gates"; + } + } + } + } + + import Mod = App; + export = Mod; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.js b/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.js new file mode 100644 index 0000000000000..c8857f038a940 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.js @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/import_reference-exported-alias.ts] //// + +//// [file1.ts] +namespace App { + export namespace Services { + export class UserServices { + public getUserName(): string { + return "Bill Gates"; + } + } + } +} + +import Mod = App; +export = Mod; + +//// [file2.ts] +import appJs = require("file1"); +import Services = appJs.Services; +import UserServices = Services.UserServices; +var x = new UserServices().getUserName(); + + +//// [file2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const appJs = require("file1"); +var Services = appJs.Services; +var UserServices = Services.UserServices; +var x = new UserServices().getUserName(); diff --git a/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.symbols b/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.symbols new file mode 100644 index 0000000000000..683337e6a5854 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.symbols @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/import_reference-exported-alias.ts] //// + +=== file2.ts === +import appJs = require("file1"); +>appJs : Symbol(appJs, Decl(file2.ts, 0, 0)) + +import Services = appJs.Services; +>Services : Symbol(Services, Decl(file2.ts, 0, 32)) +>appJs : Symbol(appJs, Decl(file2.ts, 0, 0)) +>Services : Symbol(appJs) + +import UserServices = Services.UserServices; +>UserServices : Symbol(UserServices, Decl(file2.ts, 1, 33)) +>Services : Symbol(Services, Decl(file2.ts, 0, 32)) +>UserServices : Symbol(appJs) + +var x = new UserServices().getUserName(); +>x : Symbol(x, Decl(file2.ts, 3, 3)) +>UserServices : Symbol(UserServices, Decl(file2.ts, 1, 33)) + diff --git a/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.types b/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.types new file mode 100644 index 0000000000000..6aa132b329cf6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_reference-exported-alias.types @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/import_reference-exported-alias.ts] //// + +=== file2.ts === +import appJs = require("file1"); +>appJs : any + +import Services = appJs.Services; +>Services : any +>appJs : any +>Services : any + +import UserServices = Services.UserServices; +>UserServices : any +>Services : any +>UserServices : any + +var x = new UserServices().getUserName(); +>x : any +>new UserServices().getUserName() : any +>new UserServices().getUserName : any +>new UserServices() : any +>UserServices : any +>getUserName : any + diff --git a/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.errors.txt b/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.errors.txt new file mode 100644 index 0000000000000..f000e2bdae831 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.errors.txt @@ -0,0 +1,21 @@ +file2.ts(1,24): error TS2307: Cannot find module 'file1' or its corresponding type declarations. + + +==== file2.ts (1 errors) ==== + import appJs = require("file1"); + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + import Services = appJs.App.Services; + var x = new Services.UserServices().getUserName(); + +==== file1.ts (0 errors) ==== + export namespace App { + export namespace Services { + export class UserServices { + public getUserName(): string { + return "Bill Gates"; + } + } + } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.js b/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.js new file mode 100644 index 0000000000000..e45e803f37fa3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/import_reference-to-type-alias.ts] //// + +//// [file1.ts] +export namespace App { + export namespace Services { + export class UserServices { + public getUserName(): string { + return "Bill Gates"; + } + } + } +} + +//// [file2.ts] +import appJs = require("file1"); +import Services = appJs.App.Services; +var x = new Services.UserServices().getUserName(); + + +//// [file2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const appJs = require("file1"); +var Services = appJs.App.Services; +var x = new Services.UserServices().getUserName(); diff --git a/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.symbols b/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.symbols new file mode 100644 index 0000000000000..6c674cc4f7c80 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.symbols @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/import_reference-to-type-alias.ts] //// + +=== file2.ts === +import appJs = require("file1"); +>appJs : Symbol(appJs, Decl(file2.ts, 0, 0)) + +import Services = appJs.App.Services; +>Services : Symbol(Services, Decl(file2.ts, 0, 32)) +>appJs : Symbol(appJs, Decl(file2.ts, 0, 0)) +>App : Symbol(appJs) +>Services : Symbol(appJs) + +var x = new Services.UserServices().getUserName(); +>x : Symbol(x, Decl(file2.ts, 2, 3)) +>Services : Symbol(Services, Decl(file2.ts, 0, 32)) + diff --git a/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.types b/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.types new file mode 100644 index 0000000000000..91af8d3b30982 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_reference-to-type-alias.types @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/import_reference-to-type-alias.ts] //// + +=== file2.ts === +import appJs = require("file1"); +>appJs : any + +import Services = appJs.App.Services; +>Services : any +>appJs : any +>App : any +>Services : any + +var x = new Services.UserServices().getUserName(); +>x : any +>new Services.UserServices().getUserName() : any +>new Services.UserServices().getUserName : any +>new Services.UserServices() : any +>Services.UserServices : any +>Services : any +>UserServices : any +>getUserName : any + diff --git a/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.errors.txt b/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.errors.txt new file mode 100644 index 0000000000000..834afc632a5e2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.errors.txt @@ -0,0 +1,19 @@ +a.ts(4,9): error TS2454: Variable 'testData' is used before being assigned. + + +==== a.ts (1 errors) ==== + /// + import ITest = require('ITest'); + var testData: ITest[]; + var p = testData[0].name; + ~~~~~~~~ +!!! error TS2454: Variable 'testData' is used before being assigned. + +==== b.ts (0 errors) ==== + declare module "ITest" { + interface Name { + name: string; + } + export = Name; + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.js b/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.js new file mode 100644 index 0000000000000..62bce172df9b2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.ts] //// + +//// [b.ts] +declare module "ITest" { + interface Name { + name: string; + } + export = Name; +} + +//// [a.ts] +/// +import ITest = require('ITest'); +var testData: ITest[]; +var p = testData[0].name; + + +//// [b.js] +"use strict"; +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var testData; +var p = testData[0].name; diff --git a/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.symbols b/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.symbols new file mode 100644 index 0000000000000..e96d3615a7255 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.symbols @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.ts] //// + +=== a.ts === +/// +import ITest = require('ITest'); +>ITest : Symbol(ITest, Decl(a.ts, 0, 0)) + +var testData: ITest[]; +>testData : Symbol(testData, Decl(a.ts, 2, 3)) +>ITest : Symbol(ITest, Decl(a.ts, 0, 0)) + +var p = testData[0].name; +>p : Symbol(p, Decl(a.ts, 3, 3)) +>testData[0].name : Symbol(ITest.name, Decl(b.ts, 1, 20)) +>testData : Symbol(testData, Decl(a.ts, 2, 3)) +>name : Symbol(ITest.name, Decl(b.ts, 1, 20)) + +=== b.ts === +declare module "ITest" { +>"ITest" : Symbol("ITest", Decl(b.ts, 0, 0)) + + interface Name { +>Name : Symbol(Name, Decl(b.ts, 0, 24)) + + name: string; +>name : Symbol(Name.name, Decl(b.ts, 1, 20)) + } + export = Name; +>Name : Symbol(Name, Decl(b.ts, 0, 24)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.types b/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.types new file mode 100644 index 0000000000000..c612d961c91af --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.types @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.ts] //// + +=== a.ts === +/// +import ITest = require('ITest'); +>ITest : any + +var testData: ITest[]; +>testData : ITest[] + +var p = testData[0].name; +>p : string +>testData[0].name : string +>testData[0] : ITest +>testData : ITest[] +>0 : 0 +>name : string + +=== b.ts === +declare module "ITest" { +>"ITest" : typeof import("ITest") + + interface Name { + name: string; +>name : string + } + export = Name; +>Name : Name +} + diff --git a/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.errors.txt b/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.errors.txt new file mode 100644 index 0000000000000..ce2227488c2f7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.errors.txt @@ -0,0 +1,13 @@ +consumer.ts(1,23): error TS2307: Cannot find module 'host' or its corresponding type declarations. + + +==== consumer.ts (1 errors) ==== + import host = require("host"); + ~~~~~~ +!!! error TS2307: Cannot find module 'host' or its corresponding type declarations. + var hostVar = host; + var v = new hostVar.Host(); + +==== host.ts (0 errors) ==== + export class Host { } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.js b/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.js new file mode 100644 index 0000000000000..213a190c278ef --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/import_var-referencing-an-imported-module-alias.ts] //// + +//// [host.ts] +export class Host { } + +//// [consumer.ts] +import host = require("host"); +var hostVar = host; +var v = new hostVar.Host(); + + +//// [consumer.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const host = require("host"); +var hostVar = host; +var v = new hostVar.Host(); diff --git a/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.symbols b/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.symbols new file mode 100644 index 0000000000000..cee548391f971 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/import_var-referencing-an-imported-module-alias.ts] //// + +=== consumer.ts === +import host = require("host"); +>host : Symbol(host, Decl(consumer.ts, 0, 0)) + +var hostVar = host; +>hostVar : Symbol(hostVar, Decl(consumer.ts, 1, 3)) +>host : Symbol(host, Decl(consumer.ts, 0, 0)) + +var v = new hostVar.Host(); +>v : Symbol(v, Decl(consumer.ts, 2, 3)) +>hostVar : Symbol(hostVar, Decl(consumer.ts, 1, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.types b/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.types new file mode 100644 index 0000000000000..b13f1fa2a40e3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/import_var-referencing-an-imported-module-alias.types @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/import_var-referencing-an-imported-module-alias.ts] //// + +=== consumer.ts === +import host = require("host"); +>host : any + +var hostVar = host; +>hostVar : any +>host : any + +var v = new hostVar.Host(); +>v : any +>new hostVar.Host() : any +>hostVar.Host : any +>hostVar : any +>Host : any + diff --git a/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.errors.txt b/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.errors.txt new file mode 100644 index 0000000000000..35a2b69a5d925 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.errors.txt @@ -0,0 +1,22 @@ +file2.ts(1,27): error TS2307: Cannot find module 'file1' or its corresponding type declarations. + + +==== file2.ts (1 errors) ==== + import RT_ALIAS = require("file1"); + ~~~~~~~ +!!! error TS2307: Cannot find module 'file1' or its corresponding type declarations. + import ReferredTo = RT_ALIAS.elaborate.nested.mod.name.ReferredTo; + + export namespace ImportingModule { + class UsesReferredType { + constructor(private referred: ReferredTo) { } + } + } +==== file1.ts (0 errors) ==== + export namespace elaborate.nested.mod.name { + export class ReferredTo { + doSomething(): void { + } + } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.js b/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.js new file mode 100644 index 0000000000000..5b17940a6fd0c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.js @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/importedAliasesInTypePositions.ts] //// + +//// [file1.ts] +export namespace elaborate.nested.mod.name { + export class ReferredTo { + doSomething(): void { + } + } +} + +//// [file2.ts] +import RT_ALIAS = require("file1"); +import ReferredTo = RT_ALIAS.elaborate.nested.mod.name.ReferredTo; + +export namespace ImportingModule { + class UsesReferredType { + constructor(private referred: ReferredTo) { } + } +} + +//// [file2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ImportingModule = void 0; +var ImportingModule; +(function (ImportingModule) { + class UsesReferredType { + constructor(referred) { + this.referred = referred; + } + } +})(ImportingModule || (exports.ImportingModule = ImportingModule = {})); diff --git a/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.symbols b/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.symbols new file mode 100644 index 0000000000000..f88dc0a3830ec --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.symbols @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/importedAliasesInTypePositions.ts] //// + +=== file2.ts === +import RT_ALIAS = require("file1"); +>RT_ALIAS : Symbol(RT_ALIAS, Decl(file2.ts, 0, 0)) + +import ReferredTo = RT_ALIAS.elaborate.nested.mod.name.ReferredTo; +>ReferredTo : Symbol(ReferredTo, Decl(file2.ts, 0, 35)) +>RT_ALIAS : Symbol(RT_ALIAS, Decl(file2.ts, 0, 0)) +>elaborate : Symbol(RT_ALIAS) +>nested : Symbol(RT_ALIAS) +>mod : Symbol(RT_ALIAS) +>name : Symbol(RT_ALIAS) +>ReferredTo : Symbol(RT_ALIAS) + +export namespace ImportingModule { +>ImportingModule : Symbol(ImportingModule, Decl(file2.ts, 1, 66)) + + class UsesReferredType { +>UsesReferredType : Symbol(UsesReferredType, Decl(file2.ts, 3, 34)) + + constructor(private referred: ReferredTo) { } +>referred : Symbol(UsesReferredType.referred, Decl(file2.ts, 5, 20)) +>ReferredTo : Symbol(ReferredTo, Decl(file2.ts, 0, 35)) + } +} diff --git a/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.types b/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.types new file mode 100644 index 0000000000000..26d26993559c6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importedAliasesInTypePositions.types @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/importedAliasesInTypePositions.ts] //// + +=== file2.ts === +import RT_ALIAS = require("file1"); +>RT_ALIAS : any + +import ReferredTo = RT_ALIAS.elaborate.nested.mod.name.ReferredTo; +>ReferredTo : any +>RT_ALIAS : any +>elaborate : any +>nested : any +>mod : any +>name : any +>ReferredTo : any + +export namespace ImportingModule { +>ImportingModule : typeof ImportingModule + + class UsesReferredType { +>UsesReferredType : UsesReferredType + + constructor(private referred: ReferredTo) { } +>referred : ReferredTo + } +} diff --git a/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.js b/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.js new file mode 100644 index 0000000000000..66ac31c0f61b1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/importedModuleClassNameClash.ts] //// + +//// [importedModuleClassNameClash.ts] +import foo = m1; + +export namespace m1 { } + +class foo { } + + +//// [importedModuleClassNameClash.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class foo { +} diff --git a/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.symbols b/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.symbols new file mode 100644 index 0000000000000..651d73786fbe6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/importedModuleClassNameClash.ts] //// + +=== importedModuleClassNameClash.ts === +import foo = m1; +>foo : Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 0), Decl(importedModuleClassNameClash.ts, 2, 23)) +>m1 : Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 16)) + +export namespace m1 { } +>m1 : Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 16)) + +class foo { } +>foo : Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 0), Decl(importedModuleClassNameClash.ts, 2, 23)) + diff --git a/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.types b/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.types new file mode 100644 index 0000000000000..14001567c40b4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importedModuleClassNameClash.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/importedModuleClassNameClash.ts] //// + +=== importedModuleClassNameClash.ts === +import foo = m1; +>foo : typeof foo +>m1 : error + +export namespace m1 { } + +class foo { } +>foo : foo + diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.errors.txt b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.errors.txt new file mode 100644 index 0000000000000..436ab51ab60d8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.errors.txt @@ -0,0 +1,12 @@ +main.ts(2,21): error TS2307: Cannot find module 'external' or its corresponding type declarations. + + +==== external.d.ts (0 errors) ==== + export var x: number + +==== main.ts (1 errors) ==== + declare module "M" { + import {x} from "external" + ~~~~~~~~~~ +!!! error TS2307: Cannot find module 'external' or its corresponding type declarations. + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.js b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.js new file mode 100644 index 0000000000000..11e2930d8f8de --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/importsInAmbientModules1.ts] //// + +//// [external.d.ts] +export var x: number + +//// [main.ts] +declare module "M" { + import {x} from "external" +} + +//// [main.js] +"use strict"; diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.symbols b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.symbols new file mode 100644 index 0000000000000..847c69eea3dca --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/importsInAmbientModules1.ts] //// + +=== external.d.ts === +export var x: number +>x : Symbol(x, Decl(external.d.ts, 0, 10)) + +=== main.ts === +declare module "M" { +>"M" : Symbol("M", Decl(main.ts, 0, 0)) + + import {x} from "external" +>x : Symbol(x, Decl(main.ts, 1, 12)) +} diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.types b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.types new file mode 100644 index 0000000000000..46496efd1ad6d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules1.types @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/importsInAmbientModules1.ts] //// + +=== external.d.ts === +export var x: number +>x : number + +=== main.ts === +declare module "M" { +>"M" : typeof import("M") + + import {x} from "external" +>x : any +} diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.errors.txt b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.errors.txt new file mode 100644 index 0000000000000..8298f3699a8a5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.errors.txt @@ -0,0 +1,12 @@ +main.ts(2,19): error TS2307: Cannot find module 'external' or its corresponding type declarations. + + +==== external.d.ts (0 errors) ==== + export default class C {} + +==== main.ts (1 errors) ==== + declare module "M" { + import C from "external" + ~~~~~~~~~~ +!!! error TS2307: Cannot find module 'external' or its corresponding type declarations. + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.js b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.js new file mode 100644 index 0000000000000..d7c7067fe7419 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/importsInAmbientModules2.ts] //// + +//// [external.d.ts] +export default class C {} + +//// [main.ts] +declare module "M" { + import C from "external" +} + +//// [main.js] +"use strict"; diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.symbols b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.symbols new file mode 100644 index 0000000000000..109f2d87a727e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.symbols @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/importsInAmbientModules2.ts] //// + +=== external.d.ts === +export default class C {} +>C : Symbol(C, Decl(external.d.ts, 0, 0)) + +=== main.ts === +declare module "M" { +>"M" : Symbol("M", Decl(main.ts, 0, 0)) + + import C from "external" +>C : Symbol(C, Decl(main.ts, 1, 10)) +} diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.types b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.types new file mode 100644 index 0000000000000..5615063778860 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules2.types @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/importsInAmbientModules2.ts] //// + +=== external.d.ts === +export default class C {} +>C : C + +=== main.ts === +declare module "M" { +>"M" : typeof import("M") + + import C from "external" +>C : any +} diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.errors.txt b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.errors.txt new file mode 100644 index 0000000000000..660bb8860e71f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.errors.txt @@ -0,0 +1,12 @@ +main.ts(2,24): error TS2307: Cannot find module 'external' or its corresponding type declarations. + + +==== main.ts (1 errors) ==== + declare module "M" { + import C = require("external"); + ~~~~~~~~~~ +!!! error TS2307: Cannot find module 'external' or its corresponding type declarations. + } +==== external.d.ts (0 errors) ==== + export default class C {} + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.js b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.js new file mode 100644 index 0000000000000..c47017aa82a0f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/importsInAmbientModules3.ts] //// + +//// [external.d.ts] +export default class C {} + +//// [main.ts] +declare module "M" { + import C = require("external"); +} + +//// [main.js] +"use strict"; diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.symbols b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.symbols new file mode 100644 index 0000000000000..9e3c3ede9ff59 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.symbols @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/importsInAmbientModules3.ts] //// + +=== main.ts === +declare module "M" { +>"M" : Symbol("M", Decl(main.ts, 0, 0)) + + import C = require("external"); +>C : Symbol(C, Decl(main.ts, 0, 20)) +} diff --git a/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.types b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.types new file mode 100644 index 0000000000000..d4ef862bbfb13 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/importsInAmbientModules3.types @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/importsInAmbientModules3.ts] //// + +=== main.ts === +declare module "M" { +>"M" : typeof import("M") + + import C = require("external"); +>C : any +} diff --git a/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.errors.txt b/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.errors.txt new file mode 100644 index 0000000000000..efbadc018d12e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.errors.txt @@ -0,0 +1,18 @@ +instanceOfInExternalModules_1.ts(2,22): error TS2307: Cannot find module 'instanceOfInExternalModules_require' or its corresponding type declarations. +instanceOfInExternalModules_require.ts(1,20): error TS2564: Property 'foo' has no initializer and is not definitely assigned in the constructor. + + +==== instanceOfInExternalModules_1.ts (1 errors) ==== + /// + import Bar = require("instanceOfInExternalModules_require"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'instanceOfInExternalModules_require' or its corresponding type declarations. + function IsFoo(value: any): boolean { + return value instanceof Bar.Foo; + } + +==== instanceOfInExternalModules_require.ts (1 errors) ==== + export class Foo { foo: string; } + ~~~ +!!! error TS2564: Property 'foo' has no initializer and is not definitely assigned in the constructor. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.js b/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.js new file mode 100644 index 0000000000000..9a9ad8dcddf2a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/instanceOfInExternalModules.ts] //// + +//// [instanceOfInExternalModules_require.ts] +export class Foo { foo: string; } + +//// [instanceOfInExternalModules_1.ts] +/// +import Bar = require("instanceOfInExternalModules_require"); +function IsFoo(value: any): boolean { + return value instanceof Bar.Foo; +} + + +//// [instanceOfInExternalModules_require.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Foo = void 0; +class Foo { +} +exports.Foo = Foo; +//// [instanceOfInExternalModules_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const Bar = require("instanceOfInExternalModules_require"); +function IsFoo(value) { + return value instanceof Bar.Foo; +} diff --git a/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.symbols b/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.symbols new file mode 100644 index 0000000000000..040e4b4256935 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.symbols @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/instanceOfInExternalModules.ts] //// + +=== instanceOfInExternalModules_1.ts === +/// +import Bar = require("instanceOfInExternalModules_require"); +>Bar : Symbol(Bar, Decl(instanceOfInExternalModules_1.ts, 0, 0)) + +function IsFoo(value: any): boolean { +>IsFoo : Symbol(IsFoo, Decl(instanceOfInExternalModules_1.ts, 1, 60)) +>value : Symbol(value, Decl(instanceOfInExternalModules_1.ts, 2, 15)) + + return value instanceof Bar.Foo; +>value : Symbol(value, Decl(instanceOfInExternalModules_1.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(instanceOfInExternalModules_1.ts, 0, 0)) +} + +=== instanceOfInExternalModules_require.ts === +export class Foo { foo: string; } +>Foo : Symbol(Foo, Decl(instanceOfInExternalModules_require.ts, 0, 0)) +>foo : Symbol(Foo.foo, Decl(instanceOfInExternalModules_require.ts, 0, 18)) + diff --git a/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.types b/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.types new file mode 100644 index 0000000000000..c8f1950c60d9c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/instanceOfInExternalModules.types @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/instanceOfInExternalModules.ts] //// + +=== instanceOfInExternalModules_1.ts === +/// +import Bar = require("instanceOfInExternalModules_require"); +>Bar : any + +function IsFoo(value: any): boolean { +>IsFoo : (value: any) => boolean +>value : any + + return value instanceof Bar.Foo; +>value instanceof Bar.Foo : boolean +>value : any +>Bar.Foo : any +>Bar : any +>Foo : any +} + +=== instanceOfInExternalModules_require.ts === +export class Foo { foo: string; } +>Foo : Foo +>foo : string + diff --git a/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.js b/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.js new file mode 100644 index 0000000000000..1fbcf46d647ce --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.js @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/interfaceDeclaration5.ts] //// + +//// [interfaceDeclaration5.ts] +export interface I1 { item:string; } +export class C1 { } + + +//// [interfaceDeclaration5.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.C1 = void 0; +class C1 { +} +exports.C1 = C1; diff --git a/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.symbols b/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.symbols new file mode 100644 index 0000000000000..2cd063f55ac03 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/interfaceDeclaration5.ts] //// + +=== interfaceDeclaration5.ts === +export interface I1 { item:string; } +>I1 : Symbol(I1, Decl(interfaceDeclaration5.ts, 0, 0)) +>item : Symbol(I1.item, Decl(interfaceDeclaration5.ts, 0, 21)) + +export class C1 { } +>C1 : Symbol(C1, Decl(interfaceDeclaration5.ts, 0, 36)) + diff --git a/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.types b/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.types new file mode 100644 index 0000000000000..c80d078c717cb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/interfaceDeclaration5.types @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/interfaceDeclaration5.ts] //// + +=== interfaceDeclaration5.ts === +export interface I1 { item:string; } +>item : string + +export class C1 { } +>C1 : C1 + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.js new file mode 100644 index 0000000000000..e9aec3972d30f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.js @@ -0,0 +1,42 @@ +//// [tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts] //// + +//// [internalAliasEnumInsideTopLevelModuleWithExport.ts] +export namespace a { + export enum weekend { + Friday, + Saturday, + Sunday + } +} + +export import b = a.weekend; +export var bVal: b = b.Sunday; + + +//// [internalAliasEnumInsideTopLevelModuleWithExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bVal = exports.b = exports.a = void 0; +var a; +(function (a) { + let weekend; + (function (weekend) { + weekend[weekend["Friday"] = 0] = "Friday"; + weekend[weekend["Saturday"] = 1] = "Saturday"; + weekend[weekend["Sunday"] = 2] = "Sunday"; + })(weekend = a.weekend || (a.weekend = {})); +})(a || (exports.a = a = {})); +exports.b = a.weekend; +exports.bVal = exports.b.Sunday; + + +//// [internalAliasEnumInsideTopLevelModuleWithExport.d.ts] +export declare namespace a { + enum weekend { + Friday = 0, + Saturday = 1, + Sunday = 2 + } +} +export import b = a.weekend; +export declare var bVal: b; diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..a39fc43562e5f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts] //// + +=== internalAliasEnumInsideTopLevelModuleWithExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 0)) + + export enum weekend { +>weekend : Symbol(weekend, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 20)) + + Friday, +>Friday : Symbol(b.Friday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 1, 25)) + + Saturday, +>Saturday : Symbol(b.Saturday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 2, 15)) + + Sunday +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) + } +} + +export import b = a.weekend; +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) +>a : Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 0)) +>weekend : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 20)) + +export var bVal: b = b.Sunday; +>bVal : Symbol(bVal, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 9, 10)) +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) +>b.Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.types new file mode 100644 index 0000000000000..6bd06120b4314 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithExport.types @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts] //// + +=== internalAliasEnumInsideTopLevelModuleWithExport.ts === +export namespace a { +>a : typeof a + + export enum weekend { +>weekend : weekend + + Friday, +>Friday : weekend.Friday + + Saturday, +>Saturday : weekend.Saturday + + Sunday +>Sunday : weekend.Sunday + } +} + +export import b = a.weekend; +>b : typeof b +>a : typeof a +>weekend : b + +export var bVal: b = b.Sunday; +>bVal : b +>b.Sunday : b.Sunday +>b : typeof b +>Sunday : b.Sunday + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.js new file mode 100644 index 0000000000000..cccc03aea97a2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.js @@ -0,0 +1,42 @@ +//// [tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts] //// + +//// [internalAliasEnumInsideTopLevelModuleWithoutExport.ts] +export namespace a { + export enum weekend { + Friday, + Saturday, + Sunday + } +} + +import b = a.weekend; +export var bVal: b = b.Sunday; + + +//// [internalAliasEnumInsideTopLevelModuleWithoutExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bVal = exports.a = void 0; +var a; +(function (a) { + let weekend; + (function (weekend) { + weekend[weekend["Friday"] = 0] = "Friday"; + weekend[weekend["Saturday"] = 1] = "Saturday"; + weekend[weekend["Sunday"] = 2] = "Sunday"; + })(weekend = a.weekend || (a.weekend = {})); +})(a || (exports.a = a = {})); +var b = a.weekend; +exports.bVal = b.Sunday; + + +//// [internalAliasEnumInsideTopLevelModuleWithoutExport.d.ts] +export declare namespace a { + enum weekend { + Friday = 0, + Saturday = 1, + Sunday = 2 + } +} +import b = a.weekend; +export declare var bVal: b; diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..d845fc6d67ad1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts] //// + +=== internalAliasEnumInsideTopLevelModuleWithoutExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export enum weekend { +>weekend : Symbol(weekend, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 20)) + + Friday, +>Friday : Symbol(b.Friday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 1, 25)) + + Saturday, +>Saturday : Symbol(b.Saturday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 2, 15)) + + Sunday +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) + } +} + +import b = a.weekend; +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>a : Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>weekend : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 20)) + +export var bVal: b = b.Sunday; +>bVal : Symbol(bVal, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 9, 10)) +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>b.Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.types new file mode 100644 index 0000000000000..aff85d52aab24 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.types @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts] //// + +=== internalAliasEnumInsideTopLevelModuleWithoutExport.ts === +export namespace a { +>a : typeof a + + export enum weekend { +>weekend : weekend + + Friday, +>Friday : weekend.Friday + + Saturday, +>Saturday : weekend.Saturday + + Sunday +>Sunday : weekend.Sunday + } +} + +import b = a.weekend; +>b : typeof b +>a : typeof a +>weekend : b + +export var bVal: b = b.Sunday; +>bVal : b +>b.Sunday : b.Sunday +>b : typeof b +>Sunday : b.Sunday + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.js new file mode 100644 index 0000000000000..75acde72b7744 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.js @@ -0,0 +1,37 @@ +//// [tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts] //// + +//// [internalAliasFunctionInsideTopLevelModuleWithExport.ts] +export namespace a { + export function foo(x: number) { + return x; + } +} + +export import b = a.foo; +export var bVal = b(10); +export var bVal2 = b; + + +//// [internalAliasFunctionInsideTopLevelModuleWithExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bVal2 = exports.bVal = exports.b = exports.a = void 0; +var a; +(function (a) { + function foo(x) { + return x; + } + a.foo = foo; +})(a || (exports.a = a = {})); +exports.b = a.foo; +exports.bVal = (0, exports.b)(10); +exports.bVal2 = exports.b; + + +//// [internalAliasFunctionInsideTopLevelModuleWithExport.d.ts] +export declare namespace a { + function foo(x: number): number; +} +export import b = a.foo; +export declare var bVal: number; +export declare var bVal2: typeof b; diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..6ff1a42fe5ffa --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts] //// + +=== internalAliasFunctionInsideTopLevelModuleWithExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 0)) + + export function foo(x: number) { +>foo : Symbol(foo, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 20)) +>x : Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 1, 24)) + + return x; +>x : Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 1, 24)) + } +} + +export import b = a.foo; +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) +>a : Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 0)) +>foo : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 20)) + +export var bVal = b(10); +>bVal : Symbol(bVal, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 7, 10)) +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) + +export var bVal2 = b; +>bVal2 : Symbol(bVal2, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 8, 10)) +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.types new file mode 100644 index 0000000000000..cd7ce114e8201 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.types @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts] //// + +=== internalAliasFunctionInsideTopLevelModuleWithExport.ts === +export namespace a { +>a : typeof a + + export function foo(x: number) { +>foo : (x: number) => number +>x : number + + return x; +>x : number + } +} + +export import b = a.foo; +>b : (x: number) => number +>a : typeof a +>foo : (x: number) => number + +export var bVal = b(10); +>bVal : number +>b(10) : number +>b : (x: number) => number +>10 : 10 + +export var bVal2 = b; +>bVal2 : (x: number) => number +>b : (x: number) => number + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.js new file mode 100644 index 0000000000000..c7006a66da5bd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.js @@ -0,0 +1,46 @@ +//// [tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts] //// + +//// [internalAliasInitializedModuleInsideLocalModuleWithExport.ts] +export namespace a { + export namespace b { + export class c { + } + } +} + +export namespace c { + export import b = a.b; + export var x: b.c = new b.c(); +} + +//// [internalAliasInitializedModuleInsideLocalModuleWithExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = exports.a = void 0; +var a; +(function (a) { + let b; + (function (b) { + class c { + } + b.c = c; + })(b = a.b || (a.b = {})); +})(a || (exports.a = a = {})); +var c; +(function (c) { + c.b = a.b; + c.x = new c.b.c(); +})(c || (exports.c = c = {})); + + +//// [internalAliasInitializedModuleInsideLocalModuleWithExport.d.ts] +export declare namespace a { + namespace b { + class c { + } + } +} +export declare namespace c { + export import b = a.b; + var x: b.c; +} diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..c895549af8c6c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.symbols @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts] //// + +=== internalAliasInitializedModuleInsideLocalModuleWithExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) + + export namespace b { +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 20)) + + export class c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 24)) + } + } +} + +export namespace c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 5, 1)) + + export import b = a.b; +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 20)) +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 20)) + + export var x: b.c = new b.c(); +>x : Symbol(x, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 9, 14)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 20)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 24)) +>b.c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 24)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 20)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 24)) +} diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.types new file mode 100644 index 0000000000000..f0cf9233851f5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.types @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts] //// + +=== internalAliasInitializedModuleInsideLocalModuleWithExport.ts === +export namespace a { +>a : typeof a + + export namespace b { +>b : typeof b + + export class c { +>c : c + } + } +} + +export namespace c { +>c : typeof c + + export import b = a.b; +>b : typeof b +>a : typeof a +>b : typeof b + + export var x: b.c = new b.c(); +>x : b.c +>b : any +>new b.c() : b.c +>b.c : typeof b.c +>b : typeof b +>c : typeof b.c +} diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js new file mode 100644 index 0000000000000..03fcff73ec8cc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts] //// + +//// [internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts] +export namespace a { + export namespace b { + export class c { + } + } +} + +import b = a.b; +export var x: b.c = new b.c(); + +//// [internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = exports.a = void 0; +var a; +(function (a) { + let b; + (function (b) { + class c { + } + b.c = c; + })(b = a.b || (a.b = {})); +})(a || (exports.a = a = {})); +var b = a.b; +exports.x = new b.c(); + + +//// [internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.d.ts] +export declare namespace a { + namespace b { + class c { + } + } +} +import b = a.b; +export declare var x: b.c; diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..f68fe76b58d14 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts] //// + +=== internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export namespace b { +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 20)) + + export class c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 24)) + } + } +} + +import b = a.b; +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 20)) + +export var x: b.c = new b.c(); +>x : Symbol(x, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 8, 10)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 24)) +>b.c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 24)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 24)) + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.types new file mode 100644 index 0000000000000..e8dcf930d917d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.types @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts] //// + +=== internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts === +export namespace a { +>a : typeof a + + export namespace b { +>b : typeof b + + export class c { +>c : c + } + } +} + +import b = a.b; +>b : typeof b +>a : typeof a +>b : typeof b + +export var x: b.c = new b.c(); +>x : b.c +>b : any +>new b.c() : b.c +>b.c : typeof b.c +>b : typeof b +>c : typeof b.c + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.js new file mode 100644 index 0000000000000..a8168d3fe6568 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.js @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts] //// + +//// [internalAliasInterfaceInsideLocalModuleWithExport.ts] +export namespace a { + export interface I { + } +} + +export namespace c { + export import b = a.I; + export var x: b; +} + + +//// [internalAliasInterfaceInsideLocalModuleWithExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = void 0; +var c; +(function (c) { +})(c || (exports.c = c = {})); + + +//// [internalAliasInterfaceInsideLocalModuleWithExport.d.ts] +export declare namespace a { + interface I { + } +} +export declare namespace c { + export import b = a.I; + var x: b; +} diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..0e352925a2daa --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.symbols @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts] //// + +=== internalAliasInterfaceInsideLocalModuleWithExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 20)) + } +} + +export namespace c { +>c : Symbol(c, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 3, 1)) + + export import b = a.I; +>b : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 5, 20)) +>a : Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 0)) +>I : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 20)) + + export var x: b; +>x : Symbol(x, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 7, 14)) +>b : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 5, 20)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.types new file mode 100644 index 0000000000000..8cee0d79aebac --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithExport.types @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts] //// + +=== internalAliasInterfaceInsideLocalModuleWithExport.ts === +export namespace a { + export interface I { + } +} + +export namespace c { +>c : typeof c + + export import b = a.I; +>b : any +>a : any +>I : b + + export var x: b; +>x : b +} + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.js new file mode 100644 index 0000000000000..3dfa4ab2015c7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.js @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts] //// + +//// [internalAliasInterfaceInsideLocalModuleWithoutExport.ts] +export namespace a { + export interface I { + } +} + +export namespace c { + import b = a.I; + export var x: b; +} + + +//// [internalAliasInterfaceInsideLocalModuleWithoutExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = void 0; +var c; +(function (c) { +})(c || (exports.c = c = {})); + + +//// [internalAliasInterfaceInsideLocalModuleWithoutExport.d.ts] +export declare namespace a { + interface I { + } +} +export declare namespace c { + import b = a.I; + var x: b; +} diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..160779c275a3e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts] //// + +=== internalAliasInterfaceInsideLocalModuleWithoutExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 20)) + } +} + +export namespace c { +>c : Symbol(c, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 3, 1)) + + import b = a.I; +>b : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 5, 20)) +>a : Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 0)) +>I : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 20)) + + export var x: b; +>x : Symbol(x, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 7, 14)) +>b : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 5, 20)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.types new file mode 100644 index 0000000000000..ae35cdb47fea2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.types @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts] //// + +=== internalAliasInterfaceInsideLocalModuleWithoutExport.ts === +export namespace a { + export interface I { + } +} + +export namespace c { +>c : typeof c + + import b = a.I; +>b : any +>a : any +>I : b + + export var x: b; +>x : b +} + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.js new file mode 100644 index 0000000000000..3d7a7f85a927c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts] //// + +//// [internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts] +export namespace a { + export interface I { + } +} + +import b = a.I; +export var x: b; + + +//// [internalAliasInterfaceInsideTopLevelModuleWithoutExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; + + +//// [internalAliasInterfaceInsideTopLevelModuleWithoutExport.d.ts] +export declare namespace a { + interface I { + } +} +import b = a.I; +export declare var x: b; diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..bc17a808d8582 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts] //// + +=== internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 20)) + } +} + +import b = a.I; +>b : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 3, 1)) +>a : Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>I : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 20)) + +export var x: b; +>x : Symbol(x, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 6, 10)) +>b : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 3, 1)) + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.types new file mode 100644 index 0000000000000..7a626c796fa45 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.types @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts] //// + +=== internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts === +export namespace a { + export interface I { + } +} + +import b = a.I; +>b : any +>a : any +>I : b + +export var x: b; +>x : b + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.js new file mode 100644 index 0000000000000..6584286180bd6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.js @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts] //// + +//// [internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts] +export namespace a { + export namespace b { + export interface I { + foo(); + } + } +} + +export import b = a.b; +export var x: b.I; +x.foo(); + + +//// [internalAliasUninitializedModuleInsideTopLevelModuleWithExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x.foo(); + + +//// [internalAliasUninitializedModuleInsideTopLevelModuleWithExport.d.ts] +export declare namespace a { + namespace b { + interface I { + foo(): any; + } + } +} +export import b = a.b; +export declare var x: b.I; diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..74ef9414cf71f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts] //// + +=== internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) + + export namespace b { +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 20)) + + export interface I { +>I : Symbol(I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 1, 24)) + + foo(); +>foo : Symbol(I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) + } + } +} + +export import b = a.b; +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 6, 1)) +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 20)) + +export var x: b.I; +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 9, 10)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 6, 1)) +>I : Symbol(b.I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 1, 24)) + +x.foo(); +>x.foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 9, 10)) +>foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.types new file mode 100644 index 0000000000000..103fe347d0587 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.types @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts] //// + +=== internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts === +export namespace a { + export namespace b { + export interface I { + foo(); +>foo : () => any + } + } +} + +export import b = a.b; +>b : any +>a : any +>b : any + +export var x: b.I; +>x : b.I +>b : any + +x.foo(); +>x.foo() : any +>x.foo : () => any +>x : b.I +>foo : () => any + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.js new file mode 100644 index 0000000000000..1befe533ee37a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts] //// + +//// [internalAliasVarInsideLocalModuleWithExport.ts] +export namespace a { + export var x = 10; +} + +export namespace c { + export import b = a.x; + export var bVal = b; +} + + +//// [internalAliasVarInsideLocalModuleWithExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = exports.a = void 0; +var a; +(function (a) { + a.x = 10; +})(a || (exports.a = a = {})); +var c; +(function (c) { + c.b = a.x; + c.bVal = c.b; +})(c || (exports.c = c = {})); + + +//// [internalAliasVarInsideLocalModuleWithExport.d.ts] +export declare namespace a { + var x: number; +} +export declare namespace c { + export import b = a.x; + var bVal: number; +} diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..d2bb636174e4d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.symbols @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts] //// + +=== internalAliasVarInsideLocalModuleWithExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 0, 0)) + + export var x = 10; +>x : Symbol(x, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 1, 14)) +} + +export namespace c { +>c : Symbol(c, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 2, 1)) + + export import b = a.x; +>b : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 4, 20)) +>a : Symbol(a, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 0, 0)) +>x : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 1, 14)) + + export var bVal = b; +>bVal : Symbol(bVal, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 6, 14)) +>b : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 4, 20)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.types new file mode 100644 index 0000000000000..d72d9c5ee36a3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithExport.types @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts] //// + +=== internalAliasVarInsideLocalModuleWithExport.ts === +export namespace a { +>a : typeof a + + export var x = 10; +>x : number +>10 : 10 +} + +export namespace c { +>c : typeof c + + export import b = a.x; +>b : number +>a : typeof a +>x : number + + export var bVal = b; +>bVal : number +>b : number +} + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.js new file mode 100644 index 0000000000000..d129f7071afbe --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts] //// + +//// [internalAliasVarInsideLocalModuleWithoutExport.ts] +export namespace a { + export var x = 10; +} + +export namespace c { + import b = a.x; + export var bVal = b; +} + + +//// [internalAliasVarInsideLocalModuleWithoutExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.c = exports.a = void 0; +var a; +(function (a) { + a.x = 10; +})(a || (exports.a = a = {})); +var c; +(function (c) { + var b = a.x; + c.bVal = b; +})(c || (exports.c = c = {})); + + +//// [internalAliasVarInsideLocalModuleWithoutExport.d.ts] +export declare namespace a { + var x: number; +} +export declare namespace c { + var bVal: number; +} diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..c7aee70f940ee --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts] //// + +=== internalAliasVarInsideLocalModuleWithoutExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 0, 0)) + + export var x = 10; +>x : Symbol(x, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 1, 14)) +} + +export namespace c { +>c : Symbol(c, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 2, 1)) + + import b = a.x; +>b : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 4, 20)) +>a : Symbol(a, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 0, 0)) +>x : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 1, 14)) + + export var bVal = b; +>bVal : Symbol(bVal, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 6, 14)) +>b : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 4, 20)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.types new file mode 100644 index 0000000000000..233aef609abcc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideLocalModuleWithoutExport.types @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts] //// + +=== internalAliasVarInsideLocalModuleWithoutExport.ts === +export namespace a { +>a : typeof a + + export var x = 10; +>x : number +>10 : 10 +} + +export namespace c { +>c : typeof c + + import b = a.x; +>b : number +>a : typeof a +>x : number + + export var bVal = b; +>bVal : number +>b : number +} + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.js b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.js new file mode 100644 index 0000000000000..2eedef90a10ff --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.js @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts] //// + +//// [internalAliasVarInsideTopLevelModuleWithExport.ts] +export namespace a { + export var x = 10; +} + +export import b = a.x; +export var bVal = b; + + + +//// [internalAliasVarInsideTopLevelModuleWithExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bVal = exports.b = exports.a = void 0; +var a; +(function (a) { + a.x = 10; +})(a || (exports.a = a = {})); +exports.b = a.x; +exports.bVal = exports.b; + + +//// [internalAliasVarInsideTopLevelModuleWithExport.d.ts] +export declare namespace a { + var x: number; +} +export import b = a.x; +export declare var bVal: number; diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.symbols b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..c0b982d8be4e5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts] //// + +=== internalAliasVarInsideTopLevelModuleWithExport.ts === +export namespace a { +>a : Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 0, 0)) + + export var x = 10; +>x : Symbol(x, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 1, 14)) +} + +export import b = a.x; +>b : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 2, 1)) +>a : Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 0, 0)) +>x : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 1, 14)) + +export var bVal = b; +>bVal : Symbol(bVal, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 5, 10)) +>b : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 2, 1)) + + diff --git a/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.types b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.types new file mode 100644 index 0000000000000..4544acaaf755d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/internalAliasVarInsideTopLevelModuleWithExport.types @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts] //// + +=== internalAliasVarInsideTopLevelModuleWithExport.ts === +export namespace a { +>a : typeof a + + export var x = 10; +>x : number +>10 : 10 +} + +export import b = a.x; +>b : number +>a : typeof a +>x : number + +export var bVal = b; +>bVal : number +>b : number + + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.js b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.js new file mode 100644 index 0000000000000..866d31ec749ae --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.js @@ -0,0 +1,51 @@ +//// [tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts] //// + +//// [_apply.js] +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, ...args) { + var length = args.length; + switch (length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +export default apply; + + +//// [_apply.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, ...args) { + var length = args.length; + switch (length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} +exports.default = apply; diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.symbols b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.symbols new file mode 100644 index 0000000000000..c737c16d0af92 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.symbols @@ -0,0 +1,69 @@ +//// [tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts] //// + +=== _apply.js === +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, ...args) { +>apply : Symbol(apply, Decl(_apply.js, 0, 0)) +>func : Symbol(func, Decl(_apply.js, 10, 15)) +>thisArg : Symbol(thisArg, Decl(_apply.js, 10, 20)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) + + var length = args.length; +>length : Symbol(length, Decl(_apply.js, 11, 7)) +>args.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) +>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --)) + + switch (length) { +>length : Symbol(length, Decl(_apply.js, 11, 7)) + + case 0: return func.call(thisArg); +>func.call : Symbol(Function.call, Decl(lib.es5.d.ts, --, --)) +>func : Symbol(func, Decl(_apply.js, 10, 15)) +>call : Symbol(Function.call, Decl(lib.es5.d.ts, --, --)) +>thisArg : Symbol(thisArg, Decl(_apply.js, 10, 20)) + + case 1: return func.call(thisArg, args[0]); +>func.call : Symbol(Function.call, Decl(lib.es5.d.ts, --, --)) +>func : Symbol(func, Decl(_apply.js, 10, 15)) +>call : Symbol(Function.call, Decl(lib.es5.d.ts, --, --)) +>thisArg : Symbol(thisArg, Decl(_apply.js, 10, 20)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) + + case 2: return func.call(thisArg, args[0], args[1]); +>func.call : Symbol(Function.call, Decl(lib.es5.d.ts, --, --)) +>func : Symbol(func, Decl(_apply.js, 10, 15)) +>call : Symbol(Function.call, Decl(lib.es5.d.ts, --, --)) +>thisArg : Symbol(thisArg, Decl(_apply.js, 10, 20)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) + + case 3: return func.call(thisArg, args[0], args[1], args[2]); +>func.call : Symbol(Function.call, Decl(lib.es5.d.ts, --, --)) +>func : Symbol(func, Decl(_apply.js, 10, 15)) +>call : Symbol(Function.call, Decl(lib.es5.d.ts, --, --)) +>thisArg : Symbol(thisArg, Decl(_apply.js, 10, 20)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) + } + return func.apply(thisArg, args); +>func.apply : Symbol(Function.apply, Decl(lib.es5.d.ts, --, --)) +>func : Symbol(func, Decl(_apply.js, 10, 15)) +>apply : Symbol(Function.apply, Decl(lib.es5.d.ts, --, --)) +>thisArg : Symbol(thisArg, Decl(_apply.js, 10, 20)) +>args : Symbol(args, Decl(_apply.js, 10, 29)) +} + +export default apply; +>apply : Symbol(apply, Decl(_apply.js, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.types b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.types new file mode 100644 index 0000000000000..ae2faddc793c0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/jsFileCompilationRestParamJsDocFunction.types @@ -0,0 +1,90 @@ +//// [tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts] //// + +=== _apply.js === +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, ...args) { +>apply : (func: Function, thisArg: any, ...args: any[]) => any +>func : Function +>thisArg : any +>args : any[] + + var length = args.length; +>length : number +>args.length : number +>args : any[] +>length : number + + switch (length) { +>length : number + + case 0: return func.call(thisArg); +>0 : 0 +>func.call(thisArg) : any +>func.call : (this: Function, thisArg: any, ...argArray: any[]) => any +>func : Function +>call : (this: Function, thisArg: any, ...argArray: any[]) => any +>thisArg : any + + case 1: return func.call(thisArg, args[0]); +>1 : 1 +>func.call(thisArg, args[0]) : any +>func.call : (this: Function, thisArg: any, ...argArray: any[]) => any +>func : Function +>call : (this: Function, thisArg: any, ...argArray: any[]) => any +>thisArg : any +>args[0] : any +>args : any[] +>0 : 0 + + case 2: return func.call(thisArg, args[0], args[1]); +>2 : 2 +>func.call(thisArg, args[0], args[1]) : any +>func.call : (this: Function, thisArg: any, ...argArray: any[]) => any +>func : Function +>call : (this: Function, thisArg: any, ...argArray: any[]) => any +>thisArg : any +>args[0] : any +>args : any[] +>0 : 0 +>args[1] : any +>args : any[] +>1 : 1 + + case 3: return func.call(thisArg, args[0], args[1], args[2]); +>3 : 3 +>func.call(thisArg, args[0], args[1], args[2]) : any +>func.call : (this: Function, thisArg: any, ...argArray: any[]) => any +>func : Function +>call : (this: Function, thisArg: any, ...argArray: any[]) => any +>thisArg : any +>args[0] : any +>args : any[] +>0 : 0 +>args[1] : any +>args : any[] +>1 : 1 +>args[2] : any +>args : any[] +>2 : 2 + } + return func.apply(thisArg, args); +>func.apply(thisArg, args) : any +>func.apply : (this: Function, thisArg: any, argArray?: any) => any +>func : Function +>apply : (this: Function, thisArg: any, argArray?: any) => any +>thisArg : any +>args : any[] +} + +export default apply; +>apply : (func: Function, thisArg: any, ...args: any[]) => any + diff --git a/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.errors.txt b/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.errors.txt new file mode 100644 index 0000000000000..f99aafb8d0757 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.errors.txt @@ -0,0 +1,9 @@ +c:/app/main.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'test'. + + +==== c:/test.d.ts (0 errors) ==== + export {}; +==== c:/app/main.ts (1 errors) ==== + import "test" + ~~~~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'test'. \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.js b/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.js new file mode 100644 index 0000000000000..f01be171207f0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.js @@ -0,0 +1,15 @@ +//// [tests/cases/compiler/keepImportsInDts1.ts] //// + +//// [test.d.ts] +export {}; +//// [main.ts] +import "test" + +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("test"); + + +//// [main.d.ts] +import "test"; diff --git a/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.symbols b/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.symbols new file mode 100644 index 0000000000000..f7477049d3372 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.symbols @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/keepImportsInDts1.ts] //// + +=== c:/test.d.ts === + +export {}; +=== c:/app/main.ts === + +import "test" diff --git a/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.types b/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.types new file mode 100644 index 0000000000000..f7477049d3372 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/keepImportsInDts1.types @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/keepImportsInDts1.ts] //// + +=== c:/test.d.ts === + +export {}; +=== c:/app/main.ts === + +import "test" diff --git a/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.js b/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.js new file mode 100644 index 0000000000000..6a71b8cf9a123 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.js @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/keepImportsInDts2.ts] //// + +//// [test.ts] +export {}; +//// [main.ts] +import "./folder/test" + +//// [test.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("./folder/test"); + + +//// [test.d.ts] +export {}; +//// [main.d.ts] +import "./folder/test"; diff --git a/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.symbols b/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.symbols new file mode 100644 index 0000000000000..0f3861d849b1c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.symbols @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/keepImportsInDts2.ts] //// + +=== folder/test.ts === + +export {}; +=== main.ts === + +import "./folder/test" diff --git a/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.types b/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.types new file mode 100644 index 0000000000000..0f3861d849b1c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/keepImportsInDts2.types @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/keepImportsInDts2.ts] //// + +=== folder/test.ts === + +export {}; +=== main.ts === + +import "./folder/test" diff --git a/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.errors.txt b/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.errors.txt new file mode 100644 index 0000000000000..02b58e878c1b5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.errors.txt @@ -0,0 +1,21 @@ +memberAccessMustUseModuleInstances_0.ts(3,9): error TS2322: Type 'null' is not assignable to type 'Promise'. +memberAccessMustUseModuleInstances_1.ts(2,24): error TS2307: Cannot find module 'memberAccessMustUseModuleInstances_0' or its corresponding type declarations. + + +==== memberAccessMustUseModuleInstances_1.ts (1 errors) ==== + /// + import WinJS = require('memberAccessMustUseModuleInstances_0'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'memberAccessMustUseModuleInstances_0' or its corresponding type declarations. + + WinJS.Promise.timeout(10); + +==== memberAccessMustUseModuleInstances_0.ts (1 errors) ==== + export class Promise { + static timeout(delay: number): Promise { + return null; + ~~~~~~ +!!! error TS2322: Type 'null' is not assignable to type 'Promise'. + } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.js b/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.js new file mode 100644 index 0000000000000..c36e17ce0be59 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.js @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/memberAccessMustUseModuleInstances.ts] //// + +//// [memberAccessMustUseModuleInstances_0.ts] +export class Promise { + static timeout(delay: number): Promise { + return null; + } +} + +//// [memberAccessMustUseModuleInstances_1.ts] +/// +import WinJS = require('memberAccessMustUseModuleInstances_0'); + +WinJS.Promise.timeout(10); + + +//// [memberAccessMustUseModuleInstances_0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Promise = void 0; +class Promise { + static timeout(delay) { + return null; + } +} +exports.Promise = Promise; +//// [memberAccessMustUseModuleInstances_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const WinJS = require("memberAccessMustUseModuleInstances_0"); +WinJS.Promise.timeout(10); diff --git a/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.symbols b/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.symbols new file mode 100644 index 0000000000000..04f6e863dfaf9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.symbols @@ -0,0 +1,23 @@ +//// [tests/cases/compiler/memberAccessMustUseModuleInstances.ts] //// + +=== memberAccessMustUseModuleInstances_1.ts === +/// +import WinJS = require('memberAccessMustUseModuleInstances_0'); +>WinJS : Symbol(WinJS, Decl(memberAccessMustUseModuleInstances_1.ts, 0, 0)) + +WinJS.Promise.timeout(10); +>WinJS : Symbol(WinJS, Decl(memberAccessMustUseModuleInstances_1.ts, 0, 0)) + +=== memberAccessMustUseModuleInstances_0.ts === +export class Promise { +>Promise : Symbol(Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) + + static timeout(delay: number): Promise { +>timeout : Symbol(Promise.timeout, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 22)) +>delay : Symbol(delay, Decl(memberAccessMustUseModuleInstances_0.ts, 1, 19)) +>Promise : Symbol(Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) + + return null; + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.types b/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.types new file mode 100644 index 0000000000000..8704848c05f38 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/memberAccessMustUseModuleInstances.types @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/memberAccessMustUseModuleInstances.ts] //// + +=== memberAccessMustUseModuleInstances_1.ts === +/// +import WinJS = require('memberAccessMustUseModuleInstances_0'); +>WinJS : any + +WinJS.Promise.timeout(10); +>WinJS.Promise.timeout(10) : any +>WinJS.Promise.timeout : any +>WinJS.Promise : any +>WinJS : any +>Promise : any +>timeout : any +>10 : 10 + +=== memberAccessMustUseModuleInstances_0.ts === +export class Promise { +>Promise : Promise + + static timeout(delay: number): Promise { +>timeout : (delay: number) => Promise +>delay : number + + return null; + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.js b/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.js new file mode 100644 index 0000000000000..e0906366a3529 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.js @@ -0,0 +1,44 @@ +//// [tests/cases/compiler/mergedDeclarations6.ts] //// + +//// [a.ts] +export class A { + protected protected: any; + + protected setProtected(val: any) { + this.protected = val; + } +} + +//// [b.ts] +import {A} from './a'; + +declare module "./a" { + interface A { } +} + +export class B extends A { + protected setProtected() { + + } +} + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { + setProtected(val) { + this.protected = val; + } +} +exports.A = A; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.B = void 0; +const a_1 = require("./a"); +class B extends a_1.A { + setProtected() { + } +} +exports.B = B; diff --git a/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.symbols b/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.symbols new file mode 100644 index 0000000000000..13ab6db5e13f3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.symbols @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/mergedDeclarations6.ts] //// + +=== a.ts === +export class A { +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(b.ts, 2, 22)) + + protected protected: any; +>protected : Symbol(A.protected, Decl(a.ts, 0, 16)) + + protected setProtected(val: any) { +>setProtected : Symbol(A.setProtected, Decl(a.ts, 1, 29)) +>val : Symbol(val, Decl(a.ts, 3, 27)) + + this.protected = val; +>this.protected : Symbol(A.protected, Decl(a.ts, 0, 16)) +>this : Symbol(A, Decl(a.ts, 0, 0), Decl(b.ts, 2, 22)) +>protected : Symbol(A.protected, Decl(a.ts, 0, 16)) +>val : Symbol(val, Decl(a.ts, 3, 27)) + } +} + +=== b.ts === +import {A} from './a'; +>A : Symbol(A, Decl(b.ts, 0, 8)) + +declare module "./a" { +>"./a" : Symbol("./a", Decl(a.ts, 0, 0), Decl(b.ts, 0, 22)) + + interface A { } +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(b.ts, 2, 22)) +} + +export class B extends A { +>B : Symbol(B, Decl(b.ts, 4, 1)) +>A : Symbol(A, Decl(b.ts, 0, 8)) + + protected setProtected() { +>setProtected : Symbol(B.setProtected, Decl(b.ts, 6, 26)) + + } +} diff --git a/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.types b/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.types new file mode 100644 index 0000000000000..adb388a7ae0cd --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/mergedDeclarations6.types @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/mergedDeclarations6.ts] //// + +=== a.ts === +export class A { +>A : A + + protected protected: any; +>protected : any + + protected setProtected(val: any) { +>setProtected : (val: any) => void +>val : any + + this.protected = val; +>this.protected = val : any +>this.protected : any +>this : this +>protected : any +>val : any + } +} + +=== b.ts === +import {A} from './a'; +>A : typeof A + +declare module "./a" { +>"./a" : typeof import("./a") + + interface A { } +} + +export class B extends A { +>B : B +>A : A + + protected setProtected() { +>setProtected : () => void + + } +} diff --git a/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.errors.txt b/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.errors.txt new file mode 100644 index 0000000000000..58fd5c3b6a6e3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.errors.txt @@ -0,0 +1,18 @@ +moduleAliasAsFunctionArgument_1.ts(2,20): error TS2307: Cannot find module 'moduleAliasAsFunctionArgument_0' or its corresponding type declarations. + + +==== moduleAliasAsFunctionArgument_1.ts (1 errors) ==== + /// + import a = require('moduleAliasAsFunctionArgument_0'); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'moduleAliasAsFunctionArgument_0' or its corresponding type declarations. + + function fn(arg: { x: number }) { + } + + a.x; // OK + fn(a); // Error: property 'x' is missing from 'a' + +==== moduleAliasAsFunctionArgument_0.ts (0 errors) ==== + export var x: number; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.js b/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.js new file mode 100644 index 0000000000000..73a549d1f5a3d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/moduleAliasAsFunctionArgument.ts] //// + +//// [moduleAliasAsFunctionArgument_0.ts] +export var x: number; + +//// [moduleAliasAsFunctionArgument_1.ts] +/// +import a = require('moduleAliasAsFunctionArgument_0'); + +function fn(arg: { x: number }) { +} + +a.x; // OK +fn(a); // Error: property 'x' is missing from 'a' + + +//// [moduleAliasAsFunctionArgument_0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +//// [moduleAliasAsFunctionArgument_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const a = require("moduleAliasAsFunctionArgument_0"); +function fn(arg) { +} +a.x; // OK +fn(a); // Error: property 'x' is missing from 'a' diff --git a/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.symbols b/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.symbols new file mode 100644 index 0000000000000..c02e2b49c1f61 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.symbols @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/moduleAliasAsFunctionArgument.ts] //// + +=== moduleAliasAsFunctionArgument_1.ts === +/// +import a = require('moduleAliasAsFunctionArgument_0'); +>a : Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) + +function fn(arg: { x: number }) { +>fn : Symbol(fn, Decl(moduleAliasAsFunctionArgument_1.ts, 1, 54)) +>arg : Symbol(arg, Decl(moduleAliasAsFunctionArgument_1.ts, 3, 12)) +>x : Symbol(x, Decl(moduleAliasAsFunctionArgument_1.ts, 3, 18)) +} + +a.x; // OK +>a : Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) + +fn(a); // Error: property 'x' is missing from 'a' +>fn : Symbol(fn, Decl(moduleAliasAsFunctionArgument_1.ts, 1, 54)) +>a : Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) + +=== moduleAliasAsFunctionArgument_0.ts === +export var x: number; +>x : Symbol(x, Decl(moduleAliasAsFunctionArgument_0.ts, 0, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.types b/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.types new file mode 100644 index 0000000000000..7a4b7e3972baf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAliasAsFunctionArgument.types @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/moduleAliasAsFunctionArgument.ts] //// + +=== moduleAliasAsFunctionArgument_1.ts === +/// +import a = require('moduleAliasAsFunctionArgument_0'); +>a : any + +function fn(arg: { x: number }) { +>fn : (arg: { x: number; }) => void +>arg : { x: number; } +>x : number +} + +a.x; // OK +>a.x : any +>a : any +>x : any + +fn(a); // Error: property 'x' is missing from 'a' +>fn(a) : void +>fn : (arg: { x: number; }) => void +>a : any + +=== moduleAliasAsFunctionArgument_0.ts === +export var x: number; +>x : number + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.js b/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.js new file mode 100644 index 0000000000000..b428c0f2edcce --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.js @@ -0,0 +1,76 @@ +//// [tests/cases/compiler/moduleAugmentationCollidingNamesInAugmentation1.ts] //// + +//// [map1.ts] +import { Observable } from "./observable" + +(Observable.prototype).map = function() { } + +declare module "./observable" { + interface I {x0} +} + +//// [map2.ts] +import { Observable } from "./observable" + +(Observable.prototype).map = function() { } + +declare module "./observable" { + interface I {x1} +} + + +//// [observable.ts] +export declare class Observable { + filter(pred: (e:T) => boolean): Observable; +} + +//// [main.ts] +import { Observable } from "./observable" +import "./map1"; +import "./map2"; + +let x: Observable; + + +//// [observable.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [map1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const observable_1 = require("./observable"); +observable_1.Observable.prototype.map = function () { }; +//// [map2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const observable_1 = require("./observable"); +observable_1.Observable.prototype.map = function () { }; +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("./map1"); +require("./map2"); +let x; + + +//// [observable.d.ts] +export declare class Observable { + filter(pred: (e: T) => boolean): Observable; +} +//// [map1.d.ts] +declare module "./observable" { + interface I { + x0: any; + } +} +export {}; +//// [map2.d.ts] +declare module "./observable" { + interface I { + x1: any; + } +} +export {}; +//// [main.d.ts] +import "./map1"; +import "./map2"; diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.symbols b/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.symbols new file mode 100644 index 0000000000000..8fa26989cf91a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.symbols @@ -0,0 +1,62 @@ +//// [tests/cases/compiler/moduleAugmentationCollidingNamesInAugmentation1.ts] //// + +=== map1.ts === +import { Observable } from "./observable" +>Observable : Symbol(Observable, Decl(map1.ts, 0, 8)) + +(Observable.prototype).map = function() { } +>Observable.prototype : Symbol(Observable.prototype) +>Observable : Symbol(Observable, Decl(map1.ts, 0, 8)) +>prototype : Symbol(Observable.prototype) + +declare module "./observable" { +>"./observable" : Symbol("./observable", Decl(observable.ts, 0, 0), Decl(map1.ts, 2, 48), Decl(map2.ts, 2, 48)) + + interface I {x0} +>I : Symbol(I, Decl(map1.ts, 4, 31), Decl(map2.ts, 4, 31)) +>x0 : Symbol(I.x0, Decl(map1.ts, 5, 17)) +} + +=== map2.ts === +import { Observable } from "./observable" +>Observable : Symbol(Observable, Decl(map2.ts, 0, 8)) + +(Observable.prototype).map = function() { } +>Observable.prototype : Symbol(Observable.prototype) +>Observable : Symbol(Observable, Decl(map2.ts, 0, 8)) +>prototype : Symbol(Observable.prototype) + +declare module "./observable" { +>"./observable" : Symbol("./observable", Decl(observable.ts, 0, 0), Decl(map1.ts, 2, 48), Decl(map2.ts, 2, 48)) + + interface I {x1} +>I : Symbol(I, Decl(map1.ts, 4, 31), Decl(map2.ts, 4, 31)) +>x1 : Symbol(I.x1, Decl(map2.ts, 5, 17)) +} + + +=== observable.ts === +export declare class Observable { +>Observable : Symbol(Observable, Decl(observable.ts, 0, 0)) +>T : Symbol(T, Decl(observable.ts, 0, 32)) + + filter(pred: (e:T) => boolean): Observable; +>filter : Symbol(Observable.filter, Decl(observable.ts, 0, 36)) +>pred : Symbol(pred, Decl(observable.ts, 1, 11)) +>e : Symbol(e, Decl(observable.ts, 1, 18)) +>T : Symbol(T, Decl(observable.ts, 0, 32)) +>Observable : Symbol(Observable, Decl(observable.ts, 0, 0)) +>T : Symbol(T, Decl(observable.ts, 0, 32)) +} + +=== main.ts === +import { Observable } from "./observable" +>Observable : Symbol(Observable, Decl(main.ts, 0, 8)) + +import "./map1"; +import "./map2"; + +let x: Observable; +>x : Symbol(x, Decl(main.ts, 4, 3)) +>Observable : Symbol(Observable, Decl(main.ts, 0, 8)) + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.types b/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.types new file mode 100644 index 0000000000000..0c776b37b6452 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationCollidingNamesInAugmentation1.types @@ -0,0 +1,67 @@ +//// [tests/cases/compiler/moduleAugmentationCollidingNamesInAugmentation1.ts] //// + +=== map1.ts === +import { Observable } from "./observable" +>Observable : typeof Observable + +(Observable.prototype).map = function() { } +>(Observable.prototype).map = function() { } : () => void +>(Observable.prototype).map : any +>(Observable.prototype) : any +>Observable.prototype : any +>Observable.prototype : Observable +>Observable : typeof Observable +>prototype : Observable +>map : any +>function() { } : () => void + +declare module "./observable" { +>"./observable" : typeof import("./observable") + + interface I {x0} +>x0 : any +} + +=== map2.ts === +import { Observable } from "./observable" +>Observable : typeof Observable + +(Observable.prototype).map = function() { } +>(Observable.prototype).map = function() { } : () => void +>(Observable.prototype).map : any +>(Observable.prototype) : any +>Observable.prototype : any +>Observable.prototype : Observable +>Observable : typeof Observable +>prototype : Observable +>map : any +>function() { } : () => void + +declare module "./observable" { +>"./observable" : typeof import("./observable") + + interface I {x1} +>x1 : any +} + + +=== observable.ts === +export declare class Observable { +>Observable : Observable + + filter(pred: (e:T) => boolean): Observable; +>filter : (pred: (e: T) => boolean) => Observable +>pred : (e: T) => boolean +>e : T +} + +=== main.ts === +import { Observable } from "./observable" +>Observable : typeof Observable + +import "./map1"; +import "./map2"; + +let x: Observable; +>x : Observable + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.errors.txt b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.errors.txt new file mode 100644 index 0000000000000..25b6d6bc8cdb0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.errors.txt @@ -0,0 +1,65 @@ +b.ts(1,17): error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor. +d.ts(7,1): error TS2322: Type '() => undefined' is not assignable to type '() => B'. + Type 'undefined' is not assignable to type 'B'. +d.ts(8,1): error TS2322: Type '() => undefined' is not assignable to type '() => Cls'. + Type 'undefined' is not assignable to type 'Cls'. +main.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'd'. +main.ts(5,9): error TS2454: Variable 'a' is used before being assigned. +main.ts(6,9): error TS2454: Variable 'a' is used before being assigned. + + +==== a.ts (0 errors) ==== + export class A {} + +==== b.ts (1 errors) ==== + export class B {x: number;} + ~ +!!! error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor. + +==== c.d.ts (0 errors) ==== + declare module "C" { + class Cls {y: string; } + } + +==== d.ts (2 errors) ==== + /// + + import {A} from "./a"; + import {B} from "./b"; + import {Cls} from "C"; + + A.prototype.getB = function () { return undefined; } + ~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '() => undefined' is not assignable to type '() => B'. +!!! error TS2322: Type 'undefined' is not assignable to type 'B'. + A.prototype.getCls = function () { return undefined; } + ~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '() => undefined' is not assignable to type '() => Cls'. +!!! error TS2322: Type 'undefined' is not assignable to type 'Cls'. + + declare module "./a" { + interface A { + getB(): B; + } + } + + declare module "./a" { + interface A { + getCls(): Cls; + } + } + +==== main.ts (3 errors) ==== + import {A} from "./a"; + import "d"; + ~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'd'. + + let a: A; + let b = a.getB().x.toFixed(); + ~ +!!! error TS2454: Variable 'a' is used before being assigned. + let c = a.getCls().y.toLowerCase(); + ~ +!!! error TS2454: Variable 'a' is used before being assigned. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.js b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.js new file mode 100644 index 0000000000000..ccc7a1ab2eb5c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.js @@ -0,0 +1,96 @@ +//// [tests/cases/compiler/moduleAugmentationsImports1.ts] //// + +//// [a.ts] +export class A {} + +//// [b.ts] +export class B {x: number;} + +//// [c.d.ts] +declare module "C" { + class Cls {y: string; } +} + +//// [d.ts] +/// + +import {A} from "./a"; +import {B} from "./b"; +import {Cls} from "C"; + +A.prototype.getB = function () { return undefined; } +A.prototype.getCls = function () { return undefined; } + +declare module "./a" { + interface A { + getB(): B; + } +} + +declare module "./a" { + interface A { + getCls(): Cls; + } +} + +//// [main.ts] +import {A} from "./a"; +import "d"; + +let a: A; +let b = a.getB().x.toFixed(); +let c = a.getCls().y.toLowerCase(); + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { +} +exports.A = A; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.B = void 0; +class B { +} +exports.B = B; +//// [d.js] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.A.prototype.getB = function () { return undefined; }; +a_1.A.prototype.getCls = function () { return undefined; }; +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("d"); +let a; +let b = a.getB().x.toFixed(); +let c = a.getCls().y.toLowerCase(); + + +//// [a.d.ts] +export declare class A { +} +//// [b.d.ts] +export declare class B { + x: number; +} +//// [d.d.ts] +import { B } from "./b"; +import { Cls } from "C"; +declare module "./a" { + interface A { + getB(): B; + } +} +declare module "./a" { + interface A { + getCls(): Cls; + } +} +//// [main.d.ts] +import "d"; diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.symbols b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.symbols new file mode 100644 index 0000000000000..1a5f293e86220 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.symbols @@ -0,0 +1,102 @@ +//// [tests/cases/compiler/moduleAugmentationsImports1.ts] //// + +=== a.ts === +export class A {} +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(d.ts, 9, 22), Decl(d.ts, 15, 22)) + +=== b.ts === +export class B {x: number;} +>B : Symbol(B, Decl(b.ts, 0, 0)) +>x : Symbol(B.x, Decl(b.ts, 0, 16)) + +=== c.d.ts === +declare module "C" { +>"C" : Symbol("C", Decl(c.d.ts, 0, 0)) + + class Cls {y: string; } +>Cls : Symbol(Cls, Decl(c.d.ts, 0, 20)) +>y : Symbol(Cls.y, Decl(c.d.ts, 1, 15)) +} + +=== d.ts === +/// + +import {A} from "./a"; +>A : Symbol(A, Decl(d.ts, 2, 8)) + +import {B} from "./b"; +>B : Symbol(B, Decl(d.ts, 3, 8)) + +import {Cls} from "C"; +>Cls : Symbol(Cls, Decl(d.ts, 4, 8)) + +A.prototype.getB = function () { return undefined; } +>A.prototype.getB : Symbol(A.getB, Decl(d.ts, 10, 17)) +>A.prototype : Symbol(A.prototype) +>A : Symbol(A, Decl(d.ts, 2, 8)) +>prototype : Symbol(A.prototype) +>getB : Symbol(A.getB, Decl(d.ts, 10, 17)) +>undefined : Symbol(undefined) + +A.prototype.getCls = function () { return undefined; } +>A.prototype.getCls : Symbol(A.getCls, Decl(d.ts, 16, 17)) +>A.prototype : Symbol(A.prototype) +>A : Symbol(A, Decl(d.ts, 2, 8)) +>prototype : Symbol(A.prototype) +>getCls : Symbol(A.getCls, Decl(d.ts, 16, 17)) +>undefined : Symbol(undefined) + +declare module "./a" { +>"./a" : Symbol("./a", Decl(a.ts, 0, 0), Decl(d.ts, 7, 54), Decl(d.ts, 13, 1)) + + interface A { +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(d.ts, 9, 22), Decl(d.ts, 15, 22)) + + getB(): B; +>getB : Symbol(A.getB, Decl(d.ts, 10, 17)) +>B : Symbol(B, Decl(d.ts, 3, 8)) + } +} + +declare module "./a" { +>"./a" : Symbol("./a", Decl(a.ts, 0, 0), Decl(d.ts, 7, 54), Decl(d.ts, 13, 1)) + + interface A { +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(d.ts, 9, 22), Decl(d.ts, 15, 22)) + + getCls(): Cls; +>getCls : Symbol(A.getCls, Decl(d.ts, 16, 17)) +>Cls : Symbol(Cls, Decl(d.ts, 4, 8)) + } +} + +=== main.ts === +import {A} from "./a"; +>A : Symbol(A, Decl(main.ts, 0, 8)) + +import "d"; + +let a: A; +>a : Symbol(a, Decl(main.ts, 3, 3)) +>A : Symbol(A, Decl(main.ts, 0, 8)) + +let b = a.getB().x.toFixed(); +>b : Symbol(b, Decl(main.ts, 4, 3)) +>a.getB().x.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>a.getB().x : Symbol(B.x, Decl(b.ts, 0, 16)) +>a.getB : Symbol(A.getB, Decl(d.ts, 10, 17)) +>a : Symbol(a, Decl(main.ts, 3, 3)) +>getB : Symbol(A.getB, Decl(d.ts, 10, 17)) +>x : Symbol(B.x, Decl(b.ts, 0, 16)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + +let c = a.getCls().y.toLowerCase(); +>c : Symbol(c, Decl(main.ts, 5, 3)) +>a.getCls().y.toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) +>a.getCls().y : Symbol(Cls.y, Decl(c.d.ts, 1, 15)) +>a.getCls : Symbol(A.getCls, Decl(d.ts, 16, 17)) +>a : Symbol(a, Decl(main.ts, 3, 3)) +>getCls : Symbol(A.getCls, Decl(d.ts, 16, 17)) +>y : Symbol(Cls.y, Decl(c.d.ts, 1, 15)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.types b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.types new file mode 100644 index 0000000000000..4869b765017e3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports1.types @@ -0,0 +1,103 @@ +//// [tests/cases/compiler/moduleAugmentationsImports1.ts] //// + +=== a.ts === +export class A {} +>A : A + +=== b.ts === +export class B {x: number;} +>B : B +>x : number + +=== c.d.ts === +declare module "C" { +>"C" : typeof import("C") + + class Cls {y: string; } +>Cls : Cls +>y : string +} + +=== d.ts === +/// + +import {A} from "./a"; +>A : typeof A + +import {B} from "./b"; +>B : typeof B + +import {Cls} from "C"; +>Cls : typeof Cls + +A.prototype.getB = function () { return undefined; } +>A.prototype.getB = function () { return undefined; } : () => undefined +>A.prototype.getB : () => B +>A.prototype : A +>A : typeof A +>prototype : A +>getB : () => B +>function () { return undefined; } : () => undefined +>undefined : undefined + +A.prototype.getCls = function () { return undefined; } +>A.prototype.getCls = function () { return undefined; } : () => undefined +>A.prototype.getCls : () => Cls +>A.prototype : A +>A : typeof A +>prototype : A +>getCls : () => Cls +>function () { return undefined; } : () => undefined +>undefined : undefined + +declare module "./a" { +>"./a" : typeof import("./a") + + interface A { + getB(): B; +>getB : () => B + } +} + +declare module "./a" { +>"./a" : typeof import("./a") + + interface A { + getCls(): Cls; +>getCls : () => Cls + } +} + +=== main.ts === +import {A} from "./a"; +>A : typeof A + +import "d"; + +let a: A; +>a : A + +let b = a.getB().x.toFixed(); +>b : string +>a.getB().x.toFixed() : string +>a.getB().x.toFixed : (fractionDigits?: number) => string +>a.getB().x : number +>a.getB() : import("./b").B +>a.getB : () => import("./b").B +>a : A +>getB : () => import("./b").B +>x : number +>toFixed : (fractionDigits?: number) => string + +let c = a.getCls().y.toLowerCase(); +>c : string +>a.getCls().y.toLowerCase() : string +>a.getCls().y.toLowerCase : () => string +>a.getCls().y : string +>a.getCls() : import("C").Cls +>a.getCls : () => import("C").Cls +>a : A +>getCls : () => import("C").Cls +>y : string +>toLowerCase : () => string + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.errors.txt b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.errors.txt new file mode 100644 index 0000000000000..05d50051fdbf4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.errors.txt @@ -0,0 +1,73 @@ +b.ts(1,17): error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor. +d.ts(6,1): error TS2322: Type '() => undefined' is not assignable to type '() => B'. + Type 'undefined' is not assignable to type 'B'. +e.ts(4,1): error TS2322: Type '() => undefined' is not assignable to type '() => Cls'. + Type 'undefined' is not assignable to type 'Cls'. +main.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'd'. +main.ts(3,8): error TS2882: Cannot find module or type declarations for side-effect import of 'e'. +main.ts(6,9): error TS2454: Variable 'a' is used before being assigned. +main.ts(7,9): error TS2454: Variable 'a' is used before being assigned. + + +==== a.ts (0 errors) ==== + export class A {} + +==== b.ts (1 errors) ==== + export class B {x: number;} + ~ +!!! error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor. + +==== c.d.ts (0 errors) ==== + declare module "C" { + class Cls {y: string; } + } + +==== d.ts (1 errors) ==== + /// + + import {A} from "./a"; + import {B} from "./b"; + + A.prototype.getB = function () { return undefined; } + ~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '() => undefined' is not assignable to type '() => B'. +!!! error TS2322: Type 'undefined' is not assignable to type 'B'. + + declare module "./a" { + interface A { + getB(): B; + } + } + +==== e.ts (1 errors) ==== + import {A} from "./a"; + import {Cls} from "C"; + + A.prototype.getCls = function () { return undefined; } + ~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '() => undefined' is not assignable to type '() => Cls'. +!!! error TS2322: Type 'undefined' is not assignable to type 'Cls'. + + declare module "./a" { + interface A { + getCls(): Cls; + } + } + +==== main.ts (4 errors) ==== + import {A} from "./a"; + import "d"; + ~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'd'. + import "e"; + ~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'e'. + + let a: A; + let b = a.getB().x.toFixed(); + ~ +!!! error TS2454: Variable 'a' is used before being assigned. + let c = a.getCls().y.toLowerCase(); + ~ +!!! error TS2454: Variable 'a' is used before being assigned. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.js b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.js new file mode 100644 index 0000000000000..3308f476c7285 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.js @@ -0,0 +1,108 @@ +//// [tests/cases/compiler/moduleAugmentationsImports2.ts] //// + +//// [a.ts] +export class A {} + +//// [b.ts] +export class B {x: number;} + +//// [c.d.ts] +declare module "C" { + class Cls {y: string; } +} + +//// [d.ts] +/// + +import {A} from "./a"; +import {B} from "./b"; + +A.prototype.getB = function () { return undefined; } + +declare module "./a" { + interface A { + getB(): B; + } +} + +//// [e.ts] +import {A} from "./a"; +import {Cls} from "C"; + +A.prototype.getCls = function () { return undefined; } + +declare module "./a" { + interface A { + getCls(): Cls; + } +} + +//// [main.ts] +import {A} from "./a"; +import "d"; +import "e"; + +let a: A; +let b = a.getB().x.toFixed(); +let c = a.getCls().y.toLowerCase(); + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { +} +exports.A = A; +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.B = void 0; +class B { +} +exports.B = B; +//// [d.js] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.A.prototype.getB = function () { return undefined; }; +//// [e.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const a_1 = require("./a"); +a_1.A.prototype.getCls = function () { return undefined; }; +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("d"); +require("e"); +let a; +let b = a.getB().x.toFixed(); +let c = a.getCls().y.toLowerCase(); + + +//// [a.d.ts] +export declare class A { +} +//// [b.d.ts] +export declare class B { + x: number; +} +//// [d.d.ts] +import { B } from "./b"; +declare module "./a" { + interface A { + getB(): B; + } +} +//// [e.d.ts] +import { Cls } from "C"; +declare module "./a" { + interface A { + getCls(): Cls; + } +} +//// [main.d.ts] +import "d"; +import "e"; diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.symbols b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.symbols new file mode 100644 index 0000000000000..83fccc63e0dd7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.symbols @@ -0,0 +1,107 @@ +//// [tests/cases/compiler/moduleAugmentationsImports2.ts] //// + +=== a.ts === +export class A {} +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(d.ts, 7, 22), Decl(e.ts, 5, 22)) + +=== b.ts === +export class B {x: number;} +>B : Symbol(B, Decl(b.ts, 0, 0)) +>x : Symbol(B.x, Decl(b.ts, 0, 16)) + +=== c.d.ts === +declare module "C" { +>"C" : Symbol("C", Decl(c.d.ts, 0, 0)) + + class Cls {y: string; } +>Cls : Symbol(Cls, Decl(c.d.ts, 0, 20)) +>y : Symbol(Cls.y, Decl(c.d.ts, 1, 15)) +} + +=== d.ts === +/// + +import {A} from "./a"; +>A : Symbol(A, Decl(d.ts, 2, 8)) + +import {B} from "./b"; +>B : Symbol(B, Decl(d.ts, 3, 8)) + +A.prototype.getB = function () { return undefined; } +>A.prototype.getB : Symbol(A.getB, Decl(d.ts, 8, 17)) +>A.prototype : Symbol(A.prototype) +>A : Symbol(A, Decl(d.ts, 2, 8)) +>prototype : Symbol(A.prototype) +>getB : Symbol(A.getB, Decl(d.ts, 8, 17)) +>undefined : Symbol(undefined) + +declare module "./a" { +>"./a" : Symbol("./a", Decl(a.ts, 0, 0), Decl(d.ts, 5, 52), Decl(e.ts, 3, 54)) + + interface A { +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(d.ts, 7, 22), Decl(e.ts, 5, 22)) + + getB(): B; +>getB : Symbol(A.getB, Decl(d.ts, 8, 17)) +>B : Symbol(B, Decl(d.ts, 3, 8)) + } +} + +=== e.ts === +import {A} from "./a"; +>A : Symbol(A, Decl(e.ts, 0, 8)) + +import {Cls} from "C"; +>Cls : Symbol(Cls, Decl(e.ts, 1, 8)) + +A.prototype.getCls = function () { return undefined; } +>A.prototype.getCls : Symbol(A.getCls, Decl(e.ts, 6, 17)) +>A.prototype : Symbol(A.prototype) +>A : Symbol(A, Decl(e.ts, 0, 8)) +>prototype : Symbol(A.prototype) +>getCls : Symbol(A.getCls, Decl(e.ts, 6, 17)) +>undefined : Symbol(undefined) + +declare module "./a" { +>"./a" : Symbol("./a", Decl(a.ts, 0, 0), Decl(d.ts, 5, 52), Decl(e.ts, 3, 54)) + + interface A { +>A : Symbol(A, Decl(a.ts, 0, 0), Decl(d.ts, 7, 22), Decl(e.ts, 5, 22)) + + getCls(): Cls; +>getCls : Symbol(A.getCls, Decl(e.ts, 6, 17)) +>Cls : Symbol(Cls, Decl(e.ts, 1, 8)) + } +} + +=== main.ts === +import {A} from "./a"; +>A : Symbol(A, Decl(main.ts, 0, 8)) + +import "d"; +import "e"; + +let a: A; +>a : Symbol(a, Decl(main.ts, 4, 3)) +>A : Symbol(A, Decl(main.ts, 0, 8)) + +let b = a.getB().x.toFixed(); +>b : Symbol(b, Decl(main.ts, 5, 3)) +>a.getB().x.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>a.getB().x : Symbol(B.x, Decl(b.ts, 0, 16)) +>a.getB : Symbol(A.getB, Decl(d.ts, 8, 17)) +>a : Symbol(a, Decl(main.ts, 4, 3)) +>getB : Symbol(A.getB, Decl(d.ts, 8, 17)) +>x : Symbol(B.x, Decl(b.ts, 0, 16)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + +let c = a.getCls().y.toLowerCase(); +>c : Symbol(c, Decl(main.ts, 6, 3)) +>a.getCls().y.toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) +>a.getCls().y : Symbol(Cls.y, Decl(c.d.ts, 1, 15)) +>a.getCls : Symbol(A.getCls, Decl(e.ts, 6, 17)) +>a : Symbol(a, Decl(main.ts, 4, 3)) +>getCls : Symbol(A.getCls, Decl(e.ts, 6, 17)) +>y : Symbol(Cls.y, Decl(c.d.ts, 1, 15)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.types b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.types new file mode 100644 index 0000000000000..1effd5205c2df --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports2.types @@ -0,0 +1,108 @@ +//// [tests/cases/compiler/moduleAugmentationsImports2.ts] //// + +=== a.ts === +export class A {} +>A : A + +=== b.ts === +export class B {x: number;} +>B : B +>x : number + +=== c.d.ts === +declare module "C" { +>"C" : typeof import("C") + + class Cls {y: string; } +>Cls : Cls +>y : string +} + +=== d.ts === +/// + +import {A} from "./a"; +>A : typeof A + +import {B} from "./b"; +>B : typeof B + +A.prototype.getB = function () { return undefined; } +>A.prototype.getB = function () { return undefined; } : () => undefined +>A.prototype.getB : () => B +>A.prototype : A +>A : typeof A +>prototype : A +>getB : () => B +>function () { return undefined; } : () => undefined +>undefined : undefined + +declare module "./a" { +>"./a" : typeof import("./a") + + interface A { + getB(): B; +>getB : () => B + } +} + +=== e.ts === +import {A} from "./a"; +>A : typeof A + +import {Cls} from "C"; +>Cls : typeof Cls + +A.prototype.getCls = function () { return undefined; } +>A.prototype.getCls = function () { return undefined; } : () => undefined +>A.prototype.getCls : () => Cls +>A.prototype : A +>A : typeof A +>prototype : A +>getCls : () => Cls +>function () { return undefined; } : () => undefined +>undefined : undefined + +declare module "./a" { +>"./a" : typeof import("./a") + + interface A { + getCls(): Cls; +>getCls : () => Cls + } +} + +=== main.ts === +import {A} from "./a"; +>A : typeof A + +import "d"; +import "e"; + +let a: A; +>a : A + +let b = a.getB().x.toFixed(); +>b : string +>a.getB().x.toFixed() : string +>a.getB().x.toFixed : (fractionDigits?: number) => string +>a.getB().x : number +>a.getB() : import("./b").B +>a.getB : () => import("./b").B +>a : A +>getB : () => import("./b").B +>x : number +>toFixed : (fractionDigits?: number) => string + +let c = a.getCls().y.toLowerCase(); +>c : string +>a.getCls().y.toLowerCase() : string +>a.getCls().y.toLowerCase : () => string +>a.getCls().y : string +>a.getCls() : import("C").Cls +>a.getCls : () => import("C").Cls +>a : A +>getCls : () => import("C").Cls +>y : string +>toLowerCase : () => string + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.errors.txt b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.errors.txt new file mode 100644 index 0000000000000..0cda1d38f776b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.errors.txt @@ -0,0 +1,68 @@ +d.d.ts(2,21): error TS2307: Cannot find module 'a' or its corresponding type declarations. +d.d.ts(3,21): error TS2307: Cannot find module 'b' or its corresponding type declarations. +main.ts(4,8): error TS2882: Cannot find module or type declarations for side-effect import of 'e'. +main.ts(7,9): error TS2454: Variable 'a' is used before being assigned. +main.ts(7,11): error TS2339: Property 'getB' does not exist on type 'A'. +main.ts(8,9): error TS2454: Variable 'a' is used before being assigned. +main.ts(8,11): error TS2339: Property 'getCls' does not exist on type 'A'. + + +==== main.ts (5 errors) ==== + /// + import {A} from "./a"; + import "D"; + import "e"; + ~~~ +!!! error TS2882: Cannot find module or type declarations for side-effect import of 'e'. + + let a: A; + let b = a.getB().x.toFixed(); + ~ +!!! error TS2454: Variable 'a' is used before being assigned. + ~~~~ +!!! error TS2339: Property 'getB' does not exist on type 'A'. + let c = a.getCls().y.toLowerCase(); + ~ +!!! error TS2454: Variable 'a' is used before being assigned. + ~~~~~~ +!!! error TS2339: Property 'getCls' does not exist on type 'A'. + +==== a.ts (0 errors) ==== + export class A {} + +==== b.ts (0 errors) ==== + export class B {x: number;} + +==== c.d.ts (0 errors) ==== + declare module "C" { + class Cls {y: string; } + } + +==== d.d.ts (2 errors) ==== + declare module "D" { + import {A} from "a"; + ~~~ +!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. + import {B} from "b"; + ~~~ +!!! error TS2307: Cannot find module 'b' or its corresponding type declarations. + module "a" { + interface A { + getB(): B; + } + } + } + +==== e.ts (0 errors) ==== + /// + import {A} from "./a"; + import {Cls} from "C"; + + A.prototype.getCls = function () { return undefined; } + + declare module "./a" { + interface A { + getCls(): Cls; + } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.js b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.js new file mode 100644 index 0000000000000..7901395302667 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.js @@ -0,0 +1,71 @@ +//// [tests/cases/compiler/moduleAugmentationsImports3.ts] //// + +//// [a.ts] +export class A {} + +//// [b.ts] +export class B {x: number;} + +//// [c.d.ts] +declare module "C" { + class Cls {y: string; } +} + +//// [d.d.ts] +declare module "D" { + import {A} from "a"; + import {B} from "b"; + module "a" { + interface A { + getB(): B; + } + } +} + +//// [e.ts] +/// +import {A} from "./a"; +import {Cls} from "C"; + +A.prototype.getCls = function () { return undefined; } + +declare module "./a" { + interface A { + getCls(): Cls; + } +} + +//// [main.ts] +/// +import {A} from "./a"; +import "D"; +import "e"; + +let a: A; +let b = a.getB().x.toFixed(); +let c = a.getCls().y.toLowerCase(); + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { +} +exports.A = A; +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("D"); +require("e"); +let a; +let b = a.getB().x.toFixed(); +let c = a.getCls().y.toLowerCase(); + + +//// [a.d.ts] +export declare class A { +} +//// [main.d.ts] +import "D"; +import "e"; diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.symbols b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.symbols new file mode 100644 index 0000000000000..7c38ae32d6522 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.symbols @@ -0,0 +1,49 @@ +//// [tests/cases/compiler/moduleAugmentationsImports3.ts] //// + +=== main.ts === +/// +import {A} from "./a"; +>A : Symbol(A, Decl(main.ts, 1, 8)) + +import "D"; +import "e"; + +let a: A; +>a : Symbol(a, Decl(main.ts, 5, 3)) +>A : Symbol(A, Decl(main.ts, 1, 8)) + +let b = a.getB().x.toFixed(); +>b : Symbol(b, Decl(main.ts, 6, 3)) +>a : Symbol(a, Decl(main.ts, 5, 3)) + +let c = a.getCls().y.toLowerCase(); +>c : Symbol(c, Decl(main.ts, 7, 3)) +>a : Symbol(a, Decl(main.ts, 5, 3)) + +=== a.ts === +export class A {} +>A : Symbol(A, Decl(a.ts, 0, 0)) + +=== d.d.ts === +declare module "D" { +>"D" : Symbol("D", Decl(d.d.ts, 0, 0)) + + import {A} from "a"; +>A : Symbol(A, Decl(d.d.ts, 1, 12)) + + import {B} from "b"; +>B : Symbol(B, Decl(d.d.ts, 2, 12)) + + module "a" { +>"a" : Symbol("a", Decl(d.d.ts, 2, 24)) + + interface A { +>A : Symbol(A, Decl(d.d.ts, 3, 16)) + + getB(): B; +>getB : Symbol(A.getB, Decl(d.d.ts, 4, 21)) +>B : Symbol(B, Decl(d.d.ts, 2, 12)) + } + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.types b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.types new file mode 100644 index 0000000000000..7002e41398aca --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports3.types @@ -0,0 +1,61 @@ +//// [tests/cases/compiler/moduleAugmentationsImports3.ts] //// + +=== main.ts === +/// +import {A} from "./a"; +>A : typeof A + +import "D"; +import "e"; + +let a: A; +>a : A + +let b = a.getB().x.toFixed(); +>b : any +>a.getB().x.toFixed() : any +>a.getB().x.toFixed : any +>a.getB().x : any +>a.getB() : any +>a.getB : any +>a : A +>getB : any +>x : any +>toFixed : any + +let c = a.getCls().y.toLowerCase(); +>c : any +>a.getCls().y.toLowerCase() : any +>a.getCls().y.toLowerCase : any +>a.getCls().y : any +>a.getCls() : any +>a.getCls : any +>a : A +>getCls : any +>y : any +>toLowerCase : any + +=== a.ts === +export class A {} +>A : A + +=== d.d.ts === +declare module "D" { +>"D" : typeof import("D") + + import {A} from "a"; +>A : any + + import {B} from "b"; +>B : any + + module "a" { +>"a" : any + + interface A { + getB(): B; +>getB : () => B + } + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.errors.txt b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.errors.txt new file mode 100644 index 0000000000000..caf90258d87d2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.errors.txt @@ -0,0 +1,69 @@ +d.d.ts(2,21): error TS2307: Cannot find module 'a' or its corresponding type declarations. +d.d.ts(3,21): error TS2307: Cannot find module 'b' or its corresponding type declarations. +e.d.ts(3,21): error TS2307: Cannot find module 'a' or its corresponding type declarations. +main.ts(8,9): error TS2454: Variable 'a' is used before being assigned. +main.ts(8,11): error TS2339: Property 'getB' does not exist on type 'A'. +main.ts(9,9): error TS2454: Variable 'a' is used before being assigned. +main.ts(9,11): error TS2339: Property 'getCls' does not exist on type 'A'. + + +==== main.ts (4 errors) ==== + /// + /// + import {A} from "./a"; + import "D"; + import "E"; + + let a: A; + let b = a.getB().x.toFixed(); + ~ +!!! error TS2454: Variable 'a' is used before being assigned. + ~~~~ +!!! error TS2339: Property 'getB' does not exist on type 'A'. + let c = a.getCls().y.toLowerCase(); + ~ +!!! error TS2454: Variable 'a' is used before being assigned. + ~~~~~~ +!!! error TS2339: Property 'getCls' does not exist on type 'A'. + +==== a.ts (0 errors) ==== + export class A {} + +==== b.ts (0 errors) ==== + export class B {x: number;} + +==== c.d.ts (0 errors) ==== + declare module "C" { + class Cls {y: string; } + } + +==== d.d.ts (2 errors) ==== + declare module "D" { + import {A} from "a"; + ~~~ +!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. + import {B} from "b"; + ~~~ +!!! error TS2307: Cannot find module 'b' or its corresponding type declarations. + module "a" { + interface A { + getB(): B; + } + } + } + +==== e.d.ts (1 errors) ==== + /// + declare module "E" { + import {A} from "a"; + ~~~ +!!! error TS2307: Cannot find module 'a' or its corresponding type declarations. + import {Cls} from "C"; + + module "a" { + interface A { + getCls(): Cls; + } + } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.js b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.js new file mode 100644 index 0000000000000..2c4919d99c277 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.js @@ -0,0 +1,72 @@ +//// [tests/cases/compiler/moduleAugmentationsImports4.ts] //// + +//// [a.ts] +export class A {} + +//// [b.ts] +export class B {x: number;} + +//// [c.d.ts] +declare module "C" { + class Cls {y: string; } +} + +//// [d.d.ts] +declare module "D" { + import {A} from "a"; + import {B} from "b"; + module "a" { + interface A { + getB(): B; + } + } +} + +//// [e.d.ts] +/// +declare module "E" { + import {A} from "a"; + import {Cls} from "C"; + + module "a" { + interface A { + getCls(): Cls; + } + } +} + +//// [main.ts] +/// +/// +import {A} from "./a"; +import "D"; +import "E"; + +let a: A; +let b = a.getB().x.toFixed(); +let c = a.getCls().y.toLowerCase(); + + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { +} +exports.A = A; +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("D"); +require("E"); +let a; +let b = a.getB().x.toFixed(); +let c = a.getCls().y.toLowerCase(); + + +//// [a.d.ts] +export declare class A { +} +//// [main.d.ts] +import "D"; +import "E"; diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.symbols b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.symbols new file mode 100644 index 0000000000000..a3fa99e030c0f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.symbols @@ -0,0 +1,83 @@ +//// [tests/cases/compiler/moduleAugmentationsImports4.ts] //// + +=== main.ts === +/// +/// +import {A} from "./a"; +>A : Symbol(A, Decl(main.ts, 2, 8)) + +import "D"; +import "E"; + +let a: A; +>a : Symbol(a, Decl(main.ts, 6, 3)) +>A : Symbol(A, Decl(main.ts, 2, 8)) + +let b = a.getB().x.toFixed(); +>b : Symbol(b, Decl(main.ts, 7, 3)) +>a : Symbol(a, Decl(main.ts, 6, 3)) + +let c = a.getCls().y.toLowerCase(); +>c : Symbol(c, Decl(main.ts, 8, 3)) +>a : Symbol(a, Decl(main.ts, 6, 3)) + +=== a.ts === +export class A {} +>A : Symbol(A, Decl(a.ts, 0, 0)) + +=== c.d.ts === +declare module "C" { +>"C" : Symbol("C", Decl(c.d.ts, 0, 0)) + + class Cls {y: string; } +>Cls : Symbol(Cls, Decl(c.d.ts, 0, 20)) +>y : Symbol(Cls.y, Decl(c.d.ts, 1, 15)) +} + +=== d.d.ts === +declare module "D" { +>"D" : Symbol("D", Decl(d.d.ts, 0, 0)) + + import {A} from "a"; +>A : Symbol(A, Decl(d.d.ts, 1, 12)) + + import {B} from "b"; +>B : Symbol(B, Decl(d.d.ts, 2, 12)) + + module "a" { +>"a" : Symbol("a", Decl(d.d.ts, 2, 24)) + + interface A { +>A : Symbol(A, Decl(d.d.ts, 3, 16)) + + getB(): B; +>getB : Symbol(A.getB, Decl(d.d.ts, 4, 21)) +>B : Symbol(B, Decl(d.d.ts, 2, 12)) + } + } +} + +=== e.d.ts === +/// +declare module "E" { +>"E" : Symbol("E", Decl(e.d.ts, 0, 0)) + + import {A} from "a"; +>A : Symbol(A, Decl(e.d.ts, 2, 12)) + + import {Cls} from "C"; +>Cls : Symbol(Cls, Decl(e.d.ts, 3, 12)) + + module "a" { +>"a" : Symbol("a", Decl(e.d.ts, 3, 26)) + + interface A { +>A : Symbol(A, Decl(e.d.ts, 5, 16)) + + getCls(): Cls; +>getCls : Symbol(A.getCls, Decl(e.d.ts, 6, 21)) +>Cls : Symbol(Cls, Decl(e.d.ts, 3, 12)) + } + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.types b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.types new file mode 100644 index 0000000000000..df1341e5ac2df --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleAugmentationsImports4.types @@ -0,0 +1,92 @@ +//// [tests/cases/compiler/moduleAugmentationsImports4.ts] //// + +=== main.ts === +/// +/// +import {A} from "./a"; +>A : typeof A + +import "D"; +import "E"; + +let a: A; +>a : A + +let b = a.getB().x.toFixed(); +>b : any +>a.getB().x.toFixed() : any +>a.getB().x.toFixed : any +>a.getB().x : any +>a.getB() : any +>a.getB : any +>a : A +>getB : any +>x : any +>toFixed : any + +let c = a.getCls().y.toLowerCase(); +>c : any +>a.getCls().y.toLowerCase() : any +>a.getCls().y.toLowerCase : any +>a.getCls().y : any +>a.getCls() : any +>a.getCls : any +>a : A +>getCls : any +>y : any +>toLowerCase : any + +=== a.ts === +export class A {} +>A : A + +=== c.d.ts === +declare module "C" { +>"C" : typeof import("C") + + class Cls {y: string; } +>Cls : Cls +>y : string +} + +=== d.d.ts === +declare module "D" { +>"D" : typeof import("D") + + import {A} from "a"; +>A : any + + import {B} from "b"; +>B : any + + module "a" { +>"a" : any + + interface A { + getB(): B; +>getB : () => B + } + } +} + +=== e.d.ts === +/// +declare module "E" { +>"E" : typeof import("E") + + import {A} from "a"; +>A : any + + import {Cls} from "C"; +>Cls : typeof Cls + + module "a" { +>"a" : any + + interface A { + getCls(): Cls; +>getCls : () => Cls + } + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.errors.txt b/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.errors.txt new file mode 100644 index 0000000000000..d3b21bd66e34b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.errors.txt @@ -0,0 +1,15 @@ +moduleImportedForTypeArgumentPosition_1.ts(2,21): error TS2307: Cannot find module 'moduleImportedForTypeArgumentPosition_0' or its corresponding type declarations. + + +==== moduleImportedForTypeArgumentPosition_1.ts (1 errors) ==== + /**This is on import declaration*/ + import M2 = require("moduleImportedForTypeArgumentPosition_0"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'moduleImportedForTypeArgumentPosition_0' or its corresponding type declarations. + class C1{ } + class Test1 extends C1 { + } + +==== moduleImportedForTypeArgumentPosition_0.ts (0 errors) ==== + export interface M2C { } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.js b/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.js new file mode 100644 index 0000000000000..cdcda8e0410f2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.js @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts] //// + +//// [moduleImportedForTypeArgumentPosition_0.ts] +export interface M2C { } + +//// [moduleImportedForTypeArgumentPosition_1.ts] +/**This is on import declaration*/ +import M2 = require("moduleImportedForTypeArgumentPosition_0"); +class C1{ } +class Test1 extends C1 { +} + + +//// [moduleImportedForTypeArgumentPosition_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class C1 { +} +class Test1 extends C1 { +} diff --git a/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.symbols b/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.symbols new file mode 100644 index 0000000000000..f239fa60d0f05 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.symbols @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts] //// + +=== moduleImportedForTypeArgumentPosition_1.ts === +/**This is on import declaration*/ +import M2 = require("moduleImportedForTypeArgumentPosition_0"); +>M2 : Symbol(M2, Decl(moduleImportedForTypeArgumentPosition_1.ts, 0, 0)) + +class C1{ } +>C1 : Symbol(C1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 1, 63)) +>T : Symbol(T, Decl(moduleImportedForTypeArgumentPosition_1.ts, 2, 9)) + +class Test1 extends C1 { +>Test1 : Symbol(Test1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 2, 14)) +>C1 : Symbol(C1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 1, 63)) +>M2 : Symbol(M2, Decl(moduleImportedForTypeArgumentPosition_1.ts, 0, 0)) +>M2C : Symbol(M2.M2C) +} + diff --git a/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.types b/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.types new file mode 100644 index 0000000000000..1714e19fa8187 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleImportedForTypeArgumentPosition.types @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts] //// + +=== moduleImportedForTypeArgumentPosition_1.ts === +/**This is on import declaration*/ +import M2 = require("moduleImportedForTypeArgumentPosition_0"); +>M2 : any + +class C1{ } +>C1 : C1 + +class Test1 extends C1 { +>Test1 : Test1 +>C1 : C1 +>M2 : any +} + diff --git a/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.js b/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.js new file mode 100644 index 0000000000000..a2523e5f44545 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.js @@ -0,0 +1,70 @@ +//// [tests/cases/compiler/moduleMergeConstructor.ts] //// + +//// [foo.d.ts] +declare module "foo" { + export class Foo { + constructor(); + method1(): any; + } +} + +//// [foo-ext.d.ts] +declare module "foo" { + export interface Foo { + method2(): any; + } +} + +//// [index.ts] +import * as foo from "foo"; + +class Test { + bar: foo.Foo; + constructor() { + this.bar = new foo.Foo(); + } +} + + +//// [index.js] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +const foo = __importStar(require("foo")); +class Test { + constructor() { + this.bar = new foo.Foo(); + } +} diff --git a/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.symbols b/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.symbols new file mode 100644 index 0000000000000..45ee62d02e2bf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.symbols @@ -0,0 +1,50 @@ +//// [tests/cases/compiler/moduleMergeConstructor.ts] //// + +=== foo.d.ts === +declare module "foo" { +>"foo" : Symbol("foo", Decl(foo.d.ts, 0, 0), Decl(foo-ext.d.ts, 0, 0)) + + export class Foo { +>Foo : Symbol(Foo, Decl(foo.d.ts, 0, 22), Decl(foo-ext.d.ts, 0, 22)) + + constructor(); + method1(): any; +>method1 : Symbol(Foo.method1, Decl(foo.d.ts, 2, 22)) + } +} + +=== foo-ext.d.ts === +declare module "foo" { +>"foo" : Symbol("foo", Decl(foo.d.ts, 0, 0), Decl(foo-ext.d.ts, 0, 0)) + + export interface Foo { +>Foo : Symbol(Foo, Decl(foo.d.ts, 0, 22), Decl(foo-ext.d.ts, 0, 22)) + + method2(): any; +>method2 : Symbol(Foo.method2, Decl(foo-ext.d.ts, 1, 26)) + } +} + +=== index.ts === +import * as foo from "foo"; +>foo : Symbol(foo, Decl(index.ts, 0, 6)) + +class Test { +>Test : Symbol(Test, Decl(index.ts, 0, 27)) + + bar: foo.Foo; +>bar : Symbol(Test.bar, Decl(index.ts, 2, 12)) +>foo : Symbol(foo, Decl(index.ts, 0, 6)) +>Foo : Symbol(foo.Foo, Decl(foo.d.ts, 0, 22), Decl(foo-ext.d.ts, 0, 22)) + + constructor() { + this.bar = new foo.Foo(); +>this.bar : Symbol(Test.bar, Decl(index.ts, 2, 12)) +>this : Symbol(Test, Decl(index.ts, 0, 27)) +>bar : Symbol(Test.bar, Decl(index.ts, 2, 12)) +>foo.Foo : Symbol(foo.Foo, Decl(foo.d.ts, 0, 22), Decl(foo-ext.d.ts, 0, 22)) +>foo : Symbol(foo, Decl(index.ts, 0, 6)) +>Foo : Symbol(foo.Foo, Decl(foo.d.ts, 0, 22), Decl(foo-ext.d.ts, 0, 22)) + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.types b/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.types new file mode 100644 index 0000000000000..437d0f78b9379 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/moduleMergeConstructor.types @@ -0,0 +1,49 @@ +//// [tests/cases/compiler/moduleMergeConstructor.ts] //// + +=== foo.d.ts === +declare module "foo" { +>"foo" : typeof import("foo") + + export class Foo { +>Foo : Foo + + constructor(); + method1(): any; +>method1 : () => any + } +} + +=== foo-ext.d.ts === +declare module "foo" { +>"foo" : typeof import("foo") + + export interface Foo { + method2(): any; +>method2 : () => any + } +} + +=== index.ts === +import * as foo from "foo"; +>foo : typeof foo + +class Test { +>Test : Test + + bar: foo.Foo; +>bar : foo.Foo +>foo : any + + constructor() { + this.bar = new foo.Foo(); +>this.bar = new foo.Foo() : foo.Foo +>this.bar : foo.Foo +>this : this +>bar : foo.Foo +>new foo.Foo() : foo.Foo +>foo.Foo : typeof foo.Foo +>foo : typeof foo +>Foo : typeof foo.Foo + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/objectIndexer.js b/tsc/testdata/baselines/reference/compiler/objectIndexer.js new file mode 100644 index 0000000000000..f0bf0462b7a62 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/objectIndexer.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/objectIndexer.ts] //// + +//// [objectIndexer.ts] +export interface Callback { + (value: any): void; +} + +interface IMap { + [s: string]: Callback; +} + +class Emitter { + private listeners: IMap; + constructor () { + this.listeners = {}; + } +} + + +//// [objectIndexer.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class Emitter { + constructor() { + this.listeners = {}; + } +} diff --git a/tsc/testdata/baselines/reference/compiler/objectIndexer.symbols b/tsc/testdata/baselines/reference/compiler/objectIndexer.symbols new file mode 100644 index 0000000000000..5204592721f7d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/objectIndexer.symbols @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/objectIndexer.ts] //// + +=== objectIndexer.ts === +export interface Callback { +>Callback : Symbol(Callback, Decl(objectIndexer.ts, 0, 0)) + + (value: any): void; +>value : Symbol(value, Decl(objectIndexer.ts, 1, 5)) +} + +interface IMap { +>IMap : Symbol(IMap, Decl(objectIndexer.ts, 2, 1)) + + [s: string]: Callback; +>s : Symbol(s, Decl(objectIndexer.ts, 5, 5)) +>Callback : Symbol(Callback, Decl(objectIndexer.ts, 0, 0)) +} + +class Emitter { +>Emitter : Symbol(Emitter, Decl(objectIndexer.ts, 6, 1)) + + private listeners: IMap; +>listeners : Symbol(Emitter.listeners, Decl(objectIndexer.ts, 8, 15)) +>IMap : Symbol(IMap, Decl(objectIndexer.ts, 2, 1)) + + constructor () { + this.listeners = {}; +>this.listeners : Symbol(Emitter.listeners, Decl(objectIndexer.ts, 8, 15)) +>this : Symbol(Emitter, Decl(objectIndexer.ts, 6, 1)) +>listeners : Symbol(Emitter.listeners, Decl(objectIndexer.ts, 8, 15)) + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/objectIndexer.types b/tsc/testdata/baselines/reference/compiler/objectIndexer.types new file mode 100644 index 0000000000000..8609a23eec093 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/objectIndexer.types @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/objectIndexer.ts] //// + +=== objectIndexer.ts === +export interface Callback { + (value: any): void; +>value : any +} + +interface IMap { + [s: string]: Callback; +>s : string +} + +class Emitter { +>Emitter : Emitter + + private listeners: IMap; +>listeners : IMap + + constructor () { + this.listeners = {}; +>this.listeners = {} : {} +>this.listeners : IMap +>this : this +>listeners : IMap +>{} : {} + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.js b/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.js new file mode 100644 index 0000000000000..ac76bfacd4766 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution6_classic.ts] //// + +//// [file3.ts] +export {x} from "../file2"; +//// [file1.ts] +import {x} from "./project/file3"; +declare function use(x: string); +use(x.toExponential()); + +//// [file2.d.ts] +export let x: number; + + +//// [file3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +var file2_1 = require("../file2"); +Object.defineProperty(exports, "x", { enumerable: true, get: function () { return file2_1.x; } }); +//// [file1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const file3_1 = require("./project/file3"); +use(file3_1.x.toExponential()); diff --git a/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.symbols b/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.symbols new file mode 100644 index 0000000000000..bc37370f8bf54 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.symbols @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution6_classic.ts] //// + +=== c:/root/src/file1.ts === +import {x} from "./project/file3"; +>x : Symbol(x, Decl(file1.ts, 0, 8)) + +declare function use(x: string); +>use : Symbol(use, Decl(file1.ts, 0, 34)) +>x : Symbol(x, Decl(file1.ts, 1, 21)) + +use(x.toExponential()); +>use : Symbol(use, Decl(file1.ts, 0, 34)) +>x.toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(file1.ts, 0, 8)) +>toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) + +=== c:/root/src/file2.d.ts === +export let x: number; +>x : Symbol(x, Decl(file2.d.ts, 0, 10)) + +=== c:/root/generated/src/project/file3.ts === +export {x} from "../file2"; +>x : Symbol(x, Decl(file3.ts, 0, 8)) + diff --git a/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.trace.json b/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.trace.json new file mode 100644 index 0000000000000..a695e13934a26 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.trace.json @@ -0,0 +1,37 @@ +======== Resolving module './project/file3' from 'c:/root/src/file1.ts'. ======== +Module resolution kind is not specified, using 'Bundler'. +Resolving in CJS mode with conditions 'require', 'types'. +'rootDirs' option is set, using it to resolve relative module name './project/file3'. +Checking if 'c:/root/src/' is the longest matching prefix for 'c:/root/src/project/file3' - 'true'. +Checking if 'c:/root/generated/src/' is the longest matching prefix for 'c:/root/src/project/file3' - 'false'. +Longest matching prefix for 'c:/root/src/project/file3' is 'c:/root/src/'. +Loading 'project/file3' from the root dir 'c:/root/src/', candidate location 'c:/root/src/project/file3'. +Loading module as file / folder, candidate module location 'c:/root/src/project/file3', target file types: TypeScript, JavaScript, Declaration, JSON. +Directory 'c:/root/src/project' does not exist, skipping all lookups in it. +Trying other entries in 'rootDirs'. +Loading 'project/file3' from the root dir 'c:/root/generated/src', candidate location 'c:/root/generated/src/project/file3'. +Loading module as file / folder, candidate module location 'c:/root/generated/src/project/file3', target file types: TypeScript, JavaScript, Declaration, JSON. +File 'c:/root/generated/src/project/file3.ts' exists - use it as a name resolution result. +======== Module name './project/file3' was successfully resolved to 'c:/root/generated/src/project/file3.ts'. ======== +======== Resolving module '../file2' from 'c:/root/generated/src/project/file3.ts'. ======== +Module resolution kind is not specified, using 'Bundler'. +Resolving in CJS mode with conditions 'require', 'types'. +'rootDirs' option is set, using it to resolve relative module name '../file2'. +Checking if 'c:/root/src/' is the longest matching prefix for 'c:/root/generated/src/file2' - 'false'. +Checking if 'c:/root/generated/src/' is the longest matching prefix for 'c:/root/generated/src/file2' - 'true'. +Longest matching prefix for 'c:/root/generated/src/file2' is 'c:/root/generated/src/'. +Loading 'file2' from the root dir 'c:/root/generated/src/', candidate location 'c:/root/generated/src/file2'. +Loading module as file / folder, candidate module location 'c:/root/generated/src/file2', target file types: TypeScript, JavaScript, Declaration, JSON. +File 'c:/root/generated/src/file2.ts' does not exist. +File 'c:/root/generated/src/file2.tsx' does not exist. +File 'c:/root/generated/src/file2.d.ts' does not exist. +File 'c:/root/generated/src/file2.js' does not exist. +File 'c:/root/generated/src/file2.jsx' does not exist. +Directory 'c:/root/generated/src/file2' does not exist, skipping all lookups in it. +Trying other entries in 'rootDirs'. +Loading 'file2' from the root dir 'c:/root/src', candidate location 'c:/root/src/file2'. +Loading module as file / folder, candidate module location 'c:/root/src/file2', target file types: TypeScript, JavaScript, Declaration, JSON. +File 'c:/root/src/file2.ts' does not exist. +File 'c:/root/src/file2.tsx' does not exist. +File 'c:/root/src/file2.d.ts' exists - use it as a name resolution result. +======== Module name '../file2' was successfully resolved to 'c:/root/src/file2.d.ts'. ======== diff --git a/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.types b/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.types new file mode 100644 index 0000000000000..35302e766b7a9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/pathMappingBasedModuleResolution6_classic.types @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/pathMappingBasedModuleResolution6_classic.ts] //// + +=== c:/root/src/file1.ts === +import {x} from "./project/file3"; +>x : number + +declare function use(x: string); +>use : (x: string) => any +>x : string + +use(x.toExponential()); +>use(x.toExponential()) : any +>use : (x: string) => any +>x.toExponential() : string +>x.toExponential : (fractionDigits?: number) => string +>x : number +>toExponential : (fractionDigits?: number) => string + +=== c:/root/src/file2.d.ts === +export let x: number; +>x : number + +=== c:/root/generated/src/project/file3.ts === +export {x} from "../file2"; +>x : number + diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.errors.txt b/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.errors.txt new file mode 100644 index 0000000000000..f5602fbab3255 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.errors.txt @@ -0,0 +1,20 @@ +privacyCheckAnonymousFunctionParameter2.ts(12,13): error TS2345: Argument of type 'null' is not assignable to parameter of type '(a: Iterator) => number'. + + +==== privacyCheckAnonymousFunctionParameter2.ts (1 errors) ==== + export var x = 1; // Makes this an external module + interface Iterator { x: T } + + namespace Q { + export function foo(x: (a: Iterator) => number) { + return x; + } + } + + namespace Q { + function bar() { + foo(null); + ~~~~ +!!! error TS2345: Argument of type 'null' is not assignable to parameter of type '(a: Iterator) => number'. + } + } \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.js b/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.js new file mode 100644 index 0000000000000..d1082b9a757cc --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.js @@ -0,0 +1,39 @@ +//// [tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts] //// + +//// [privacyCheckAnonymousFunctionParameter2.ts] +export var x = 1; // Makes this an external module +interface Iterator { x: T } + +namespace Q { + export function foo(x: (a: Iterator) => number) { + return x; + } +} + +namespace Q { + function bar() { + foo(null); + } +} + +//// [privacyCheckAnonymousFunctionParameter2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x = 1; // Makes this an external module +var Q; +(function (Q) { + function foo(x) { + return x; + } + Q.foo = foo; +})(Q || (Q = {})); +(function (Q) { + function bar() { + Q.foo(null); + } +})(Q || (Q = {})); + + +//// [privacyCheckAnonymousFunctionParameter2.d.ts] +export declare var x: number; diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.symbols b/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.symbols new file mode 100644 index 0000000000000..f2fe371594cc0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.symbols @@ -0,0 +1,38 @@ +//// [tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts] //// + +=== privacyCheckAnonymousFunctionParameter2.ts === +export var x = 1; // Makes this an external module +>x : Symbol(x, Decl(privacyCheckAnonymousFunctionParameter2.ts, 0, 10)) + +interface Iterator { x: T } +>Iterator : Symbol(Iterator, Decl(privacyCheckAnonymousFunctionParameter2.ts, 0, 17)) +>T : Symbol(T, Decl(privacyCheckAnonymousFunctionParameter2.ts, 1, 19)) +>x : Symbol(Iterator.x, Decl(privacyCheckAnonymousFunctionParameter2.ts, 1, 23)) +>T : Symbol(T, Decl(privacyCheckAnonymousFunctionParameter2.ts, 1, 19)) + +namespace Q { +>Q : Symbol(Q, Decl(privacyCheckAnonymousFunctionParameter2.ts, 1, 30), Decl(privacyCheckAnonymousFunctionParameter2.ts, 7, 1)) + + export function foo(x: (a: Iterator) => number) { +>foo : Symbol(foo, Decl(privacyCheckAnonymousFunctionParameter2.ts, 3, 13)) +>T : Symbol(T, Decl(privacyCheckAnonymousFunctionParameter2.ts, 4, 24)) +>x : Symbol(x, Decl(privacyCheckAnonymousFunctionParameter2.ts, 4, 27)) +>a : Symbol(a, Decl(privacyCheckAnonymousFunctionParameter2.ts, 4, 31)) +>Iterator : Symbol(Iterator, Decl(privacyCheckAnonymousFunctionParameter2.ts, 0, 17)) +>T : Symbol(T, Decl(privacyCheckAnonymousFunctionParameter2.ts, 4, 24)) + + return x; +>x : Symbol(x, Decl(privacyCheckAnonymousFunctionParameter2.ts, 4, 27)) + } +} + +namespace Q { +>Q : Symbol(Q, Decl(privacyCheckAnonymousFunctionParameter2.ts, 1, 30), Decl(privacyCheckAnonymousFunctionParameter2.ts, 7, 1)) + + function bar() { +>bar : Symbol(bar, Decl(privacyCheckAnonymousFunctionParameter2.ts, 9, 13)) + + foo(null); +>foo : Symbol(foo, Decl(privacyCheckAnonymousFunctionParameter2.ts, 3, 13)) + } +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.types b/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.types new file mode 100644 index 0000000000000..8e134d8cff5d8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckAnonymousFunctionParameter2.types @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts] //// + +=== privacyCheckAnonymousFunctionParameter2.ts === +export var x = 1; // Makes this an external module +>x : number +>1 : 1 + +interface Iterator { x: T } +>x : T + +namespace Q { +>Q : typeof Q + + export function foo(x: (a: Iterator) => number) { +>foo : (x: (a: Iterator) => number) => (a: Iterator) => number +>x : (a: Iterator) => number +>a : Iterator + + return x; +>x : (a: Iterator) => number + } +} + +namespace Q { +>Q : typeof Q + + function bar() { +>bar : () => void + + foo(null); +>foo(null) : (a: Iterator) => number +>foo : (x: (a: Iterator) => number) => (a: Iterator) => number + } +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js b/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js new file mode 100644 index 0000000000000..a64d40ee18716 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts] //// + +//// [privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts] +export interface A { + f1(callback: (p: T) => any); +} + +export interface B extends A { +} + + +//// [privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + +//// [privacyCheckCallbackOfInterfaceMethodWithTypeParameter.d.ts] +export interface A { + f1(callback: (p: T) => any): any; +} +export interface B extends A { +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.symbols b/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.symbols new file mode 100644 index 0000000000000..897ad24f7f499 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.symbols @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts] //// + +=== privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts === +export interface A { +>A : Symbol(A, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 0, 19)) + + f1(callback: (p: T) => any); +>f1 : Symbol(A.f1, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 0, 23)) +>callback : Symbol(callback, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 1, 7)) +>p : Symbol(p, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 1, 18)) +>T : Symbol(T, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 0, 19)) +} + +export interface B extends A { +>B : Symbol(B, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 2, 1)) +>T : Symbol(T, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 4, 19)) +>A : Symbol(A, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts, 4, 19)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.types b/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.types new file mode 100644 index 0000000000000..f090e08b898d5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.types @@ -0,0 +1,13 @@ +//// [tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts] //// + +=== privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts === +export interface A { + f1(callback: (p: T) => any); +>f1 : (callback: (p: T) => any) => any +>callback : (p: T) => any +>p : T +} + +export interface B extends A { +} + diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.errors.txt b/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.errors.txt new file mode 100644 index 0000000000000..cb985b36aef01 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.errors.txt @@ -0,0 +1,19 @@ +privacyCheckExportAssignmentOnExportedGenericInterface2.ts(7,5): error TS2322: Type 'undefined' is not assignable to type 'Foo'. + + +==== privacyCheckExportAssignmentOnExportedGenericInterface2.ts (1 errors) ==== + export = Foo; + + interface Foo { + } + + function Foo(array: T[]): Foo { + return undefined; + ~~~~~~ +!!! error TS2322: Type 'undefined' is not assignable to type 'Foo'. + } + + namespace Foo { + export var x = "hello"; + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.js b/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.js new file mode 100644 index 0000000000000..6b7aa3b159fb1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts] //// + +//// [privacyCheckExportAssignmentOnExportedGenericInterface2.ts] +export = Foo; + +interface Foo { +} + +function Foo(array: T[]): Foo { + return undefined; +} + +namespace Foo { + export var x = "hello"; +} + + +//// [privacyCheckExportAssignmentOnExportedGenericInterface2.js] +"use strict"; +function Foo(array) { + return undefined; +} +(function (Foo) { + Foo.x = "hello"; +})(Foo || (Foo = {})); +module.exports = Foo; + + +//// [privacyCheckExportAssignmentOnExportedGenericInterface2.d.ts] +export = Foo; +interface Foo { +} +declare function Foo(array: T[]): Foo; +declare namespace Foo { + var x: string; +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.symbols b/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.symbols new file mode 100644 index 0000000000000..ad665c94ae16c --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.symbols @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts] //// + +=== privacyCheckExportAssignmentOnExportedGenericInterface2.ts === +export = Foo; +>Foo : Symbol(Foo, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 3, 1), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 0, 13), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 7, 1)) + +interface Foo { +>Foo : Symbol(Foo, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 3, 1), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 0, 13), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 7, 1)) +>T : Symbol(T, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 2, 14)) +} + +function Foo(array: T[]): Foo { +>Foo : Symbol(Foo, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 3, 1), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 0, 13), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 7, 1)) +>T : Symbol(T, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 5, 13)) +>array : Symbol(array, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 5, 16)) +>T : Symbol(T, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 5, 13)) +>Foo : Symbol(Foo, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 3, 1), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 0, 13), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 7, 1)) +>T : Symbol(T, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 5, 13)) + + return undefined; +>undefined : Symbol(undefined) +} + +namespace Foo { +>Foo : Symbol(Foo, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 3, 1), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 0, 13), Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 7, 1)) + + export var x = "hello"; +>x : Symbol(x, Decl(privacyCheckExportAssignmentOnExportedGenericInterface2.ts, 10, 14)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.types b/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.types new file mode 100644 index 0000000000000..b5d25529cde54 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.types @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts] //// + +=== privacyCheckExportAssignmentOnExportedGenericInterface2.ts === +export = Foo; +>Foo : Foo + +interface Foo { +} + +function Foo(array: T[]): Foo { +>Foo : typeof Foo +>array : T[] + + return undefined; +>undefined : undefined +} + +namespace Foo { +>Foo : typeof Foo + + export var x = "hello"; +>x : string +>"hello" : "hello" +} + diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.js b/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.js new file mode 100644 index 0000000000000..f19955f44ca06 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.js @@ -0,0 +1,37 @@ +//// [tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts] //// + +//// [privacyCheckOnTypeParameterReferenceInConstructorParameter.ts] +export class A{ + constructor(callback: (self: A) => void) { + var child = new B(this); + } +} + +export class B { + constructor(parent: T2) { } +} + + +//// [privacyCheckOnTypeParameterReferenceInConstructorParameter.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.B = exports.A = void 0; +class A { + constructor(callback) { + var child = new B(this); + } +} +exports.A = A; +class B { + constructor(parent) { } +} +exports.B = B; + + +//// [privacyCheckOnTypeParameterReferenceInConstructorParameter.d.ts] +export declare class A { + constructor(callback: (self: A) => void); +} +export declare class B { + constructor(parent: T2); +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.symbols b/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.symbols new file mode 100644 index 0000000000000..af16f431efc53 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.symbols @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts] //// + +=== privacyCheckOnTypeParameterReferenceInConstructorParameter.ts === +export class A{ +>A : Symbol(A, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 0)) +>T1 : Symbol(T1, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 15)) + + constructor(callback: (self: A) => void) { +>callback : Symbol(callback, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 1, 16)) +>self : Symbol(self, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 1, 27)) +>A : Symbol(A, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 0)) +>T1 : Symbol(T1, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 15)) + + var child = new B(this); +>child : Symbol(child, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 2, 11)) +>B : Symbol(B, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 4, 1)) +>this : Symbol(A, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 0)) + } +} + +export class B { +>B : Symbol(B, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 4, 1)) +>T2 : Symbol(T2, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 6, 15)) + + constructor(parent: T2) { } +>parent : Symbol(parent, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 7, 16)) +>T2 : Symbol(T2, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 6, 15)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.types b/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.types new file mode 100644 index 0000000000000..59a78e0d9f4ba --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.types @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts] //// + +=== privacyCheckOnTypeParameterReferenceInConstructorParameter.ts === +export class A{ +>A : A + + constructor(callback: (self: A) => void) { +>callback : (self: A) => void +>self : A + + var child = new B(this); +>child : B +>new B(this) : B +>B : typeof B +>this : this + } +} + +export class B { +>B : B + + constructor(parent: T2) { } +>parent : T2 +} + diff --git a/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).js b/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).js new file mode 100644 index 0000000000000..5c8ed5bfec7bf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).js @@ -0,0 +1,377 @@ +//// [tests/cases/compiler/privacyGetter.ts] //// + +//// [privacyGetter.ts] +export namespace m1 { + export class C1_public { + private f1() { + } + } + + class C2_private { + } + + export class C3_public { + private get p1_private() { + return new C1_public(); + } + + private set p1_private(m1_c3_p1_arg: C1_public) { + } + + private get p2_private() { + return new C1_public(); + } + + private set p2_private(m1_c3_p2_arg: C1_public) { + } + + private get p3_private() { + return new C2_private(); + } + + private set p3_private(m1_c3_p3_arg: C2_private) { + } + + public get p4_public(): C2_private { // error + return new C2_private(); //error + } + + public set p4_public(m1_c3_p4_arg: C2_private) { // error + } + } + + class C4_private { + private get p1_private() { + return new C1_public(); + } + + private set p1_private(m1_c3_p1_arg: C1_public) { + } + + private get p2_private() { + return new C1_public(); + } + + private set p2_private(m1_c3_p2_arg: C1_public) { + } + + private get p3_private() { + return new C2_private(); + } + + private set p3_private(m1_c3_p3_arg: C2_private) { + } + + public get p4_public(): C2_private { + return new C2_private(); + } + + public set p4_public(m1_c3_p4_arg: C2_private) { + } + } +} + +namespace m2 { + export class m2_C1_public { + private f1() { + } + } + + class m2_C2_private { + } + + export class m2_C3_public { + private get p1_private() { + return new m2_C1_public(); + } + + private set p1_private(m2_c3_p1_arg: m2_C1_public) { + } + + private get p2_private() { + return new m2_C1_public(); + } + + private set p2_private(m2_c3_p2_arg: m2_C1_public) { + } + + private get p3_private() { + return new m2_C2_private(); + } + + private set p3_private(m2_c3_p3_arg: m2_C2_private) { + } + + public get p4_public(): m2_C2_private { + return new m2_C2_private(); + } + + public set p4_public(m2_c3_p4_arg: m2_C2_private) { + } + } + + class m2_C4_private { + private get p1_private() { + return new m2_C1_public(); + } + + private set p1_private(m2_c3_p1_arg: m2_C1_public) { + } + + private get p2_private() { + return new m2_C1_public(); + } + + private set p2_private(m2_c3_p2_arg: m2_C1_public) { + } + + private get p3_private() { + return new m2_C2_private(); + } + + private set p3_private(m2_c3_p3_arg: m2_C2_private) { + } + + public get p4_public(): m2_C2_private { + return new m2_C2_private(); + } + + public set p4_public(m2_c3_p4_arg: m2_C2_private) { + } + } +} + +class C5_private { + private f() { + } +} + +export class C6_public { +} + +export class C7_public { + private get p1_private() { + return new C6_public(); + } + + private set p1_private(m1_c3_p1_arg: C6_public) { + } + + private get p2_private() { + return new C6_public(); + } + + private set p2_private(m1_c3_p2_arg: C6_public) { + } + + private get p3_private() { + return new C5_private(); + } + + private set p3_private(m1_c3_p3_arg: C5_private) { + } + + public get p4_public(): C5_private { // error + return new C5_private(); //error + } + + public set p4_public(m1_c3_p4_arg: C5_private) { // error + } +} + +class C8_private { + private get p1_private() { + return new C6_public(); + } + + private set p1_private(m1_c3_p1_arg: C6_public) { + } + + private get p2_private() { + return new C6_public(); + } + + private set p2_private(m1_c3_p2_arg: C6_public) { + } + + private get p3_private() { + return new C5_private(); + } + + private set p3_private(m1_c3_p3_arg: C5_private) { + } + + public get p4_public(): C5_private { + return new C5_private(); + } + + public set p4_public(m1_c3_p4_arg: C5_private) { + } +} + +//// [privacyGetter.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.C7_public = exports.C6_public = exports.m1 = void 0; +var m1; +(function (m1) { + class C1_public { + f1() { + } + } + m1.C1_public = C1_public; + class C2_private { + } + class C3_public { + get p1_private() { + return new C1_public(); + } + set p1_private(m1_c3_p1_arg) { + } + get p2_private() { + return new C1_public(); + } + set p2_private(m1_c3_p2_arg) { + } + get p3_private() { + return new C2_private(); + } + set p3_private(m1_c3_p3_arg) { + } + get p4_public() { + return new C2_private(); //error + } + set p4_public(m1_c3_p4_arg) { + } + } + m1.C3_public = C3_public; + class C4_private { + get p1_private() { + return new C1_public(); + } + set p1_private(m1_c3_p1_arg) { + } + get p2_private() { + return new C1_public(); + } + set p2_private(m1_c3_p2_arg) { + } + get p3_private() { + return new C2_private(); + } + set p3_private(m1_c3_p3_arg) { + } + get p4_public() { + return new C2_private(); + } + set p4_public(m1_c3_p4_arg) { + } + } +})(m1 || (exports.m1 = m1 = {})); +var m2; +(function (m2) { + class m2_C1_public { + f1() { + } + } + m2.m2_C1_public = m2_C1_public; + class m2_C2_private { + } + class m2_C3_public { + get p1_private() { + return new m2_C1_public(); + } + set p1_private(m2_c3_p1_arg) { + } + get p2_private() { + return new m2_C1_public(); + } + set p2_private(m2_c3_p2_arg) { + } + get p3_private() { + return new m2_C2_private(); + } + set p3_private(m2_c3_p3_arg) { + } + get p4_public() { + return new m2_C2_private(); + } + set p4_public(m2_c3_p4_arg) { + } + } + m2.m2_C3_public = m2_C3_public; + class m2_C4_private { + get p1_private() { + return new m2_C1_public(); + } + set p1_private(m2_c3_p1_arg) { + } + get p2_private() { + return new m2_C1_public(); + } + set p2_private(m2_c3_p2_arg) { + } + get p3_private() { + return new m2_C2_private(); + } + set p3_private(m2_c3_p3_arg) { + } + get p4_public() { + return new m2_C2_private(); + } + set p4_public(m2_c3_p4_arg) { + } + } +})(m2 || (m2 = {})); +class C5_private { + f() { + } +} +class C6_public { +} +exports.C6_public = C6_public; +class C7_public { + get p1_private() { + return new C6_public(); + } + set p1_private(m1_c3_p1_arg) { + } + get p2_private() { + return new C6_public(); + } + set p2_private(m1_c3_p2_arg) { + } + get p3_private() { + return new C5_private(); + } + set p3_private(m1_c3_p3_arg) { + } + get p4_public() { + return new C5_private(); //error + } + set p4_public(m1_c3_p4_arg) { + } +} +exports.C7_public = C7_public; +class C8_private { + get p1_private() { + return new C6_public(); + } + set p1_private(m1_c3_p1_arg) { + } + get p2_private() { + return new C6_public(); + } + set p2_private(m1_c3_p2_arg) { + } + get p3_private() { + return new C5_private(); + } + set p3_private(m1_c3_p3_arg) { + } + get p4_public() { + return new C5_private(); + } + set p4_public(m1_c3_p4_arg) { + } +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).symbols new file mode 100644 index 0000000000000..b66717922bf1e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).symbols @@ -0,0 +1,388 @@ +//// [tests/cases/compiler/privacyGetter.ts] //// + +=== privacyGetter.ts === +export namespace m1 { +>m1 : Symbol(m1, Decl(privacyGetter.ts, 0, 0)) + + export class C1_public { +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + + private f1() { +>f1 : Symbol(C1_public.f1, Decl(privacyGetter.ts, 1, 28)) + } + } + + class C2_private { +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + + export class C3_public { +>C3_public : Symbol(C3_public, Decl(privacyGetter.ts, 7, 5)) + + private get p1_private() { +>p1_private : Symbol(C3_public.p1_private, Decl(privacyGetter.ts, 9, 28), Decl(privacyGetter.ts, 12, 9)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + } + + private set p1_private(m1_c3_p1_arg: C1_public) { +>p1_private : Symbol(C3_public.p1_private, Decl(privacyGetter.ts, 9, 28), Decl(privacyGetter.ts, 12, 9)) +>m1_c3_p1_arg : Symbol(m1_c3_p1_arg, Decl(privacyGetter.ts, 14, 31)) +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + } + + private get p2_private() { +>p2_private : Symbol(C3_public.p2_private, Decl(privacyGetter.ts, 15, 9), Decl(privacyGetter.ts, 19, 9)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + } + + private set p2_private(m1_c3_p2_arg: C1_public) { +>p2_private : Symbol(C3_public.p2_private, Decl(privacyGetter.ts, 15, 9), Decl(privacyGetter.ts, 19, 9)) +>m1_c3_p2_arg : Symbol(m1_c3_p2_arg, Decl(privacyGetter.ts, 21, 31)) +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + } + + private get p3_private() { +>p3_private : Symbol(C3_public.p3_private, Decl(privacyGetter.ts, 22, 9), Decl(privacyGetter.ts, 26, 9)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + + private set p3_private(m1_c3_p3_arg: C2_private) { +>p3_private : Symbol(C3_public.p3_private, Decl(privacyGetter.ts, 22, 9), Decl(privacyGetter.ts, 26, 9)) +>m1_c3_p3_arg : Symbol(m1_c3_p3_arg, Decl(privacyGetter.ts, 28, 31)) +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + + public get p4_public(): C2_private { // error +>p4_public : Symbol(C3_public.p4_public, Decl(privacyGetter.ts, 29, 9), Decl(privacyGetter.ts, 33, 9)) +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + + return new C2_private(); //error +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + + public set p4_public(m1_c3_p4_arg: C2_private) { // error +>p4_public : Symbol(C3_public.p4_public, Decl(privacyGetter.ts, 29, 9), Decl(privacyGetter.ts, 33, 9)) +>m1_c3_p4_arg : Symbol(m1_c3_p4_arg, Decl(privacyGetter.ts, 35, 29)) +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + } + + class C4_private { +>C4_private : Symbol(C4_private, Decl(privacyGetter.ts, 37, 5)) + + private get p1_private() { +>p1_private : Symbol(C4_private.p1_private, Decl(privacyGetter.ts, 39, 22), Decl(privacyGetter.ts, 42, 9)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + } + + private set p1_private(m1_c3_p1_arg: C1_public) { +>p1_private : Symbol(C4_private.p1_private, Decl(privacyGetter.ts, 39, 22), Decl(privacyGetter.ts, 42, 9)) +>m1_c3_p1_arg : Symbol(m1_c3_p1_arg, Decl(privacyGetter.ts, 44, 31)) +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + } + + private get p2_private() { +>p2_private : Symbol(C4_private.p2_private, Decl(privacyGetter.ts, 45, 9), Decl(privacyGetter.ts, 49, 9)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + } + + private set p2_private(m1_c3_p2_arg: C1_public) { +>p2_private : Symbol(C4_private.p2_private, Decl(privacyGetter.ts, 45, 9), Decl(privacyGetter.ts, 49, 9)) +>m1_c3_p2_arg : Symbol(m1_c3_p2_arg, Decl(privacyGetter.ts, 51, 31)) +>C1_public : Symbol(C1_public, Decl(privacyGetter.ts, 0, 21)) + } + + private get p3_private() { +>p3_private : Symbol(C4_private.p3_private, Decl(privacyGetter.ts, 52, 9), Decl(privacyGetter.ts, 56, 9)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + + private set p3_private(m1_c3_p3_arg: C2_private) { +>p3_private : Symbol(C4_private.p3_private, Decl(privacyGetter.ts, 52, 9), Decl(privacyGetter.ts, 56, 9)) +>m1_c3_p3_arg : Symbol(m1_c3_p3_arg, Decl(privacyGetter.ts, 58, 31)) +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + + public get p4_public(): C2_private { +>p4_public : Symbol(C4_private.p4_public, Decl(privacyGetter.ts, 59, 9), Decl(privacyGetter.ts, 63, 9)) +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + + public set p4_public(m1_c3_p4_arg: C2_private) { +>p4_public : Symbol(C4_private.p4_public, Decl(privacyGetter.ts, 59, 9), Decl(privacyGetter.ts, 63, 9)) +>m1_c3_p4_arg : Symbol(m1_c3_p4_arg, Decl(privacyGetter.ts, 65, 29)) +>C2_private : Symbol(C2_private, Decl(privacyGetter.ts, 4, 5)) + } + } +} + +namespace m2 { +>m2 : Symbol(m2, Decl(privacyGetter.ts, 68, 1)) + + export class m2_C1_public { +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + + private f1() { +>f1 : Symbol(m2_C1_public.f1, Decl(privacyGetter.ts, 71, 31)) + } + } + + class m2_C2_private { +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + + export class m2_C3_public { +>m2_C3_public : Symbol(m2_C3_public, Decl(privacyGetter.ts, 77, 5)) + + private get p1_private() { +>p1_private : Symbol(m2_C3_public.p1_private, Decl(privacyGetter.ts, 79, 31), Decl(privacyGetter.ts, 82, 9)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + } + + private set p1_private(m2_c3_p1_arg: m2_C1_public) { +>p1_private : Symbol(m2_C3_public.p1_private, Decl(privacyGetter.ts, 79, 31), Decl(privacyGetter.ts, 82, 9)) +>m2_c3_p1_arg : Symbol(m2_c3_p1_arg, Decl(privacyGetter.ts, 84, 31)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + } + + private get p2_private() { +>p2_private : Symbol(m2_C3_public.p2_private, Decl(privacyGetter.ts, 85, 9), Decl(privacyGetter.ts, 89, 9)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + } + + private set p2_private(m2_c3_p2_arg: m2_C1_public) { +>p2_private : Symbol(m2_C3_public.p2_private, Decl(privacyGetter.ts, 85, 9), Decl(privacyGetter.ts, 89, 9)) +>m2_c3_p2_arg : Symbol(m2_c3_p2_arg, Decl(privacyGetter.ts, 91, 31)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + } + + private get p3_private() { +>p3_private : Symbol(m2_C3_public.p3_private, Decl(privacyGetter.ts, 92, 9), Decl(privacyGetter.ts, 96, 9)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + + private set p3_private(m2_c3_p3_arg: m2_C2_private) { +>p3_private : Symbol(m2_C3_public.p3_private, Decl(privacyGetter.ts, 92, 9), Decl(privacyGetter.ts, 96, 9)) +>m2_c3_p3_arg : Symbol(m2_c3_p3_arg, Decl(privacyGetter.ts, 98, 31)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + + public get p4_public(): m2_C2_private { +>p4_public : Symbol(m2_C3_public.p4_public, Decl(privacyGetter.ts, 99, 9), Decl(privacyGetter.ts, 103, 9)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + + public set p4_public(m2_c3_p4_arg: m2_C2_private) { +>p4_public : Symbol(m2_C3_public.p4_public, Decl(privacyGetter.ts, 99, 9), Decl(privacyGetter.ts, 103, 9)) +>m2_c3_p4_arg : Symbol(m2_c3_p4_arg, Decl(privacyGetter.ts, 105, 29)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + } + + class m2_C4_private { +>m2_C4_private : Symbol(m2_C4_private, Decl(privacyGetter.ts, 107, 5)) + + private get p1_private() { +>p1_private : Symbol(m2_C4_private.p1_private, Decl(privacyGetter.ts, 109, 25), Decl(privacyGetter.ts, 112, 9)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + } + + private set p1_private(m2_c3_p1_arg: m2_C1_public) { +>p1_private : Symbol(m2_C4_private.p1_private, Decl(privacyGetter.ts, 109, 25), Decl(privacyGetter.ts, 112, 9)) +>m2_c3_p1_arg : Symbol(m2_c3_p1_arg, Decl(privacyGetter.ts, 114, 31)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + } + + private get p2_private() { +>p2_private : Symbol(m2_C4_private.p2_private, Decl(privacyGetter.ts, 115, 9), Decl(privacyGetter.ts, 119, 9)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + } + + private set p2_private(m2_c3_p2_arg: m2_C1_public) { +>p2_private : Symbol(m2_C4_private.p2_private, Decl(privacyGetter.ts, 115, 9), Decl(privacyGetter.ts, 119, 9)) +>m2_c3_p2_arg : Symbol(m2_c3_p2_arg, Decl(privacyGetter.ts, 121, 31)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGetter.ts, 70, 14)) + } + + private get p3_private() { +>p3_private : Symbol(m2_C4_private.p3_private, Decl(privacyGetter.ts, 122, 9), Decl(privacyGetter.ts, 126, 9)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + + private set p3_private(m2_c3_p3_arg: m2_C2_private) { +>p3_private : Symbol(m2_C4_private.p3_private, Decl(privacyGetter.ts, 122, 9), Decl(privacyGetter.ts, 126, 9)) +>m2_c3_p3_arg : Symbol(m2_c3_p3_arg, Decl(privacyGetter.ts, 128, 31)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + + public get p4_public(): m2_C2_private { +>p4_public : Symbol(m2_C4_private.p4_public, Decl(privacyGetter.ts, 129, 9), Decl(privacyGetter.ts, 133, 9)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + + public set p4_public(m2_c3_p4_arg: m2_C2_private) { +>p4_public : Symbol(m2_C4_private.p4_public, Decl(privacyGetter.ts, 129, 9), Decl(privacyGetter.ts, 133, 9)) +>m2_c3_p4_arg : Symbol(m2_c3_p4_arg, Decl(privacyGetter.ts, 135, 29)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGetter.ts, 74, 5)) + } + } +} + +class C5_private { +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + + private f() { +>f : Symbol(C5_private.f, Decl(privacyGetter.ts, 140, 18)) + } +} + +export class C6_public { +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) +} + +export class C7_public { +>C7_public : Symbol(C7_public, Decl(privacyGetter.ts, 146, 1)) + + private get p1_private() { +>p1_private : Symbol(C7_public.p1_private, Decl(privacyGetter.ts, 148, 24), Decl(privacyGetter.ts, 151, 5)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) + } + + private set p1_private(m1_c3_p1_arg: C6_public) { +>p1_private : Symbol(C7_public.p1_private, Decl(privacyGetter.ts, 148, 24), Decl(privacyGetter.ts, 151, 5)) +>m1_c3_p1_arg : Symbol(m1_c3_p1_arg, Decl(privacyGetter.ts, 153, 27)) +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) + } + + private get p2_private() { +>p2_private : Symbol(C7_public.p2_private, Decl(privacyGetter.ts, 154, 5), Decl(privacyGetter.ts, 158, 5)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) + } + + private set p2_private(m1_c3_p2_arg: C6_public) { +>p2_private : Symbol(C7_public.p2_private, Decl(privacyGetter.ts, 154, 5), Decl(privacyGetter.ts, 158, 5)) +>m1_c3_p2_arg : Symbol(m1_c3_p2_arg, Decl(privacyGetter.ts, 160, 27)) +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) + } + + private get p3_private() { +>p3_private : Symbol(C7_public.p3_private, Decl(privacyGetter.ts, 161, 5), Decl(privacyGetter.ts, 165, 5)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + } + + private set p3_private(m1_c3_p3_arg: C5_private) { +>p3_private : Symbol(C7_public.p3_private, Decl(privacyGetter.ts, 161, 5), Decl(privacyGetter.ts, 165, 5)) +>m1_c3_p3_arg : Symbol(m1_c3_p3_arg, Decl(privacyGetter.ts, 167, 27)) +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + } + + public get p4_public(): C5_private { // error +>p4_public : Symbol(C7_public.p4_public, Decl(privacyGetter.ts, 168, 5), Decl(privacyGetter.ts, 172, 5)) +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + + return new C5_private(); //error +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + } + + public set p4_public(m1_c3_p4_arg: C5_private) { // error +>p4_public : Symbol(C7_public.p4_public, Decl(privacyGetter.ts, 168, 5), Decl(privacyGetter.ts, 172, 5)) +>m1_c3_p4_arg : Symbol(m1_c3_p4_arg, Decl(privacyGetter.ts, 174, 25)) +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + } +} + +class C8_private { +>C8_private : Symbol(C8_private, Decl(privacyGetter.ts, 176, 1)) + + private get p1_private() { +>p1_private : Symbol(C8_private.p1_private, Decl(privacyGetter.ts, 178, 18), Decl(privacyGetter.ts, 181, 5)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) + } + + private set p1_private(m1_c3_p1_arg: C6_public) { +>p1_private : Symbol(C8_private.p1_private, Decl(privacyGetter.ts, 178, 18), Decl(privacyGetter.ts, 181, 5)) +>m1_c3_p1_arg : Symbol(m1_c3_p1_arg, Decl(privacyGetter.ts, 183, 27)) +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) + } + + private get p2_private() { +>p2_private : Symbol(C8_private.p2_private, Decl(privacyGetter.ts, 184, 5), Decl(privacyGetter.ts, 188, 5)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) + } + + private set p2_private(m1_c3_p2_arg: C6_public) { +>p2_private : Symbol(C8_private.p2_private, Decl(privacyGetter.ts, 184, 5), Decl(privacyGetter.ts, 188, 5)) +>m1_c3_p2_arg : Symbol(m1_c3_p2_arg, Decl(privacyGetter.ts, 190, 27)) +>C6_public : Symbol(C6_public, Decl(privacyGetter.ts, 143, 1)) + } + + private get p3_private() { +>p3_private : Symbol(C8_private.p3_private, Decl(privacyGetter.ts, 191, 5), Decl(privacyGetter.ts, 195, 5)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + } + + private set p3_private(m1_c3_p3_arg: C5_private) { +>p3_private : Symbol(C8_private.p3_private, Decl(privacyGetter.ts, 191, 5), Decl(privacyGetter.ts, 195, 5)) +>m1_c3_p3_arg : Symbol(m1_c3_p3_arg, Decl(privacyGetter.ts, 197, 27)) +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + } + + public get p4_public(): C5_private { +>p4_public : Symbol(C8_private.p4_public, Decl(privacyGetter.ts, 198, 5), Decl(privacyGetter.ts, 202, 5)) +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + } + + public set p4_public(m1_c3_p4_arg: C5_private) { +>p4_public : Symbol(C8_private.p4_public, Decl(privacyGetter.ts, 198, 5), Decl(privacyGetter.ts, 202, 5)) +>m1_c3_p4_arg : Symbol(m1_c3_p4_arg, Decl(privacyGetter.ts, 204, 25)) +>C5_private : Symbol(C5_private, Decl(privacyGetter.ts, 138, 1)) + } +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).types b/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).types new file mode 100644 index 0000000000000..a279522c6aeed --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyGetter(target=es2015).types @@ -0,0 +1,382 @@ +//// [tests/cases/compiler/privacyGetter.ts] //// + +=== privacyGetter.ts === +export namespace m1 { +>m1 : typeof m1 + + export class C1_public { +>C1_public : C1_public + + private f1() { +>f1 : () => void + } + } + + class C2_private { +>C2_private : C2_private + } + + export class C3_public { +>C3_public : C3_public + + private get p1_private() { +>p1_private : C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + private set p1_private(m1_c3_p1_arg: C1_public) { +>p1_private : C1_public +>m1_c3_p1_arg : C1_public + } + + private get p2_private() { +>p2_private : C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + private set p2_private(m1_c3_p2_arg: C1_public) { +>p2_private : C1_public +>m1_c3_p2_arg : C1_public + } + + private get p3_private() { +>p3_private : C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + private set p3_private(m1_c3_p3_arg: C2_private) { +>p3_private : C2_private +>m1_c3_p3_arg : C2_private + } + + public get p4_public(): C2_private { // error +>p4_public : C2_private + + return new C2_private(); //error +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + public set p4_public(m1_c3_p4_arg: C2_private) { // error +>p4_public : C2_private +>m1_c3_p4_arg : C2_private + } + } + + class C4_private { +>C4_private : C4_private + + private get p1_private() { +>p1_private : C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + private set p1_private(m1_c3_p1_arg: C1_public) { +>p1_private : C1_public +>m1_c3_p1_arg : C1_public + } + + private get p2_private() { +>p2_private : C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + private set p2_private(m1_c3_p2_arg: C1_public) { +>p2_private : C1_public +>m1_c3_p2_arg : C1_public + } + + private get p3_private() { +>p3_private : C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + private set p3_private(m1_c3_p3_arg: C2_private) { +>p3_private : C2_private +>m1_c3_p3_arg : C2_private + } + + public get p4_public(): C2_private { +>p4_public : C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + public set p4_public(m1_c3_p4_arg: C2_private) { +>p4_public : C2_private +>m1_c3_p4_arg : C2_private + } + } +} + +namespace m2 { +>m2 : typeof m2 + + export class m2_C1_public { +>m2_C1_public : m2_C1_public + + private f1() { +>f1 : () => void + } + } + + class m2_C2_private { +>m2_C2_private : m2_C2_private + } + + export class m2_C3_public { +>m2_C3_public : m2_C3_public + + private get p1_private() { +>p1_private : m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + private set p1_private(m2_c3_p1_arg: m2_C1_public) { +>p1_private : m2_C1_public +>m2_c3_p1_arg : m2_C1_public + } + + private get p2_private() { +>p2_private : m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + private set p2_private(m2_c3_p2_arg: m2_C1_public) { +>p2_private : m2_C1_public +>m2_c3_p2_arg : m2_C1_public + } + + private get p3_private() { +>p3_private : m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + private set p3_private(m2_c3_p3_arg: m2_C2_private) { +>p3_private : m2_C2_private +>m2_c3_p3_arg : m2_C2_private + } + + public get p4_public(): m2_C2_private { +>p4_public : m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + public set p4_public(m2_c3_p4_arg: m2_C2_private) { +>p4_public : m2_C2_private +>m2_c3_p4_arg : m2_C2_private + } + } + + class m2_C4_private { +>m2_C4_private : m2_C4_private + + private get p1_private() { +>p1_private : m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + private set p1_private(m2_c3_p1_arg: m2_C1_public) { +>p1_private : m2_C1_public +>m2_c3_p1_arg : m2_C1_public + } + + private get p2_private() { +>p2_private : m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + private set p2_private(m2_c3_p2_arg: m2_C1_public) { +>p2_private : m2_C1_public +>m2_c3_p2_arg : m2_C1_public + } + + private get p3_private() { +>p3_private : m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + private set p3_private(m2_c3_p3_arg: m2_C2_private) { +>p3_private : m2_C2_private +>m2_c3_p3_arg : m2_C2_private + } + + public get p4_public(): m2_C2_private { +>p4_public : m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + public set p4_public(m2_c3_p4_arg: m2_C2_private) { +>p4_public : m2_C2_private +>m2_c3_p4_arg : m2_C2_private + } + } +} + +class C5_private { +>C5_private : C5_private + + private f() { +>f : () => void + } +} + +export class C6_public { +>C6_public : C6_public +} + +export class C7_public { +>C7_public : C7_public + + private get p1_private() { +>p1_private : C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + private set p1_private(m1_c3_p1_arg: C6_public) { +>p1_private : C6_public +>m1_c3_p1_arg : C6_public + } + + private get p2_private() { +>p2_private : C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + private set p2_private(m1_c3_p2_arg: C6_public) { +>p2_private : C6_public +>m1_c3_p2_arg : C6_public + } + + private get p3_private() { +>p3_private : C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + private set p3_private(m1_c3_p3_arg: C5_private) { +>p3_private : C5_private +>m1_c3_p3_arg : C5_private + } + + public get p4_public(): C5_private { // error +>p4_public : C5_private + + return new C5_private(); //error +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + public set p4_public(m1_c3_p4_arg: C5_private) { // error +>p4_public : C5_private +>m1_c3_p4_arg : C5_private + } +} + +class C8_private { +>C8_private : C8_private + + private get p1_private() { +>p1_private : C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + private set p1_private(m1_c3_p1_arg: C6_public) { +>p1_private : C6_public +>m1_c3_p1_arg : C6_public + } + + private get p2_private() { +>p2_private : C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + private set p2_private(m1_c3_p2_arg: C6_public) { +>p2_private : C6_public +>m1_c3_p2_arg : C6_public + } + + private get p3_private() { +>p3_private : C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + private set p3_private(m1_c3_p3_arg: C5_private) { +>p3_private : C5_private +>m1_c3_p3_arg : C5_private + } + + public get p4_public(): C5_private { +>p4_public : C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + public set p4_public(m1_c3_p4_arg: C5_private) { +>p4_public : C5_private +>m1_c3_p4_arg : C5_private + } +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyGloFunc.js b/tsc/testdata/baselines/reference/compiler/privacyGloFunc.js new file mode 100644 index 0000000000000..9670fdddec1fb --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyGloFunc.js @@ -0,0 +1,952 @@ +//// [tests/cases/compiler/privacyGloFunc.ts] //// + +//// [privacyGloFunc.ts] +export namespace m1 { + export class C1_public { + private f1() { + } + } + + class C2_private { + } + + export class C3_public { + constructor (m1_c3_c1: C1_public); + constructor (m1_c3_c2: C2_private); //error + constructor (m1_c3_c1_2: any) { + } + + private f1_private(m1_c3_f1_arg: C1_public) { + } + + public f2_public(m1_c3_f2_arg: C1_public) { + } + + private f3_private(m1_c3_f3_arg: C2_private) { + } + + public f4_public(m1_c3_f4_arg: C2_private) { // error + } + + private f5_private() { + return new C1_public(); + } + + public f6_public() { + return new C1_public(); + } + + private f7_private() { + return new C2_private(); + } + + public f8_public() { + return new C2_private(); // error + } + + private f9_private(): C1_public { + return new C1_public(); + } + + public f10_public(): C1_public { + return new C1_public(); + } + + private f11_private(): C2_private { + return new C2_private(); + } + + public f12_public(): C2_private { // error + return new C2_private(); //error + } + } + + class C4_private { + constructor (m1_c4_c1: C1_public); + constructor (m1_c4_c2: C2_private); + constructor (m1_c4_c1_2: any) { + } + private f1_private(m1_c4_f1_arg: C1_public) { + } + + public f2_public(m1_c4_f2_arg: C1_public) { + } + + private f3_private(m1_c4_f3_arg: C2_private) { + } + + public f4_public(m1_c4_f4_arg: C2_private) { + } + + + private f5_private() { + return new C1_public(); + } + + public f6_public() { + return new C1_public(); + } + + private f7_private() { + return new C2_private(); + } + + public f8_public() { + return new C2_private(); + } + + + private f9_private(): C1_public { + return new C1_public(); + } + + public f10_public(): C1_public { + return new C1_public(); + } + + private f11_private(): C2_private { + return new C2_private(); + } + + public f12_public(): C2_private { + return new C2_private(); + } + } + + export class C5_public { + constructor (m1_c5_c: C1_public) { + } + } + + class C6_private { + constructor (m1_c6_c: C1_public) { + } + } + export class C7_public { + constructor (m1_c7_c: C2_private) { // error + } + } + + class C8_private { + constructor (m1_c8_c: C2_private) { + } + } + + function f1_public(m1_f1_arg: C1_public) { + } + + export function f2_public(m1_f2_arg: C1_public) { + } + + function f3_public(m1_f3_arg: C2_private) { + } + + export function f4_public(m1_f4_arg: C2_private) { // error + } + + + function f5_public() { + return new C1_public(); + } + + export function f6_public() { + return new C1_public(); + } + + function f7_public() { + return new C2_private(); + } + + export function f8_public() { + return new C2_private(); // error + } + + + function f9_private(): C1_public { + return new C1_public(); + } + + export function f10_public(): C1_public { + return new C1_public(); + } + + function f11_private(): C2_private { + return new C2_private(); + } + + export function f12_public(): C2_private { // error + return new C2_private(); //error + } +} + +namespace m2 { + export class m2_C1_public { + private f() { + } + } + + class m2_C2_private { + } + + export class m2_C3_public { + constructor (m2_c3_c1: m2_C1_public); + constructor (m2_c3_c2: m2_C2_private); + constructor (m2_c3_c1_2: any) { + } + + private f1_private(m2_c3_f1_arg: m2_C1_public) { + } + + public f2_public(m2_c3_f2_arg: m2_C1_public) { + } + + private f3_private(m2_c3_f3_arg: m2_C2_private) { + } + + public f4_public(m2_c3_f4_arg: m2_C2_private) { + } + + private f5_private() { + return new m2_C1_public(); + } + + public f6_public() { + return new m2_C1_public(); + } + + private f7_private() { + return new m2_C2_private(); + } + + public f8_public() { + return new m2_C2_private(); + } + + private f9_private(): m2_C1_public { + return new m2_C1_public(); + } + + public f10_public(): m2_C1_public { + return new m2_C1_public(); + } + + private f11_private(): m2_C2_private { + return new m2_C2_private(); + } + + public f12_public(): m2_C2_private { + return new m2_C2_private(); + } + } + + class m2_C4_private { + constructor (m2_c4_c1: m2_C1_public); + constructor (m2_c4_c2: m2_C2_private); + constructor (m2_c4_c1_2: any) { + } + + private f1_private(m2_c4_f1_arg: m2_C1_public) { + } + + public f2_public(m2_c4_f2_arg: m2_C1_public) { + } + + private f3_private(m2_c4_f3_arg: m2_C2_private) { + } + + public f4_public(m2_c4_f4_arg: m2_C2_private) { + } + + + private f5_private() { + return new m2_C1_public(); + } + + public f6_public() { + return new m2_C1_public(); + } + + private f7_private() { + return new m2_C2_private(); + } + + public f8_public() { + return new m2_C2_private(); + } + + + private f9_private(): m2_C1_public { + return new m2_C1_public(); + } + + public f10_public(): m2_C1_public { + return new m2_C1_public(); + } + + private f11_private(): m2_C2_private { + return new m2_C2_private(); + } + + public f12_public(): m2_C2_private { + return new m2_C2_private(); + } + } + + export class m2_C5_public { + constructor (m2_c5_c: m2_C1_public) { + } + } + + class m2_C6_private { + constructor (m2_c6_c: m2_C1_public) { + } + } + export class m2_C7_public { + constructor (m2_c7_c: m2_C2_private) { + } + } + + class m2_C8_private { + constructor (m2_c8_c: m2_C2_private) { + } + } + + function f1_public(m2_f1_arg: m2_C1_public) { + } + + export function f2_public(m2_f2_arg: m2_C1_public) { + } + + function f3_public(m2_f3_arg: m2_C2_private) { + } + + export function f4_public(m2_f4_arg: m2_C2_private) { + } + + + function f5_public() { + return new m2_C1_public(); + } + + export function f6_public() { + return new m2_C1_public(); + } + + function f7_public() { + return new m2_C2_private(); + } + + export function f8_public() { + return new m2_C2_private(); + } + + + function f9_private(): m2_C1_public { + return new m2_C1_public(); + } + + export function f10_public(): m2_C1_public { + return new m2_C1_public(); + } + + function f11_private(): m2_C2_private { + return new m2_C2_private(); + } + + export function f12_public(): m2_C2_private { + return new m2_C2_private(); + } +} + +class C5_private { + private f() { + } +} + +export class C6_public { +} + +export class C7_public { + constructor (c7_c1: C5_private); // error + constructor (c7_c2: C6_public); + constructor (c7_c1_2: any) { + } + private f1_private(c7_f1_arg: C6_public) { + } + + public f2_public(c7_f2_arg: C6_public) { + } + + private f3_private(c7_f3_arg: C5_private) { + } + + public f4_public(c7_f4_arg: C5_private) { //error + } + + private f5_private() { + return new C6_public(); + } + + public f6_public() { + return new C6_public(); + } + + private f7_private() { + return new C5_private(); + } + + public f8_public() { + return new C5_private(); //error + } + + private f9_private(): C6_public { + return new C6_public(); + } + + public f10_public(): C6_public { + return new C6_public(); + } + + private f11_private(): C5_private { + return new C5_private(); + } + + public f12_public(): C5_private { //error + return new C5_private(); //error + } +} + +class C8_private { + constructor (c8_c1: C5_private); + constructor (c8_c2: C6_public); + constructor (c8_c1_2: any) { + } + + private f1_private(c8_f1_arg: C6_public) { + } + + public f2_public(c8_f2_arg: C6_public) { + } + + private f3_private(c8_f3_arg: C5_private) { + } + + public f4_public(c8_f4_arg: C5_private) { + } + + private f5_private() { + return new C6_public(); + } + + public f6_public() { + return new C6_public(); + } + + private f7_private() { + return new C5_private(); + } + + public f8_public() { + return new C5_private(); + } + + private f9_private(): C6_public { + return new C6_public(); + } + + public f10_public(): C6_public { + return new C6_public(); + } + + private f11_private(): C5_private { + return new C5_private(); + } + + public f12_public(): C5_private { + return new C5_private(); + } +} + + +export class C9_public { + constructor (c9_c: C6_public) { + } +} + +class C10_private { + constructor (c10_c: C6_public) { + } +} +export class C11_public { + constructor (c11_c: C5_private) { // error + } +} + +class C12_private { + constructor (c12_c: C5_private) { + } +} + +function f1_private(f1_arg: C5_private) { +} + +export function f2_public(f2_arg: C5_private) { // error +} + +function f3_private(f3_arg: C6_public) { +} + +export function f4_public(f4_arg: C6_public) { +} + +function f5_private() { + return new C6_public(); +} + +export function f6_public() { + return new C6_public(); +} + +function f7_private() { + return new C5_private(); +} + +export function f8_public() { + return new C5_private(); //error +} + +function f9_private(): C6_public { + return new C6_public(); +} + +export function f10_public(): C6_public { + return new C6_public(); +} + +function f11_private(): C5_private { + return new C5_private(); +} + +export function f12_public(): C5_private { //error + return new C5_private(); //error +} + + +//// [privacyGloFunc.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.C11_public = exports.C9_public = exports.C7_public = exports.C6_public = exports.m1 = void 0; +exports.f2_public = f2_public; +exports.f4_public = f4_public; +exports.f6_public = f6_public; +exports.f8_public = f8_public; +exports.f10_public = f10_public; +exports.f12_public = f12_public; +var m1; +(function (m1) { + class C1_public { + f1() { + } + } + m1.C1_public = C1_public; + class C2_private { + } + class C3_public { + constructor(m1_c3_c1_2) { + } + f1_private(m1_c3_f1_arg) { + } + f2_public(m1_c3_f2_arg) { + } + f3_private(m1_c3_f3_arg) { + } + f4_public(m1_c3_f4_arg) { + } + f5_private() { + return new C1_public(); + } + f6_public() { + return new C1_public(); + } + f7_private() { + return new C2_private(); + } + f8_public() { + return new C2_private(); // error + } + f9_private() { + return new C1_public(); + } + f10_public() { + return new C1_public(); + } + f11_private() { + return new C2_private(); + } + f12_public() { + return new C2_private(); //error + } + } + m1.C3_public = C3_public; + class C4_private { + constructor(m1_c4_c1_2) { + } + f1_private(m1_c4_f1_arg) { + } + f2_public(m1_c4_f2_arg) { + } + f3_private(m1_c4_f3_arg) { + } + f4_public(m1_c4_f4_arg) { + } + f5_private() { + return new C1_public(); + } + f6_public() { + return new C1_public(); + } + f7_private() { + return new C2_private(); + } + f8_public() { + return new C2_private(); + } + f9_private() { + return new C1_public(); + } + f10_public() { + return new C1_public(); + } + f11_private() { + return new C2_private(); + } + f12_public() { + return new C2_private(); + } + } + class C5_public { + constructor(m1_c5_c) { + } + } + m1.C5_public = C5_public; + class C6_private { + constructor(m1_c6_c) { + } + } + class C7_public { + constructor(m1_c7_c) { + } + } + m1.C7_public = C7_public; + class C8_private { + constructor(m1_c8_c) { + } + } + function f1_public(m1_f1_arg) { + } + function f2_public(m1_f2_arg) { + } + m1.f2_public = f2_public; + function f3_public(m1_f3_arg) { + } + function f4_public(m1_f4_arg) { + } + m1.f4_public = f4_public; + function f5_public() { + return new C1_public(); + } + function f6_public() { + return new C1_public(); + } + m1.f6_public = f6_public; + function f7_public() { + return new C2_private(); + } + function f8_public() { + return new C2_private(); // error + } + m1.f8_public = f8_public; + function f9_private() { + return new C1_public(); + } + function f10_public() { + return new C1_public(); + } + m1.f10_public = f10_public; + function f11_private() { + return new C2_private(); + } + function f12_public() { + return new C2_private(); //error + } + m1.f12_public = f12_public; +})(m1 || (exports.m1 = m1 = {})); +var m2; +(function (m2) { + class m2_C1_public { + f() { + } + } + m2.m2_C1_public = m2_C1_public; + class m2_C2_private { + } + class m2_C3_public { + constructor(m2_c3_c1_2) { + } + f1_private(m2_c3_f1_arg) { + } + f2_public(m2_c3_f2_arg) { + } + f3_private(m2_c3_f3_arg) { + } + f4_public(m2_c3_f4_arg) { + } + f5_private() { + return new m2_C1_public(); + } + f6_public() { + return new m2_C1_public(); + } + f7_private() { + return new m2_C2_private(); + } + f8_public() { + return new m2_C2_private(); + } + f9_private() { + return new m2_C1_public(); + } + f10_public() { + return new m2_C1_public(); + } + f11_private() { + return new m2_C2_private(); + } + f12_public() { + return new m2_C2_private(); + } + } + m2.m2_C3_public = m2_C3_public; + class m2_C4_private { + constructor(m2_c4_c1_2) { + } + f1_private(m2_c4_f1_arg) { + } + f2_public(m2_c4_f2_arg) { + } + f3_private(m2_c4_f3_arg) { + } + f4_public(m2_c4_f4_arg) { + } + f5_private() { + return new m2_C1_public(); + } + f6_public() { + return new m2_C1_public(); + } + f7_private() { + return new m2_C2_private(); + } + f8_public() { + return new m2_C2_private(); + } + f9_private() { + return new m2_C1_public(); + } + f10_public() { + return new m2_C1_public(); + } + f11_private() { + return new m2_C2_private(); + } + f12_public() { + return new m2_C2_private(); + } + } + class m2_C5_public { + constructor(m2_c5_c) { + } + } + m2.m2_C5_public = m2_C5_public; + class m2_C6_private { + constructor(m2_c6_c) { + } + } + class m2_C7_public { + constructor(m2_c7_c) { + } + } + m2.m2_C7_public = m2_C7_public; + class m2_C8_private { + constructor(m2_c8_c) { + } + } + function f1_public(m2_f1_arg) { + } + function f2_public(m2_f2_arg) { + } + m2.f2_public = f2_public; + function f3_public(m2_f3_arg) { + } + function f4_public(m2_f4_arg) { + } + m2.f4_public = f4_public; + function f5_public() { + return new m2_C1_public(); + } + function f6_public() { + return new m2_C1_public(); + } + m2.f6_public = f6_public; + function f7_public() { + return new m2_C2_private(); + } + function f8_public() { + return new m2_C2_private(); + } + m2.f8_public = f8_public; + function f9_private() { + return new m2_C1_public(); + } + function f10_public() { + return new m2_C1_public(); + } + m2.f10_public = f10_public; + function f11_private() { + return new m2_C2_private(); + } + function f12_public() { + return new m2_C2_private(); + } + m2.f12_public = f12_public; +})(m2 || (m2 = {})); +class C5_private { + f() { + } +} +class C6_public { +} +exports.C6_public = C6_public; +class C7_public { + constructor(c7_c1_2) { + } + f1_private(c7_f1_arg) { + } + f2_public(c7_f2_arg) { + } + f3_private(c7_f3_arg) { + } + f4_public(c7_f4_arg) { + } + f5_private() { + return new C6_public(); + } + f6_public() { + return new C6_public(); + } + f7_private() { + return new C5_private(); + } + f8_public() { + return new C5_private(); //error + } + f9_private() { + return new C6_public(); + } + f10_public() { + return new C6_public(); + } + f11_private() { + return new C5_private(); + } + f12_public() { + return new C5_private(); //error + } +} +exports.C7_public = C7_public; +class C8_private { + constructor(c8_c1_2) { + } + f1_private(c8_f1_arg) { + } + f2_public(c8_f2_arg) { + } + f3_private(c8_f3_arg) { + } + f4_public(c8_f4_arg) { + } + f5_private() { + return new C6_public(); + } + f6_public() { + return new C6_public(); + } + f7_private() { + return new C5_private(); + } + f8_public() { + return new C5_private(); + } + f9_private() { + return new C6_public(); + } + f10_public() { + return new C6_public(); + } + f11_private() { + return new C5_private(); + } + f12_public() { + return new C5_private(); + } +} +class C9_public { + constructor(c9_c) { + } +} +exports.C9_public = C9_public; +class C10_private { + constructor(c10_c) { + } +} +class C11_public { + constructor(c11_c) { + } +} +exports.C11_public = C11_public; +class C12_private { + constructor(c12_c) { + } +} +function f1_private(f1_arg) { +} +function f2_public(f2_arg) { +} +function f3_private(f3_arg) { +} +function f4_public(f4_arg) { +} +function f5_private() { + return new C6_public(); +} +function f6_public() { + return new C6_public(); +} +function f7_private() { + return new C5_private(); +} +function f8_public() { + return new C5_private(); //error +} +function f9_private() { + return new C6_public(); +} +function f10_public() { + return new C6_public(); +} +function f11_private() { + return new C5_private(); +} +function f12_public() { + return new C5_private(); //error +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyGloFunc.symbols b/tsc/testdata/baselines/reference/compiler/privacyGloFunc.symbols new file mode 100644 index 0000000000000..ee72df3d5066a --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyGloFunc.symbols @@ -0,0 +1,1011 @@ +//// [tests/cases/compiler/privacyGloFunc.ts] //// + +=== privacyGloFunc.ts === +export namespace m1 { +>m1 : Symbol(m1, Decl(privacyGloFunc.ts, 0, 0)) + + export class C1_public { +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + private f1() { +>f1 : Symbol(C1_public.f1, Decl(privacyGloFunc.ts, 1, 28)) + } + } + + class C2_private { +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + export class C3_public { +>C3_public : Symbol(C3_public, Decl(privacyGloFunc.ts, 7, 5)) + + constructor (m1_c3_c1: C1_public); +>m1_c3_c1 : Symbol(m1_c3_c1, Decl(privacyGloFunc.ts, 10, 21)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + constructor (m1_c3_c2: C2_private); //error +>m1_c3_c2 : Symbol(m1_c3_c2, Decl(privacyGloFunc.ts, 11, 21)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + + constructor (m1_c3_c1_2: any) { +>m1_c3_c1_2 : Symbol(m1_c3_c1_2, Decl(privacyGloFunc.ts, 12, 21)) + } + + private f1_private(m1_c3_f1_arg: C1_public) { +>f1_private : Symbol(C3_public.f1_private, Decl(privacyGloFunc.ts, 13, 9)) +>m1_c3_f1_arg : Symbol(m1_c3_f1_arg, Decl(privacyGloFunc.ts, 15, 27)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + public f2_public(m1_c3_f2_arg: C1_public) { +>f2_public : Symbol(C3_public.f2_public, Decl(privacyGloFunc.ts, 16, 9)) +>m1_c3_f2_arg : Symbol(m1_c3_f2_arg, Decl(privacyGloFunc.ts, 18, 25)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + private f3_private(m1_c3_f3_arg: C2_private) { +>f3_private : Symbol(C3_public.f3_private, Decl(privacyGloFunc.ts, 19, 9)) +>m1_c3_f3_arg : Symbol(m1_c3_f3_arg, Decl(privacyGloFunc.ts, 21, 27)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + public f4_public(m1_c3_f4_arg: C2_private) { // error +>f4_public : Symbol(C3_public.f4_public, Decl(privacyGloFunc.ts, 22, 9)) +>m1_c3_f4_arg : Symbol(m1_c3_f4_arg, Decl(privacyGloFunc.ts, 24, 25)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + private f5_private() { +>f5_private : Symbol(C3_public.f5_private, Decl(privacyGloFunc.ts, 25, 9)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + public f6_public() { +>f6_public : Symbol(C3_public.f6_public, Decl(privacyGloFunc.ts, 29, 9)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + private f7_private() { +>f7_private : Symbol(C3_public.f7_private, Decl(privacyGloFunc.ts, 33, 9)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + public f8_public() { +>f8_public : Symbol(C3_public.f8_public, Decl(privacyGloFunc.ts, 37, 9)) + + return new C2_private(); // error +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + private f9_private(): C1_public { +>f9_private : Symbol(C3_public.f9_private, Decl(privacyGloFunc.ts, 41, 9)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + public f10_public(): C1_public { +>f10_public : Symbol(C3_public.f10_public, Decl(privacyGloFunc.ts, 45, 9)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + private f11_private(): C2_private { +>f11_private : Symbol(C3_public.f11_private, Decl(privacyGloFunc.ts, 49, 9)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + public f12_public(): C2_private { // error +>f12_public : Symbol(C3_public.f12_public, Decl(privacyGloFunc.ts, 53, 9)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + + return new C2_private(); //error +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + } + + class C4_private { +>C4_private : Symbol(C4_private, Decl(privacyGloFunc.ts, 58, 5)) + + constructor (m1_c4_c1: C1_public); +>m1_c4_c1 : Symbol(m1_c4_c1, Decl(privacyGloFunc.ts, 61, 21)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + constructor (m1_c4_c2: C2_private); +>m1_c4_c2 : Symbol(m1_c4_c2, Decl(privacyGloFunc.ts, 62, 21)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + + constructor (m1_c4_c1_2: any) { +>m1_c4_c1_2 : Symbol(m1_c4_c1_2, Decl(privacyGloFunc.ts, 63, 21)) + } + private f1_private(m1_c4_f1_arg: C1_public) { +>f1_private : Symbol(C4_private.f1_private, Decl(privacyGloFunc.ts, 64, 9)) +>m1_c4_f1_arg : Symbol(m1_c4_f1_arg, Decl(privacyGloFunc.ts, 65, 27)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + public f2_public(m1_c4_f2_arg: C1_public) { +>f2_public : Symbol(C4_private.f2_public, Decl(privacyGloFunc.ts, 66, 9)) +>m1_c4_f2_arg : Symbol(m1_c4_f2_arg, Decl(privacyGloFunc.ts, 68, 25)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + private f3_private(m1_c4_f3_arg: C2_private) { +>f3_private : Symbol(C4_private.f3_private, Decl(privacyGloFunc.ts, 69, 9)) +>m1_c4_f3_arg : Symbol(m1_c4_f3_arg, Decl(privacyGloFunc.ts, 71, 27)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + public f4_public(m1_c4_f4_arg: C2_private) { +>f4_public : Symbol(C4_private.f4_public, Decl(privacyGloFunc.ts, 72, 9)) +>m1_c4_f4_arg : Symbol(m1_c4_f4_arg, Decl(privacyGloFunc.ts, 74, 25)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + + private f5_private() { +>f5_private : Symbol(C4_private.f5_private, Decl(privacyGloFunc.ts, 75, 9)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + public f6_public() { +>f6_public : Symbol(C4_private.f6_public, Decl(privacyGloFunc.ts, 80, 9)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + private f7_private() { +>f7_private : Symbol(C4_private.f7_private, Decl(privacyGloFunc.ts, 84, 9)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + public f8_public() { +>f8_public : Symbol(C4_private.f8_public, Decl(privacyGloFunc.ts, 88, 9)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + + private f9_private(): C1_public { +>f9_private : Symbol(C4_private.f9_private, Decl(privacyGloFunc.ts, 92, 9)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + public f10_public(): C1_public { +>f10_public : Symbol(C4_private.f10_public, Decl(privacyGloFunc.ts, 97, 9)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + private f11_private(): C2_private { +>f11_private : Symbol(C4_private.f11_private, Decl(privacyGloFunc.ts, 101, 9)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + public f12_public(): C2_private { +>f12_public : Symbol(C4_private.f12_public, Decl(privacyGloFunc.ts, 105, 9)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + } + + export class C5_public { +>C5_public : Symbol(C5_public, Decl(privacyGloFunc.ts, 110, 5)) + + constructor (m1_c5_c: C1_public) { +>m1_c5_c : Symbol(m1_c5_c, Decl(privacyGloFunc.ts, 113, 21)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + } + + class C6_private { +>C6_private : Symbol(C6_private, Decl(privacyGloFunc.ts, 115, 5)) + + constructor (m1_c6_c: C1_public) { +>m1_c6_c : Symbol(m1_c6_c, Decl(privacyGloFunc.ts, 118, 21)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + } + export class C7_public { +>C7_public : Symbol(C7_public, Decl(privacyGloFunc.ts, 120, 5)) + + constructor (m1_c7_c: C2_private) { // error +>m1_c7_c : Symbol(m1_c7_c, Decl(privacyGloFunc.ts, 122, 21)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + } + + class C8_private { +>C8_private : Symbol(C8_private, Decl(privacyGloFunc.ts, 124, 5)) + + constructor (m1_c8_c: C2_private) { +>m1_c8_c : Symbol(m1_c8_c, Decl(privacyGloFunc.ts, 127, 21)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + } + + function f1_public(m1_f1_arg: C1_public) { +>f1_public : Symbol(f1_public, Decl(privacyGloFunc.ts, 129, 5)) +>m1_f1_arg : Symbol(m1_f1_arg, Decl(privacyGloFunc.ts, 131, 23)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + export function f2_public(m1_f2_arg: C1_public) { +>f2_public : Symbol(f2_public, Decl(privacyGloFunc.ts, 132, 5)) +>m1_f2_arg : Symbol(m1_f2_arg, Decl(privacyGloFunc.ts, 134, 30)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + function f3_public(m1_f3_arg: C2_private) { +>f3_public : Symbol(f3_public, Decl(privacyGloFunc.ts, 135, 5)) +>m1_f3_arg : Symbol(m1_f3_arg, Decl(privacyGloFunc.ts, 137, 23)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + export function f4_public(m1_f4_arg: C2_private) { // error +>f4_public : Symbol(f4_public, Decl(privacyGloFunc.ts, 138, 5)) +>m1_f4_arg : Symbol(m1_f4_arg, Decl(privacyGloFunc.ts, 140, 30)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + + function f5_public() { +>f5_public : Symbol(f5_public, Decl(privacyGloFunc.ts, 141, 5)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + export function f6_public() { +>f6_public : Symbol(f6_public, Decl(privacyGloFunc.ts, 146, 5)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + function f7_public() { +>f7_public : Symbol(f7_public, Decl(privacyGloFunc.ts, 150, 5)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + export function f8_public() { +>f8_public : Symbol(f8_public, Decl(privacyGloFunc.ts, 154, 5)) + + return new C2_private(); // error +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + + function f9_private(): C1_public { +>f9_private : Symbol(f9_private, Decl(privacyGloFunc.ts, 158, 5)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + export function f10_public(): C1_public { +>f10_public : Symbol(f10_public, Decl(privacyGloFunc.ts, 163, 5)) +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + + return new C1_public(); +>C1_public : Symbol(C1_public, Decl(privacyGloFunc.ts, 0, 21)) + } + + function f11_private(): C2_private { +>f11_private : Symbol(f11_private, Decl(privacyGloFunc.ts, 167, 5)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + + return new C2_private(); +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } + + export function f12_public(): C2_private { // error +>f12_public : Symbol(f12_public, Decl(privacyGloFunc.ts, 171, 5)) +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + + return new C2_private(); //error +>C2_private : Symbol(C2_private, Decl(privacyGloFunc.ts, 4, 5)) + } +} + +namespace m2 { +>m2 : Symbol(m2, Decl(privacyGloFunc.ts, 176, 1)) + + export class m2_C1_public { +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + private f() { +>f : Symbol(m2_C1_public.f, Decl(privacyGloFunc.ts, 179, 31)) + } + } + + class m2_C2_private { +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + export class m2_C3_public { +>m2_C3_public : Symbol(m2_C3_public, Decl(privacyGloFunc.ts, 185, 5)) + + constructor (m2_c3_c1: m2_C1_public); +>m2_c3_c1 : Symbol(m2_c3_c1, Decl(privacyGloFunc.ts, 188, 21)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + constructor (m2_c3_c2: m2_C2_private); +>m2_c3_c2 : Symbol(m2_c3_c2, Decl(privacyGloFunc.ts, 189, 21)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + + constructor (m2_c3_c1_2: any) { +>m2_c3_c1_2 : Symbol(m2_c3_c1_2, Decl(privacyGloFunc.ts, 190, 21)) + } + + private f1_private(m2_c3_f1_arg: m2_C1_public) { +>f1_private : Symbol(m2_C3_public.f1_private, Decl(privacyGloFunc.ts, 191, 9)) +>m2_c3_f1_arg : Symbol(m2_c3_f1_arg, Decl(privacyGloFunc.ts, 193, 27)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + public f2_public(m2_c3_f2_arg: m2_C1_public) { +>f2_public : Symbol(m2_C3_public.f2_public, Decl(privacyGloFunc.ts, 194, 9)) +>m2_c3_f2_arg : Symbol(m2_c3_f2_arg, Decl(privacyGloFunc.ts, 196, 25)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + private f3_private(m2_c3_f3_arg: m2_C2_private) { +>f3_private : Symbol(m2_C3_public.f3_private, Decl(privacyGloFunc.ts, 197, 9)) +>m2_c3_f3_arg : Symbol(m2_c3_f3_arg, Decl(privacyGloFunc.ts, 199, 27)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + public f4_public(m2_c3_f4_arg: m2_C2_private) { +>f4_public : Symbol(m2_C3_public.f4_public, Decl(privacyGloFunc.ts, 200, 9)) +>m2_c3_f4_arg : Symbol(m2_c3_f4_arg, Decl(privacyGloFunc.ts, 202, 25)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + private f5_private() { +>f5_private : Symbol(m2_C3_public.f5_private, Decl(privacyGloFunc.ts, 203, 9)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + public f6_public() { +>f6_public : Symbol(m2_C3_public.f6_public, Decl(privacyGloFunc.ts, 207, 9)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + private f7_private() { +>f7_private : Symbol(m2_C3_public.f7_private, Decl(privacyGloFunc.ts, 211, 9)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + public f8_public() { +>f8_public : Symbol(m2_C3_public.f8_public, Decl(privacyGloFunc.ts, 215, 9)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + private f9_private(): m2_C1_public { +>f9_private : Symbol(m2_C3_public.f9_private, Decl(privacyGloFunc.ts, 219, 9)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + public f10_public(): m2_C1_public { +>f10_public : Symbol(m2_C3_public.f10_public, Decl(privacyGloFunc.ts, 223, 9)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + private f11_private(): m2_C2_private { +>f11_private : Symbol(m2_C3_public.f11_private, Decl(privacyGloFunc.ts, 227, 9)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + public f12_public(): m2_C2_private { +>f12_public : Symbol(m2_C3_public.f12_public, Decl(privacyGloFunc.ts, 231, 9)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + } + + class m2_C4_private { +>m2_C4_private : Symbol(m2_C4_private, Decl(privacyGloFunc.ts, 236, 5)) + + constructor (m2_c4_c1: m2_C1_public); +>m2_c4_c1 : Symbol(m2_c4_c1, Decl(privacyGloFunc.ts, 239, 21)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + constructor (m2_c4_c2: m2_C2_private); +>m2_c4_c2 : Symbol(m2_c4_c2, Decl(privacyGloFunc.ts, 240, 21)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + + constructor (m2_c4_c1_2: any) { +>m2_c4_c1_2 : Symbol(m2_c4_c1_2, Decl(privacyGloFunc.ts, 241, 21)) + } + + private f1_private(m2_c4_f1_arg: m2_C1_public) { +>f1_private : Symbol(m2_C4_private.f1_private, Decl(privacyGloFunc.ts, 242, 9)) +>m2_c4_f1_arg : Symbol(m2_c4_f1_arg, Decl(privacyGloFunc.ts, 244, 27)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + public f2_public(m2_c4_f2_arg: m2_C1_public) { +>f2_public : Symbol(m2_C4_private.f2_public, Decl(privacyGloFunc.ts, 245, 9)) +>m2_c4_f2_arg : Symbol(m2_c4_f2_arg, Decl(privacyGloFunc.ts, 247, 25)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + private f3_private(m2_c4_f3_arg: m2_C2_private) { +>f3_private : Symbol(m2_C4_private.f3_private, Decl(privacyGloFunc.ts, 248, 9)) +>m2_c4_f3_arg : Symbol(m2_c4_f3_arg, Decl(privacyGloFunc.ts, 250, 27)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + public f4_public(m2_c4_f4_arg: m2_C2_private) { +>f4_public : Symbol(m2_C4_private.f4_public, Decl(privacyGloFunc.ts, 251, 9)) +>m2_c4_f4_arg : Symbol(m2_c4_f4_arg, Decl(privacyGloFunc.ts, 253, 25)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + + private f5_private() { +>f5_private : Symbol(m2_C4_private.f5_private, Decl(privacyGloFunc.ts, 254, 9)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + public f6_public() { +>f6_public : Symbol(m2_C4_private.f6_public, Decl(privacyGloFunc.ts, 259, 9)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + private f7_private() { +>f7_private : Symbol(m2_C4_private.f7_private, Decl(privacyGloFunc.ts, 263, 9)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + public f8_public() { +>f8_public : Symbol(m2_C4_private.f8_public, Decl(privacyGloFunc.ts, 267, 9)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + + private f9_private(): m2_C1_public { +>f9_private : Symbol(m2_C4_private.f9_private, Decl(privacyGloFunc.ts, 271, 9)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + public f10_public(): m2_C1_public { +>f10_public : Symbol(m2_C4_private.f10_public, Decl(privacyGloFunc.ts, 276, 9)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + private f11_private(): m2_C2_private { +>f11_private : Symbol(m2_C4_private.f11_private, Decl(privacyGloFunc.ts, 280, 9)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + public f12_public(): m2_C2_private { +>f12_public : Symbol(m2_C4_private.f12_public, Decl(privacyGloFunc.ts, 284, 9)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + } + + export class m2_C5_public { +>m2_C5_public : Symbol(m2_C5_public, Decl(privacyGloFunc.ts, 289, 5)) + + constructor (m2_c5_c: m2_C1_public) { +>m2_c5_c : Symbol(m2_c5_c, Decl(privacyGloFunc.ts, 292, 21)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + } + + class m2_C6_private { +>m2_C6_private : Symbol(m2_C6_private, Decl(privacyGloFunc.ts, 294, 5)) + + constructor (m2_c6_c: m2_C1_public) { +>m2_c6_c : Symbol(m2_c6_c, Decl(privacyGloFunc.ts, 297, 21)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + } + export class m2_C7_public { +>m2_C7_public : Symbol(m2_C7_public, Decl(privacyGloFunc.ts, 299, 5)) + + constructor (m2_c7_c: m2_C2_private) { +>m2_c7_c : Symbol(m2_c7_c, Decl(privacyGloFunc.ts, 301, 21)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + } + + class m2_C8_private { +>m2_C8_private : Symbol(m2_C8_private, Decl(privacyGloFunc.ts, 303, 5)) + + constructor (m2_c8_c: m2_C2_private) { +>m2_c8_c : Symbol(m2_c8_c, Decl(privacyGloFunc.ts, 306, 21)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + } + + function f1_public(m2_f1_arg: m2_C1_public) { +>f1_public : Symbol(f1_public, Decl(privacyGloFunc.ts, 308, 5)) +>m2_f1_arg : Symbol(m2_f1_arg, Decl(privacyGloFunc.ts, 310, 23)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + export function f2_public(m2_f2_arg: m2_C1_public) { +>f2_public : Symbol(f2_public, Decl(privacyGloFunc.ts, 311, 5)) +>m2_f2_arg : Symbol(m2_f2_arg, Decl(privacyGloFunc.ts, 313, 30)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + function f3_public(m2_f3_arg: m2_C2_private) { +>f3_public : Symbol(f3_public, Decl(privacyGloFunc.ts, 314, 5)) +>m2_f3_arg : Symbol(m2_f3_arg, Decl(privacyGloFunc.ts, 316, 23)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + export function f4_public(m2_f4_arg: m2_C2_private) { +>f4_public : Symbol(f4_public, Decl(privacyGloFunc.ts, 317, 5)) +>m2_f4_arg : Symbol(m2_f4_arg, Decl(privacyGloFunc.ts, 319, 30)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + + function f5_public() { +>f5_public : Symbol(f5_public, Decl(privacyGloFunc.ts, 320, 5)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + export function f6_public() { +>f6_public : Symbol(f6_public, Decl(privacyGloFunc.ts, 325, 5)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + function f7_public() { +>f7_public : Symbol(f7_public, Decl(privacyGloFunc.ts, 329, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + export function f8_public() { +>f8_public : Symbol(f8_public, Decl(privacyGloFunc.ts, 333, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + + function f9_private(): m2_C1_public { +>f9_private : Symbol(f9_private, Decl(privacyGloFunc.ts, 337, 5)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + export function f10_public(): m2_C1_public { +>f10_public : Symbol(f10_public, Decl(privacyGloFunc.ts, 342, 5)) +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + + return new m2_C1_public(); +>m2_C1_public : Symbol(m2_C1_public, Decl(privacyGloFunc.ts, 178, 14)) + } + + function f11_private(): m2_C2_private { +>f11_private : Symbol(f11_private, Decl(privacyGloFunc.ts, 346, 5)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } + + export function f12_public(): m2_C2_private { +>f12_public : Symbol(f12_public, Decl(privacyGloFunc.ts, 350, 5)) +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + + return new m2_C2_private(); +>m2_C2_private : Symbol(m2_C2_private, Decl(privacyGloFunc.ts, 182, 5)) + } +} + +class C5_private { +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + private f() { +>f : Symbol(C5_private.f, Decl(privacyGloFunc.ts, 357, 18)) + } +} + +export class C6_public { +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) +} + +export class C7_public { +>C7_public : Symbol(C7_public, Decl(privacyGloFunc.ts, 363, 1)) + + constructor (c7_c1: C5_private); // error +>c7_c1 : Symbol(c7_c1, Decl(privacyGloFunc.ts, 366, 17)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + constructor (c7_c2: C6_public); +>c7_c2 : Symbol(c7_c2, Decl(privacyGloFunc.ts, 367, 17)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + + constructor (c7_c1_2: any) { +>c7_c1_2 : Symbol(c7_c1_2, Decl(privacyGloFunc.ts, 368, 17)) + } + private f1_private(c7_f1_arg: C6_public) { +>f1_private : Symbol(C7_public.f1_private, Decl(privacyGloFunc.ts, 369, 5)) +>c7_f1_arg : Symbol(c7_f1_arg, Decl(privacyGloFunc.ts, 370, 23)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + public f2_public(c7_f2_arg: C6_public) { +>f2_public : Symbol(C7_public.f2_public, Decl(privacyGloFunc.ts, 371, 5)) +>c7_f2_arg : Symbol(c7_f2_arg, Decl(privacyGloFunc.ts, 373, 21)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + private f3_private(c7_f3_arg: C5_private) { +>f3_private : Symbol(C7_public.f3_private, Decl(privacyGloFunc.ts, 374, 5)) +>c7_f3_arg : Symbol(c7_f3_arg, Decl(privacyGloFunc.ts, 376, 23)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + public f4_public(c7_f4_arg: C5_private) { //error +>f4_public : Symbol(C7_public.f4_public, Decl(privacyGloFunc.ts, 377, 5)) +>c7_f4_arg : Symbol(c7_f4_arg, Decl(privacyGloFunc.ts, 379, 21)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + private f5_private() { +>f5_private : Symbol(C7_public.f5_private, Decl(privacyGloFunc.ts, 380, 5)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + public f6_public() { +>f6_public : Symbol(C7_public.f6_public, Decl(privacyGloFunc.ts, 384, 5)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + private f7_private() { +>f7_private : Symbol(C7_public.f7_private, Decl(privacyGloFunc.ts, 388, 5)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + public f8_public() { +>f8_public : Symbol(C7_public.f8_public, Decl(privacyGloFunc.ts, 392, 5)) + + return new C5_private(); //error +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + private f9_private(): C6_public { +>f9_private : Symbol(C7_public.f9_private, Decl(privacyGloFunc.ts, 396, 5)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + public f10_public(): C6_public { +>f10_public : Symbol(C7_public.f10_public, Decl(privacyGloFunc.ts, 400, 5)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + private f11_private(): C5_private { +>f11_private : Symbol(C7_public.f11_private, Decl(privacyGloFunc.ts, 404, 5)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + public f12_public(): C5_private { //error +>f12_public : Symbol(C7_public.f12_public, Decl(privacyGloFunc.ts, 408, 5)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + return new C5_private(); //error +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } +} + +class C8_private { +>C8_private : Symbol(C8_private, Decl(privacyGloFunc.ts, 413, 1)) + + constructor (c8_c1: C5_private); +>c8_c1 : Symbol(c8_c1, Decl(privacyGloFunc.ts, 416, 17)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + constructor (c8_c2: C6_public); +>c8_c2 : Symbol(c8_c2, Decl(privacyGloFunc.ts, 417, 17)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + + constructor (c8_c1_2: any) { +>c8_c1_2 : Symbol(c8_c1_2, Decl(privacyGloFunc.ts, 418, 17)) + } + + private f1_private(c8_f1_arg: C6_public) { +>f1_private : Symbol(C8_private.f1_private, Decl(privacyGloFunc.ts, 419, 5)) +>c8_f1_arg : Symbol(c8_f1_arg, Decl(privacyGloFunc.ts, 421, 23)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + public f2_public(c8_f2_arg: C6_public) { +>f2_public : Symbol(C8_private.f2_public, Decl(privacyGloFunc.ts, 422, 5)) +>c8_f2_arg : Symbol(c8_f2_arg, Decl(privacyGloFunc.ts, 424, 21)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + private f3_private(c8_f3_arg: C5_private) { +>f3_private : Symbol(C8_private.f3_private, Decl(privacyGloFunc.ts, 425, 5)) +>c8_f3_arg : Symbol(c8_f3_arg, Decl(privacyGloFunc.ts, 427, 23)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + public f4_public(c8_f4_arg: C5_private) { +>f4_public : Symbol(C8_private.f4_public, Decl(privacyGloFunc.ts, 428, 5)) +>c8_f4_arg : Symbol(c8_f4_arg, Decl(privacyGloFunc.ts, 430, 21)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + private f5_private() { +>f5_private : Symbol(C8_private.f5_private, Decl(privacyGloFunc.ts, 431, 5)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + public f6_public() { +>f6_public : Symbol(C8_private.f6_public, Decl(privacyGloFunc.ts, 435, 5)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + private f7_private() { +>f7_private : Symbol(C8_private.f7_private, Decl(privacyGloFunc.ts, 439, 5)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + public f8_public() { +>f8_public : Symbol(C8_private.f8_public, Decl(privacyGloFunc.ts, 443, 5)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + private f9_private(): C6_public { +>f9_private : Symbol(C8_private.f9_private, Decl(privacyGloFunc.ts, 447, 5)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + public f10_public(): C6_public { +>f10_public : Symbol(C8_private.f10_public, Decl(privacyGloFunc.ts, 451, 5)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } + + private f11_private(): C5_private { +>f11_private : Symbol(C8_private.f11_private, Decl(privacyGloFunc.ts, 455, 5)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } + + public f12_public(): C5_private { +>f12_public : Symbol(C8_private.f12_public, Decl(privacyGloFunc.ts, 459, 5)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } +} + + +export class C9_public { +>C9_public : Symbol(C9_public, Decl(privacyGloFunc.ts, 464, 1)) + + constructor (c9_c: C6_public) { +>c9_c : Symbol(c9_c, Decl(privacyGloFunc.ts, 468, 17)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } +} + +class C10_private { +>C10_private : Symbol(C10_private, Decl(privacyGloFunc.ts, 470, 1)) + + constructor (c10_c: C6_public) { +>c10_c : Symbol(c10_c, Decl(privacyGloFunc.ts, 473, 17)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + } +} +export class C11_public { +>C11_public : Symbol(C11_public, Decl(privacyGloFunc.ts, 475, 1)) + + constructor (c11_c: C5_private) { // error +>c11_c : Symbol(c11_c, Decl(privacyGloFunc.ts, 477, 17)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } +} + +class C12_private { +>C12_private : Symbol(C12_private, Decl(privacyGloFunc.ts, 479, 1)) + + constructor (c12_c: C5_private) { +>c12_c : Symbol(c12_c, Decl(privacyGloFunc.ts, 482, 17)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + } +} + +function f1_private(f1_arg: C5_private) { +>f1_private : Symbol(f1_private, Decl(privacyGloFunc.ts, 484, 1)) +>f1_arg : Symbol(f1_arg, Decl(privacyGloFunc.ts, 486, 20)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) +} + +export function f2_public(f2_arg: C5_private) { // error +>f2_public : Symbol(f2_public, Decl(privacyGloFunc.ts, 487, 1)) +>f2_arg : Symbol(f2_arg, Decl(privacyGloFunc.ts, 489, 26)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) +} + +function f3_private(f3_arg: C6_public) { +>f3_private : Symbol(f3_private, Decl(privacyGloFunc.ts, 490, 1)) +>f3_arg : Symbol(f3_arg, Decl(privacyGloFunc.ts, 492, 20)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) +} + +export function f4_public(f4_arg: C6_public) { +>f4_public : Symbol(f4_public, Decl(privacyGloFunc.ts, 493, 1)) +>f4_arg : Symbol(f4_arg, Decl(privacyGloFunc.ts, 495, 26)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) +} + +function f5_private() { +>f5_private : Symbol(f5_private, Decl(privacyGloFunc.ts, 496, 1)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) +} + +export function f6_public() { +>f6_public : Symbol(f6_public, Decl(privacyGloFunc.ts, 500, 1)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) +} + +function f7_private() { +>f7_private : Symbol(f7_private, Decl(privacyGloFunc.ts, 504, 1)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) +} + +export function f8_public() { +>f8_public : Symbol(f8_public, Decl(privacyGloFunc.ts, 508, 1)) + + return new C5_private(); //error +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) +} + +function f9_private(): C6_public { +>f9_private : Symbol(f9_private, Decl(privacyGloFunc.ts, 512, 1)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) +} + +export function f10_public(): C6_public { +>f10_public : Symbol(f10_public, Decl(privacyGloFunc.ts, 516, 1)) +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) + + return new C6_public(); +>C6_public : Symbol(C6_public, Decl(privacyGloFunc.ts, 360, 1)) +} + +function f11_private(): C5_private { +>f11_private : Symbol(f11_private, Decl(privacyGloFunc.ts, 520, 1)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + return new C5_private(); +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) +} + +export function f12_public(): C5_private { //error +>f12_public : Symbol(f12_public, Decl(privacyGloFunc.ts, 524, 1)) +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) + + return new C5_private(); //error +>C5_private : Symbol(C5_private, Decl(privacyGloFunc.ts, 355, 1)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/privacyGloFunc.types b/tsc/testdata/baselines/reference/compiler/privacyGloFunc.types new file mode 100644 index 0000000000000..6c7142c6953ca --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyGloFunc.types @@ -0,0 +1,987 @@ +//// [tests/cases/compiler/privacyGloFunc.ts] //// + +=== privacyGloFunc.ts === +export namespace m1 { +>m1 : typeof m1 + + export class C1_public { +>C1_public : C1_public + + private f1() { +>f1 : () => void + } + } + + class C2_private { +>C2_private : C2_private + } + + export class C3_public { +>C3_public : C3_public + + constructor (m1_c3_c1: C1_public); +>m1_c3_c1 : C1_public + + constructor (m1_c3_c2: C2_private); //error +>m1_c3_c2 : C2_private + + constructor (m1_c3_c1_2: any) { +>m1_c3_c1_2 : any + } + + private f1_private(m1_c3_f1_arg: C1_public) { +>f1_private : (m1_c3_f1_arg: C1_public) => void +>m1_c3_f1_arg : C1_public + } + + public f2_public(m1_c3_f2_arg: C1_public) { +>f2_public : (m1_c3_f2_arg: C1_public) => void +>m1_c3_f2_arg : C1_public + } + + private f3_private(m1_c3_f3_arg: C2_private) { +>f3_private : (m1_c3_f3_arg: C2_private) => void +>m1_c3_f3_arg : C2_private + } + + public f4_public(m1_c3_f4_arg: C2_private) { // error +>f4_public : (m1_c3_f4_arg: C2_private) => void +>m1_c3_f4_arg : C2_private + } + + private f5_private() { +>f5_private : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + public f6_public() { +>f6_public : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + private f7_private() { +>f7_private : () => C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + public f8_public() { +>f8_public : () => C2_private + + return new C2_private(); // error +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + private f9_private(): C1_public { +>f9_private : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + public f10_public(): C1_public { +>f10_public : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + private f11_private(): C2_private { +>f11_private : () => C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + public f12_public(): C2_private { // error +>f12_public : () => C2_private + + return new C2_private(); //error +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + } + + class C4_private { +>C4_private : C4_private + + constructor (m1_c4_c1: C1_public); +>m1_c4_c1 : C1_public + + constructor (m1_c4_c2: C2_private); +>m1_c4_c2 : C2_private + + constructor (m1_c4_c1_2: any) { +>m1_c4_c1_2 : any + } + private f1_private(m1_c4_f1_arg: C1_public) { +>f1_private : (m1_c4_f1_arg: C1_public) => void +>m1_c4_f1_arg : C1_public + } + + public f2_public(m1_c4_f2_arg: C1_public) { +>f2_public : (m1_c4_f2_arg: C1_public) => void +>m1_c4_f2_arg : C1_public + } + + private f3_private(m1_c4_f3_arg: C2_private) { +>f3_private : (m1_c4_f3_arg: C2_private) => void +>m1_c4_f3_arg : C2_private + } + + public f4_public(m1_c4_f4_arg: C2_private) { +>f4_public : (m1_c4_f4_arg: C2_private) => void +>m1_c4_f4_arg : C2_private + } + + + private f5_private() { +>f5_private : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + public f6_public() { +>f6_public : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + private f7_private() { +>f7_private : () => C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + public f8_public() { +>f8_public : () => C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + + private f9_private(): C1_public { +>f9_private : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + public f10_public(): C1_public { +>f10_public : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + private f11_private(): C2_private { +>f11_private : () => C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + public f12_public(): C2_private { +>f12_public : () => C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + } + + export class C5_public { +>C5_public : C5_public + + constructor (m1_c5_c: C1_public) { +>m1_c5_c : C1_public + } + } + + class C6_private { +>C6_private : C6_private + + constructor (m1_c6_c: C1_public) { +>m1_c6_c : C1_public + } + } + export class C7_public { +>C7_public : C7_public + + constructor (m1_c7_c: C2_private) { // error +>m1_c7_c : C2_private + } + } + + class C8_private { +>C8_private : C8_private + + constructor (m1_c8_c: C2_private) { +>m1_c8_c : C2_private + } + } + + function f1_public(m1_f1_arg: C1_public) { +>f1_public : (m1_f1_arg: C1_public) => void +>m1_f1_arg : C1_public + } + + export function f2_public(m1_f2_arg: C1_public) { +>f2_public : (m1_f2_arg: C1_public) => void +>m1_f2_arg : C1_public + } + + function f3_public(m1_f3_arg: C2_private) { +>f3_public : (m1_f3_arg: C2_private) => void +>m1_f3_arg : C2_private + } + + export function f4_public(m1_f4_arg: C2_private) { // error +>f4_public : (m1_f4_arg: C2_private) => void +>m1_f4_arg : C2_private + } + + + function f5_public() { +>f5_public : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + export function f6_public() { +>f6_public : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + function f7_public() { +>f7_public : () => C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + export function f8_public() { +>f8_public : () => C2_private + + return new C2_private(); // error +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + + function f9_private(): C1_public { +>f9_private : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + export function f10_public(): C1_public { +>f10_public : () => C1_public + + return new C1_public(); +>new C1_public() : C1_public +>C1_public : typeof C1_public + } + + function f11_private(): C2_private { +>f11_private : () => C2_private + + return new C2_private(); +>new C2_private() : C2_private +>C2_private : typeof C2_private + } + + export function f12_public(): C2_private { // error +>f12_public : () => C2_private + + return new C2_private(); //error +>new C2_private() : C2_private +>C2_private : typeof C2_private + } +} + +namespace m2 { +>m2 : typeof m2 + + export class m2_C1_public { +>m2_C1_public : m2_C1_public + + private f() { +>f : () => void + } + } + + class m2_C2_private { +>m2_C2_private : m2_C2_private + } + + export class m2_C3_public { +>m2_C3_public : m2_C3_public + + constructor (m2_c3_c1: m2_C1_public); +>m2_c3_c1 : m2_C1_public + + constructor (m2_c3_c2: m2_C2_private); +>m2_c3_c2 : m2_C2_private + + constructor (m2_c3_c1_2: any) { +>m2_c3_c1_2 : any + } + + private f1_private(m2_c3_f1_arg: m2_C1_public) { +>f1_private : (m2_c3_f1_arg: m2_C1_public) => void +>m2_c3_f1_arg : m2_C1_public + } + + public f2_public(m2_c3_f2_arg: m2_C1_public) { +>f2_public : (m2_c3_f2_arg: m2_C1_public) => void +>m2_c3_f2_arg : m2_C1_public + } + + private f3_private(m2_c3_f3_arg: m2_C2_private) { +>f3_private : (m2_c3_f3_arg: m2_C2_private) => void +>m2_c3_f3_arg : m2_C2_private + } + + public f4_public(m2_c3_f4_arg: m2_C2_private) { +>f4_public : (m2_c3_f4_arg: m2_C2_private) => void +>m2_c3_f4_arg : m2_C2_private + } + + private f5_private() { +>f5_private : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + public f6_public() { +>f6_public : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + private f7_private() { +>f7_private : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + public f8_public() { +>f8_public : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + private f9_private(): m2_C1_public { +>f9_private : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + public f10_public(): m2_C1_public { +>f10_public : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + private f11_private(): m2_C2_private { +>f11_private : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + public f12_public(): m2_C2_private { +>f12_public : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + } + + class m2_C4_private { +>m2_C4_private : m2_C4_private + + constructor (m2_c4_c1: m2_C1_public); +>m2_c4_c1 : m2_C1_public + + constructor (m2_c4_c2: m2_C2_private); +>m2_c4_c2 : m2_C2_private + + constructor (m2_c4_c1_2: any) { +>m2_c4_c1_2 : any + } + + private f1_private(m2_c4_f1_arg: m2_C1_public) { +>f1_private : (m2_c4_f1_arg: m2_C1_public) => void +>m2_c4_f1_arg : m2_C1_public + } + + public f2_public(m2_c4_f2_arg: m2_C1_public) { +>f2_public : (m2_c4_f2_arg: m2_C1_public) => void +>m2_c4_f2_arg : m2_C1_public + } + + private f3_private(m2_c4_f3_arg: m2_C2_private) { +>f3_private : (m2_c4_f3_arg: m2_C2_private) => void +>m2_c4_f3_arg : m2_C2_private + } + + public f4_public(m2_c4_f4_arg: m2_C2_private) { +>f4_public : (m2_c4_f4_arg: m2_C2_private) => void +>m2_c4_f4_arg : m2_C2_private + } + + + private f5_private() { +>f5_private : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + public f6_public() { +>f6_public : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + private f7_private() { +>f7_private : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + public f8_public() { +>f8_public : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + + private f9_private(): m2_C1_public { +>f9_private : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + public f10_public(): m2_C1_public { +>f10_public : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + private f11_private(): m2_C2_private { +>f11_private : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + public f12_public(): m2_C2_private { +>f12_public : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + } + + export class m2_C5_public { +>m2_C5_public : m2_C5_public + + constructor (m2_c5_c: m2_C1_public) { +>m2_c5_c : m2_C1_public + } + } + + class m2_C6_private { +>m2_C6_private : m2_C6_private + + constructor (m2_c6_c: m2_C1_public) { +>m2_c6_c : m2_C1_public + } + } + export class m2_C7_public { +>m2_C7_public : m2_C7_public + + constructor (m2_c7_c: m2_C2_private) { +>m2_c7_c : m2_C2_private + } + } + + class m2_C8_private { +>m2_C8_private : m2_C8_private + + constructor (m2_c8_c: m2_C2_private) { +>m2_c8_c : m2_C2_private + } + } + + function f1_public(m2_f1_arg: m2_C1_public) { +>f1_public : (m2_f1_arg: m2_C1_public) => void +>m2_f1_arg : m2_C1_public + } + + export function f2_public(m2_f2_arg: m2_C1_public) { +>f2_public : (m2_f2_arg: m2_C1_public) => void +>m2_f2_arg : m2_C1_public + } + + function f3_public(m2_f3_arg: m2_C2_private) { +>f3_public : (m2_f3_arg: m2_C2_private) => void +>m2_f3_arg : m2_C2_private + } + + export function f4_public(m2_f4_arg: m2_C2_private) { +>f4_public : (m2_f4_arg: m2_C2_private) => void +>m2_f4_arg : m2_C2_private + } + + + function f5_public() { +>f5_public : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + export function f6_public() { +>f6_public : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + function f7_public() { +>f7_public : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + export function f8_public() { +>f8_public : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + + function f9_private(): m2_C1_public { +>f9_private : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + export function f10_public(): m2_C1_public { +>f10_public : () => m2_C1_public + + return new m2_C1_public(); +>new m2_C1_public() : m2_C1_public +>m2_C1_public : typeof m2_C1_public + } + + function f11_private(): m2_C2_private { +>f11_private : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } + + export function f12_public(): m2_C2_private { +>f12_public : () => m2_C2_private + + return new m2_C2_private(); +>new m2_C2_private() : m2_C2_private +>m2_C2_private : typeof m2_C2_private + } +} + +class C5_private { +>C5_private : C5_private + + private f() { +>f : () => void + } +} + +export class C6_public { +>C6_public : C6_public +} + +export class C7_public { +>C7_public : C7_public + + constructor (c7_c1: C5_private); // error +>c7_c1 : C5_private + + constructor (c7_c2: C6_public); +>c7_c2 : C6_public + + constructor (c7_c1_2: any) { +>c7_c1_2 : any + } + private f1_private(c7_f1_arg: C6_public) { +>f1_private : (c7_f1_arg: C6_public) => void +>c7_f1_arg : C6_public + } + + public f2_public(c7_f2_arg: C6_public) { +>f2_public : (c7_f2_arg: C6_public) => void +>c7_f2_arg : C6_public + } + + private f3_private(c7_f3_arg: C5_private) { +>f3_private : (c7_f3_arg: C5_private) => void +>c7_f3_arg : C5_private + } + + public f4_public(c7_f4_arg: C5_private) { //error +>f4_public : (c7_f4_arg: C5_private) => void +>c7_f4_arg : C5_private + } + + private f5_private() { +>f5_private : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + public f6_public() { +>f6_public : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + private f7_private() { +>f7_private : () => C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + public f8_public() { +>f8_public : () => C5_private + + return new C5_private(); //error +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + private f9_private(): C6_public { +>f9_private : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + public f10_public(): C6_public { +>f10_public : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + private f11_private(): C5_private { +>f11_private : () => C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + public f12_public(): C5_private { //error +>f12_public : () => C5_private + + return new C5_private(); //error +>new C5_private() : C5_private +>C5_private : typeof C5_private + } +} + +class C8_private { +>C8_private : C8_private + + constructor (c8_c1: C5_private); +>c8_c1 : C5_private + + constructor (c8_c2: C6_public); +>c8_c2 : C6_public + + constructor (c8_c1_2: any) { +>c8_c1_2 : any + } + + private f1_private(c8_f1_arg: C6_public) { +>f1_private : (c8_f1_arg: C6_public) => void +>c8_f1_arg : C6_public + } + + public f2_public(c8_f2_arg: C6_public) { +>f2_public : (c8_f2_arg: C6_public) => void +>c8_f2_arg : C6_public + } + + private f3_private(c8_f3_arg: C5_private) { +>f3_private : (c8_f3_arg: C5_private) => void +>c8_f3_arg : C5_private + } + + public f4_public(c8_f4_arg: C5_private) { +>f4_public : (c8_f4_arg: C5_private) => void +>c8_f4_arg : C5_private + } + + private f5_private() { +>f5_private : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + public f6_public() { +>f6_public : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + private f7_private() { +>f7_private : () => C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + public f8_public() { +>f8_public : () => C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + private f9_private(): C6_public { +>f9_private : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + public f10_public(): C6_public { +>f10_public : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public + } + + private f11_private(): C5_private { +>f11_private : () => C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } + + public f12_public(): C5_private { +>f12_public : () => C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private + } +} + + +export class C9_public { +>C9_public : C9_public + + constructor (c9_c: C6_public) { +>c9_c : C6_public + } +} + +class C10_private { +>C10_private : C10_private + + constructor (c10_c: C6_public) { +>c10_c : C6_public + } +} +export class C11_public { +>C11_public : C11_public + + constructor (c11_c: C5_private) { // error +>c11_c : C5_private + } +} + +class C12_private { +>C12_private : C12_private + + constructor (c12_c: C5_private) { +>c12_c : C5_private + } +} + +function f1_private(f1_arg: C5_private) { +>f1_private : (f1_arg: C5_private) => void +>f1_arg : C5_private +} + +export function f2_public(f2_arg: C5_private) { // error +>f2_public : (f2_arg: C5_private) => void +>f2_arg : C5_private +} + +function f3_private(f3_arg: C6_public) { +>f3_private : (f3_arg: C6_public) => void +>f3_arg : C6_public +} + +export function f4_public(f4_arg: C6_public) { +>f4_public : (f4_arg: C6_public) => void +>f4_arg : C6_public +} + +function f5_private() { +>f5_private : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public +} + +export function f6_public() { +>f6_public : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public +} + +function f7_private() { +>f7_private : () => C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private +} + +export function f8_public() { +>f8_public : () => C5_private + + return new C5_private(); //error +>new C5_private() : C5_private +>C5_private : typeof C5_private +} + +function f9_private(): C6_public { +>f9_private : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public +} + +export function f10_public(): C6_public { +>f10_public : () => C6_public + + return new C6_public(); +>new C6_public() : C6_public +>C6_public : typeof C6_public +} + +function f11_private(): C5_private { +>f11_private : () => C5_private + + return new C5_private(); +>new C5_private() : C5_private +>C5_private : typeof C5_private +} + +export function f12_public(): C5_private { //error +>f12_public : () => C5_private + + return new C5_private(); //error +>new C5_private() : C5_private +>C5_private : typeof C5_private +} + diff --git a/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.js b/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.js new file mode 100644 index 0000000000000..8befacfee689e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.js @@ -0,0 +1,358 @@ +//// [tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts] //// + +//// [privacyLocalInternalReferenceImportWithoutExport.ts] +// private elements +namespace m_private { + export class c_private { + } + export enum e_private { + Happy, + Grumpy + } + export function f_private() { + return new c_private(); + } + export var v_private = new c_private(); + export interface i_private { + } + export namespace mi_private { + export class c { + } + } + export namespace mu_private { + export interface i { + } + } +} + +// Public elements +export namespace m_public { + export class c_public { + } + export enum e_public { + Happy, + Grumpy + } + export function f_public() { + return new c_public(); + } + export var v_public = 10; + export interface i_public { + } + export namespace mi_public { + export class c { + } + } + export namespace mu_public { + export interface i { + } + } +} + +export namespace import_public { + // No Privacy errors - importing private elements + import im_private_c_private = m_private.c_private; + import im_private_e_private = m_private.e_private; + import im_private_f_private = m_private.f_private; + import im_private_v_private = m_private.v_private; + import im_private_i_private = m_private.i_private; + import im_private_mi_private = m_private.mi_private; + import im_private_mu_private = m_private.mu_private; + + // Usage of above decls + var privateUse_im_private_c_private = new im_private_c_private(); + export var publicUse_im_private_c_private = new im_private_c_private(); + var privateUse_im_private_e_private = im_private_e_private.Happy; + export var publicUse_im_private_e_private = im_private_e_private.Grumpy; + var privateUse_im_private_f_private = im_private_f_private(); + export var publicUse_im_private_f_private = im_private_f_private(); + var privateUse_im_private_v_private = im_private_v_private; + export var publicUse_im_private_v_private = im_private_v_private; + var privateUse_im_private_i_private: im_private_i_private; + export var publicUse_im_private_i_private: im_private_i_private; + var privateUse_im_private_mi_private = new im_private_mi_private.c(); + export var publicUse_im_private_mi_private = new im_private_mi_private.c(); + var privateUse_im_private_mu_private: im_private_mu_private.i; + export var publicUse_im_private_mu_private: im_private_mu_private.i; + + + // No Privacy errors - importing public elements + import im_private_c_public = m_public.c_public; + import im_private_e_public = m_public.e_public; + import im_private_f_public = m_public.f_public; + import im_private_v_public = m_public.v_public; + import im_private_i_public = m_public.i_public; + import im_private_mi_public = m_public.mi_public; + import im_private_mu_public = m_public.mu_public; + + // Usage of above decls + var privateUse_im_private_c_public = new im_private_c_public(); + export var publicUse_im_private_c_public = new im_private_c_public(); + var privateUse_im_private_e_public = im_private_e_public.Happy; + export var publicUse_im_private_e_public = im_private_e_public.Grumpy; + var privateUse_im_private_f_public = im_private_f_public(); + export var publicUse_im_private_f_public = im_private_f_public(); + var privateUse_im_private_v_public = im_private_v_public; + export var publicUse_im_private_v_public = im_private_v_public; + var privateUse_im_private_i_public: im_private_i_public; + export var publicUse_im_private_i_public: im_private_i_public; + var privateUse_im_private_mi_public = new im_private_mi_public.c(); + export var publicUse_im_private_mi_public = new im_private_mi_public.c(); + var privateUse_im_private_mu_public: im_private_mu_public.i; + export var publicUse_im_private_mu_public: im_private_mu_public.i; +} + +namespace import_private { + // No Privacy errors - importing private elements + import im_private_c_private = m_private.c_private; + import im_private_e_private = m_private.e_private; + import im_private_f_private = m_private.f_private; + import im_private_v_private = m_private.v_private; + import im_private_i_private = m_private.i_private; + import im_private_mi_private = m_private.mi_private; + import im_private_mu_private = m_private.mu_private; + + // Usage of above decls + var privateUse_im_private_c_private = new im_private_c_private(); + export var publicUse_im_private_c_private = new im_private_c_private(); + var privateUse_im_private_e_private = im_private_e_private.Happy; + export var publicUse_im_private_e_private = im_private_e_private.Grumpy; + var privateUse_im_private_f_private = im_private_f_private(); + export var publicUse_im_private_f_private = im_private_f_private(); + var privateUse_im_private_v_private = im_private_v_private; + export var publicUse_im_private_v_private = im_private_v_private; + var privateUse_im_private_i_private: im_private_i_private; + export var publicUse_im_private_i_private: im_private_i_private; + var privateUse_im_private_mi_private = new im_private_mi_private.c(); + export var publicUse_im_private_mi_private = new im_private_mi_private.c(); + var privateUse_im_private_mu_private: im_private_mu_private.i; + export var publicUse_im_private_mu_private: im_private_mu_private.i; + + // No privacy Error - importing public elements + import im_private_c_public = m_public.c_public; + import im_private_e_public = m_public.e_public; + import im_private_f_public = m_public.f_public; + import im_private_v_public = m_public.v_public; + import im_private_i_public = m_public.i_public; + import im_private_mi_public = m_public.mi_public; + import im_private_mu_public = m_public.mu_public; + + // Usage of above decls + var privateUse_im_private_c_public = new im_private_c_public(); + export var publicUse_im_private_c_public = new im_private_c_public(); + var privateUse_im_private_e_public = im_private_e_public.Happy; + export var publicUse_im_private_e_public = im_private_e_public.Grumpy; + var privateUse_im_private_f_public = im_private_f_public(); + export var publicUse_im_private_f_public = im_private_f_public(); + var privateUse_im_private_v_public = im_private_v_public; + export var publicUse_im_private_v_public = im_private_v_public; + var privateUse_im_private_i_public: im_private_i_public; + export var publicUse_im_private_i_public: im_private_i_public; + var privateUse_im_private_mi_public = new im_private_mi_public.c(); + export var publicUse_im_private_mi_public = new im_private_mi_public.c(); + var privateUse_im_private_mu_public: im_private_mu_public.i; + export var publicUse_im_private_mu_public: im_private_mu_public.i; +} + +//// [privacyLocalInternalReferenceImportWithoutExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.import_public = exports.m_public = void 0; +// private elements +var m_private; +(function (m_private) { + class c_private { + } + m_private.c_private = c_private; + let e_private; + (function (e_private) { + e_private[e_private["Happy"] = 0] = "Happy"; + e_private[e_private["Grumpy"] = 1] = "Grumpy"; + })(e_private = m_private.e_private || (m_private.e_private = {})); + function f_private() { + return new c_private(); + } + m_private.f_private = f_private; + m_private.v_private = new c_private(); + let mi_private; + (function (mi_private) { + class c { + } + mi_private.c = c; + })(mi_private = m_private.mi_private || (m_private.mi_private = {})); +})(m_private || (m_private = {})); +// Public elements +var m_public; +(function (m_public) { + class c_public { + } + m_public.c_public = c_public; + let e_public; + (function (e_public) { + e_public[e_public["Happy"] = 0] = "Happy"; + e_public[e_public["Grumpy"] = 1] = "Grumpy"; + })(e_public = m_public.e_public || (m_public.e_public = {})); + function f_public() { + return new c_public(); + } + m_public.f_public = f_public; + m_public.v_public = 10; + let mi_public; + (function (mi_public) { + class c { + } + mi_public.c = c; + })(mi_public = m_public.mi_public || (m_public.mi_public = {})); +})(m_public || (exports.m_public = m_public = {})); +var import_public; +(function (import_public) { + // No Privacy errors - importing private elements + var im_private_c_private = m_private.c_private; + var im_private_e_private = m_private.e_private; + var im_private_f_private = m_private.f_private; + var im_private_v_private = m_private.v_private; + var im_private_mi_private = m_private.mi_private; + // Usage of above decls + var privateUse_im_private_c_private = new im_private_c_private(); + import_public.publicUse_im_private_c_private = new im_private_c_private(); + var privateUse_im_private_e_private = im_private_e_private.Happy; + import_public.publicUse_im_private_e_private = im_private_e_private.Grumpy; + var privateUse_im_private_f_private = im_private_f_private(); + import_public.publicUse_im_private_f_private = im_private_f_private(); + var privateUse_im_private_v_private = im_private_v_private; + import_public.publicUse_im_private_v_private = im_private_v_private; + var privateUse_im_private_i_private; + var privateUse_im_private_mi_private = new im_private_mi_private.c(); + import_public.publicUse_im_private_mi_private = new im_private_mi_private.c(); + var privateUse_im_private_mu_private; + // No Privacy errors - importing public elements + var im_private_c_public = m_public.c_public; + var im_private_e_public = m_public.e_public; + var im_private_f_public = m_public.f_public; + var im_private_v_public = m_public.v_public; + var im_private_mi_public = m_public.mi_public; + // Usage of above decls + var privateUse_im_private_c_public = new im_private_c_public(); + import_public.publicUse_im_private_c_public = new im_private_c_public(); + var privateUse_im_private_e_public = im_private_e_public.Happy; + import_public.publicUse_im_private_e_public = im_private_e_public.Grumpy; + var privateUse_im_private_f_public = im_private_f_public(); + import_public.publicUse_im_private_f_public = im_private_f_public(); + var privateUse_im_private_v_public = im_private_v_public; + import_public.publicUse_im_private_v_public = im_private_v_public; + var privateUse_im_private_i_public; + var privateUse_im_private_mi_public = new im_private_mi_public.c(); + import_public.publicUse_im_private_mi_public = new im_private_mi_public.c(); + var privateUse_im_private_mu_public; +})(import_public || (exports.import_public = import_public = {})); +var import_private; +(function (import_private) { + // No Privacy errors - importing private elements + var im_private_c_private = m_private.c_private; + var im_private_e_private = m_private.e_private; + var im_private_f_private = m_private.f_private; + var im_private_v_private = m_private.v_private; + var im_private_mi_private = m_private.mi_private; + // Usage of above decls + var privateUse_im_private_c_private = new im_private_c_private(); + import_private.publicUse_im_private_c_private = new im_private_c_private(); + var privateUse_im_private_e_private = im_private_e_private.Happy; + import_private.publicUse_im_private_e_private = im_private_e_private.Grumpy; + var privateUse_im_private_f_private = im_private_f_private(); + import_private.publicUse_im_private_f_private = im_private_f_private(); + var privateUse_im_private_v_private = im_private_v_private; + import_private.publicUse_im_private_v_private = im_private_v_private; + var privateUse_im_private_i_private; + var privateUse_im_private_mi_private = new im_private_mi_private.c(); + import_private.publicUse_im_private_mi_private = new im_private_mi_private.c(); + var privateUse_im_private_mu_private; + // No privacy Error - importing public elements + var im_private_c_public = m_public.c_public; + var im_private_e_public = m_public.e_public; + var im_private_f_public = m_public.f_public; + var im_private_v_public = m_public.v_public; + var im_private_mi_public = m_public.mi_public; + // Usage of above decls + var privateUse_im_private_c_public = new im_private_c_public(); + import_private.publicUse_im_private_c_public = new im_private_c_public(); + var privateUse_im_private_e_public = im_private_e_public.Happy; + import_private.publicUse_im_private_e_public = im_private_e_public.Grumpy; + var privateUse_im_private_f_public = im_private_f_public(); + import_private.publicUse_im_private_f_public = im_private_f_public(); + var privateUse_im_private_v_public = im_private_v_public; + import_private.publicUse_im_private_v_public = im_private_v_public; + var privateUse_im_private_i_public; + var privateUse_im_private_mi_public = new im_private_mi_public.c(); + import_private.publicUse_im_private_mi_public = new im_private_mi_public.c(); + var privateUse_im_private_mu_public; +})(import_private || (import_private = {})); + + +//// [privacyLocalInternalReferenceImportWithoutExport.d.ts] +declare namespace m_private { + class c_private { + } + enum e_private { + Happy = 0, + Grumpy = 1 + } + function f_private(): c_private; + var v_private: c_private; + interface i_private { + } + namespace mi_private { + class c { + } + } + namespace mu_private { + interface i { + } + } +} +export declare namespace m_public { + class c_public { + } + enum e_public { + Happy = 0, + Grumpy = 1 + } + function f_public(): c_public; + var v_public: number; + interface i_public { + } + namespace mi_public { + class c { + } + } + namespace mu_public { + interface i { + } + } +} +export declare namespace import_public { + import im_private_c_private = m_private.c_private; + import im_private_e_private = m_private.e_private; + import im_private_i_private = m_private.i_private; + import im_private_mi_private = m_private.mi_private; + import im_private_mu_private = m_private.mu_private; + var publicUse_im_private_c_private: im_private_c_private; + var publicUse_im_private_e_private: im_private_e_private; + var publicUse_im_private_f_private: im_private_c_private; + var publicUse_im_private_v_private: im_private_c_private; + var publicUse_im_private_i_private: im_private_i_private; + var publicUse_im_private_mi_private: im_private_mi_private.c; + var publicUse_im_private_mu_private: im_private_mu_private.i; + import im_private_c_public = m_public.c_public; + import im_private_e_public = m_public.e_public; + import im_private_i_public = m_public.i_public; + import im_private_mi_public = m_public.mi_public; + import im_private_mu_public = m_public.mu_public; + var publicUse_im_private_c_public: im_private_c_public; + var publicUse_im_private_e_public: im_private_e_public; + var publicUse_im_private_f_public: im_private_c_public; + var publicUse_im_private_v_public: number; + var publicUse_im_private_i_public: im_private_i_public; + var publicUse_im_private_mi_public: im_private_mi_public.c; + var publicUse_im_private_mu_public: im_private_mu_public.i; +} +export {}; diff --git a/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.symbols b/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.symbols new file mode 100644 index 0000000000000..43349f58e578d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.symbols @@ -0,0 +1,512 @@ +//// [tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts] //// + +=== privacyLocalInternalReferenceImportWithoutExport.ts === +// private elements +namespace m_private { +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) + + export class c_private { +>c_private : Symbol(c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 1, 21)) + } + export enum e_private { +>e_private : Symbol(e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 3, 5)) + + Happy, +>Happy : Symbol(e_private.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 4, 27)) + + Grumpy +>Grumpy : Symbol(e_private.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 5, 14)) + } + export function f_private() { +>f_private : Symbol(f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 7, 5)) + + return new c_private(); +>c_private : Symbol(c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 1, 21)) + } + export var v_private = new c_private(); +>v_private : Symbol(v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 11, 14)) +>c_private : Symbol(c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 1, 21)) + + export interface i_private { +>i_private : Symbol(i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 11, 43)) + } + export namespace mi_private { +>mi_private : Symbol(mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 13, 5)) + + export class c { +>c : Symbol(c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) + } + } + export namespace mu_private { +>mu_private : Symbol(mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 17, 5)) + + export interface i { +>i : Symbol(i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 18, 33)) + } + } +} + +// Public elements +export namespace m_public { +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) + + export class c_public { +>c_public : Symbol(c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 25, 27)) + } + export enum e_public { +>e_public : Symbol(e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 27, 5)) + + Happy, +>Happy : Symbol(e_public.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 28, 26)) + + Grumpy +>Grumpy : Symbol(e_public.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 29, 14)) + } + export function f_public() { +>f_public : Symbol(f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 31, 5)) + + return new c_public(); +>c_public : Symbol(c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 25, 27)) + } + export var v_public = 10; +>v_public : Symbol(v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 35, 14)) + + export interface i_public { +>i_public : Symbol(i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 35, 29)) + } + export namespace mi_public { +>mi_public : Symbol(mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 37, 5)) + + export class c { +>c : Symbol(c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) + } + } + export namespace mu_public { +>mu_public : Symbol(mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 41, 5)) + + export interface i { +>i : Symbol(i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 42, 32)) + } + } +} + +export namespace import_public { +>import_public : Symbol(import_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 46, 1)) + + // No Privacy errors - importing private elements + import im_private_c_private = m_private.c_private; +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 48, 32)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>c_private : Symbol(im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 1, 21)) + + import im_private_e_private = m_private.e_private; +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 50, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>e_private : Symbol(im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 3, 5)) + + import im_private_f_private = m_private.f_private; +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 51, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>f_private : Symbol(im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 7, 5)) + + import im_private_v_private = m_private.v_private; +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 52, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>v_private : Symbol(im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 11, 14)) + + import im_private_i_private = m_private.i_private; +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 53, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>i_private : Symbol(im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 11, 43)) + + import im_private_mi_private = m_private.mi_private; +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 54, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>mi_private : Symbol(im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 13, 5)) + + import im_private_mu_private = m_private.mu_private; +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 55, 56)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>mu_private : Symbol(im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 17, 5)) + + // Usage of above decls + var privateUse_im_private_c_private = new im_private_c_private(); +>privateUse_im_private_c_private : Symbol(privateUse_im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 59, 7)) +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 48, 32)) + + export var publicUse_im_private_c_private = new im_private_c_private(); +>publicUse_im_private_c_private : Symbol(publicUse_im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 60, 14)) +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 48, 32)) + + var privateUse_im_private_e_private = im_private_e_private.Happy; +>privateUse_im_private_e_private : Symbol(privateUse_im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 61, 7)) +>im_private_e_private.Happy : Symbol(im_private_e_private.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 4, 27)) +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 50, 54)) +>Happy : Symbol(im_private_e_private.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 4, 27)) + + export var publicUse_im_private_e_private = im_private_e_private.Grumpy; +>publicUse_im_private_e_private : Symbol(publicUse_im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 62, 14)) +>im_private_e_private.Grumpy : Symbol(im_private_e_private.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 5, 14)) +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 50, 54)) +>Grumpy : Symbol(im_private_e_private.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 5, 14)) + + var privateUse_im_private_f_private = im_private_f_private(); +>privateUse_im_private_f_private : Symbol(privateUse_im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 63, 7)) +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 51, 54)) + + export var publicUse_im_private_f_private = im_private_f_private(); +>publicUse_im_private_f_private : Symbol(publicUse_im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 64, 14)) +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 51, 54)) + + var privateUse_im_private_v_private = im_private_v_private; +>privateUse_im_private_v_private : Symbol(privateUse_im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 65, 7)) +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 52, 54)) + + export var publicUse_im_private_v_private = im_private_v_private; +>publicUse_im_private_v_private : Symbol(publicUse_im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 66, 14)) +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 52, 54)) + + var privateUse_im_private_i_private: im_private_i_private; +>privateUse_im_private_i_private : Symbol(privateUse_im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 67, 7)) +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 53, 54)) + + export var publicUse_im_private_i_private: im_private_i_private; +>publicUse_im_private_i_private : Symbol(publicUse_im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 68, 14)) +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 53, 54)) + + var privateUse_im_private_mi_private = new im_private_mi_private.c(); +>privateUse_im_private_mi_private : Symbol(privateUse_im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 69, 7)) +>im_private_mi_private.c : Symbol(im_private_mi_private.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 54, 54)) +>c : Symbol(im_private_mi_private.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) + + export var publicUse_im_private_mi_private = new im_private_mi_private.c(); +>publicUse_im_private_mi_private : Symbol(publicUse_im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 70, 14)) +>im_private_mi_private.c : Symbol(im_private_mi_private.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 54, 54)) +>c : Symbol(im_private_mi_private.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) + + var privateUse_im_private_mu_private: im_private_mu_private.i; +>privateUse_im_private_mu_private : Symbol(privateUse_im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 71, 7)) +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 55, 56)) +>i : Symbol(im_private_mu_private.i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 18, 33)) + + export var publicUse_im_private_mu_private: im_private_mu_private.i; +>publicUse_im_private_mu_private : Symbol(publicUse_im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 72, 14)) +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 55, 56)) +>i : Symbol(im_private_mu_private.i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 18, 33)) + + + // No Privacy errors - importing public elements + import im_private_c_public = m_public.c_public; +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 72, 72)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>c_public : Symbol(im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 25, 27)) + + import im_private_e_public = m_public.e_public; +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 76, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>e_public : Symbol(im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 27, 5)) + + import im_private_f_public = m_public.f_public; +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 77, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>f_public : Symbol(im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 31, 5)) + + import im_private_v_public = m_public.v_public; +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 78, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>v_public : Symbol(im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 35, 14)) + + import im_private_i_public = m_public.i_public; +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 79, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>i_public : Symbol(im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 35, 29)) + + import im_private_mi_public = m_public.mi_public; +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 80, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>mi_public : Symbol(im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 37, 5)) + + import im_private_mu_public = m_public.mu_public; +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 81, 53)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>mu_public : Symbol(im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 41, 5)) + + // Usage of above decls + var privateUse_im_private_c_public = new im_private_c_public(); +>privateUse_im_private_c_public : Symbol(privateUse_im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 85, 7)) +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 72, 72)) + + export var publicUse_im_private_c_public = new im_private_c_public(); +>publicUse_im_private_c_public : Symbol(publicUse_im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 86, 14)) +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 72, 72)) + + var privateUse_im_private_e_public = im_private_e_public.Happy; +>privateUse_im_private_e_public : Symbol(privateUse_im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 87, 7)) +>im_private_e_public.Happy : Symbol(im_private_e_public.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 28, 26)) +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 76, 51)) +>Happy : Symbol(im_private_e_public.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 28, 26)) + + export var publicUse_im_private_e_public = im_private_e_public.Grumpy; +>publicUse_im_private_e_public : Symbol(publicUse_im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 88, 14)) +>im_private_e_public.Grumpy : Symbol(im_private_e_public.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 29, 14)) +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 76, 51)) +>Grumpy : Symbol(im_private_e_public.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 29, 14)) + + var privateUse_im_private_f_public = im_private_f_public(); +>privateUse_im_private_f_public : Symbol(privateUse_im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 89, 7)) +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 77, 51)) + + export var publicUse_im_private_f_public = im_private_f_public(); +>publicUse_im_private_f_public : Symbol(publicUse_im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 90, 14)) +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 77, 51)) + + var privateUse_im_private_v_public = im_private_v_public; +>privateUse_im_private_v_public : Symbol(privateUse_im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 91, 7)) +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 78, 51)) + + export var publicUse_im_private_v_public = im_private_v_public; +>publicUse_im_private_v_public : Symbol(publicUse_im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 92, 14)) +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 78, 51)) + + var privateUse_im_private_i_public: im_private_i_public; +>privateUse_im_private_i_public : Symbol(privateUse_im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 93, 7)) +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 79, 51)) + + export var publicUse_im_private_i_public: im_private_i_public; +>publicUse_im_private_i_public : Symbol(publicUse_im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 94, 14)) +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 79, 51)) + + var privateUse_im_private_mi_public = new im_private_mi_public.c(); +>privateUse_im_private_mi_public : Symbol(privateUse_im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 95, 7)) +>im_private_mi_public.c : Symbol(im_private_mi_public.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 80, 51)) +>c : Symbol(im_private_mi_public.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) + + export var publicUse_im_private_mi_public = new im_private_mi_public.c(); +>publicUse_im_private_mi_public : Symbol(publicUse_im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 96, 14)) +>im_private_mi_public.c : Symbol(im_private_mi_public.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 80, 51)) +>c : Symbol(im_private_mi_public.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) + + var privateUse_im_private_mu_public: im_private_mu_public.i; +>privateUse_im_private_mu_public : Symbol(privateUse_im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 97, 7)) +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 81, 53)) +>i : Symbol(im_private_mu_public.i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 42, 32)) + + export var publicUse_im_private_mu_public: im_private_mu_public.i; +>publicUse_im_private_mu_public : Symbol(publicUse_im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 98, 14)) +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 81, 53)) +>i : Symbol(im_private_mu_public.i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 42, 32)) +} + +namespace import_private { +>import_private : Symbol(import_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 99, 1)) + + // No Privacy errors - importing private elements + import im_private_c_private = m_private.c_private; +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 101, 26)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>c_private : Symbol(im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 1, 21)) + + import im_private_e_private = m_private.e_private; +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 103, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>e_private : Symbol(im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 3, 5)) + + import im_private_f_private = m_private.f_private; +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 104, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>f_private : Symbol(im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 7, 5)) + + import im_private_v_private = m_private.v_private; +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 105, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>v_private : Symbol(im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 11, 14)) + + import im_private_i_private = m_private.i_private; +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 106, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>i_private : Symbol(im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 11, 43)) + + import im_private_mi_private = m_private.mi_private; +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 107, 54)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>mi_private : Symbol(im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 13, 5)) + + import im_private_mu_private = m_private.mu_private; +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 108, 56)) +>m_private : Symbol(m_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 0, 0)) +>mu_private : Symbol(im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 17, 5)) + + // Usage of above decls + var privateUse_im_private_c_private = new im_private_c_private(); +>privateUse_im_private_c_private : Symbol(privateUse_im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 112, 7)) +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 101, 26)) + + export var publicUse_im_private_c_private = new im_private_c_private(); +>publicUse_im_private_c_private : Symbol(publicUse_im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 113, 14)) +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 101, 26)) + + var privateUse_im_private_e_private = im_private_e_private.Happy; +>privateUse_im_private_e_private : Symbol(privateUse_im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 114, 7)) +>im_private_e_private.Happy : Symbol(im_private_e_private.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 4, 27)) +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 103, 54)) +>Happy : Symbol(im_private_e_private.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 4, 27)) + + export var publicUse_im_private_e_private = im_private_e_private.Grumpy; +>publicUse_im_private_e_private : Symbol(publicUse_im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 115, 14)) +>im_private_e_private.Grumpy : Symbol(im_private_e_private.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 5, 14)) +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 103, 54)) +>Grumpy : Symbol(im_private_e_private.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 5, 14)) + + var privateUse_im_private_f_private = im_private_f_private(); +>privateUse_im_private_f_private : Symbol(privateUse_im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 116, 7)) +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 104, 54)) + + export var publicUse_im_private_f_private = im_private_f_private(); +>publicUse_im_private_f_private : Symbol(publicUse_im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 117, 14)) +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 104, 54)) + + var privateUse_im_private_v_private = im_private_v_private; +>privateUse_im_private_v_private : Symbol(privateUse_im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 118, 7)) +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 105, 54)) + + export var publicUse_im_private_v_private = im_private_v_private; +>publicUse_im_private_v_private : Symbol(publicUse_im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 119, 14)) +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 105, 54)) + + var privateUse_im_private_i_private: im_private_i_private; +>privateUse_im_private_i_private : Symbol(privateUse_im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 120, 7)) +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 106, 54)) + + export var publicUse_im_private_i_private: im_private_i_private; +>publicUse_im_private_i_private : Symbol(publicUse_im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 121, 14)) +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 106, 54)) + + var privateUse_im_private_mi_private = new im_private_mi_private.c(); +>privateUse_im_private_mi_private : Symbol(privateUse_im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 122, 7)) +>im_private_mi_private.c : Symbol(im_private_mi_private.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 107, 54)) +>c : Symbol(im_private_mi_private.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) + + export var publicUse_im_private_mi_private = new im_private_mi_private.c(); +>publicUse_im_private_mi_private : Symbol(publicUse_im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 123, 14)) +>im_private_mi_private.c : Symbol(im_private_mi_private.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 107, 54)) +>c : Symbol(im_private_mi_private.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 14, 33)) + + var privateUse_im_private_mu_private: im_private_mu_private.i; +>privateUse_im_private_mu_private : Symbol(privateUse_im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 124, 7)) +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 108, 56)) +>i : Symbol(im_private_mu_private.i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 18, 33)) + + export var publicUse_im_private_mu_private: im_private_mu_private.i; +>publicUse_im_private_mu_private : Symbol(publicUse_im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 125, 14)) +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 108, 56)) +>i : Symbol(im_private_mu_private.i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 18, 33)) + + // No privacy Error - importing public elements + import im_private_c_public = m_public.c_public; +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 125, 72)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>c_public : Symbol(im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 25, 27)) + + import im_private_e_public = m_public.e_public; +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 128, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>e_public : Symbol(im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 27, 5)) + + import im_private_f_public = m_public.f_public; +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 129, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>f_public : Symbol(im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 31, 5)) + + import im_private_v_public = m_public.v_public; +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 130, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>v_public : Symbol(im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 35, 14)) + + import im_private_i_public = m_public.i_public; +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 131, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>i_public : Symbol(im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 35, 29)) + + import im_private_mi_public = m_public.mi_public; +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 132, 51)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>mi_public : Symbol(im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 37, 5)) + + import im_private_mu_public = m_public.mu_public; +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 133, 53)) +>m_public : Symbol(m_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 22, 1)) +>mu_public : Symbol(im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 41, 5)) + + // Usage of above decls + var privateUse_im_private_c_public = new im_private_c_public(); +>privateUse_im_private_c_public : Symbol(privateUse_im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 137, 7)) +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 125, 72)) + + export var publicUse_im_private_c_public = new im_private_c_public(); +>publicUse_im_private_c_public : Symbol(publicUse_im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 138, 14)) +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 125, 72)) + + var privateUse_im_private_e_public = im_private_e_public.Happy; +>privateUse_im_private_e_public : Symbol(privateUse_im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 139, 7)) +>im_private_e_public.Happy : Symbol(im_private_e_public.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 28, 26)) +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 128, 51)) +>Happy : Symbol(im_private_e_public.Happy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 28, 26)) + + export var publicUse_im_private_e_public = im_private_e_public.Grumpy; +>publicUse_im_private_e_public : Symbol(publicUse_im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 140, 14)) +>im_private_e_public.Grumpy : Symbol(im_private_e_public.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 29, 14)) +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 128, 51)) +>Grumpy : Symbol(im_private_e_public.Grumpy, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 29, 14)) + + var privateUse_im_private_f_public = im_private_f_public(); +>privateUse_im_private_f_public : Symbol(privateUse_im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 141, 7)) +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 129, 51)) + + export var publicUse_im_private_f_public = im_private_f_public(); +>publicUse_im_private_f_public : Symbol(publicUse_im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 142, 14)) +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 129, 51)) + + var privateUse_im_private_v_public = im_private_v_public; +>privateUse_im_private_v_public : Symbol(privateUse_im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 143, 7)) +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 130, 51)) + + export var publicUse_im_private_v_public = im_private_v_public; +>publicUse_im_private_v_public : Symbol(publicUse_im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 144, 14)) +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 130, 51)) + + var privateUse_im_private_i_public: im_private_i_public; +>privateUse_im_private_i_public : Symbol(privateUse_im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 145, 7)) +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 131, 51)) + + export var publicUse_im_private_i_public: im_private_i_public; +>publicUse_im_private_i_public : Symbol(publicUse_im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 146, 14)) +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 131, 51)) + + var privateUse_im_private_mi_public = new im_private_mi_public.c(); +>privateUse_im_private_mi_public : Symbol(privateUse_im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 147, 7)) +>im_private_mi_public.c : Symbol(im_private_mi_public.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 132, 51)) +>c : Symbol(im_private_mi_public.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) + + export var publicUse_im_private_mi_public = new im_private_mi_public.c(); +>publicUse_im_private_mi_public : Symbol(publicUse_im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 148, 14)) +>im_private_mi_public.c : Symbol(im_private_mi_public.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 132, 51)) +>c : Symbol(im_private_mi_public.c, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 38, 32)) + + var privateUse_im_private_mu_public: im_private_mu_public.i; +>privateUse_im_private_mu_public : Symbol(privateUse_im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 149, 7)) +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 133, 53)) +>i : Symbol(im_private_mu_public.i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 42, 32)) + + export var publicUse_im_private_mu_public: im_private_mu_public.i; +>publicUse_im_private_mu_public : Symbol(publicUse_im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 150, 14)) +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 133, 53)) +>i : Symbol(im_private_mu_public.i, Decl(privacyLocalInternalReferenceImportWithoutExport.ts, 42, 32)) +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.types b/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.types new file mode 100644 index 0000000000000..c46648ff6c408 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyLocalInternalReferenceImportWithoutExport.types @@ -0,0 +1,516 @@ +//// [tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts] //// + +=== privacyLocalInternalReferenceImportWithoutExport.ts === +// private elements +namespace m_private { +>m_private : typeof m_private + + export class c_private { +>c_private : c_private + } + export enum e_private { +>e_private : e_private + + Happy, +>Happy : e_private.Happy + + Grumpy +>Grumpy : e_private.Grumpy + } + export function f_private() { +>f_private : () => c_private + + return new c_private(); +>new c_private() : c_private +>c_private : typeof c_private + } + export var v_private = new c_private(); +>v_private : c_private +>new c_private() : c_private +>c_private : typeof c_private + + export interface i_private { + } + export namespace mi_private { +>mi_private : typeof mi_private + + export class c { +>c : c + } + } + export namespace mu_private { + export interface i { + } + } +} + +// Public elements +export namespace m_public { +>m_public : typeof m_public + + export class c_public { +>c_public : c_public + } + export enum e_public { +>e_public : e_public + + Happy, +>Happy : e_public.Happy + + Grumpy +>Grumpy : e_public.Grumpy + } + export function f_public() { +>f_public : () => c_public + + return new c_public(); +>new c_public() : c_public +>c_public : typeof c_public + } + export var v_public = 10; +>v_public : number +>10 : 10 + + export interface i_public { + } + export namespace mi_public { +>mi_public : typeof mi_public + + export class c { +>c : c + } + } + export namespace mu_public { + export interface i { + } + } +} + +export namespace import_public { +>import_public : typeof import_public + + // No Privacy errors - importing private elements + import im_private_c_private = m_private.c_private; +>im_private_c_private : typeof im_private_c_private +>m_private : typeof m_private +>c_private : im_private_c_private + + import im_private_e_private = m_private.e_private; +>im_private_e_private : typeof im_private_e_private +>m_private : typeof m_private +>e_private : im_private_e_private + + import im_private_f_private = m_private.f_private; +>im_private_f_private : () => im_private_c_private +>m_private : typeof m_private +>f_private : () => im_private_c_private + + import im_private_v_private = m_private.v_private; +>im_private_v_private : im_private_c_private +>m_private : typeof m_private +>v_private : im_private_c_private + + import im_private_i_private = m_private.i_private; +>im_private_i_private : any +>m_private : typeof m_private +>i_private : im_private_i_private + + import im_private_mi_private = m_private.mi_private; +>im_private_mi_private : typeof im_private_mi_private +>m_private : typeof m_private +>mi_private : typeof im_private_mi_private + + import im_private_mu_private = m_private.mu_private; +>im_private_mu_private : any +>m_private : typeof m_private +>mu_private : any + + // Usage of above decls + var privateUse_im_private_c_private = new im_private_c_private(); +>privateUse_im_private_c_private : im_private_c_private +>new im_private_c_private() : im_private_c_private +>im_private_c_private : typeof im_private_c_private + + export var publicUse_im_private_c_private = new im_private_c_private(); +>publicUse_im_private_c_private : im_private_c_private +>new im_private_c_private() : im_private_c_private +>im_private_c_private : typeof im_private_c_private + + var privateUse_im_private_e_private = im_private_e_private.Happy; +>privateUse_im_private_e_private : im_private_e_private +>im_private_e_private.Happy : im_private_e_private.Happy +>im_private_e_private : typeof im_private_e_private +>Happy : im_private_e_private.Happy + + export var publicUse_im_private_e_private = im_private_e_private.Grumpy; +>publicUse_im_private_e_private : im_private_e_private +>im_private_e_private.Grumpy : im_private_e_private.Grumpy +>im_private_e_private : typeof im_private_e_private +>Grumpy : im_private_e_private.Grumpy + + var privateUse_im_private_f_private = im_private_f_private(); +>privateUse_im_private_f_private : im_private_c_private +>im_private_f_private() : im_private_c_private +>im_private_f_private : () => im_private_c_private + + export var publicUse_im_private_f_private = im_private_f_private(); +>publicUse_im_private_f_private : im_private_c_private +>im_private_f_private() : im_private_c_private +>im_private_f_private : () => im_private_c_private + + var privateUse_im_private_v_private = im_private_v_private; +>privateUse_im_private_v_private : im_private_c_private +>im_private_v_private : im_private_c_private + + export var publicUse_im_private_v_private = im_private_v_private; +>publicUse_im_private_v_private : im_private_c_private +>im_private_v_private : im_private_c_private + + var privateUse_im_private_i_private: im_private_i_private; +>privateUse_im_private_i_private : im_private_i_private + + export var publicUse_im_private_i_private: im_private_i_private; +>publicUse_im_private_i_private : im_private_i_private + + var privateUse_im_private_mi_private = new im_private_mi_private.c(); +>privateUse_im_private_mi_private : im_private_mi_private.c +>new im_private_mi_private.c() : im_private_mi_private.c +>im_private_mi_private.c : typeof im_private_mi_private.c +>im_private_mi_private : typeof im_private_mi_private +>c : typeof im_private_mi_private.c + + export var publicUse_im_private_mi_private = new im_private_mi_private.c(); +>publicUse_im_private_mi_private : im_private_mi_private.c +>new im_private_mi_private.c() : im_private_mi_private.c +>im_private_mi_private.c : typeof im_private_mi_private.c +>im_private_mi_private : typeof im_private_mi_private +>c : typeof im_private_mi_private.c + + var privateUse_im_private_mu_private: im_private_mu_private.i; +>privateUse_im_private_mu_private : im_private_mu_private.i +>im_private_mu_private : any + + export var publicUse_im_private_mu_private: im_private_mu_private.i; +>publicUse_im_private_mu_private : im_private_mu_private.i +>im_private_mu_private : any + + + // No Privacy errors - importing public elements + import im_private_c_public = m_public.c_public; +>im_private_c_public : typeof im_private_c_public +>m_public : typeof m_public +>c_public : im_private_c_public + + import im_private_e_public = m_public.e_public; +>im_private_e_public : typeof im_private_e_public +>m_public : typeof m_public +>e_public : im_private_e_public + + import im_private_f_public = m_public.f_public; +>im_private_f_public : () => im_private_c_public +>m_public : typeof m_public +>f_public : () => im_private_c_public + + import im_private_v_public = m_public.v_public; +>im_private_v_public : number +>m_public : typeof m_public +>v_public : number + + import im_private_i_public = m_public.i_public; +>im_private_i_public : any +>m_public : typeof m_public +>i_public : im_private_i_public + + import im_private_mi_public = m_public.mi_public; +>im_private_mi_public : typeof im_private_mi_public +>m_public : typeof m_public +>mi_public : typeof im_private_mi_public + + import im_private_mu_public = m_public.mu_public; +>im_private_mu_public : any +>m_public : typeof m_public +>mu_public : any + + // Usage of above decls + var privateUse_im_private_c_public = new im_private_c_public(); +>privateUse_im_private_c_public : im_private_c_public +>new im_private_c_public() : im_private_c_public +>im_private_c_public : typeof im_private_c_public + + export var publicUse_im_private_c_public = new im_private_c_public(); +>publicUse_im_private_c_public : im_private_c_public +>new im_private_c_public() : im_private_c_public +>im_private_c_public : typeof im_private_c_public + + var privateUse_im_private_e_public = im_private_e_public.Happy; +>privateUse_im_private_e_public : im_private_e_public +>im_private_e_public.Happy : im_private_e_public.Happy +>im_private_e_public : typeof im_private_e_public +>Happy : im_private_e_public.Happy + + export var publicUse_im_private_e_public = im_private_e_public.Grumpy; +>publicUse_im_private_e_public : im_private_e_public +>im_private_e_public.Grumpy : im_private_e_public.Grumpy +>im_private_e_public : typeof im_private_e_public +>Grumpy : im_private_e_public.Grumpy + + var privateUse_im_private_f_public = im_private_f_public(); +>privateUse_im_private_f_public : im_private_c_public +>im_private_f_public() : im_private_c_public +>im_private_f_public : () => im_private_c_public + + export var publicUse_im_private_f_public = im_private_f_public(); +>publicUse_im_private_f_public : im_private_c_public +>im_private_f_public() : im_private_c_public +>im_private_f_public : () => im_private_c_public + + var privateUse_im_private_v_public = im_private_v_public; +>privateUse_im_private_v_public : number +>im_private_v_public : number + + export var publicUse_im_private_v_public = im_private_v_public; +>publicUse_im_private_v_public : number +>im_private_v_public : number + + var privateUse_im_private_i_public: im_private_i_public; +>privateUse_im_private_i_public : im_private_i_public + + export var publicUse_im_private_i_public: im_private_i_public; +>publicUse_im_private_i_public : im_private_i_public + + var privateUse_im_private_mi_public = new im_private_mi_public.c(); +>privateUse_im_private_mi_public : im_private_mi_public.c +>new im_private_mi_public.c() : im_private_mi_public.c +>im_private_mi_public.c : typeof im_private_mi_public.c +>im_private_mi_public : typeof im_private_mi_public +>c : typeof im_private_mi_public.c + + export var publicUse_im_private_mi_public = new im_private_mi_public.c(); +>publicUse_im_private_mi_public : im_private_mi_public.c +>new im_private_mi_public.c() : im_private_mi_public.c +>im_private_mi_public.c : typeof im_private_mi_public.c +>im_private_mi_public : typeof im_private_mi_public +>c : typeof im_private_mi_public.c + + var privateUse_im_private_mu_public: im_private_mu_public.i; +>privateUse_im_private_mu_public : im_private_mu_public.i +>im_private_mu_public : any + + export var publicUse_im_private_mu_public: im_private_mu_public.i; +>publicUse_im_private_mu_public : im_private_mu_public.i +>im_private_mu_public : any +} + +namespace import_private { +>import_private : typeof import_private + + // No Privacy errors - importing private elements + import im_private_c_private = m_private.c_private; +>im_private_c_private : typeof im_private_c_private +>m_private : typeof m_private +>c_private : im_private_c_private + + import im_private_e_private = m_private.e_private; +>im_private_e_private : typeof im_private_e_private +>m_private : typeof m_private +>e_private : im_private_e_private + + import im_private_f_private = m_private.f_private; +>im_private_f_private : () => im_private_c_private +>m_private : typeof m_private +>f_private : () => im_private_c_private + + import im_private_v_private = m_private.v_private; +>im_private_v_private : im_private_c_private +>m_private : typeof m_private +>v_private : im_private_c_private + + import im_private_i_private = m_private.i_private; +>im_private_i_private : any +>m_private : typeof m_private +>i_private : im_private_i_private + + import im_private_mi_private = m_private.mi_private; +>im_private_mi_private : typeof im_private_mi_private +>m_private : typeof m_private +>mi_private : typeof im_private_mi_private + + import im_private_mu_private = m_private.mu_private; +>im_private_mu_private : any +>m_private : typeof m_private +>mu_private : any + + // Usage of above decls + var privateUse_im_private_c_private = new im_private_c_private(); +>privateUse_im_private_c_private : im_private_c_private +>new im_private_c_private() : im_private_c_private +>im_private_c_private : typeof im_private_c_private + + export var publicUse_im_private_c_private = new im_private_c_private(); +>publicUse_im_private_c_private : im_private_c_private +>new im_private_c_private() : im_private_c_private +>im_private_c_private : typeof im_private_c_private + + var privateUse_im_private_e_private = im_private_e_private.Happy; +>privateUse_im_private_e_private : im_private_e_private +>im_private_e_private.Happy : im_private_e_private.Happy +>im_private_e_private : typeof im_private_e_private +>Happy : im_private_e_private.Happy + + export var publicUse_im_private_e_private = im_private_e_private.Grumpy; +>publicUse_im_private_e_private : im_private_e_private +>im_private_e_private.Grumpy : im_private_e_private.Grumpy +>im_private_e_private : typeof im_private_e_private +>Grumpy : im_private_e_private.Grumpy + + var privateUse_im_private_f_private = im_private_f_private(); +>privateUse_im_private_f_private : im_private_c_private +>im_private_f_private() : im_private_c_private +>im_private_f_private : () => im_private_c_private + + export var publicUse_im_private_f_private = im_private_f_private(); +>publicUse_im_private_f_private : im_private_c_private +>im_private_f_private() : im_private_c_private +>im_private_f_private : () => im_private_c_private + + var privateUse_im_private_v_private = im_private_v_private; +>privateUse_im_private_v_private : im_private_c_private +>im_private_v_private : im_private_c_private + + export var publicUse_im_private_v_private = im_private_v_private; +>publicUse_im_private_v_private : im_private_c_private +>im_private_v_private : im_private_c_private + + var privateUse_im_private_i_private: im_private_i_private; +>privateUse_im_private_i_private : im_private_i_private + + export var publicUse_im_private_i_private: im_private_i_private; +>publicUse_im_private_i_private : im_private_i_private + + var privateUse_im_private_mi_private = new im_private_mi_private.c(); +>privateUse_im_private_mi_private : im_private_mi_private.c +>new im_private_mi_private.c() : im_private_mi_private.c +>im_private_mi_private.c : typeof im_private_mi_private.c +>im_private_mi_private : typeof im_private_mi_private +>c : typeof im_private_mi_private.c + + export var publicUse_im_private_mi_private = new im_private_mi_private.c(); +>publicUse_im_private_mi_private : im_private_mi_private.c +>new im_private_mi_private.c() : im_private_mi_private.c +>im_private_mi_private.c : typeof im_private_mi_private.c +>im_private_mi_private : typeof im_private_mi_private +>c : typeof im_private_mi_private.c + + var privateUse_im_private_mu_private: im_private_mu_private.i; +>privateUse_im_private_mu_private : im_private_mu_private.i +>im_private_mu_private : any + + export var publicUse_im_private_mu_private: im_private_mu_private.i; +>publicUse_im_private_mu_private : im_private_mu_private.i +>im_private_mu_private : any + + // No privacy Error - importing public elements + import im_private_c_public = m_public.c_public; +>im_private_c_public : typeof im_private_c_public +>m_public : typeof m_public +>c_public : im_private_c_public + + import im_private_e_public = m_public.e_public; +>im_private_e_public : typeof im_private_e_public +>m_public : typeof m_public +>e_public : im_private_e_public + + import im_private_f_public = m_public.f_public; +>im_private_f_public : () => im_private_c_public +>m_public : typeof m_public +>f_public : () => im_private_c_public + + import im_private_v_public = m_public.v_public; +>im_private_v_public : number +>m_public : typeof m_public +>v_public : number + + import im_private_i_public = m_public.i_public; +>im_private_i_public : any +>m_public : typeof m_public +>i_public : im_private_i_public + + import im_private_mi_public = m_public.mi_public; +>im_private_mi_public : typeof im_private_mi_public +>m_public : typeof m_public +>mi_public : typeof im_private_mi_public + + import im_private_mu_public = m_public.mu_public; +>im_private_mu_public : any +>m_public : typeof m_public +>mu_public : any + + // Usage of above decls + var privateUse_im_private_c_public = new im_private_c_public(); +>privateUse_im_private_c_public : im_private_c_public +>new im_private_c_public() : im_private_c_public +>im_private_c_public : typeof im_private_c_public + + export var publicUse_im_private_c_public = new im_private_c_public(); +>publicUse_im_private_c_public : im_private_c_public +>new im_private_c_public() : im_private_c_public +>im_private_c_public : typeof im_private_c_public + + var privateUse_im_private_e_public = im_private_e_public.Happy; +>privateUse_im_private_e_public : im_private_e_public +>im_private_e_public.Happy : im_private_e_public.Happy +>im_private_e_public : typeof im_private_e_public +>Happy : im_private_e_public.Happy + + export var publicUse_im_private_e_public = im_private_e_public.Grumpy; +>publicUse_im_private_e_public : im_private_e_public +>im_private_e_public.Grumpy : im_private_e_public.Grumpy +>im_private_e_public : typeof im_private_e_public +>Grumpy : im_private_e_public.Grumpy + + var privateUse_im_private_f_public = im_private_f_public(); +>privateUse_im_private_f_public : im_private_c_public +>im_private_f_public() : im_private_c_public +>im_private_f_public : () => im_private_c_public + + export var publicUse_im_private_f_public = im_private_f_public(); +>publicUse_im_private_f_public : im_private_c_public +>im_private_f_public() : im_private_c_public +>im_private_f_public : () => im_private_c_public + + var privateUse_im_private_v_public = im_private_v_public; +>privateUse_im_private_v_public : number +>im_private_v_public : number + + export var publicUse_im_private_v_public = im_private_v_public; +>publicUse_im_private_v_public : number +>im_private_v_public : number + + var privateUse_im_private_i_public: im_private_i_public; +>privateUse_im_private_i_public : im_private_i_public + + export var publicUse_im_private_i_public: im_private_i_public; +>publicUse_im_private_i_public : im_private_i_public + + var privateUse_im_private_mi_public = new im_private_mi_public.c(); +>privateUse_im_private_mi_public : im_private_mi_public.c +>new im_private_mi_public.c() : im_private_mi_public.c +>im_private_mi_public.c : typeof im_private_mi_public.c +>im_private_mi_public : typeof im_private_mi_public +>c : typeof im_private_mi_public.c + + export var publicUse_im_private_mi_public = new im_private_mi_public.c(); +>publicUse_im_private_mi_public : im_private_mi_public.c +>new im_private_mi_public.c() : im_private_mi_public.c +>im_private_mi_public.c : typeof im_private_mi_public.c +>im_private_mi_public : typeof im_private_mi_public +>c : typeof im_private_mi_public.c + + var privateUse_im_private_mu_public: im_private_mu_public.i; +>privateUse_im_private_mu_public : im_private_mu_public.i +>im_private_mu_public : any + + export var publicUse_im_private_mu_public: im_private_mu_public.i; +>publicUse_im_private_mu_public : im_private_mu_public.i +>im_private_mu_public : any +} diff --git a/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.js b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.js new file mode 100644 index 0000000000000..40f5e263000d5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.js @@ -0,0 +1,263 @@ +//// [tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts] //// + +//// [privacyTopLevelInternalReferenceImportWithExport.ts] +// private elements +namespace m_private { + export class c_private { + } + export enum e_private { + Happy, + Grumpy + } + export function f_private() { + return new c_private(); + } + export var v_private = new c_private(); + export interface i_private { + } + export namespace mi_private { + export class c { + } + } + export namespace mu_private { + export interface i { + } + } +} + +// Public elements +export namespace m_public { + export class c_public { + } + export enum e_public { + Happy, + Grumpy + } + export function f_public() { + return new c_public(); + } + export var v_public = 10; + export interface i_public { + } + export namespace mi_public { + export class c { + } + } + export namespace mu_public { + export interface i { + } + } +} + +// Privacy errors - importing private elements +export import im_public_c_private = m_private.c_private; +export import im_public_e_private = m_private.e_private; +export import im_public_f_private = m_private.f_private; +export import im_public_v_private = m_private.v_private; +export import im_public_i_private = m_private.i_private; +export import im_public_mi_private = m_private.mi_private; +export import im_public_mu_private = m_private.mu_private; + +// Usage of privacy error imports +var privateUse_im_public_c_private = new im_public_c_private(); +export var publicUse_im_public_c_private = new im_public_c_private(); +var privateUse_im_public_e_private = im_public_e_private.Happy; +export var publicUse_im_public_e_private = im_public_e_private.Grumpy; +var privateUse_im_public_f_private = im_public_f_private(); +export var publicUse_im_public_f_private = im_public_f_private(); +var privateUse_im_public_v_private = im_public_v_private; +export var publicUse_im_public_v_private = im_public_v_private; +var privateUse_im_public_i_private: im_public_i_private; +export var publicUse_im_public_i_private: im_public_i_private; +var privateUse_im_public_mi_private = new im_public_mi_private.c(); +export var publicUse_im_public_mi_private = new im_public_mi_private.c(); +var privateUse_im_public_mu_private: im_public_mu_private.i; +export var publicUse_im_public_mu_private: im_public_mu_private.i; + + +// No Privacy errors - importing public elements +export import im_public_c_public = m_public.c_public; +export import im_public_e_public = m_public.e_public; +export import im_public_f_public = m_public.f_public; +export import im_public_v_public = m_public.v_public; +export import im_public_i_public = m_public.i_public; +export import im_public_mi_public = m_public.mi_public; +export import im_public_mu_public = m_public.mu_public; + +// Usage of above decls +var privateUse_im_public_c_public = new im_public_c_public(); +export var publicUse_im_public_c_public = new im_public_c_public(); +var privateUse_im_public_e_public = im_public_e_public.Happy; +export var publicUse_im_public_e_public = im_public_e_public.Grumpy; +var privateUse_im_public_f_public = im_public_f_public(); +export var publicUse_im_public_f_public = im_public_f_public(); +var privateUse_im_public_v_public = im_public_v_public; +export var publicUse_im_public_v_public = im_public_v_public; +var privateUse_im_public_i_public: im_public_i_public; +export var publicUse_im_public_i_public: im_public_i_public; +var privateUse_im_public_mi_public = new im_public_mi_public.c(); +export var publicUse_im_public_mi_public = new im_public_mi_public.c(); +var privateUse_im_public_mu_public: im_public_mu_public.i; +export var publicUse_im_public_mu_public: im_public_mu_public.i; + + +//// [privacyTopLevelInternalReferenceImportWithExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.publicUse_im_public_mu_public = exports.publicUse_im_public_mi_public = exports.publicUse_im_public_i_public = exports.publicUse_im_public_v_public = exports.publicUse_im_public_f_public = exports.publicUse_im_public_e_public = exports.publicUse_im_public_c_public = exports.im_public_mi_public = exports.im_public_v_public = exports.im_public_f_public = exports.im_public_e_public = exports.im_public_c_public = exports.publicUse_im_public_mu_private = exports.publicUse_im_public_mi_private = exports.publicUse_im_public_i_private = exports.publicUse_im_public_v_private = exports.publicUse_im_public_f_private = exports.publicUse_im_public_e_private = exports.publicUse_im_public_c_private = exports.im_public_mi_private = exports.im_public_v_private = exports.im_public_f_private = exports.im_public_e_private = exports.im_public_c_private = exports.m_public = void 0; +// private elements +var m_private; +(function (m_private) { + class c_private { + } + m_private.c_private = c_private; + let e_private; + (function (e_private) { + e_private[e_private["Happy"] = 0] = "Happy"; + e_private[e_private["Grumpy"] = 1] = "Grumpy"; + })(e_private = m_private.e_private || (m_private.e_private = {})); + function f_private() { + return new c_private(); + } + m_private.f_private = f_private; + m_private.v_private = new c_private(); + let mi_private; + (function (mi_private) { + class c { + } + mi_private.c = c; + })(mi_private = m_private.mi_private || (m_private.mi_private = {})); +})(m_private || (m_private = {})); +// Public elements +var m_public; +(function (m_public) { + class c_public { + } + m_public.c_public = c_public; + let e_public; + (function (e_public) { + e_public[e_public["Happy"] = 0] = "Happy"; + e_public[e_public["Grumpy"] = 1] = "Grumpy"; + })(e_public = m_public.e_public || (m_public.e_public = {})); + function f_public() { + return new c_public(); + } + m_public.f_public = f_public; + m_public.v_public = 10; + let mi_public; + (function (mi_public) { + class c { + } + mi_public.c = c; + })(mi_public = m_public.mi_public || (m_public.mi_public = {})); +})(m_public || (exports.m_public = m_public = {})); +// Privacy errors - importing private elements +exports.im_public_c_private = m_private.c_private; +exports.im_public_e_private = m_private.e_private; +exports.im_public_f_private = m_private.f_private; +exports.im_public_v_private = m_private.v_private; +exports.im_public_mi_private = m_private.mi_private; +// Usage of privacy error imports +var privateUse_im_public_c_private = new exports.im_public_c_private(); +exports.publicUse_im_public_c_private = new exports.im_public_c_private(); +var privateUse_im_public_e_private = exports.im_public_e_private.Happy; +exports.publicUse_im_public_e_private = exports.im_public_e_private.Grumpy; +var privateUse_im_public_f_private = (0, exports.im_public_f_private)(); +exports.publicUse_im_public_f_private = (0, exports.im_public_f_private)(); +var privateUse_im_public_v_private = exports.im_public_v_private; +exports.publicUse_im_public_v_private = exports.im_public_v_private; +var privateUse_im_public_i_private; +var privateUse_im_public_mi_private = new exports.im_public_mi_private.c(); +exports.publicUse_im_public_mi_private = new exports.im_public_mi_private.c(); +var privateUse_im_public_mu_private; +// No Privacy errors - importing public elements +exports.im_public_c_public = m_public.c_public; +exports.im_public_e_public = m_public.e_public; +exports.im_public_f_public = m_public.f_public; +exports.im_public_v_public = m_public.v_public; +exports.im_public_mi_public = m_public.mi_public; +// Usage of above decls +var privateUse_im_public_c_public = new exports.im_public_c_public(); +exports.publicUse_im_public_c_public = new exports.im_public_c_public(); +var privateUse_im_public_e_public = exports.im_public_e_public.Happy; +exports.publicUse_im_public_e_public = exports.im_public_e_public.Grumpy; +var privateUse_im_public_f_public = (0, exports.im_public_f_public)(); +exports.publicUse_im_public_f_public = (0, exports.im_public_f_public)(); +var privateUse_im_public_v_public = exports.im_public_v_public; +exports.publicUse_im_public_v_public = exports.im_public_v_public; +var privateUse_im_public_i_public; +var privateUse_im_public_mi_public = new exports.im_public_mi_public.c(); +exports.publicUse_im_public_mi_public = new exports.im_public_mi_public.c(); +var privateUse_im_public_mu_public; + + +//// [privacyTopLevelInternalReferenceImportWithExport.d.ts] +declare namespace m_private { + class c_private { + } + enum e_private { + Happy = 0, + Grumpy = 1 + } + function f_private(): c_private; + var v_private: c_private; + interface i_private { + } + namespace mi_private { + class c { + } + } + namespace mu_private { + interface i { + } + } +} +export declare namespace m_public { + class c_public { + } + enum e_public { + Happy = 0, + Grumpy = 1 + } + function f_public(): c_public; + var v_public: number; + interface i_public { + } + namespace mi_public { + class c { + } + } + namespace mu_public { + interface i { + } + } +} +export import im_public_c_private = m_private.c_private; +export import im_public_e_private = m_private.e_private; +export import im_public_f_private = m_private.f_private; +export import im_public_v_private = m_private.v_private; +export import im_public_i_private = m_private.i_private; +export import im_public_mi_private = m_private.mi_private; +export import im_public_mu_private = m_private.mu_private; +export declare var publicUse_im_public_c_private: im_public_c_private; +export declare var publicUse_im_public_e_private: im_public_e_private; +export declare var publicUse_im_public_f_private: im_public_c_private; +export declare var publicUse_im_public_v_private: im_public_c_private; +export declare var publicUse_im_public_i_private: im_public_i_private; +export declare var publicUse_im_public_mi_private: im_public_mi_private.c; +export declare var publicUse_im_public_mu_private: im_public_mu_private.i; +export import im_public_c_public = m_public.c_public; +export import im_public_e_public = m_public.e_public; +export import im_public_f_public = m_public.f_public; +export import im_public_v_public = m_public.v_public; +export import im_public_i_public = m_public.i_public; +export import im_public_mi_public = m_public.mi_public; +export import im_public_mu_public = m_public.mu_public; +export declare var publicUse_im_public_c_public: im_public_c_public; +export declare var publicUse_im_public_e_public: im_public_e_public; +export declare var publicUse_im_public_f_public: im_public_c_public; +export declare var publicUse_im_public_v_public: number; +export declare var publicUse_im_public_i_public: im_public_i_public; +export declare var publicUse_im_public_mi_public: im_public_mi_public.c; +export declare var publicUse_im_public_mu_public: im_public_mu_public.i; +export {}; diff --git a/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.symbols b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.symbols new file mode 100644 index 0000000000000..e3e53fca8aab1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.symbols @@ -0,0 +1,299 @@ +//// [tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts] //// + +=== privacyTopLevelInternalReferenceImportWithExport.ts === +// private elements +namespace m_private { +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 0, 0)) + + export class c_private { +>c_private : Symbol(c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 1, 21)) + } + export enum e_private { +>e_private : Symbol(e_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 3, 5)) + + Happy, +>Happy : Symbol(im_public_e_private.Happy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 4, 27)) + + Grumpy +>Grumpy : Symbol(im_public_e_private.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 5, 14)) + } + export function f_private() { +>f_private : Symbol(f_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 7, 5)) + + return new c_private(); +>c_private : Symbol(c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 1, 21)) + } + export var v_private = new c_private(); +>v_private : Symbol(v_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 11, 14)) +>c_private : Symbol(c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 1, 21)) + + export interface i_private { +>i_private : Symbol(i_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 11, 43)) + } + export namespace mi_private { +>mi_private : Symbol(mi_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 13, 5)) + + export class c { +>c : Symbol(c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 14, 33)) + } + } + export namespace mu_private { +>mu_private : Symbol(mu_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 17, 5)) + + export interface i { +>i : Symbol(i, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 18, 33)) + } + } +} + +// Public elements +export namespace m_public { +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 22, 1)) + + export class c_public { +>c_public : Symbol(c_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 25, 27)) + } + export enum e_public { +>e_public : Symbol(e_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 27, 5)) + + Happy, +>Happy : Symbol(im_public_e_public.Happy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 28, 26)) + + Grumpy +>Grumpy : Symbol(im_public_e_public.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 29, 14)) + } + export function f_public() { +>f_public : Symbol(f_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 31, 5)) + + return new c_public(); +>c_public : Symbol(c_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 25, 27)) + } + export var v_public = 10; +>v_public : Symbol(v_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 35, 14)) + + export interface i_public { +>i_public : Symbol(i_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 35, 29)) + } + export namespace mi_public { +>mi_public : Symbol(mi_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 37, 5)) + + export class c { +>c : Symbol(c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 38, 32)) + } + } + export namespace mu_public { +>mu_public : Symbol(mu_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 41, 5)) + + export interface i { +>i : Symbol(i, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 42, 32)) + } + } +} + +// Privacy errors - importing private elements +export import im_public_c_private = m_private.c_private; +>im_public_c_private : Symbol(im_public_c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 46, 1)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 0, 0)) +>c_private : Symbol(im_public_c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 1, 21)) + +export import im_public_e_private = m_private.e_private; +>im_public_e_private : Symbol(im_public_e_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 49, 56)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 0, 0)) +>e_private : Symbol(im_public_e_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 3, 5)) + +export import im_public_f_private = m_private.f_private; +>im_public_f_private : Symbol(im_public_f_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 50, 56)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 0, 0)) +>f_private : Symbol(im_public_f_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 7, 5)) + +export import im_public_v_private = m_private.v_private; +>im_public_v_private : Symbol(im_public_v_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 51, 56)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 0, 0)) +>v_private : Symbol(im_public_v_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 11, 14)) + +export import im_public_i_private = m_private.i_private; +>im_public_i_private : Symbol(im_public_i_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 52, 56)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 0, 0)) +>i_private : Symbol(im_public_i_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 11, 43)) + +export import im_public_mi_private = m_private.mi_private; +>im_public_mi_private : Symbol(im_public_mi_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 53, 56)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 0, 0)) +>mi_private : Symbol(im_public_mi_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 13, 5)) + +export import im_public_mu_private = m_private.mu_private; +>im_public_mu_private : Symbol(im_public_mu_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 54, 58)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 0, 0)) +>mu_private : Symbol(im_public_mu_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 17, 5)) + +// Usage of privacy error imports +var privateUse_im_public_c_private = new im_public_c_private(); +>privateUse_im_public_c_private : Symbol(privateUse_im_public_c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 58, 3)) +>im_public_c_private : Symbol(im_public_c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 46, 1)) + +export var publicUse_im_public_c_private = new im_public_c_private(); +>publicUse_im_public_c_private : Symbol(publicUse_im_public_c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 59, 10)) +>im_public_c_private : Symbol(im_public_c_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 46, 1)) + +var privateUse_im_public_e_private = im_public_e_private.Happy; +>privateUse_im_public_e_private : Symbol(privateUse_im_public_e_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 60, 3)) +>im_public_e_private.Happy : Symbol(im_public_e_private.Happy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 4, 27)) +>im_public_e_private : Symbol(im_public_e_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 49, 56)) +>Happy : Symbol(im_public_e_private.Happy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 4, 27)) + +export var publicUse_im_public_e_private = im_public_e_private.Grumpy; +>publicUse_im_public_e_private : Symbol(publicUse_im_public_e_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 61, 10)) +>im_public_e_private.Grumpy : Symbol(im_public_e_private.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 5, 14)) +>im_public_e_private : Symbol(im_public_e_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 49, 56)) +>Grumpy : Symbol(im_public_e_private.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 5, 14)) + +var privateUse_im_public_f_private = im_public_f_private(); +>privateUse_im_public_f_private : Symbol(privateUse_im_public_f_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 62, 3)) +>im_public_f_private : Symbol(im_public_f_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 50, 56)) + +export var publicUse_im_public_f_private = im_public_f_private(); +>publicUse_im_public_f_private : Symbol(publicUse_im_public_f_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 63, 10)) +>im_public_f_private : Symbol(im_public_f_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 50, 56)) + +var privateUse_im_public_v_private = im_public_v_private; +>privateUse_im_public_v_private : Symbol(privateUse_im_public_v_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 64, 3)) +>im_public_v_private : Symbol(im_public_v_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 51, 56)) + +export var publicUse_im_public_v_private = im_public_v_private; +>publicUse_im_public_v_private : Symbol(publicUse_im_public_v_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 65, 10)) +>im_public_v_private : Symbol(im_public_v_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 51, 56)) + +var privateUse_im_public_i_private: im_public_i_private; +>privateUse_im_public_i_private : Symbol(privateUse_im_public_i_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 66, 3)) +>im_public_i_private : Symbol(im_public_i_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 52, 56)) + +export var publicUse_im_public_i_private: im_public_i_private; +>publicUse_im_public_i_private : Symbol(publicUse_im_public_i_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 67, 10)) +>im_public_i_private : Symbol(im_public_i_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 52, 56)) + +var privateUse_im_public_mi_private = new im_public_mi_private.c(); +>privateUse_im_public_mi_private : Symbol(privateUse_im_public_mi_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 68, 3)) +>im_public_mi_private.c : Symbol(im_public_mi_private.c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 14, 33)) +>im_public_mi_private : Symbol(im_public_mi_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 53, 56)) +>c : Symbol(im_public_mi_private.c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 14, 33)) + +export var publicUse_im_public_mi_private = new im_public_mi_private.c(); +>publicUse_im_public_mi_private : Symbol(publicUse_im_public_mi_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 69, 10)) +>im_public_mi_private.c : Symbol(im_public_mi_private.c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 14, 33)) +>im_public_mi_private : Symbol(im_public_mi_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 53, 56)) +>c : Symbol(im_public_mi_private.c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 14, 33)) + +var privateUse_im_public_mu_private: im_public_mu_private.i; +>privateUse_im_public_mu_private : Symbol(privateUse_im_public_mu_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 70, 3)) +>im_public_mu_private : Symbol(im_public_mu_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 54, 58)) +>i : Symbol(im_public_mu_private.i, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 18, 33)) + +export var publicUse_im_public_mu_private: im_public_mu_private.i; +>publicUse_im_public_mu_private : Symbol(publicUse_im_public_mu_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 71, 10)) +>im_public_mu_private : Symbol(im_public_mu_private, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 54, 58)) +>i : Symbol(im_public_mu_private.i, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 18, 33)) + + +// No Privacy errors - importing public elements +export import im_public_c_public = m_public.c_public; +>im_public_c_public : Symbol(im_public_c_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 71, 66)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 22, 1)) +>c_public : Symbol(im_public_c_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 25, 27)) + +export import im_public_e_public = m_public.e_public; +>im_public_e_public : Symbol(im_public_e_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 75, 53)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 22, 1)) +>e_public : Symbol(im_public_e_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 27, 5)) + +export import im_public_f_public = m_public.f_public; +>im_public_f_public : Symbol(im_public_f_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 76, 53)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 22, 1)) +>f_public : Symbol(im_public_f_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 31, 5)) + +export import im_public_v_public = m_public.v_public; +>im_public_v_public : Symbol(im_public_v_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 77, 53)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 22, 1)) +>v_public : Symbol(im_public_v_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 35, 14)) + +export import im_public_i_public = m_public.i_public; +>im_public_i_public : Symbol(im_public_i_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 78, 53)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 22, 1)) +>i_public : Symbol(im_public_i_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 35, 29)) + +export import im_public_mi_public = m_public.mi_public; +>im_public_mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 79, 53)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 22, 1)) +>mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 37, 5)) + +export import im_public_mu_public = m_public.mu_public; +>im_public_mu_public : Symbol(im_public_mu_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 80, 55)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 22, 1)) +>mu_public : Symbol(im_public_mu_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 41, 5)) + +// Usage of above decls +var privateUse_im_public_c_public = new im_public_c_public(); +>privateUse_im_public_c_public : Symbol(privateUse_im_public_c_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 84, 3)) +>im_public_c_public : Symbol(im_public_c_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 71, 66)) + +export var publicUse_im_public_c_public = new im_public_c_public(); +>publicUse_im_public_c_public : Symbol(publicUse_im_public_c_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 85, 10)) +>im_public_c_public : Symbol(im_public_c_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 71, 66)) + +var privateUse_im_public_e_public = im_public_e_public.Happy; +>privateUse_im_public_e_public : Symbol(privateUse_im_public_e_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 86, 3)) +>im_public_e_public.Happy : Symbol(im_public_e_public.Happy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 28, 26)) +>im_public_e_public : Symbol(im_public_e_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 75, 53)) +>Happy : Symbol(im_public_e_public.Happy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 28, 26)) + +export var publicUse_im_public_e_public = im_public_e_public.Grumpy; +>publicUse_im_public_e_public : Symbol(publicUse_im_public_e_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 87, 10)) +>im_public_e_public.Grumpy : Symbol(im_public_e_public.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 29, 14)) +>im_public_e_public : Symbol(im_public_e_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 75, 53)) +>Grumpy : Symbol(im_public_e_public.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 29, 14)) + +var privateUse_im_public_f_public = im_public_f_public(); +>privateUse_im_public_f_public : Symbol(privateUse_im_public_f_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 88, 3)) +>im_public_f_public : Symbol(im_public_f_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 76, 53)) + +export var publicUse_im_public_f_public = im_public_f_public(); +>publicUse_im_public_f_public : Symbol(publicUse_im_public_f_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 89, 10)) +>im_public_f_public : Symbol(im_public_f_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 76, 53)) + +var privateUse_im_public_v_public = im_public_v_public; +>privateUse_im_public_v_public : Symbol(privateUse_im_public_v_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 90, 3)) +>im_public_v_public : Symbol(im_public_v_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 77, 53)) + +export var publicUse_im_public_v_public = im_public_v_public; +>publicUse_im_public_v_public : Symbol(publicUse_im_public_v_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 91, 10)) +>im_public_v_public : Symbol(im_public_v_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 77, 53)) + +var privateUse_im_public_i_public: im_public_i_public; +>privateUse_im_public_i_public : Symbol(privateUse_im_public_i_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 92, 3)) +>im_public_i_public : Symbol(im_public_i_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 78, 53)) + +export var publicUse_im_public_i_public: im_public_i_public; +>publicUse_im_public_i_public : Symbol(publicUse_im_public_i_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 93, 10)) +>im_public_i_public : Symbol(im_public_i_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 78, 53)) + +var privateUse_im_public_mi_public = new im_public_mi_public.c(); +>privateUse_im_public_mi_public : Symbol(privateUse_im_public_mi_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 94, 3)) +>im_public_mi_public.c : Symbol(im_public_mi_public.c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 38, 32)) +>im_public_mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 79, 53)) +>c : Symbol(im_public_mi_public.c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 38, 32)) + +export var publicUse_im_public_mi_public = new im_public_mi_public.c(); +>publicUse_im_public_mi_public : Symbol(publicUse_im_public_mi_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 95, 10)) +>im_public_mi_public.c : Symbol(im_public_mi_public.c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 38, 32)) +>im_public_mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 79, 53)) +>c : Symbol(im_public_mi_public.c, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 38, 32)) + +var privateUse_im_public_mu_public: im_public_mu_public.i; +>privateUse_im_public_mu_public : Symbol(privateUse_im_public_mu_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 96, 3)) +>im_public_mu_public : Symbol(im_public_mu_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 80, 55)) +>i : Symbol(im_public_mu_public.i, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 42, 32)) + +export var publicUse_im_public_mu_public: im_public_mu_public.i; +>publicUse_im_public_mu_public : Symbol(publicUse_im_public_mu_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 97, 10)) +>im_public_mu_public : Symbol(im_public_mu_public, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 80, 55)) +>i : Symbol(im_public_mu_public.i, Decl(privacyTopLevelInternalReferenceImportWithExport.ts, 42, 32)) + diff --git a/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.types b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.types new file mode 100644 index 0000000000000..4d3649e85d461 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithExport.types @@ -0,0 +1,299 @@ +//// [tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts] //// + +=== privacyTopLevelInternalReferenceImportWithExport.ts === +// private elements +namespace m_private { +>m_private : typeof m_private + + export class c_private { +>c_private : c_private + } + export enum e_private { +>e_private : e_private + + Happy, +>Happy : e_private.Happy + + Grumpy +>Grumpy : e_private.Grumpy + } + export function f_private() { +>f_private : () => c_private + + return new c_private(); +>new c_private() : c_private +>c_private : typeof c_private + } + export var v_private = new c_private(); +>v_private : c_private +>new c_private() : c_private +>c_private : typeof c_private + + export interface i_private { + } + export namespace mi_private { +>mi_private : typeof mi_private + + export class c { +>c : c + } + } + export namespace mu_private { + export interface i { + } + } +} + +// Public elements +export namespace m_public { +>m_public : typeof m_public + + export class c_public { +>c_public : c_public + } + export enum e_public { +>e_public : e_public + + Happy, +>Happy : e_public.Happy + + Grumpy +>Grumpy : e_public.Grumpy + } + export function f_public() { +>f_public : () => c_public + + return new c_public(); +>new c_public() : c_public +>c_public : typeof c_public + } + export var v_public = 10; +>v_public : number +>10 : 10 + + export interface i_public { + } + export namespace mi_public { +>mi_public : typeof mi_public + + export class c { +>c : c + } + } + export namespace mu_public { + export interface i { + } + } +} + +// Privacy errors - importing private elements +export import im_public_c_private = m_private.c_private; +>im_public_c_private : typeof im_public_c_private +>m_private : typeof m_private +>c_private : im_public_c_private + +export import im_public_e_private = m_private.e_private; +>im_public_e_private : typeof im_public_e_private +>m_private : typeof m_private +>e_private : im_public_e_private + +export import im_public_f_private = m_private.f_private; +>im_public_f_private : () => im_public_c_private +>m_private : typeof m_private +>f_private : () => im_public_c_private + +export import im_public_v_private = m_private.v_private; +>im_public_v_private : im_public_c_private +>m_private : typeof m_private +>v_private : im_public_c_private + +export import im_public_i_private = m_private.i_private; +>im_public_i_private : any +>m_private : typeof m_private +>i_private : im_public_i_private + +export import im_public_mi_private = m_private.mi_private; +>im_public_mi_private : typeof im_public_mi_private +>m_private : typeof m_private +>mi_private : typeof im_public_mi_private + +export import im_public_mu_private = m_private.mu_private; +>im_public_mu_private : any +>m_private : typeof m_private +>mu_private : any + +// Usage of privacy error imports +var privateUse_im_public_c_private = new im_public_c_private(); +>privateUse_im_public_c_private : im_public_c_private +>new im_public_c_private() : im_public_c_private +>im_public_c_private : typeof im_public_c_private + +export var publicUse_im_public_c_private = new im_public_c_private(); +>publicUse_im_public_c_private : im_public_c_private +>new im_public_c_private() : im_public_c_private +>im_public_c_private : typeof im_public_c_private + +var privateUse_im_public_e_private = im_public_e_private.Happy; +>privateUse_im_public_e_private : im_public_e_private +>im_public_e_private.Happy : im_public_e_private.Happy +>im_public_e_private : typeof im_public_e_private +>Happy : im_public_e_private.Happy + +export var publicUse_im_public_e_private = im_public_e_private.Grumpy; +>publicUse_im_public_e_private : im_public_e_private +>im_public_e_private.Grumpy : im_public_e_private.Grumpy +>im_public_e_private : typeof im_public_e_private +>Grumpy : im_public_e_private.Grumpy + +var privateUse_im_public_f_private = im_public_f_private(); +>privateUse_im_public_f_private : im_public_c_private +>im_public_f_private() : im_public_c_private +>im_public_f_private : () => im_public_c_private + +export var publicUse_im_public_f_private = im_public_f_private(); +>publicUse_im_public_f_private : im_public_c_private +>im_public_f_private() : im_public_c_private +>im_public_f_private : () => im_public_c_private + +var privateUse_im_public_v_private = im_public_v_private; +>privateUse_im_public_v_private : im_public_c_private +>im_public_v_private : im_public_c_private + +export var publicUse_im_public_v_private = im_public_v_private; +>publicUse_im_public_v_private : im_public_c_private +>im_public_v_private : im_public_c_private + +var privateUse_im_public_i_private: im_public_i_private; +>privateUse_im_public_i_private : im_public_i_private + +export var publicUse_im_public_i_private: im_public_i_private; +>publicUse_im_public_i_private : im_public_i_private + +var privateUse_im_public_mi_private = new im_public_mi_private.c(); +>privateUse_im_public_mi_private : im_public_mi_private.c +>new im_public_mi_private.c() : im_public_mi_private.c +>im_public_mi_private.c : typeof im_public_mi_private.c +>im_public_mi_private : typeof im_public_mi_private +>c : typeof im_public_mi_private.c + +export var publicUse_im_public_mi_private = new im_public_mi_private.c(); +>publicUse_im_public_mi_private : im_public_mi_private.c +>new im_public_mi_private.c() : im_public_mi_private.c +>im_public_mi_private.c : typeof im_public_mi_private.c +>im_public_mi_private : typeof im_public_mi_private +>c : typeof im_public_mi_private.c + +var privateUse_im_public_mu_private: im_public_mu_private.i; +>privateUse_im_public_mu_private : im_public_mu_private.i +>im_public_mu_private : any + +export var publicUse_im_public_mu_private: im_public_mu_private.i; +>publicUse_im_public_mu_private : im_public_mu_private.i +>im_public_mu_private : any + + +// No Privacy errors - importing public elements +export import im_public_c_public = m_public.c_public; +>im_public_c_public : typeof im_public_c_public +>m_public : typeof m_public +>c_public : im_public_c_public + +export import im_public_e_public = m_public.e_public; +>im_public_e_public : typeof im_public_e_public +>m_public : typeof m_public +>e_public : im_public_e_public + +export import im_public_f_public = m_public.f_public; +>im_public_f_public : () => im_public_c_public +>m_public : typeof m_public +>f_public : () => im_public_c_public + +export import im_public_v_public = m_public.v_public; +>im_public_v_public : number +>m_public : typeof m_public +>v_public : number + +export import im_public_i_public = m_public.i_public; +>im_public_i_public : any +>m_public : typeof m_public +>i_public : im_public_i_public + +export import im_public_mi_public = m_public.mi_public; +>im_public_mi_public : typeof im_public_mi_public +>m_public : typeof m_public +>mi_public : typeof im_public_mi_public + +export import im_public_mu_public = m_public.mu_public; +>im_public_mu_public : any +>m_public : typeof m_public +>mu_public : any + +// Usage of above decls +var privateUse_im_public_c_public = new im_public_c_public(); +>privateUse_im_public_c_public : im_public_c_public +>new im_public_c_public() : im_public_c_public +>im_public_c_public : typeof im_public_c_public + +export var publicUse_im_public_c_public = new im_public_c_public(); +>publicUse_im_public_c_public : im_public_c_public +>new im_public_c_public() : im_public_c_public +>im_public_c_public : typeof im_public_c_public + +var privateUse_im_public_e_public = im_public_e_public.Happy; +>privateUse_im_public_e_public : im_public_e_public +>im_public_e_public.Happy : im_public_e_public.Happy +>im_public_e_public : typeof im_public_e_public +>Happy : im_public_e_public.Happy + +export var publicUse_im_public_e_public = im_public_e_public.Grumpy; +>publicUse_im_public_e_public : im_public_e_public +>im_public_e_public.Grumpy : im_public_e_public.Grumpy +>im_public_e_public : typeof im_public_e_public +>Grumpy : im_public_e_public.Grumpy + +var privateUse_im_public_f_public = im_public_f_public(); +>privateUse_im_public_f_public : im_public_c_public +>im_public_f_public() : im_public_c_public +>im_public_f_public : () => im_public_c_public + +export var publicUse_im_public_f_public = im_public_f_public(); +>publicUse_im_public_f_public : im_public_c_public +>im_public_f_public() : im_public_c_public +>im_public_f_public : () => im_public_c_public + +var privateUse_im_public_v_public = im_public_v_public; +>privateUse_im_public_v_public : number +>im_public_v_public : number + +export var publicUse_im_public_v_public = im_public_v_public; +>publicUse_im_public_v_public : number +>im_public_v_public : number + +var privateUse_im_public_i_public: im_public_i_public; +>privateUse_im_public_i_public : im_public_i_public + +export var publicUse_im_public_i_public: im_public_i_public; +>publicUse_im_public_i_public : im_public_i_public + +var privateUse_im_public_mi_public = new im_public_mi_public.c(); +>privateUse_im_public_mi_public : im_public_mi_public.c +>new im_public_mi_public.c() : im_public_mi_public.c +>im_public_mi_public.c : typeof im_public_mi_public.c +>im_public_mi_public : typeof im_public_mi_public +>c : typeof im_public_mi_public.c + +export var publicUse_im_public_mi_public = new im_public_mi_public.c(); +>publicUse_im_public_mi_public : im_public_mi_public.c +>new im_public_mi_public.c() : im_public_mi_public.c +>im_public_mi_public.c : typeof im_public_mi_public.c +>im_public_mi_public : typeof im_public_mi_public +>c : typeof im_public_mi_public.c + +var privateUse_im_public_mu_public: im_public_mu_public.i; +>privateUse_im_public_mu_public : im_public_mu_public.i +>im_public_mu_public : any + +export var publicUse_im_public_mu_public: im_public_mu_public.i; +>publicUse_im_public_mu_public : im_public_mu_public.i +>im_public_mu_public : any + diff --git a/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.js b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.js new file mode 100644 index 0000000000000..7f19f32197984 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.js @@ -0,0 +1,259 @@ +//// [tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts] //// + +//// [privacyTopLevelInternalReferenceImportWithoutExport.ts] +// private elements +namespace m_private { + export class c_private { + } + export enum e_private { + Happy, + Grumpy + } + export function f_private() { + return new c_private(); + } + export var v_private = new c_private(); + export interface i_private { + } + export namespace mi_private { + export class c { + } + } + export namespace mu_private { + export interface i { + } + } +} + +// Public elements +export namespace m_public { + export class c_public { + } + export enum e_public { + Happy, + Grumpy + } + export function f_public() { + return new c_public(); + } + export var v_public = 10; + export interface i_public { + } + export namespace mi_public { + export class c { + } + } + export namespace mu_public { + export interface i { + } + } +} + +// No Privacy errors - importing private elements +import im_private_c_private = m_private.c_private; +import im_private_e_private = m_private.e_private; +import im_private_f_private = m_private.f_private; +import im_private_v_private = m_private.v_private; +import im_private_i_private = m_private.i_private; +import im_private_mi_private = m_private.mi_private; +import im_private_mu_private = m_private.mu_private; + +// Usage of above decls +var privateUse_im_private_c_private = new im_private_c_private(); +export var publicUse_im_private_c_private = new im_private_c_private(); +var privateUse_im_private_e_private = im_private_e_private.Happy; +export var publicUse_im_private_e_private = im_private_e_private.Grumpy; +var privateUse_im_private_f_private = im_private_f_private(); +export var publicUse_im_private_f_private = im_private_f_private(); +var privateUse_im_private_v_private = im_private_v_private; +export var publicUse_im_private_v_private = im_private_v_private; +var privateUse_im_private_i_private: im_private_i_private; +export var publicUse_im_private_i_private: im_private_i_private; +var privateUse_im_private_mi_private = new im_private_mi_private.c(); +export var publicUse_im_private_mi_private = new im_private_mi_private.c(); +var privateUse_im_private_mu_private: im_private_mu_private.i; +export var publicUse_im_private_mu_private: im_private_mu_private.i; + + +// No Privacy errors - importing public elements +import im_private_c_public = m_public.c_public; +import im_private_e_public = m_public.e_public; +import im_private_f_public = m_public.f_public; +import im_private_v_public = m_public.v_public; +import im_private_i_public = m_public.i_public; +import im_private_mi_public = m_public.mi_public; +import im_private_mu_public = m_public.mu_public; + +// Usage of above decls +var privateUse_im_private_c_public = new im_private_c_public(); +export var publicUse_im_private_c_public = new im_private_c_public(); +var privateUse_im_private_e_public = im_private_e_public.Happy; +export var publicUse_im_private_e_public = im_private_e_public.Grumpy; +var privateUse_im_private_f_public = im_private_f_public(); +export var publicUse_im_private_f_public = im_private_f_public(); +var privateUse_im_private_v_public = im_private_v_public; +export var publicUse_im_private_v_public = im_private_v_public; +var privateUse_im_private_i_public: im_private_i_public; +export var publicUse_im_private_i_public: im_private_i_public; +var privateUse_im_private_mi_public = new im_private_mi_public.c(); +export var publicUse_im_private_mi_public = new im_private_mi_public.c(); +var privateUse_im_private_mu_public: im_private_mu_public.i; +export var publicUse_im_private_mu_public: im_private_mu_public.i; + + +//// [privacyTopLevelInternalReferenceImportWithoutExport.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.publicUse_im_private_mu_public = exports.publicUse_im_private_mi_public = exports.publicUse_im_private_i_public = exports.publicUse_im_private_v_public = exports.publicUse_im_private_f_public = exports.publicUse_im_private_e_public = exports.publicUse_im_private_c_public = exports.publicUse_im_private_mu_private = exports.publicUse_im_private_mi_private = exports.publicUse_im_private_i_private = exports.publicUse_im_private_v_private = exports.publicUse_im_private_f_private = exports.publicUse_im_private_e_private = exports.publicUse_im_private_c_private = exports.m_public = void 0; +// private elements +var m_private; +(function (m_private) { + class c_private { + } + m_private.c_private = c_private; + let e_private; + (function (e_private) { + e_private[e_private["Happy"] = 0] = "Happy"; + e_private[e_private["Grumpy"] = 1] = "Grumpy"; + })(e_private = m_private.e_private || (m_private.e_private = {})); + function f_private() { + return new c_private(); + } + m_private.f_private = f_private; + m_private.v_private = new c_private(); + let mi_private; + (function (mi_private) { + class c { + } + mi_private.c = c; + })(mi_private = m_private.mi_private || (m_private.mi_private = {})); +})(m_private || (m_private = {})); +// Public elements +var m_public; +(function (m_public) { + class c_public { + } + m_public.c_public = c_public; + let e_public; + (function (e_public) { + e_public[e_public["Happy"] = 0] = "Happy"; + e_public[e_public["Grumpy"] = 1] = "Grumpy"; + })(e_public = m_public.e_public || (m_public.e_public = {})); + function f_public() { + return new c_public(); + } + m_public.f_public = f_public; + m_public.v_public = 10; + let mi_public; + (function (mi_public) { + class c { + } + mi_public.c = c; + })(mi_public = m_public.mi_public || (m_public.mi_public = {})); +})(m_public || (exports.m_public = m_public = {})); +// No Privacy errors - importing private elements +var im_private_c_private = m_private.c_private; +var im_private_e_private = m_private.e_private; +var im_private_f_private = m_private.f_private; +var im_private_v_private = m_private.v_private; +var im_private_mi_private = m_private.mi_private; +// Usage of above decls +var privateUse_im_private_c_private = new im_private_c_private(); +exports.publicUse_im_private_c_private = new im_private_c_private(); +var privateUse_im_private_e_private = im_private_e_private.Happy; +exports.publicUse_im_private_e_private = im_private_e_private.Grumpy; +var privateUse_im_private_f_private = im_private_f_private(); +exports.publicUse_im_private_f_private = im_private_f_private(); +var privateUse_im_private_v_private = im_private_v_private; +exports.publicUse_im_private_v_private = im_private_v_private; +var privateUse_im_private_i_private; +var privateUse_im_private_mi_private = new im_private_mi_private.c(); +exports.publicUse_im_private_mi_private = new im_private_mi_private.c(); +var privateUse_im_private_mu_private; +// No Privacy errors - importing public elements +var im_private_c_public = m_public.c_public; +var im_private_e_public = m_public.e_public; +var im_private_f_public = m_public.f_public; +var im_private_v_public = m_public.v_public; +var im_private_mi_public = m_public.mi_public; +// Usage of above decls +var privateUse_im_private_c_public = new im_private_c_public(); +exports.publicUse_im_private_c_public = new im_private_c_public(); +var privateUse_im_private_e_public = im_private_e_public.Happy; +exports.publicUse_im_private_e_public = im_private_e_public.Grumpy; +var privateUse_im_private_f_public = im_private_f_public(); +exports.publicUse_im_private_f_public = im_private_f_public(); +var privateUse_im_private_v_public = im_private_v_public; +exports.publicUse_im_private_v_public = im_private_v_public; +var privateUse_im_private_i_public; +var privateUse_im_private_mi_public = new im_private_mi_public.c(); +exports.publicUse_im_private_mi_public = new im_private_mi_public.c(); +var privateUse_im_private_mu_public; + + +//// [privacyTopLevelInternalReferenceImportWithoutExport.d.ts] +declare namespace m_private { + class c_private { + } + enum e_private { + Happy = 0, + Grumpy = 1 + } + function f_private(): c_private; + var v_private: c_private; + interface i_private { + } + namespace mi_private { + class c { + } + } + namespace mu_private { + interface i { + } + } +} +export declare namespace m_public { + class c_public { + } + enum e_public { + Happy = 0, + Grumpy = 1 + } + function f_public(): c_public; + var v_public: number; + interface i_public { + } + namespace mi_public { + class c { + } + } + namespace mu_public { + interface i { + } + } +} +import im_private_c_private = m_private.c_private; +import im_private_e_private = m_private.e_private; +import im_private_i_private = m_private.i_private; +import im_private_mi_private = m_private.mi_private; +import im_private_mu_private = m_private.mu_private; +export declare var publicUse_im_private_c_private: im_private_c_private; +export declare var publicUse_im_private_e_private: im_private_e_private; +export declare var publicUse_im_private_f_private: im_private_c_private; +export declare var publicUse_im_private_v_private: im_private_c_private; +export declare var publicUse_im_private_i_private: im_private_i_private; +export declare var publicUse_im_private_mi_private: im_private_mi_private.c; +export declare var publicUse_im_private_mu_private: im_private_mu_private.i; +import im_private_c_public = m_public.c_public; +import im_private_e_public = m_public.e_public; +import im_private_i_public = m_public.i_public; +import im_private_mi_public = m_public.mi_public; +import im_private_mu_public = m_public.mu_public; +export declare var publicUse_im_private_c_public: im_private_c_public; +export declare var publicUse_im_private_e_public: im_private_e_public; +export declare var publicUse_im_private_f_public: im_private_c_public; +export declare var publicUse_im_private_v_public: number; +export declare var publicUse_im_private_i_public: im_private_i_public; +export declare var publicUse_im_private_mi_public: im_private_mi_public.c; +export declare var publicUse_im_private_mu_public: im_private_mu_public.i; +export {}; diff --git a/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.symbols b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.symbols new file mode 100644 index 0000000000000..f67b722355304 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.symbols @@ -0,0 +1,299 @@ +//// [tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts] //// + +=== privacyTopLevelInternalReferenceImportWithoutExport.ts === +// private elements +namespace m_private { +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 0, 0)) + + export class c_private { +>c_private : Symbol(c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 1, 21)) + } + export enum e_private { +>e_private : Symbol(e_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 3, 5)) + + Happy, +>Happy : Symbol(im_private_e_private.Happy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 4, 27)) + + Grumpy +>Grumpy : Symbol(im_private_e_private.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 5, 14)) + } + export function f_private() { +>f_private : Symbol(f_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 7, 5)) + + return new c_private(); +>c_private : Symbol(c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 1, 21)) + } + export var v_private = new c_private(); +>v_private : Symbol(v_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 11, 14)) +>c_private : Symbol(c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 1, 21)) + + export interface i_private { +>i_private : Symbol(i_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 11, 43)) + } + export namespace mi_private { +>mi_private : Symbol(mi_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 13, 5)) + + export class c { +>c : Symbol(c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 14, 33)) + } + } + export namespace mu_private { +>mu_private : Symbol(mu_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 17, 5)) + + export interface i { +>i : Symbol(i, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 18, 33)) + } + } +} + +// Public elements +export namespace m_public { +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 22, 1)) + + export class c_public { +>c_public : Symbol(c_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 25, 27)) + } + export enum e_public { +>e_public : Symbol(e_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 27, 5)) + + Happy, +>Happy : Symbol(im_private_e_public.Happy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 28, 26)) + + Grumpy +>Grumpy : Symbol(im_private_e_public.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 29, 14)) + } + export function f_public() { +>f_public : Symbol(f_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 31, 5)) + + return new c_public(); +>c_public : Symbol(c_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 25, 27)) + } + export var v_public = 10; +>v_public : Symbol(v_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 35, 14)) + + export interface i_public { +>i_public : Symbol(i_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 35, 29)) + } + export namespace mi_public { +>mi_public : Symbol(mi_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 37, 5)) + + export class c { +>c : Symbol(c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 38, 32)) + } + } + export namespace mu_public { +>mu_public : Symbol(mu_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 41, 5)) + + export interface i { +>i : Symbol(i, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 42, 32)) + } + } +} + +// No Privacy errors - importing private elements +import im_private_c_private = m_private.c_private; +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 46, 1)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 0, 0)) +>c_private : Symbol(im_private_c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 1, 21)) + +import im_private_e_private = m_private.e_private; +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 49, 50)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 0, 0)) +>e_private : Symbol(im_private_e_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 3, 5)) + +import im_private_f_private = m_private.f_private; +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 50, 50)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 0, 0)) +>f_private : Symbol(im_private_f_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 7, 5)) + +import im_private_v_private = m_private.v_private; +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 51, 50)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 0, 0)) +>v_private : Symbol(im_private_v_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 11, 14)) + +import im_private_i_private = m_private.i_private; +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 52, 50)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 0, 0)) +>i_private : Symbol(im_private_i_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 11, 43)) + +import im_private_mi_private = m_private.mi_private; +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 53, 50)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 0, 0)) +>mi_private : Symbol(im_private_mi_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 13, 5)) + +import im_private_mu_private = m_private.mu_private; +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 54, 52)) +>m_private : Symbol(m_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 0, 0)) +>mu_private : Symbol(im_private_mu_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 17, 5)) + +// Usage of above decls +var privateUse_im_private_c_private = new im_private_c_private(); +>privateUse_im_private_c_private : Symbol(privateUse_im_private_c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 58, 3)) +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 46, 1)) + +export var publicUse_im_private_c_private = new im_private_c_private(); +>publicUse_im_private_c_private : Symbol(publicUse_im_private_c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 59, 10)) +>im_private_c_private : Symbol(im_private_c_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 46, 1)) + +var privateUse_im_private_e_private = im_private_e_private.Happy; +>privateUse_im_private_e_private : Symbol(privateUse_im_private_e_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 60, 3)) +>im_private_e_private.Happy : Symbol(im_private_e_private.Happy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 4, 27)) +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 49, 50)) +>Happy : Symbol(im_private_e_private.Happy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 4, 27)) + +export var publicUse_im_private_e_private = im_private_e_private.Grumpy; +>publicUse_im_private_e_private : Symbol(publicUse_im_private_e_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 61, 10)) +>im_private_e_private.Grumpy : Symbol(im_private_e_private.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 5, 14)) +>im_private_e_private : Symbol(im_private_e_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 49, 50)) +>Grumpy : Symbol(im_private_e_private.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 5, 14)) + +var privateUse_im_private_f_private = im_private_f_private(); +>privateUse_im_private_f_private : Symbol(privateUse_im_private_f_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 62, 3)) +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 50, 50)) + +export var publicUse_im_private_f_private = im_private_f_private(); +>publicUse_im_private_f_private : Symbol(publicUse_im_private_f_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 63, 10)) +>im_private_f_private : Symbol(im_private_f_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 50, 50)) + +var privateUse_im_private_v_private = im_private_v_private; +>privateUse_im_private_v_private : Symbol(privateUse_im_private_v_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 64, 3)) +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 51, 50)) + +export var publicUse_im_private_v_private = im_private_v_private; +>publicUse_im_private_v_private : Symbol(publicUse_im_private_v_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 65, 10)) +>im_private_v_private : Symbol(im_private_v_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 51, 50)) + +var privateUse_im_private_i_private: im_private_i_private; +>privateUse_im_private_i_private : Symbol(privateUse_im_private_i_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 66, 3)) +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 52, 50)) + +export var publicUse_im_private_i_private: im_private_i_private; +>publicUse_im_private_i_private : Symbol(publicUse_im_private_i_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 67, 10)) +>im_private_i_private : Symbol(im_private_i_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 52, 50)) + +var privateUse_im_private_mi_private = new im_private_mi_private.c(); +>privateUse_im_private_mi_private : Symbol(privateUse_im_private_mi_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 68, 3)) +>im_private_mi_private.c : Symbol(im_private_mi_private.c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 14, 33)) +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 53, 50)) +>c : Symbol(im_private_mi_private.c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 14, 33)) + +export var publicUse_im_private_mi_private = new im_private_mi_private.c(); +>publicUse_im_private_mi_private : Symbol(publicUse_im_private_mi_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 69, 10)) +>im_private_mi_private.c : Symbol(im_private_mi_private.c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 14, 33)) +>im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 53, 50)) +>c : Symbol(im_private_mi_private.c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 14, 33)) + +var privateUse_im_private_mu_private: im_private_mu_private.i; +>privateUse_im_private_mu_private : Symbol(privateUse_im_private_mu_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 70, 3)) +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 54, 52)) +>i : Symbol(im_private_mu_private.i, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 18, 33)) + +export var publicUse_im_private_mu_private: im_private_mu_private.i; +>publicUse_im_private_mu_private : Symbol(publicUse_im_private_mu_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 71, 10)) +>im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 54, 52)) +>i : Symbol(im_private_mu_private.i, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 18, 33)) + + +// No Privacy errors - importing public elements +import im_private_c_public = m_public.c_public; +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 71, 68)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 22, 1)) +>c_public : Symbol(im_private_c_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 25, 27)) + +import im_private_e_public = m_public.e_public; +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 75, 47)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 22, 1)) +>e_public : Symbol(im_private_e_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 27, 5)) + +import im_private_f_public = m_public.f_public; +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 76, 47)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 22, 1)) +>f_public : Symbol(im_private_f_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 31, 5)) + +import im_private_v_public = m_public.v_public; +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 77, 47)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 22, 1)) +>v_public : Symbol(im_private_v_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 35, 14)) + +import im_private_i_public = m_public.i_public; +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 78, 47)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 22, 1)) +>i_public : Symbol(im_private_i_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 35, 29)) + +import im_private_mi_public = m_public.mi_public; +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 79, 47)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 22, 1)) +>mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 37, 5)) + +import im_private_mu_public = m_public.mu_public; +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 80, 49)) +>m_public : Symbol(m_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 22, 1)) +>mu_public : Symbol(im_private_mu_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 41, 5)) + +// Usage of above decls +var privateUse_im_private_c_public = new im_private_c_public(); +>privateUse_im_private_c_public : Symbol(privateUse_im_private_c_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 84, 3)) +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 71, 68)) + +export var publicUse_im_private_c_public = new im_private_c_public(); +>publicUse_im_private_c_public : Symbol(publicUse_im_private_c_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 85, 10)) +>im_private_c_public : Symbol(im_private_c_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 71, 68)) + +var privateUse_im_private_e_public = im_private_e_public.Happy; +>privateUse_im_private_e_public : Symbol(privateUse_im_private_e_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 86, 3)) +>im_private_e_public.Happy : Symbol(im_private_e_public.Happy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 28, 26)) +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 75, 47)) +>Happy : Symbol(im_private_e_public.Happy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 28, 26)) + +export var publicUse_im_private_e_public = im_private_e_public.Grumpy; +>publicUse_im_private_e_public : Symbol(publicUse_im_private_e_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 87, 10)) +>im_private_e_public.Grumpy : Symbol(im_private_e_public.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 29, 14)) +>im_private_e_public : Symbol(im_private_e_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 75, 47)) +>Grumpy : Symbol(im_private_e_public.Grumpy, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 29, 14)) + +var privateUse_im_private_f_public = im_private_f_public(); +>privateUse_im_private_f_public : Symbol(privateUse_im_private_f_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 88, 3)) +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 76, 47)) + +export var publicUse_im_private_f_public = im_private_f_public(); +>publicUse_im_private_f_public : Symbol(publicUse_im_private_f_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 89, 10)) +>im_private_f_public : Symbol(im_private_f_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 76, 47)) + +var privateUse_im_private_v_public = im_private_v_public; +>privateUse_im_private_v_public : Symbol(privateUse_im_private_v_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 90, 3)) +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 77, 47)) + +export var publicUse_im_private_v_public = im_private_v_public; +>publicUse_im_private_v_public : Symbol(publicUse_im_private_v_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 91, 10)) +>im_private_v_public : Symbol(im_private_v_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 77, 47)) + +var privateUse_im_private_i_public: im_private_i_public; +>privateUse_im_private_i_public : Symbol(privateUse_im_private_i_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 92, 3)) +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 78, 47)) + +export var publicUse_im_private_i_public: im_private_i_public; +>publicUse_im_private_i_public : Symbol(publicUse_im_private_i_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 93, 10)) +>im_private_i_public : Symbol(im_private_i_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 78, 47)) + +var privateUse_im_private_mi_public = new im_private_mi_public.c(); +>privateUse_im_private_mi_public : Symbol(privateUse_im_private_mi_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 94, 3)) +>im_private_mi_public.c : Symbol(im_private_mi_public.c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 38, 32)) +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 79, 47)) +>c : Symbol(im_private_mi_public.c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 38, 32)) + +export var publicUse_im_private_mi_public = new im_private_mi_public.c(); +>publicUse_im_private_mi_public : Symbol(publicUse_im_private_mi_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 95, 10)) +>im_private_mi_public.c : Symbol(im_private_mi_public.c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 38, 32)) +>im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 79, 47)) +>c : Symbol(im_private_mi_public.c, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 38, 32)) + +var privateUse_im_private_mu_public: im_private_mu_public.i; +>privateUse_im_private_mu_public : Symbol(privateUse_im_private_mu_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 96, 3)) +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 80, 49)) +>i : Symbol(im_private_mu_public.i, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 42, 32)) + +export var publicUse_im_private_mu_public: im_private_mu_public.i; +>publicUse_im_private_mu_public : Symbol(publicUse_im_private_mu_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 97, 10)) +>im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 80, 49)) +>i : Symbol(im_private_mu_public.i, Decl(privacyTopLevelInternalReferenceImportWithoutExport.ts, 42, 32)) + diff --git a/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.types b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.types new file mode 100644 index 0000000000000..675eba6e64449 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privacyTopLevelInternalReferenceImportWithoutExport.types @@ -0,0 +1,299 @@ +//// [tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts] //// + +=== privacyTopLevelInternalReferenceImportWithoutExport.ts === +// private elements +namespace m_private { +>m_private : typeof m_private + + export class c_private { +>c_private : c_private + } + export enum e_private { +>e_private : e_private + + Happy, +>Happy : e_private.Happy + + Grumpy +>Grumpy : e_private.Grumpy + } + export function f_private() { +>f_private : () => c_private + + return new c_private(); +>new c_private() : c_private +>c_private : typeof c_private + } + export var v_private = new c_private(); +>v_private : c_private +>new c_private() : c_private +>c_private : typeof c_private + + export interface i_private { + } + export namespace mi_private { +>mi_private : typeof mi_private + + export class c { +>c : c + } + } + export namespace mu_private { + export interface i { + } + } +} + +// Public elements +export namespace m_public { +>m_public : typeof m_public + + export class c_public { +>c_public : c_public + } + export enum e_public { +>e_public : e_public + + Happy, +>Happy : e_public.Happy + + Grumpy +>Grumpy : e_public.Grumpy + } + export function f_public() { +>f_public : () => c_public + + return new c_public(); +>new c_public() : c_public +>c_public : typeof c_public + } + export var v_public = 10; +>v_public : number +>10 : 10 + + export interface i_public { + } + export namespace mi_public { +>mi_public : typeof mi_public + + export class c { +>c : c + } + } + export namespace mu_public { + export interface i { + } + } +} + +// No Privacy errors - importing private elements +import im_private_c_private = m_private.c_private; +>im_private_c_private : typeof im_private_c_private +>m_private : typeof m_private +>c_private : im_private_c_private + +import im_private_e_private = m_private.e_private; +>im_private_e_private : typeof im_private_e_private +>m_private : typeof m_private +>e_private : im_private_e_private + +import im_private_f_private = m_private.f_private; +>im_private_f_private : () => im_private_c_private +>m_private : typeof m_private +>f_private : () => im_private_c_private + +import im_private_v_private = m_private.v_private; +>im_private_v_private : im_private_c_private +>m_private : typeof m_private +>v_private : im_private_c_private + +import im_private_i_private = m_private.i_private; +>im_private_i_private : any +>m_private : typeof m_private +>i_private : im_private_i_private + +import im_private_mi_private = m_private.mi_private; +>im_private_mi_private : typeof im_private_mi_private +>m_private : typeof m_private +>mi_private : typeof im_private_mi_private + +import im_private_mu_private = m_private.mu_private; +>im_private_mu_private : any +>m_private : typeof m_private +>mu_private : any + +// Usage of above decls +var privateUse_im_private_c_private = new im_private_c_private(); +>privateUse_im_private_c_private : im_private_c_private +>new im_private_c_private() : im_private_c_private +>im_private_c_private : typeof im_private_c_private + +export var publicUse_im_private_c_private = new im_private_c_private(); +>publicUse_im_private_c_private : im_private_c_private +>new im_private_c_private() : im_private_c_private +>im_private_c_private : typeof im_private_c_private + +var privateUse_im_private_e_private = im_private_e_private.Happy; +>privateUse_im_private_e_private : im_private_e_private +>im_private_e_private.Happy : im_private_e_private.Happy +>im_private_e_private : typeof im_private_e_private +>Happy : im_private_e_private.Happy + +export var publicUse_im_private_e_private = im_private_e_private.Grumpy; +>publicUse_im_private_e_private : im_private_e_private +>im_private_e_private.Grumpy : im_private_e_private.Grumpy +>im_private_e_private : typeof im_private_e_private +>Grumpy : im_private_e_private.Grumpy + +var privateUse_im_private_f_private = im_private_f_private(); +>privateUse_im_private_f_private : im_private_c_private +>im_private_f_private() : im_private_c_private +>im_private_f_private : () => im_private_c_private + +export var publicUse_im_private_f_private = im_private_f_private(); +>publicUse_im_private_f_private : im_private_c_private +>im_private_f_private() : im_private_c_private +>im_private_f_private : () => im_private_c_private + +var privateUse_im_private_v_private = im_private_v_private; +>privateUse_im_private_v_private : im_private_c_private +>im_private_v_private : im_private_c_private + +export var publicUse_im_private_v_private = im_private_v_private; +>publicUse_im_private_v_private : im_private_c_private +>im_private_v_private : im_private_c_private + +var privateUse_im_private_i_private: im_private_i_private; +>privateUse_im_private_i_private : im_private_i_private + +export var publicUse_im_private_i_private: im_private_i_private; +>publicUse_im_private_i_private : im_private_i_private + +var privateUse_im_private_mi_private = new im_private_mi_private.c(); +>privateUse_im_private_mi_private : im_private_mi_private.c +>new im_private_mi_private.c() : im_private_mi_private.c +>im_private_mi_private.c : typeof im_private_mi_private.c +>im_private_mi_private : typeof im_private_mi_private +>c : typeof im_private_mi_private.c + +export var publicUse_im_private_mi_private = new im_private_mi_private.c(); +>publicUse_im_private_mi_private : im_private_mi_private.c +>new im_private_mi_private.c() : im_private_mi_private.c +>im_private_mi_private.c : typeof im_private_mi_private.c +>im_private_mi_private : typeof im_private_mi_private +>c : typeof im_private_mi_private.c + +var privateUse_im_private_mu_private: im_private_mu_private.i; +>privateUse_im_private_mu_private : im_private_mu_private.i +>im_private_mu_private : any + +export var publicUse_im_private_mu_private: im_private_mu_private.i; +>publicUse_im_private_mu_private : im_private_mu_private.i +>im_private_mu_private : any + + +// No Privacy errors - importing public elements +import im_private_c_public = m_public.c_public; +>im_private_c_public : typeof im_private_c_public +>m_public : typeof m_public +>c_public : im_private_c_public + +import im_private_e_public = m_public.e_public; +>im_private_e_public : typeof im_private_e_public +>m_public : typeof m_public +>e_public : im_private_e_public + +import im_private_f_public = m_public.f_public; +>im_private_f_public : () => im_private_c_public +>m_public : typeof m_public +>f_public : () => im_private_c_public + +import im_private_v_public = m_public.v_public; +>im_private_v_public : number +>m_public : typeof m_public +>v_public : number + +import im_private_i_public = m_public.i_public; +>im_private_i_public : any +>m_public : typeof m_public +>i_public : im_private_i_public + +import im_private_mi_public = m_public.mi_public; +>im_private_mi_public : typeof im_private_mi_public +>m_public : typeof m_public +>mi_public : typeof im_private_mi_public + +import im_private_mu_public = m_public.mu_public; +>im_private_mu_public : any +>m_public : typeof m_public +>mu_public : any + +// Usage of above decls +var privateUse_im_private_c_public = new im_private_c_public(); +>privateUse_im_private_c_public : im_private_c_public +>new im_private_c_public() : im_private_c_public +>im_private_c_public : typeof im_private_c_public + +export var publicUse_im_private_c_public = new im_private_c_public(); +>publicUse_im_private_c_public : im_private_c_public +>new im_private_c_public() : im_private_c_public +>im_private_c_public : typeof im_private_c_public + +var privateUse_im_private_e_public = im_private_e_public.Happy; +>privateUse_im_private_e_public : im_private_e_public +>im_private_e_public.Happy : im_private_e_public.Happy +>im_private_e_public : typeof im_private_e_public +>Happy : im_private_e_public.Happy + +export var publicUse_im_private_e_public = im_private_e_public.Grumpy; +>publicUse_im_private_e_public : im_private_e_public +>im_private_e_public.Grumpy : im_private_e_public.Grumpy +>im_private_e_public : typeof im_private_e_public +>Grumpy : im_private_e_public.Grumpy + +var privateUse_im_private_f_public = im_private_f_public(); +>privateUse_im_private_f_public : im_private_c_public +>im_private_f_public() : im_private_c_public +>im_private_f_public : () => im_private_c_public + +export var publicUse_im_private_f_public = im_private_f_public(); +>publicUse_im_private_f_public : im_private_c_public +>im_private_f_public() : im_private_c_public +>im_private_f_public : () => im_private_c_public + +var privateUse_im_private_v_public = im_private_v_public; +>privateUse_im_private_v_public : number +>im_private_v_public : number + +export var publicUse_im_private_v_public = im_private_v_public; +>publicUse_im_private_v_public : number +>im_private_v_public : number + +var privateUse_im_private_i_public: im_private_i_public; +>privateUse_im_private_i_public : im_private_i_public + +export var publicUse_im_private_i_public: im_private_i_public; +>publicUse_im_private_i_public : im_private_i_public + +var privateUse_im_private_mi_public = new im_private_mi_public.c(); +>privateUse_im_private_mi_public : im_private_mi_public.c +>new im_private_mi_public.c() : im_private_mi_public.c +>im_private_mi_public.c : typeof im_private_mi_public.c +>im_private_mi_public : typeof im_private_mi_public +>c : typeof im_private_mi_public.c + +export var publicUse_im_private_mi_public = new im_private_mi_public.c(); +>publicUse_im_private_mi_public : im_private_mi_public.c +>new im_private_mi_public.c() : im_private_mi_public.c +>im_private_mi_public.c : typeof im_private_mi_public.c +>im_private_mi_public : typeof im_private_mi_public +>c : typeof im_private_mi_public.c + +var privateUse_im_private_mu_public: im_private_mu_public.i; +>privateUse_im_private_mu_public : im_private_mu_public.i +>im_private_mu_public : any + +export var publicUse_im_private_mu_public: im_private_mu_public.i; +>publicUse_im_private_mu_public : im_private_mu_public.i +>im_private_mu_public : any + diff --git a/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.errors.txt b/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.errors.txt new file mode 100644 index 0000000000000..e93038b53488e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.errors.txt @@ -0,0 +1,24 @@ +privatePropertyUsingObjectType.ts(2,13): error TS2564: Property '_filterProviders' has no initializer and is not definitely assigned in the constructor. +privatePropertyUsingObjectType.ts(3,13): error TS2564: Property '_filterProviders2' has no initializer and is not definitely assigned in the constructor. +privatePropertyUsingObjectType.ts(4,13): error TS2564: Property '_filterProviders3' has no initializer and is not definitely assigned in the constructor. +privatePropertyUsingObjectType.ts(5,13): error TS2564: Property '_filterProviders4' has no initializer and is not definitely assigned in the constructor. + + +==== privatePropertyUsingObjectType.ts (4 errors) ==== + export class FilterManager { + private _filterProviders: { index: IFilterProvider; }; + ~~~~~~~~~~~~~~~~ +!!! error TS2564: Property '_filterProviders' has no initializer and is not definitely assigned in the constructor. + private _filterProviders2: { [index: number]: IFilterProvider; }; + ~~~~~~~~~~~~~~~~~ +!!! error TS2564: Property '_filterProviders2' has no initializer and is not definitely assigned in the constructor. + private _filterProviders3: { (index: number): IFilterProvider; }; + ~~~~~~~~~~~~~~~~~ +!!! error TS2564: Property '_filterProviders3' has no initializer and is not definitely assigned in the constructor. + private _filterProviders4: (index: number) => IFilterProvider; + ~~~~~~~~~~~~~~~~~ +!!! error TS2564: Property '_filterProviders4' has no initializer and is not definitely assigned in the constructor. + } + export interface IFilterProvider { + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.js b/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.js new file mode 100644 index 0000000000000..31dd304c9608b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.js @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/privatePropertyUsingObjectType.ts] //// + +//// [privatePropertyUsingObjectType.ts] +export class FilterManager { + private _filterProviders: { index: IFilterProvider; }; + private _filterProviders2: { [index: number]: IFilterProvider; }; + private _filterProviders3: { (index: number): IFilterProvider; }; + private _filterProviders4: (index: number) => IFilterProvider; +} +export interface IFilterProvider { +} + + +//// [privatePropertyUsingObjectType.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FilterManager = void 0; +class FilterManager { +} +exports.FilterManager = FilterManager; diff --git a/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.symbols b/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.symbols new file mode 100644 index 0000000000000..bab59221db894 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.symbols @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/privatePropertyUsingObjectType.ts] //// + +=== privatePropertyUsingObjectType.ts === +export class FilterManager { +>FilterManager : Symbol(FilterManager, Decl(privatePropertyUsingObjectType.ts, 0, 0)) + + private _filterProviders: { index: IFilterProvider; }; +>_filterProviders : Symbol(FilterManager._filterProviders, Decl(privatePropertyUsingObjectType.ts, 0, 28)) +>index : Symbol(index, Decl(privatePropertyUsingObjectType.ts, 1, 31)) +>IFilterProvider : Symbol(IFilterProvider, Decl(privatePropertyUsingObjectType.ts, 5, 1)) + + private _filterProviders2: { [index: number]: IFilterProvider; }; +>_filterProviders2 : Symbol(FilterManager._filterProviders2, Decl(privatePropertyUsingObjectType.ts, 1, 58)) +>index : Symbol(index, Decl(privatePropertyUsingObjectType.ts, 2, 34)) +>IFilterProvider : Symbol(IFilterProvider, Decl(privatePropertyUsingObjectType.ts, 5, 1)) + + private _filterProviders3: { (index: number): IFilterProvider; }; +>_filterProviders3 : Symbol(FilterManager._filterProviders3, Decl(privatePropertyUsingObjectType.ts, 2, 69)) +>index : Symbol(index, Decl(privatePropertyUsingObjectType.ts, 3, 34)) +>IFilterProvider : Symbol(IFilterProvider, Decl(privatePropertyUsingObjectType.ts, 5, 1)) + + private _filterProviders4: (index: number) => IFilterProvider; +>_filterProviders4 : Symbol(FilterManager._filterProviders4, Decl(privatePropertyUsingObjectType.ts, 3, 69)) +>index : Symbol(index, Decl(privatePropertyUsingObjectType.ts, 4, 32)) +>IFilterProvider : Symbol(IFilterProvider, Decl(privatePropertyUsingObjectType.ts, 5, 1)) +} +export interface IFilterProvider { +>IFilterProvider : Symbol(IFilterProvider, Decl(privatePropertyUsingObjectType.ts, 5, 1)) +} + diff --git a/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.types b/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.types new file mode 100644 index 0000000000000..3c3816b5962d7 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/privatePropertyUsingObjectType.types @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/privatePropertyUsingObjectType.ts] //// + +=== privatePropertyUsingObjectType.ts === +export class FilterManager { +>FilterManager : FilterManager + + private _filterProviders: { index: IFilterProvider; }; +>_filterProviders : { index: IFilterProvider; } +>index : IFilterProvider + + private _filterProviders2: { [index: number]: IFilterProvider; }; +>_filterProviders2 : { [index: number]: IFilterProvider; } +>index : number + + private _filterProviders3: { (index: number): IFilterProvider; }; +>_filterProviders3 : (index: number) => IFilterProvider +>index : number + + private _filterProviders4: (index: number) => IFilterProvider; +>_filterProviders4 : (index: number) => IFilterProvider +>index : number +} +export interface IFilterProvider { +} + diff --git a/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.errors.txt b/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.errors.txt new file mode 100644 index 0000000000000..51c3a0168cf11 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.errors.txt @@ -0,0 +1,10 @@ +somefolder/a.ts(1,17): error TS2307: Cannot find module './b' or its corresponding type declarations. + + +==== somefolder/a.ts (1 errors) ==== + import {x} from "./b" + ~~~~~ +!!! error TS2307: Cannot find module './b' or its corresponding type declarations. + +==== b.ts (0 errors) ==== + export let x = 1; \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.js b/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.js new file mode 100644 index 0000000000000..ee773ef421435 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.js @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/relativeNamesInClassicResolution.ts] //// + +//// [a.ts] +import {x} from "./b" + +//// [b.ts] +export let x = 1; + +//// [a.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [b.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x = 1; diff --git a/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.symbols b/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.symbols new file mode 100644 index 0000000000000..776bcc6302ca5 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.symbols @@ -0,0 +1,10 @@ +//// [tests/cases/compiler/relativeNamesInClassicResolution.ts] //// + +=== somefolder/a.ts === +import {x} from "./b" +>x : Symbol(x, Decl(a.ts, 0, 8)) + +=== b.ts === +export let x = 1; +>x : Symbol(x, Decl(b.ts, 0, 10)) + diff --git a/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.types b/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.types new file mode 100644 index 0000000000000..4e8d753c930b9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/relativeNamesInClassicResolution.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/relativeNamesInClassicResolution.ts] //// + +=== somefolder/a.ts === +import {x} from "./b" +>x : any + +=== b.ts === +export let x = 1; +>x : number +>1 : 1 + diff --git a/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.errors.txt b/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.errors.txt new file mode 100644 index 0000000000000..ef87e8aeae4a2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.errors.txt @@ -0,0 +1,23 @@ +requireEmitSemicolon_1.ts(2,20): error TS2307: Cannot find module 'requireEmitSemicolon_0' or its corresponding type declarations. + + +==== requireEmitSemicolon_1.ts (1 errors) ==== + /// + import P = require("requireEmitSemicolon_0"); // bug was we were not emitting a ; here and causing runtime failures in node + ~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'requireEmitSemicolon_0' or its corresponding type declarations. + + export namespace Database { + export class DB { + public findPerson(id: number): P.Models.Person { + return new P.Models.Person("Rock"); + } + } + } +==== requireEmitSemicolon_0.ts (0 errors) ==== + export namespace Models { + export class Person { + constructor(name: string) { } + } + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.js b/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.js new file mode 100644 index 0000000000000..f4dc0fe616ba3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.js @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/requireEmitSemicolon.ts] //// + +//// [requireEmitSemicolon_0.ts] +export namespace Models { + export class Person { + constructor(name: string) { } + } +} + +//// [requireEmitSemicolon_1.ts] +/// +import P = require("requireEmitSemicolon_0"); // bug was we were not emitting a ; here and causing runtime failures in node + +export namespace Database { + export class DB { + public findPerson(id: number): P.Models.Person { + return new P.Models.Person("Rock"); + } + } +} + +//// [requireEmitSemicolon_0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Models = void 0; +var Models; +(function (Models) { + class Person { + constructor(name) { } + } + Models.Person = Person; +})(Models || (exports.Models = Models = {})); +//// [requireEmitSemicolon_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Database = void 0; +/// +const P = require("requireEmitSemicolon_0"); // bug was we were not emitting a ; here and causing runtime failures in node +var Database; +(function (Database) { + class DB { + findPerson(id) { + return new P.Models.Person("Rock"); + } + } + Database.DB = DB; +})(Database || (exports.Database = Database = {})); diff --git a/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.symbols b/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.symbols new file mode 100644 index 0000000000000..718014af1cba2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.symbols @@ -0,0 +1,37 @@ +//// [tests/cases/compiler/requireEmitSemicolon.ts] //// + +=== requireEmitSemicolon_1.ts === +/// +import P = require("requireEmitSemicolon_0"); // bug was we were not emitting a ; here and causing runtime failures in node +>P : Symbol(P, Decl(requireEmitSemicolon_1.ts, 0, 0)) + +export namespace Database { +>Database : Symbol(Database, Decl(requireEmitSemicolon_1.ts, 1, 45)) + + export class DB { +>DB : Symbol(DB, Decl(requireEmitSemicolon_1.ts, 3, 27)) + + public findPerson(id: number): P.Models.Person { +>findPerson : Symbol(DB.findPerson, Decl(requireEmitSemicolon_1.ts, 4, 18)) +>id : Symbol(id, Decl(requireEmitSemicolon_1.ts, 5, 23)) +>P : Symbol(P, Decl(requireEmitSemicolon_1.ts, 0, 0)) +>Models : Symbol(P.Models) +>Person : Symbol(P.Models.Person) + + return new P.Models.Person("Rock"); +>P : Symbol(P, Decl(requireEmitSemicolon_1.ts, 0, 0)) + } + } +} +=== requireEmitSemicolon_0.ts === +export namespace Models { +>Models : Symbol(Models, Decl(requireEmitSemicolon_0.ts, 0, 0)) + + export class Person { +>Person : Symbol(Person, Decl(requireEmitSemicolon_0.ts, 0, 25)) + + constructor(name: string) { } +>name : Symbol(name, Decl(requireEmitSemicolon_0.ts, 2, 20)) + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.types b/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.types new file mode 100644 index 0000000000000..a18da29ad875e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/requireEmitSemicolon.types @@ -0,0 +1,42 @@ +//// [tests/cases/compiler/requireEmitSemicolon.ts] //// + +=== requireEmitSemicolon_1.ts === +/// +import P = require("requireEmitSemicolon_0"); // bug was we were not emitting a ; here and causing runtime failures in node +>P : any + +export namespace Database { +>Database : typeof Database + + export class DB { +>DB : DB + + public findPerson(id: number): P.Models.Person { +>findPerson : (id: number) => P.Models.Person +>id : number +>P : any +>Models : any + + return new P.Models.Person("Rock"); +>new P.Models.Person("Rock") : any +>P.Models.Person : any +>P.Models : any +>P : any +>Models : any +>Person : any +>"Rock" : "Rock" + } + } +} +=== requireEmitSemicolon_0.ts === +export namespace Models { +>Models : typeof Models + + export class Person { +>Person : Person + + constructor(name: string) { } +>name : string + } +} + diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js new file mode 100644 index 0000000000000..bacdb23148efe --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/sourceMapValidationExportAssignment.ts] //// + +//// [sourceMapValidationExportAssignment.ts] +class a { + public c; +} +export = a; + +//// [sourceMapValidationExportAssignment.js] +"use strict"; +class a { +} +module.exports = a; +//# sourceMappingURL=sourceMapValidationExportAssignment.js.map \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js.map b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js.map new file mode 100644 index 0000000000000..0a90105397a29 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js.map @@ -0,0 +1,3 @@ +//// [sourceMapValidationExportAssignment.js.map] +{"version":3,"file":"sourceMapValidationExportAssignment.js","sourceRoot":"","sources":["sourceMapValidationExportAssignment.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC;CAEN;AACD,iBAAS,CAAC,CAAC"} +//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KY2xhc3MgYSB7DQp9DQptb2R1bGUuZXhwb3J0cyA9IGE7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uRXhwb3J0QXNzaWdubWVudC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkV4cG9ydEFzc2lnbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRXhwb3J0QXNzaWdubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxDQUFDO0NBRU47QUFDRCxpQkFBUyxDQUFDLENBQUMifQ==,Y2xhc3MgYSB7CiAgICBwdWJsaWMgYzsKfQpleHBvcnQgPSBhOw== diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.sourcemap.txt b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.sourcemap.txt new file mode 100644 index 0000000000000..b5d237b760722 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.sourcemap.txt @@ -0,0 +1,47 @@ +=================================================================== +JsFile: sourceMapValidationExportAssignment.js +mapUrl: sourceMapValidationExportAssignment.js.map +sourceRoot: +sources: sourceMapValidationExportAssignment.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:sourceMapValidationExportAssignment.js +sourceFile:sourceMapValidationExportAssignment.ts +------------------------------------------------------------------- +>>>"use strict"; +>>>class a { +1 > +2 >^^^^^^ +3 > ^ +1 > +2 >class +3 > a +1 >Emitted(2, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(2, 7) Source(1, 7) + SourceIndex(0) +3 >Emitted(2, 8) Source(1, 8) + SourceIndex(0) +--- +>>>} +1 >^ +2 > ^^^^^^^^^^^^^^^^^^^-> +1 > { + > public c; + >} +1 >Emitted(3, 2) Source(3, 2) + SourceIndex(0) +--- +>>>module.exports = a; +1-> +2 >^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^ +5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> + > +2 >export = +3 > a +4 > ; +1->Emitted(4, 1) Source(4, 1) + SourceIndex(0) +2 >Emitted(4, 18) Source(4, 10) + SourceIndex(0) +3 >Emitted(4, 19) Source(4, 11) + SourceIndex(0) +4 >Emitted(4, 20) Source(4, 12) + SourceIndex(0) +--- +>>>//# sourceMappingURL=sourceMapValidationExportAssignment.js.map \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.symbols b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.symbols new file mode 100644 index 0000000000000..78c4d17542ed6 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.symbols @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/sourceMapValidationExportAssignment.ts] //// + +=== sourceMapValidationExportAssignment.ts === +class a { +>a : Symbol(a, Decl(sourceMapValidationExportAssignment.ts, 0, 0)) + + public c; +>c : Symbol(a.c, Decl(sourceMapValidationExportAssignment.ts, 0, 9)) +} +export = a; +>a : Symbol(a, Decl(sourceMapValidationExportAssignment.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.types b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.types new file mode 100644 index 0000000000000..67c6f9a7129e0 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.types @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/sourceMapValidationExportAssignment.ts] //// + +=== sourceMapValidationExportAssignment.ts === +class a { +>a : a + + public c; +>c : any +} +export = a; +>a : a + diff --git a/tsc/testdata/baselines/reference/compiler/topLevelExports.js b/tsc/testdata/baselines/reference/compiler/topLevelExports.js new file mode 100644 index 0000000000000..7ef7f94e9b1d8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/topLevelExports.js @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/topLevelExports.ts] //// + +//// [topLevelExports.ts] +export var foo = 3; + +function log(n:number) { return n;} + +void log(foo).toString(); + +//// [topLevelExports.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = void 0; +exports.foo = 3; +function log(n) { return n; } +void log(exports.foo).toString(); diff --git a/tsc/testdata/baselines/reference/compiler/topLevelExports.symbols b/tsc/testdata/baselines/reference/compiler/topLevelExports.symbols new file mode 100644 index 0000000000000..b65af27114134 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/topLevelExports.symbols @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/topLevelExports.ts] //// + +=== topLevelExports.ts === +export var foo = 3; +>foo : Symbol(foo, Decl(topLevelExports.ts, 0, 10)) + +function log(n:number) { return n;} +>log : Symbol(log, Decl(topLevelExports.ts, 0, 19)) +>n : Symbol(n, Decl(topLevelExports.ts, 2, 13)) +>n : Symbol(n, Decl(topLevelExports.ts, 2, 13)) + +void log(foo).toString(); +>log(foo).toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) +>log : Symbol(log, Decl(topLevelExports.ts, 0, 19)) +>foo : Symbol(foo, Decl(topLevelExports.ts, 0, 10)) +>toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) + diff --git a/tsc/testdata/baselines/reference/compiler/topLevelExports.types b/tsc/testdata/baselines/reference/compiler/topLevelExports.types new file mode 100644 index 0000000000000..cb22a7327c379 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/topLevelExports.types @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/topLevelExports.ts] //// + +=== topLevelExports.ts === +export var foo = 3; +>foo : number +>3 : 3 + +function log(n:number) { return n;} +>log : (n: number) => number +>n : number +>n : number + +void log(foo).toString(); +>void log(foo).toString() : undefined +>log(foo).toString() : string +>log(foo).toString : (radix?: number) => string +>log(foo) : number +>log : (n: number) => number +>foo : number +>toString : (radix?: number) => string + diff --git a/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.js b/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.js new file mode 100644 index 0000000000000..0e4d3347df8ad --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts] //// + +//// [other.ts] +export default 42; + +//// [index.ts] +import Answer from "./other.js"; +const x = 10 + Answer; +export { + x +}; + + +//// [other.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = 42; +//// [index.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const other_js_1 = __importDefault(require("./other.js")); +const x = 10 + other_js_1.default; +exports.x = x; diff --git a/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.symbols b/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.symbols new file mode 100644 index 0000000000000..a1c344770933e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.symbols @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts] //// + +=== other.ts === + +export default 42; + +=== index.ts === +import Answer from "./other.js"; +>Answer : Symbol(Answer, Decl(index.ts, 0, 6)) + +const x = 10 + Answer; +>x : Symbol(x, Decl(index.ts, 1, 5)) +>Answer : Symbol(Answer, Decl(index.ts, 0, 6)) + +export { + x +>x : Symbol(x, Decl(index.ts, 2, 8)) + +}; + diff --git a/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.types b/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.types new file mode 100644 index 0000000000000..ca95a71d8bdcf --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/tsconfigMapOptionsAreCaseInsensitive.types @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts] //// + +=== other.ts === + +export default 42; + +=== index.ts === +import Answer from "./other.js"; +>Answer : 42 + +const x = 10 + Answer; +>x : number +>10 + Answer : number +>10 : 10 +>Answer : 42 + +export { + x +>x : number + +}; + diff --git a/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).js b/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).js new file mode 100644 index 0000000000000..8353679ace7d2 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).js @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/typeAliasDeclarationEmit2.ts] //// + +//// [typeAliasDeclarationEmit2.ts] +export type A = { value: a }; + +//// [typeAliasDeclarationEmit2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + +//// [typeAliasDeclarationEmit2.d.ts] +export type A = { + value: a; +}; diff --git a/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).symbols b/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).symbols new file mode 100644 index 0000000000000..b39aa15995452 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).symbols @@ -0,0 +1,9 @@ +//// [tests/cases/compiler/typeAliasDeclarationEmit2.ts] //// + +=== typeAliasDeclarationEmit2.ts === +export type A = { value: a }; +>A : Symbol(A, Decl(typeAliasDeclarationEmit2.ts, 0, 0)) +>a : Symbol(a, Decl(typeAliasDeclarationEmit2.ts, 0, 14)) +>value : Symbol(value, Decl(typeAliasDeclarationEmit2.ts, 0, 20)) +>a : Symbol(a, Decl(typeAliasDeclarationEmit2.ts, 0, 14)) + diff --git a/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).types b/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).types new file mode 100644 index 0000000000000..bfb594968918f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeAliasDeclarationEmit2(target=es2015).types @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/typeAliasDeclarationEmit2.ts] //// + +=== typeAliasDeclarationEmit2.ts === +export type A = { value: a }; +>A : A +>value : a + diff --git a/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.errors.txt b/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.errors.txt new file mode 100644 index 0000000000000..5a20b3aee5f92 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.errors.txt @@ -0,0 +1,36 @@ +typeParameterCompatibilityAccrossDeclarations.ts(2,31): error TS2322: Type 'null' is not assignable to type 'T'. + 'T' could be instantiated with an arbitrary type which could be unrelated to 'null'. +typeParameterCompatibilityAccrossDeclarations.ts(17,5): error TS2454: Variable 'i' is used before being assigned. +typeParameterCompatibilityAccrossDeclarations.ts(20,6): error TS2454: Variable 'i2' is used before being assigned. + + +==== typeParameterCompatibilityAccrossDeclarations.ts (3 errors) ==== + var a = { + x: function (y: T): T { return null; } + ~~~~~~ +!!! error TS2322: Type 'null' is not assignable to type 'T'. +!!! error TS2322: 'T' could be instantiated with an arbitrary type which could be unrelated to 'null'. + } + var a2 = { + x: function (y: any): any { return null; } + } + export interface I { + x(y: T): T; + } + export interface I2 { + x(y: any): any; + } + + var i: I; + var i2: I2; + + a = i; // error + ~ +!!! error TS2454: Variable 'i' is used before being assigned. + i = a; // error + + a2 = i2; // no error + ~~ +!!! error TS2454: Variable 'i2' is used before being assigned. + i2 = a2; // no error + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.js b/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.js new file mode 100644 index 0000000000000..ac750279a27c4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.js @@ -0,0 +1,41 @@ +//// [tests/cases/compiler/typeParameterCompatibilityAccrossDeclarations.ts] //// + +//// [typeParameterCompatibilityAccrossDeclarations.ts] +var a = { + x: function (y: T): T { return null; } +} +var a2 = { + x: function (y: any): any { return null; } +} +export interface I { + x(y: T): T; +} +export interface I2 { + x(y: any): any; +} + +var i: I; +var i2: I2; + +a = i; // error +i = a; // error + +a2 = i2; // no error +i2 = a2; // no error + + +//// [typeParameterCompatibilityAccrossDeclarations.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var a = { + x: function (y) { return null; } +}; +var a2 = { + x: function (y) { return null; } +}; +var i; +var i2; +a = i; // error +i = a; // error +a2 = i2; // no error +i2 = a2; // no error diff --git a/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.symbols b/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.symbols new file mode 100644 index 0000000000000..fada6064e1c83 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.symbols @@ -0,0 +1,62 @@ +//// [tests/cases/compiler/typeParameterCompatibilityAccrossDeclarations.ts] //// + +=== typeParameterCompatibilityAccrossDeclarations.ts === +var a = { +>a : Symbol(a, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 0, 3)) + + x: function (y: T): T { return null; } +>x : Symbol(x, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 0, 9)) +>T : Symbol(T, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 1, 16)) +>y : Symbol(y, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 1, 19)) +>T : Symbol(T, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 1, 16)) +>T : Symbol(T, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 1, 16)) +} +var a2 = { +>a2 : Symbol(a2, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 3, 3)) + + x: function (y: any): any { return null; } +>x : Symbol(x, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 3, 10)) +>y : Symbol(y, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 4, 16)) +} +export interface I { +>I : Symbol(I, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 5, 1)) + + x(y: T): T; +>x : Symbol(I.x, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 6, 20)) +>T : Symbol(T, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 7, 5)) +>y : Symbol(y, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 7, 8)) +>T : Symbol(T, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 7, 5)) +>T : Symbol(T, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 7, 5)) +} +export interface I2 { +>I2 : Symbol(I2, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 8, 1)) + + x(y: any): any; +>x : Symbol(I2.x, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 9, 21)) +>y : Symbol(y, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 10, 5)) +} + +var i: I; +>i : Symbol(i, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 13, 3)) +>I : Symbol(I, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 5, 1)) + +var i2: I2; +>i2 : Symbol(i2, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 14, 3)) +>I2 : Symbol(I2, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 8, 1)) + +a = i; // error +>a : Symbol(a, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 0, 3)) +>i : Symbol(i, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 13, 3)) + +i = a; // error +>i : Symbol(i, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 13, 3)) +>a : Symbol(a, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 0, 3)) + +a2 = i2; // no error +>a2 : Symbol(a2, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 3, 3)) +>i2 : Symbol(i2, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 14, 3)) + +i2 = a2; // no error +>i2 : Symbol(i2, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 14, 3)) +>a2 : Symbol(a2, Decl(typeParameterCompatibilityAccrossDeclarations.ts, 3, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.types b/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.types new file mode 100644 index 0000000000000..7c36eb8a1334f --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeParameterCompatibilityAccrossDeclarations.types @@ -0,0 +1,58 @@ +//// [tests/cases/compiler/typeParameterCompatibilityAccrossDeclarations.ts] //// + +=== typeParameterCompatibilityAccrossDeclarations.ts === +var a = { +>a : { x: (y: T) => T; } +>{ x: function (y: T): T { return null; }} : { x: (y: T) => T; } + + x: function (y: T): T { return null; } +>x : (y: T) => T +>function (y: T): T { return null; } : (y: T) => T +>y : T +} +var a2 = { +>a2 : { x: (y: any) => any; } +>{ x: function (y: any): any { return null; }} : { x: (y: any) => any; } + + x: function (y: any): any { return null; } +>x : (y: any) => any +>function (y: any): any { return null; } : (y: any) => any +>y : any +} +export interface I { + x(y: T): T; +>x : (y: T) => T +>y : T +} +export interface I2 { + x(y: any): any; +>x : (y: any) => any +>y : any +} + +var i: I; +>i : I + +var i2: I2; +>i2 : I2 + +a = i; // error +>a = i : I +>a : { x: (y: T) => T; } +>i : I + +i = a; // error +>i = a : { x: (y: T) => T; } +>i : I +>a : { x: (y: T) => T; } + +a2 = i2; // no error +>a2 = i2 : I2 +>a2 : { x: (y: any) => any; } +>i2 : I2 + +i2 = a2; // no error +>i2 = a2 : { x: (y: any) => any; } +>i2 : I2 +>a2 : { x: (y: any) => any; } + diff --git a/tsc/testdata/baselines/reference/compiler/typeResolution.js b/tsc/testdata/baselines/reference/compiler/typeResolution.js new file mode 100644 index 0000000000000..e6c8eb2f30340 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeResolution.js @@ -0,0 +1,254 @@ +//// [tests/cases/compiler/typeResolution.ts] //// + +//// [typeResolution.ts] +export namespace TopLevelModule1 { + export namespace SubModule1 { + export namespace SubSubModule1 { + export class ClassA { + public AisIn1_1_1() { + // Try all qualified names of this type + var a1: ClassA; a1.AisIn1_1_1(); + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + + // Two variants of qualifying a peer type + var b1: ClassB; b1.BisIn1_1_1(); + var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + + // Type only accessible from the root + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + + // Interface reference + var d1: InterfaceX; d1.XisIn1_1_1(); + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + } + } + export class ClassB { + public BisIn1_1_1() { + /** Exactly the same as above in AisIn1_1_1 **/ + + // Try all qualified names of this type + var a1: ClassA; a1.AisIn1_1_1(); + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + + // Two variants of qualifying a peer type + var b1: ClassB; b1.BisIn1_1_1(); + var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + + // Type only accessible from the root + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + + // Interface reference + var d1: InterfaceX; d1.XisIn1_1_1(); + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + } + } + export interface InterfaceX { XisIn1_1_1(); } + class NonExportedClassQ { + constructor() { + function QQ() { + /* Sampling of stuff from AisIn1_1_1 */ + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + var d1: InterfaceX; d1.XisIn1_1_1(); + var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + } + } + } + } + + // Should have no effect on S1.SS1.ClassA above because it is not exported + class ClassA { + constructor() { + function AA() { + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + + // Interface reference + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + } + } + } + } + + export namespace SubModule2 { + export namespace SubSubModule2 { + // No code here since these are the mirror of the above calls + export class ClassA { public AisIn1_2_2() { } } + export class ClassB { public BisIn1_2_2() { } } + export class ClassC { public CisIn1_2_2() { } } + export interface InterfaceY { YisIn1_2_2(); } + interface NonExportedInterfaceQ { } + } + + export interface InterfaceY { YisIn1_2(); } + } + + class ClassA { + public AisIn1() { } + } + + interface InterfaceY { + YisIn1(); + } + + namespace NotExportedModule { + export class ClassA { } + } +} + +namespace TopLevelModule2 { + export namespace SubModule3 { + export class ClassA { + public AisIn2_3() { } + } + } +} + + + +//// [typeResolution.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TopLevelModule1 = void 0; +var TopLevelModule1; +(function (TopLevelModule1) { + let SubModule1; + (function (SubModule1) { + let SubSubModule1; + (function (SubSubModule1) { + class ClassA { + AisIn1_1_1() { + // Try all qualified names of this type + var a1; + a1.AisIn1_1_1(); + var a2; + a2.AisIn1_1_1(); + var a3; + a3.AisIn1_1_1(); + var a4; + a4.AisIn1_1_1(); + // Two variants of qualifying a peer type + var b1; + b1.BisIn1_1_1(); + var b2; + b2.BisIn1_1_1(); + // Type only accessible from the root + var c1; + c1.AisIn1_2_2(); + // Interface reference + var d1; + d1.XisIn1_1_1(); + var d2; + d2.XisIn1_1_1(); + } + } + SubSubModule1.ClassA = ClassA; + class ClassB { + BisIn1_1_1() { + /** Exactly the same as above in AisIn1_1_1 **/ + // Try all qualified names of this type + var a1; + a1.AisIn1_1_1(); + var a2; + a2.AisIn1_1_1(); + var a3; + a3.AisIn1_1_1(); + var a4; + a4.AisIn1_1_1(); + // Two variants of qualifying a peer type + var b1; + b1.BisIn1_1_1(); + var b2; + b2.BisIn1_1_1(); + // Type only accessible from the root + var c1; + c1.AisIn1_2_2(); + var c2; + c2.AisIn2_3(); + // Interface reference + var d1; + d1.XisIn1_1_1(); + var d2; + d2.XisIn1_1_1(); + } + } + SubSubModule1.ClassB = ClassB; + class NonExportedClassQ { + constructor() { + function QQ() { + /* Sampling of stuff from AisIn1_1_1 */ + var a4; + a4.AisIn1_1_1(); + var c1; + c1.AisIn1_2_2(); + var d1; + d1.XisIn1_1_1(); + var c2; + c2.AisIn2_3(); + } + } + } + })(SubSubModule1 = SubModule1.SubSubModule1 || (SubModule1.SubSubModule1 = {})); + // Should have no effect on S1.SS1.ClassA above because it is not exported + class ClassA { + constructor() { + function AA() { + var a2; + a2.AisIn1_1_1(); + var a3; + a3.AisIn1_1_1(); + var a4; + a4.AisIn1_1_1(); + // Interface reference + var d2; + d2.XisIn1_1_1(); + } + } + } + })(SubModule1 = TopLevelModule1.SubModule1 || (TopLevelModule1.SubModule1 = {})); + let SubModule2; + (function (SubModule2) { + let SubSubModule2; + (function (SubSubModule2) { + // No code here since these are the mirror of the above calls + class ClassA { + AisIn1_2_2() { } + } + SubSubModule2.ClassA = ClassA; + class ClassB { + BisIn1_2_2() { } + } + SubSubModule2.ClassB = ClassB; + class ClassC { + CisIn1_2_2() { } + } + SubSubModule2.ClassC = ClassC; + })(SubSubModule2 = SubModule2.SubSubModule2 || (SubModule2.SubSubModule2 = {})); + })(SubModule2 = TopLevelModule1.SubModule2 || (TopLevelModule1.SubModule2 = {})); + class ClassA { + AisIn1() { } + } + let NotExportedModule; + (function (NotExportedModule) { + class ClassA { + } + NotExportedModule.ClassA = ClassA; + })(NotExportedModule || (NotExportedModule = {})); +})(TopLevelModule1 || (exports.TopLevelModule1 = TopLevelModule1 = {})); +var TopLevelModule2; +(function (TopLevelModule2) { + let SubModule3; + (function (SubModule3) { + class ClassA { + AisIn2_3() { } + } + SubModule3.ClassA = ClassA; + })(SubModule3 = TopLevelModule2.SubModule3 || (TopLevelModule2.SubModule3 = {})); +})(TopLevelModule2 || (TopLevelModule2 = {})); +//# sourceMappingURL=typeResolution.js.map \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/typeResolution.js.map b/tsc/testdata/baselines/reference/compiler/typeResolution.js.map new file mode 100644 index 0000000000000..70291ebd876a1 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeResolution.js.map @@ -0,0 +1,3 @@ +//// [typeResolution.js.map] +{"version":3,"file":"typeResolution.js","sourceRoot":"","sources":["typeResolution.ts"],"names":[],"mappings":";;;AAAA,IAAiB,eAAe,CAmG/B;AAnGD,WAAiB,eAAe;IAC5B,IAAiB,UAAU,CAwE1B;IAxED,WAAiB,UAAU;QACvB,IAAiB,aAAa,CAwD7B;QAxDD,WAAiB,aAAa;YAC1B,MAAa,MAAM;gBACR,UAAU;oBACb,uCAAuC;oBACvC,IAAI,EAAU,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAChC,IAAI,EAAwB,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAC9C,IAAI,EAAmC,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBACzD,IAAI,EAAmD,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAEzE,yCAAyC;oBACzC,IAAI,EAAU,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAChC,IAAI,EAAmD,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAEzE,qCAAqC;oBACrC,IAAI,EAAmD,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAEzE,sBAAsB;oBACtB,IAAI,EAAc,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBACpC,IAAI,EAA4B,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;gBACtD,CAAC;aACJ;YAnBY,cAAA,MAAM,SAmBlB,CAAA;YACD,MAAa,MAAM;gBACR,UAAU;oBACb,+CAA+C;oBAE/C,uCAAuC;oBACvC,IAAI,EAAU,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAChC,IAAI,EAAwB,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAC9C,IAAI,EAAmC,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBACzD,IAAI,EAAmD,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAEzE,yCAAyC;oBACzC,IAAI,EAAU,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAChC,IAAI,EAAmD,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAEzE,qCAAqC;oBACrC,IAAI,EAAmD,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBACzE,IAAI,EAAqC,CAAC;oBAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;oBAEzD,sBAAsB;oBACtB,IAAI,EAAc,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBACpC,IAAI,EAA4B,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;gBACtD,CAAC;aACJ;YAtBY,cAAA,MAAM,SAsBlB,CAAA;YAED,MAAM,iBAAiB;gBACnB;oBACI,SAAS,EAAE;wBACP,uCAAuC;wBACvC,IAAI,EAAmD,CAAC;wBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;wBACzE,IAAI,EAAmD,CAAC;wBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;wBACzE,IAAI,EAAc,CAAC;wBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;wBACpC,IAAI,EAAqC,CAAC;wBAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;oBAC7D,CAAC;gBACL,CAAC;aACJ;QACL,CAAC,EAxDgB,aAAa,GAAb,WAAA,aAAa,KAAb,WAAA,aAAa,QAwD7B;QAED,0EAA0E;QAC1E,MAAM,MAAM;YACR;gBACI,SAAS,EAAE;oBACP,IAAI,EAAwB,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAC9C,IAAI,EAAmC,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBACzD,IAAI,EAAmD,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;oBAEzE,sBAAsB;oBACtB,IAAI,EAA4B,CAAC;oBAAC,EAAE,CAAC,UAAU,EAAE,CAAC;gBACtD,CAAC;YACL,CAAC;SACJ;IACL,CAAC,EAxEgB,UAAU,GAAV,gBAAA,UAAU,KAAV,gBAAA,UAAU,QAwE1B;IAED,IAAiB,UAAU,CAW1B;IAXD,WAAiB,UAAU;QACvB,IAAiB,aAAa,CAO7B;QAPD,WAAiB,aAAa;YAC1B,6DAA6D;YAC7D,MAAa,MAAM;gBAAU,UAAU,KAAK,CAAC;aAAE;YAAlC,cAAA,MAAM,SAA4B,CAAA;YAC/C,MAAa,MAAM;gBAAU,UAAU,KAAK,CAAC;aAAE;YAAlC,cAAA,MAAM,SAA4B,CAAA;YAC/C,MAAa,MAAM;gBAAU,UAAU,KAAK,CAAC;aAAE;YAAlC,cAAA,MAAM,SAA4B,CAAA;QAGnD,CAAC,EAPgB,aAAa,GAAb,WAAA,aAAa,KAAb,WAAA,aAAa,QAO7B;IAGL,CAAC,EAXgB,UAAU,GAAV,gBAAA,UAAU,KAAV,gBAAA,UAAU,QAW1B;IAED,MAAM,MAAM;QACD,MAAM,KAAK,CAAC;KACtB;IAMD,IAAU,iBAAiB,CAE1B;IAFD,WAAU,iBAAiB;QACvB,MAAa,MAAM;SAAI;QAAV,kBAAA,MAAM,SAAI,CAAA;IAC3B,CAAC,EAFS,iBAAiB,KAAjB,iBAAiB,QAE1B;AACL,CAAC,EAnGgB,eAAe,aAAf,eAAe,GAAf,eAAe,QAmG/B;AAED,IAAU,eAAe,CAMxB;AAND,WAAU,eAAe;IACrB,IAAiB,UAAU,CAI1B;IAJD,WAAiB,UAAU;QACvB,MAAa,MAAM;YACR,QAAQ,KAAK,CAAC;SACxB;QAFY,WAAA,MAAM,SAElB,CAAA;IACL,CAAC,EAJgB,UAAU,GAAV,gBAAA,UAAU,KAAV,gBAAA,UAAU,QAI1B;AACL,CAAC,EANS,eAAe,KAAf,eAAe,QAMxB"} +//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuVG9wTGV2ZWxNb2R1bGUxID0gdm9pZCAwOw0KdmFyIFRvcExldmVsTW9kdWxlMTsNCihmdW5jdGlvbiAoVG9wTGV2ZWxNb2R1bGUxKSB7DQogICAgbGV0IFN1Yk1vZHVsZTE7DQogICAgKGZ1bmN0aW9uIChTdWJNb2R1bGUxKSB7DQogICAgICAgIGxldCBTdWJTdWJNb2R1bGUxOw0KICAgICAgICAoZnVuY3Rpb24gKFN1YlN1Yk1vZHVsZTEpIHsNCiAgICAgICAgICAgIGNsYXNzIENsYXNzQSB7DQogICAgICAgICAgICAgICAgQWlzSW4xXzFfMSgpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gVHJ5IGFsbCBxdWFsaWZpZWQgbmFtZXMgb2YgdGhpcyB0eXBlDQogICAgICAgICAgICAgICAgICAgIHZhciBhMTsNCiAgICAgICAgICAgICAgICAgICAgYTEuQWlzSW4xXzFfMSgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYTI7DQogICAgICAgICAgICAgICAgICAgIGEyLkFpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGEzOw0KICAgICAgICAgICAgICAgICAgICBhMy5BaXNJbjFfMV8xKCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBhNDsNCiAgICAgICAgICAgICAgICAgICAgYTQuQWlzSW4xXzFfMSgpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUd28gdmFyaWFudHMgb2YgcXVhbGlmeWluZyBhIHBlZXIgdHlwZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgYjE7DQogICAgICAgICAgICAgICAgICAgIGIxLkJpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGIyOw0KICAgICAgICAgICAgICAgICAgICBiMi5CaXNJbjFfMV8xKCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFR5cGUgb25seSBhY2Nlc3NpYmxlIGZyb20gdGhlIHJvb3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGMxOw0KICAgICAgICAgICAgICAgICAgICBjMS5BaXNJbjFfMl8yKCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEludGVyZmFjZSByZWZlcmVuY2UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGQxOw0KICAgICAgICAgICAgICAgICAgICBkMS5YaXNJbjFfMV8xKCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkMjsNCiAgICAgICAgICAgICAgICAgICAgZDIuWGlzSW4xXzFfMSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFN1YlN1Yk1vZHVsZTEuQ2xhc3NBID0gQ2xhc3NBOw0KICAgICAgICAgICAgY2xhc3MgQ2xhc3NCIHsNCiAgICAgICAgICAgICAgICBCaXNJbjFfMV8xKCkgew0KICAgICAgICAgICAgICAgICAgICAvKiogRXhhY3RseSB0aGUgc2FtZSBhcyBhYm92ZSBpbiBBaXNJbjFfMV8xICoqLw0KICAgICAgICAgICAgICAgICAgICAvLyBUcnkgYWxsIHF1YWxpZmllZCBuYW1lcyBvZiB0aGlzIHR5cGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGExOw0KICAgICAgICAgICAgICAgICAgICBhMS5BaXNJbjFfMV8xKCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBhMjsNCiAgICAgICAgICAgICAgICAgICAgYTIuQWlzSW4xXzFfMSgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYTM7DQogICAgICAgICAgICAgICAgICAgIGEzLkFpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGE0Ow0KICAgICAgICAgICAgICAgICAgICBhNC5BaXNJbjFfMV8xKCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFR3byB2YXJpYW50cyBvZiBxdWFsaWZ5aW5nIGEgcGVlciB0eXBlDQogICAgICAgICAgICAgICAgICAgIHZhciBiMTsNCiAgICAgICAgICAgICAgICAgICAgYjEuQmlzSW4xXzFfMSgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYjI7DQogICAgICAgICAgICAgICAgICAgIGIyLkJpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVHlwZSBvbmx5IGFjY2Vzc2libGUgZnJvbSB0aGUgcm9vdA0KICAgICAgICAgICAgICAgICAgICB2YXIgYzE7DQogICAgICAgICAgICAgICAgICAgIGMxLkFpc0luMV8yXzIoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGMyOw0KICAgICAgICAgICAgICAgICAgICBjMi5BaXNJbjJfMygpOw0KICAgICAgICAgICAgICAgICAgICAvLyBJbnRlcmZhY2UgcmVmZXJlbmNlDQogICAgICAgICAgICAgICAgICAgIHZhciBkMTsNCiAgICAgICAgICAgICAgICAgICAgZDEuWGlzSW4xXzFfMSgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZDI7DQogICAgICAgICAgICAgICAgICAgIGQyLlhpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBTdWJTdWJNb2R1bGUxLkNsYXNzQiA9IENsYXNzQjsNCiAgICAgICAgICAgIGNsYXNzIE5vbkV4cG9ydGVkQ2xhc3NRIHsNCiAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gUVEoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvKiBTYW1wbGluZyBvZiBzdHVmZiBmcm9tIEFpc0luMV8xXzEgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhNDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGE0LkFpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGMxLkFpc0luMV8yXzIoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGQxLlhpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjMjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGMyLkFpc0luMl8zKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pKFN1YlN1Yk1vZHVsZTEgPSBTdWJNb2R1bGUxLlN1YlN1Yk1vZHVsZTEgfHwgKFN1Yk1vZHVsZTEuU3ViU3ViTW9kdWxlMSA9IHt9KSk7DQogICAgICAgIC8vIFNob3VsZCBoYXZlIG5vIGVmZmVjdCBvbiBTMS5TUzEuQ2xhc3NBIGFib3ZlIGJlY2F1c2UgaXQgaXMgbm90IGV4cG9ydGVkDQogICAgICAgIGNsYXNzIENsYXNzQSB7DQogICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBBQSgpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGEyOw0KICAgICAgICAgICAgICAgICAgICBhMi5BaXNJbjFfMV8xKCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBhMzsNCiAgICAgICAgICAgICAgICAgICAgYTMuQWlzSW4xXzFfMSgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYTQ7DQogICAgICAgICAgICAgICAgICAgIGE0LkFpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gSW50ZXJmYWNlIHJlZmVyZW5jZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZDI7DQogICAgICAgICAgICAgICAgICAgIGQyLlhpc0luMV8xXzEoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9KShTdWJNb2R1bGUxID0gVG9wTGV2ZWxNb2R1bGUxLlN1Yk1vZHVsZTEgfHwgKFRvcExldmVsTW9kdWxlMS5TdWJNb2R1bGUxID0ge30pKTsNCiAgICBsZXQgU3ViTW9kdWxlMjsNCiAgICAoZnVuY3Rpb24gKFN1Yk1vZHVsZTIpIHsNCiAgICAgICAgbGV0IFN1YlN1Yk1vZHVsZTI7DQogICAgICAgIChmdW5jdGlvbiAoU3ViU3ViTW9kdWxlMikgew0KICAgICAgICAgICAgLy8gTm8gY29kZSBoZXJlIHNpbmNlIHRoZXNlIGFyZSB0aGUgbWlycm9yIG9mIHRoZSBhYm92ZSBjYWxscw0KICAgICAgICAgICAgY2xhc3MgQ2xhc3NBIHsNCiAgICAgICAgICAgICAgICBBaXNJbjFfMl8yKCkgeyB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBTdWJTdWJNb2R1bGUyLkNsYXNzQSA9IENsYXNzQTsNCiAgICAgICAgICAgIGNsYXNzIENsYXNzQiB7DQogICAgICAgICAgICAgICAgQmlzSW4xXzJfMigpIHsgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgU3ViU3ViTW9kdWxlMi5DbGFzc0IgPSBDbGFzc0I7DQogICAgICAgICAgICBjbGFzcyBDbGFzc0Mgew0KICAgICAgICAgICAgICAgIENpc0luMV8yXzIoKSB7IH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFN1YlN1Yk1vZHVsZTIuQ2xhc3NDID0gQ2xhc3NDOw0KICAgICAgICB9KShTdWJTdWJNb2R1bGUyID0gU3ViTW9kdWxlMi5TdWJTdWJNb2R1bGUyIHx8IChTdWJNb2R1bGUyLlN1YlN1Yk1vZHVsZTIgPSB7fSkpOw0KICAgIH0pKFN1Yk1vZHVsZTIgPSBUb3BMZXZlbE1vZHVsZTEuU3ViTW9kdWxlMiB8fCAoVG9wTGV2ZWxNb2R1bGUxLlN1Yk1vZHVsZTIgPSB7fSkpOw0KICAgIGNsYXNzIENsYXNzQSB7DQogICAgICAgIEFpc0luMSgpIHsgfQ0KICAgIH0NCiAgICBsZXQgTm90RXhwb3J0ZWRNb2R1bGU7DQogICAgKGZ1bmN0aW9uIChOb3RFeHBvcnRlZE1vZHVsZSkgew0KICAgICAgICBjbGFzcyBDbGFzc0Egew0KICAgICAgICB9DQogICAgICAgIE5vdEV4cG9ydGVkTW9kdWxlLkNsYXNzQSA9IENsYXNzQTsNCiAgICB9KShOb3RFeHBvcnRlZE1vZHVsZSB8fCAoTm90RXhwb3J0ZWRNb2R1bGUgPSB7fSkpOw0KfSkoVG9wTGV2ZWxNb2R1bGUxIHx8IChleHBvcnRzLlRvcExldmVsTW9kdWxlMSA9IFRvcExldmVsTW9kdWxlMSA9IHt9KSk7DQp2YXIgVG9wTGV2ZWxNb2R1bGUyOw0KKGZ1bmN0aW9uIChUb3BMZXZlbE1vZHVsZTIpIHsNCiAgICBsZXQgU3ViTW9kdWxlMzsNCiAgICAoZnVuY3Rpb24gKFN1Yk1vZHVsZTMpIHsNCiAgICAgICAgY2xhc3MgQ2xhc3NBIHsNCiAgICAgICAgICAgIEFpc0luMl8zKCkgeyB9DQogICAgICAgIH0NCiAgICAgICAgU3ViTW9kdWxlMy5DbGFzc0EgPSBDbGFzc0E7DQogICAgfSkoU3ViTW9kdWxlMyA9IFRvcExldmVsTW9kdWxlMi5TdWJNb2R1bGUzIHx8IChUb3BMZXZlbE1vZHVsZTIuU3ViTW9kdWxlMyA9IHt9KSk7DQp9KShUb3BMZXZlbE1vZHVsZTIgfHwgKFRvcExldmVsTW9kdWxlMiA9IHt9KSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD10eXBlUmVzb2x1dGlvbi5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZVJlc29sdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlUmVzb2x1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFpQixlQUFlLENBbUcvQjtBQW5HRCxXQUFpQixlQUFlO0lBQzVCLElBQWlCLFVBQVUsQ0F3RTFCO0lBeEVELFdBQWlCLFVBQVU7UUFDdkIsSUFBaUIsYUFBYSxDQXdEN0I7UUF4REQsV0FBaUIsYUFBYTtZQUMxQixNQUFhLE1BQU07Z0JBQ1IsVUFBVTtvQkFDYix1Q0FBdUM7b0JBQ3ZDLElBQUksRUFBVSxDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEMsSUFBSSxFQUF3QixDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDOUMsSUFBSSxFQUFtQyxDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDekQsSUFBSSxFQUFtRCxDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFFekUseUNBQXlDO29CQUN6QyxJQUFJLEVBQVUsQ0FBQztvQkFBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2hDLElBQUksRUFBbUQsQ0FBQztvQkFBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBRXpFLHFDQUFxQztvQkFDckMsSUFBSSxFQUFtRCxDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFFekUsc0JBQXNCO29CQUN0QixJQUFJLEVBQWMsQ0FBQztvQkFBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3BDLElBQUksRUFBNEIsQ0FBQztvQkFBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3RELENBQUM7YUFDSjtZQW5CWSxjQUFBLE1BQU0sU0FtQmxCLENBQUE7WUFDRCxNQUFhLE1BQU07Z0JBQ1IsVUFBVTtvQkFDYiwrQ0FBK0M7b0JBRS9DLHVDQUF1QztvQkFDdkMsSUFBSSxFQUFVLENBQUM7b0JBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNoQyxJQUFJLEVBQXdCLENBQUM7b0JBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUM5QyxJQUFJLEVBQW1DLENBQUM7b0JBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUN6RCxJQUFJLEVBQW1ELENBQUM7b0JBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUV6RSx5Q0FBeUM7b0JBQ3pDLElBQUksRUFBVSxDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEMsSUFBSSxFQUFtRCxDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFFekUscUNBQXFDO29CQUNyQyxJQUFJLEVBQW1ELENBQUM7b0JBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUN6RSxJQUFJLEVBQXFDLENBQUM7b0JBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUV6RCxzQkFBc0I7b0JBQ3RCLElBQUksRUFBYyxDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDcEMsSUFBSSxFQUE0QixDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDdEQsQ0FBQzthQUNKO1lBdEJZLGNBQUEsTUFBTSxTQXNCbEIsQ0FBQTtZQUVELE1BQU0saUJBQWlCO2dCQUNuQjtvQkFDSSxTQUFTLEVBQUU7d0JBQ1AsdUNBQXVDO3dCQUN2QyxJQUFJLEVBQW1ELENBQUM7d0JBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO3dCQUN6RSxJQUFJLEVBQW1ELENBQUM7d0JBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO3dCQUN6RSxJQUFJLEVBQWMsQ0FBQzt3QkFBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQ3BDLElBQUksRUFBcUMsQ0FBQzt3QkFBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzdELENBQUM7Z0JBQ0wsQ0FBQzthQUNKO1FBQ0wsQ0FBQyxFQXhEZ0IsYUFBYSxHQUFiLFdBQUEsYUFBYSxLQUFiLFdBQUEsYUFBYSxRQXdEN0I7UUFFRCwwRUFBMEU7UUFDMUUsTUFBTSxNQUFNO1lBQ1I7Z0JBQ0ksU0FBUyxFQUFFO29CQUNQLElBQUksRUFBd0IsQ0FBQztvQkFBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQzlDLElBQUksRUFBbUMsQ0FBQztvQkFBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3pELElBQUksRUFBbUQsQ0FBQztvQkFBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBRXpFLHNCQUFzQjtvQkFDdEIsSUFBSSxFQUE0QixDQUFDO29CQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDdEQsQ0FBQztZQUNMLENBQUM7U0FDSjtJQUNMLENBQUMsRUF4RWdCLFVBQVUsR0FBVixnQkFBQSxVQUFVLEtBQVYsZ0JBQUEsVUFBVSxRQXdFMUI7SUFFRCxJQUFpQixVQUFVLENBVzFCO0lBWEQsV0FBaUIsVUFBVTtRQUN2QixJQUFpQixhQUFhLENBTzdCO1FBUEQsV0FBaUIsYUFBYTtZQUMxQiw2REFBNkQ7WUFDN0QsTUFBYSxNQUFNO2dCQUFVLFVBQVUsS0FBSyxDQUFDO2FBQUU7WUFBbEMsY0FBQSxNQUFNLFNBQTRCLENBQUE7WUFDL0MsTUFBYSxNQUFNO2dCQUFVLFVBQVUsS0FBSyxDQUFDO2FBQUU7WUFBbEMsY0FBQSxNQUFNLFNBQTRCLENBQUE7WUFDL0MsTUFBYSxNQUFNO2dCQUFVLFVBQVUsS0FBSyxDQUFDO2FBQUU7WUFBbEMsY0FBQSxNQUFNLFNBQTRCLENBQUE7UUFHbkQsQ0FBQyxFQVBnQixhQUFhLEdBQWIsV0FBQSxhQUFhLEtBQWIsV0FBQSxhQUFhLFFBTzdCO0lBR0wsQ0FBQyxFQVhnQixVQUFVLEdBQVYsZ0JBQUEsVUFBVSxLQUFWLGdCQUFBLFVBQVUsUUFXMUI7SUFFRCxNQUFNLE1BQU07UUFDRCxNQUFNLEtBQUssQ0FBQztLQUN0QjtJQU1ELElBQVUsaUJBQWlCLENBRTFCO0lBRkQsV0FBVSxpQkFBaUI7UUFDdkIsTUFBYSxNQUFNO1NBQUk7UUFBVixrQkFBQSxNQUFNLFNBQUksQ0FBQTtJQUMzQixDQUFDLEVBRlMsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUUxQjtBQUNMLENBQUMsRUFuR2dCLGVBQWUsYUFBZixlQUFlLEdBQWYsZUFBZSxRQW1HL0I7QUFFRCxJQUFVLGVBQWUsQ0FNeEI7QUFORCxXQUFVLGVBQWU7SUFDckIsSUFBaUIsVUFBVSxDQUkxQjtJQUpELFdBQWlCLFVBQVU7UUFDdkIsTUFBYSxNQUFNO1lBQ1IsUUFBUSxLQUFLLENBQUM7U0FDeEI7UUFGWSxXQUFBLE1BQU0sU0FFbEIsQ0FBQTtJQUNMLENBQUMsRUFKZ0IsVUFBVSxHQUFWLGdCQUFBLFVBQVUsS0FBVixnQkFBQSxVQUFVLFFBSTFCO0FBQ0wsQ0FBQyxFQU5TLGVBQWUsS0FBZixlQUFlLFFBTXhCIn0=,ZXhwb3J0IG5hbWVzcGFjZSBUb3BMZXZlbE1vZHVsZTEgewogICAgZXhwb3J0IG5hbWVzcGFjZSBTdWJNb2R1bGUxIHsKICAgICAgICBleHBvcnQgbmFtZXNwYWNlIFN1YlN1Yk1vZHVsZTEgewogICAgICAgICAgICBleHBvcnQgY2xhc3MgQ2xhc3NBIHsKICAgICAgICAgICAgICAgIHB1YmxpYyBBaXNJbjFfMV8xKCkgewogICAgICAgICAgICAgICAgICAgIC8vIFRyeSBhbGwgcXVhbGlmaWVkIG5hbWVzIG9mIHRoaXMgdHlwZQogICAgICAgICAgICAgICAgICAgIHZhciBhMTogQ2xhc3NBOyBhMS5BaXNJbjFfMV8xKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGEyOiBTdWJTdWJNb2R1bGUxLkNsYXNzQTsgYTIuQWlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgIHZhciBhMzogU3ViTW9kdWxlMS5TdWJTdWJNb2R1bGUxLkNsYXNzQTsgYTMuQWlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgIHZhciBhNDogVG9wTGV2ZWxNb2R1bGUxLlN1Yk1vZHVsZTEuU3ViU3ViTW9kdWxlMS5DbGFzc0E7IGE0LkFpc0luMV8xXzEoKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAvLyBUd28gdmFyaWFudHMgb2YgcXVhbGlmeWluZyBhIHBlZXIgdHlwZQogICAgICAgICAgICAgICAgICAgIHZhciBiMTogQ2xhc3NCOyBiMS5CaXNJbjFfMV8xKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGIyOiBUb3BMZXZlbE1vZHVsZTEuU3ViTW9kdWxlMS5TdWJTdWJNb2R1bGUxLkNsYXNzQjsgYjIuQmlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIC8vIFR5cGUgb25seSBhY2Nlc3NpYmxlIGZyb20gdGhlIHJvb3QKICAgICAgICAgICAgICAgICAgICB2YXIgYzE6IFRvcExldmVsTW9kdWxlMS5TdWJNb2R1bGUyLlN1YlN1Yk1vZHVsZTIuQ2xhc3NBOyBjMS5BaXNJbjFfMl8yKCk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgLy8gSW50ZXJmYWNlIHJlZmVyZW5jZQogICAgICAgICAgICAgICAgICAgIHZhciBkMTogSW50ZXJmYWNlWDsgZDEuWGlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgIHZhciBkMjogU3ViU3ViTW9kdWxlMS5JbnRlcmZhY2VYOyBkMi5YaXNJbjFfMV8xKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXhwb3J0IGNsYXNzIENsYXNzQiB7CiAgICAgICAgICAgICAgICBwdWJsaWMgQmlzSW4xXzFfMSgpIHsKICAgICAgICAgICAgICAgICAgICAvKiogRXhhY3RseSB0aGUgc2FtZSBhcyBhYm92ZSBpbiBBaXNJbjFfMV8xICoqLwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIC8vIFRyeSBhbGwgcXVhbGlmaWVkIG5hbWVzIG9mIHRoaXMgdHlwZQogICAgICAgICAgICAgICAgICAgIHZhciBhMTogQ2xhc3NBOyBhMS5BaXNJbjFfMV8xKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGEyOiBTdWJTdWJNb2R1bGUxLkNsYXNzQTsgYTIuQWlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgIHZhciBhMzogU3ViTW9kdWxlMS5TdWJTdWJNb2R1bGUxLkNsYXNzQTsgYTMuQWlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgIHZhciBhNDogVG9wTGV2ZWxNb2R1bGUxLlN1Yk1vZHVsZTEuU3ViU3ViTW9kdWxlMS5DbGFzc0E7IGE0LkFpc0luMV8xXzEoKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAvLyBUd28gdmFyaWFudHMgb2YgcXVhbGlmeWluZyBhIHBlZXIgdHlwZQogICAgICAgICAgICAgICAgICAgIHZhciBiMTogQ2xhc3NCOyBiMS5CaXNJbjFfMV8xKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGIyOiBUb3BMZXZlbE1vZHVsZTEuU3ViTW9kdWxlMS5TdWJTdWJNb2R1bGUxLkNsYXNzQjsgYjIuQmlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIC8vIFR5cGUgb25seSBhY2Nlc3NpYmxlIGZyb20gdGhlIHJvb3QKICAgICAgICAgICAgICAgICAgICB2YXIgYzE6IFRvcExldmVsTW9kdWxlMS5TdWJNb2R1bGUyLlN1YlN1Yk1vZHVsZTIuQ2xhc3NBOyBjMS5BaXNJbjFfMl8yKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGMyOiBUb3BMZXZlbE1vZHVsZTIuU3ViTW9kdWxlMy5DbGFzc0E7IGMyLkFpc0luMl8zKCk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgLy8gSW50ZXJmYWNlIHJlZmVyZW5jZQogICAgICAgICAgICAgICAgICAgIHZhciBkMTogSW50ZXJmYWNlWDsgZDEuWGlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgIHZhciBkMjogU3ViU3ViTW9kdWxlMS5JbnRlcmZhY2VYOyBkMi5YaXNJbjFfMV8xKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXhwb3J0IGludGVyZmFjZSBJbnRlcmZhY2VYIHsgWGlzSW4xXzFfMSgpOyB9CiAgICAgICAgICAgIGNsYXNzIE5vbkV4cG9ydGVkQ2xhc3NRIHsKICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFFRKCkgewogICAgICAgICAgICAgICAgICAgICAgICAvKiBTYW1wbGluZyBvZiBzdHVmZiBmcm9tIEFpc0luMV8xXzEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGE0OiBUb3BMZXZlbE1vZHVsZTEuU3ViTW9kdWxlMS5TdWJTdWJNb2R1bGUxLkNsYXNzQTsgYTQuQWlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYzE6IFRvcExldmVsTW9kdWxlMS5TdWJNb2R1bGUyLlN1YlN1Yk1vZHVsZTIuQ2xhc3NBOyBjMS5BaXNJbjFfMl8yKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkMTogSW50ZXJmYWNlWDsgZDEuWGlzSW4xXzFfMSgpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYzI6IFRvcExldmVsTW9kdWxlMi5TdWJNb2R1bGUzLkNsYXNzQTsgYzIuQWlzSW4yXzMoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gU2hvdWxkIGhhdmUgbm8gZWZmZWN0IG9uIFMxLlNTMS5DbGFzc0EgYWJvdmUgYmVjYXVzZSBpdCBpcyBub3QgZXhwb3J0ZWQKICAgICAgICBjbGFzcyBDbGFzc0EgewogICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIEFBKCkgewogICAgICAgICAgICAgICAgICAgIHZhciBhMjogU3ViU3ViTW9kdWxlMS5DbGFzc0E7IGEyLkFpc0luMV8xXzEoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgYTM6IFN1Yk1vZHVsZTEuU3ViU3ViTW9kdWxlMS5DbGFzc0E7IGEzLkFpc0luMV8xXzEoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgYTQ6IFRvcExldmVsTW9kdWxlMS5TdWJNb2R1bGUxLlN1YlN1Yk1vZHVsZTEuQ2xhc3NBOyBhNC5BaXNJbjFfMV8xKCk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgLy8gSW50ZXJmYWNlIHJlZmVyZW5jZQogICAgICAgICAgICAgICAgICAgIHZhciBkMjogU3ViU3ViTW9kdWxlMS5JbnRlcmZhY2VYOyBkMi5YaXNJbjFfMV8xKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZXhwb3J0IG5hbWVzcGFjZSBTdWJNb2R1bGUyIHsKICAgICAgICBleHBvcnQgbmFtZXNwYWNlIFN1YlN1Yk1vZHVsZTIgewogICAgICAgICAgICAvLyBObyBjb2RlIGhlcmUgc2luY2UgdGhlc2UgYXJlIHRoZSBtaXJyb3Igb2YgdGhlIGFib3ZlIGNhbGxzCiAgICAgICAgICAgIGV4cG9ydCBjbGFzcyBDbGFzc0EgeyBwdWJsaWMgQWlzSW4xXzJfMigpIHsgfSB9CiAgICAgICAgICAgIGV4cG9ydCBjbGFzcyBDbGFzc0IgeyBwdWJsaWMgQmlzSW4xXzJfMigpIHsgfSB9CiAgICAgICAgICAgIGV4cG9ydCBjbGFzcyBDbGFzc0MgeyBwdWJsaWMgQ2lzSW4xXzJfMigpIHsgfSB9CiAgICAgICAgICAgIGV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlWSB7IFlpc0luMV8yXzIoKTsgfQogICAgICAgICAgICBpbnRlcmZhY2UgTm9uRXhwb3J0ZWRJbnRlcmZhY2VRIHsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBleHBvcnQgaW50ZXJmYWNlIEludGVyZmFjZVkgeyBZaXNJbjFfMigpOyB9CiAgICB9CiAgICAKICAgIGNsYXNzIENsYXNzQSB7CiAgICAgICAgcHVibGljIEFpc0luMSgpIHsgfQogICAgfQoKICAgIGludGVyZmFjZSBJbnRlcmZhY2VZIHsKICAgICAgICBZaXNJbjEoKTsKICAgIH0KICAgIAogICAgbmFtZXNwYWNlIE5vdEV4cG9ydGVkTW9kdWxlIHsKICAgICAgICBleHBvcnQgY2xhc3MgQ2xhc3NBIHsgfQogICAgfQp9CgpuYW1lc3BhY2UgVG9wTGV2ZWxNb2R1bGUyIHsKICAgIGV4cG9ydCBuYW1lc3BhY2UgU3ViTW9kdWxlMyB7CiAgICAgICAgZXhwb3J0IGNsYXNzIENsYXNzQSB7CiAgICAgICAgICAgIHB1YmxpYyBBaXNJbjJfMygpIHsgfQogICAgICAgIH0KICAgIH0KfQoK diff --git a/tsc/testdata/baselines/reference/compiler/typeResolution.sourcemap.txt b/tsc/testdata/baselines/reference/compiler/typeResolution.sourcemap.txt new file mode 100644 index 0000000000000..18b3cf3c111a9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeResolution.sourcemap.txt @@ -0,0 +1,2668 @@ +=================================================================== +JsFile: typeResolution.js +mapUrl: typeResolution.js.map +sourceRoot: +sources: typeResolution.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:typeResolution.js +sourceFile:typeResolution.ts +------------------------------------------------------------------- +>>>"use strict"; +>>>Object.defineProperty(exports, "__esModule", { value: true }); +>>>exports.TopLevelModule1 = void 0; +>>>var TopLevelModule1; +1 > +2 >^^^^ +3 > ^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > +2 >export namespace +3 > TopLevelModule1 +4 > { + > export namespace SubModule1 { + > export namespace SubSubModule1 { + > export class ClassA { + > public AisIn1_1_1() { + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export class ClassB { + > public BisIn1_1_1() { + > /** Exactly the same as above in AisIn1_1_1 **/ + > + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export interface InterfaceX { XisIn1_1_1(); } + > class NonExportedClassQ { + > constructor() { + > function QQ() { + > /* Sampling of stuff from AisIn1_1_1 */ + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > } + > } + > } + > } + > + > // Should have no effect on S1.SS1.ClassA above because it is not exported + > class ClassA { + > constructor() { + > function AA() { + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Interface reference + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > } + > } + > + > export namespace SubModule2 { + > export namespace SubSubModule2 { + > // No code here since these are the mirror of the above calls + > export class ClassA { public AisIn1_2_2() { } } + > export class ClassB { public BisIn1_2_2() { } } + > export class ClassC { public CisIn1_2_2() { } } + > export interface InterfaceY { YisIn1_2_2(); } + > interface NonExportedInterfaceQ { } + > } + > + > export interface InterfaceY { YisIn1_2(); } + > } + > + > class ClassA { + > public AisIn1() { } + > } + > + > interface InterfaceY { + > YisIn1(); + > } + > + > namespace NotExportedModule { + > export class ClassA { } + > } + > } +1 >Emitted(4, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(4, 5) Source(1, 18) + SourceIndex(0) +3 >Emitted(4, 20) Source(1, 33) + SourceIndex(0) +4 >Emitted(4, 21) Source(100, 2) + SourceIndex(0) +--- +>>>(function (TopLevelModule1) { +1-> +2 >^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^ +1-> +2 >export namespace +3 > TopLevelModule1 +1->Emitted(5, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(5, 12) Source(1, 18) + SourceIndex(0) +3 >Emitted(5, 27) Source(1, 33) + SourceIndex(0) +--- +>>> let SubModule1; +1 >^^^^ +2 > ^^^^ +3 > ^^^^^^^^^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > { + > +2 > export namespace +3 > SubModule1 +4 > { + > export namespace SubSubModule1 { + > export class ClassA { + > public AisIn1_1_1() { + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export class ClassB { + > public BisIn1_1_1() { + > /** Exactly the same as above in AisIn1_1_1 **/ + > + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export interface InterfaceX { XisIn1_1_1(); } + > class NonExportedClassQ { + > constructor() { + > function QQ() { + > /* Sampling of stuff from AisIn1_1_1 */ + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > } + > } + > } + > } + > + > // Should have no effect on S1.SS1.ClassA above because it is not exported + > class ClassA { + > constructor() { + > function AA() { + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Interface reference + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > } + > } +1 >Emitted(6, 5) Source(2, 5) + SourceIndex(0) +2 >Emitted(6, 9) Source(2, 22) + SourceIndex(0) +3 >Emitted(6, 19) Source(2, 32) + SourceIndex(0) +4 >Emitted(6, 20) Source(74, 6) + SourceIndex(0) +--- +>>> (function (SubModule1) { +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^ +4 > ^^-> +1-> +2 > export namespace +3 > SubModule1 +1->Emitted(7, 5) Source(2, 5) + SourceIndex(0) +2 >Emitted(7, 16) Source(2, 22) + SourceIndex(0) +3 >Emitted(7, 26) Source(2, 32) + SourceIndex(0) +--- +>>> let SubSubModule1; +1->^^^^^^^^ +2 > ^^^^ +3 > ^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^^^^^^-> +1-> { + > +2 > export namespace +3 > SubSubModule1 +4 > { + > export class ClassA { + > public AisIn1_1_1() { + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export class ClassB { + > public BisIn1_1_1() { + > /** Exactly the same as above in AisIn1_1_1 **/ + > + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export interface InterfaceX { XisIn1_1_1(); } + > class NonExportedClassQ { + > constructor() { + > function QQ() { + > /* Sampling of stuff from AisIn1_1_1 */ + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > } + > } + > } + > } +1->Emitted(8, 9) Source(3, 9) + SourceIndex(0) +2 >Emitted(8, 13) Source(3, 26) + SourceIndex(0) +3 >Emitted(8, 26) Source(3, 39) + SourceIndex(0) +4 >Emitted(8, 27) Source(59, 10) + SourceIndex(0) +--- +>>> (function (SubSubModule1) { +1->^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^ +1-> +2 > export namespace +3 > SubSubModule1 +1->Emitted(9, 9) Source(3, 9) + SourceIndex(0) +2 >Emitted(9, 20) Source(3, 26) + SourceIndex(0) +3 >Emitted(9, 33) Source(3, 39) + SourceIndex(0) +--- +>>> class ClassA { +1 >^^^^^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^-> +1 > { + > +2 > export class +3 > ClassA +1 >Emitted(10, 13) Source(4, 13) + SourceIndex(0) +2 >Emitted(10, 19) Source(4, 26) + SourceIndex(0) +3 >Emitted(10, 25) Source(4, 32) + SourceIndex(0) +--- +>>> AisIn1_1_1() { +1->^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> { + > public +2 > AisIn1_1_1 +1->Emitted(11, 17) Source(5, 24) + SourceIndex(0) +2 >Emitted(11, 27) Source(5, 34) + SourceIndex(0) +--- +>>> // Try all qualified names of this type +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1->() { + > +2 > // Try all qualified names of this type +1->Emitted(12, 21) Source(6, 21) + SourceIndex(0) +2 >Emitted(12, 60) Source(6, 60) + SourceIndex(0) +--- +>>> var a1; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a1: ClassA +4 > ; +1 >Emitted(13, 21) Source(7, 21) + SourceIndex(0) +2 >Emitted(13, 25) Source(7, 25) + SourceIndex(0) +3 >Emitted(13, 27) Source(7, 35) + SourceIndex(0) +4 >Emitted(13, 28) Source(7, 36) + SourceIndex(0) +--- +>>> a1.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a1 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(14, 21) Source(7, 37) + SourceIndex(0) +2 >Emitted(14, 23) Source(7, 39) + SourceIndex(0) +3 >Emitted(14, 24) Source(7, 40) + SourceIndex(0) +4 >Emitted(14, 34) Source(7, 50) + SourceIndex(0) +5 >Emitted(14, 36) Source(7, 52) + SourceIndex(0) +6 >Emitted(14, 37) Source(7, 53) + SourceIndex(0) +--- +>>> var a2; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a2: SubSubModule1.ClassA +4 > ; +1 >Emitted(15, 21) Source(8, 21) + SourceIndex(0) +2 >Emitted(15, 25) Source(8, 25) + SourceIndex(0) +3 >Emitted(15, 27) Source(8, 49) + SourceIndex(0) +4 >Emitted(15, 28) Source(8, 50) + SourceIndex(0) +--- +>>> a2.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a2 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(16, 21) Source(8, 51) + SourceIndex(0) +2 >Emitted(16, 23) Source(8, 53) + SourceIndex(0) +3 >Emitted(16, 24) Source(8, 54) + SourceIndex(0) +4 >Emitted(16, 34) Source(8, 64) + SourceIndex(0) +5 >Emitted(16, 36) Source(8, 66) + SourceIndex(0) +6 >Emitted(16, 37) Source(8, 67) + SourceIndex(0) +--- +>>> var a3; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a3: SubModule1.SubSubModule1.ClassA +4 > ; +1 >Emitted(17, 21) Source(9, 21) + SourceIndex(0) +2 >Emitted(17, 25) Source(9, 25) + SourceIndex(0) +3 >Emitted(17, 27) Source(9, 60) + SourceIndex(0) +4 >Emitted(17, 28) Source(9, 61) + SourceIndex(0) +--- +>>> a3.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a3 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(18, 21) Source(9, 62) + SourceIndex(0) +2 >Emitted(18, 23) Source(9, 64) + SourceIndex(0) +3 >Emitted(18, 24) Source(9, 65) + SourceIndex(0) +4 >Emitted(18, 34) Source(9, 75) + SourceIndex(0) +5 >Emitted(18, 36) Source(9, 77) + SourceIndex(0) +6 >Emitted(18, 37) Source(9, 78) + SourceIndex(0) +--- +>>> var a4; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA +4 > ; +1 >Emitted(19, 21) Source(10, 21) + SourceIndex(0) +2 >Emitted(19, 25) Source(10, 25) + SourceIndex(0) +3 >Emitted(19, 27) Source(10, 76) + SourceIndex(0) +4 >Emitted(19, 28) Source(10, 77) + SourceIndex(0) +--- +>>> a4.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> +2 > a4 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(20, 21) Source(10, 78) + SourceIndex(0) +2 >Emitted(20, 23) Source(10, 80) + SourceIndex(0) +3 >Emitted(20, 24) Source(10, 81) + SourceIndex(0) +4 >Emitted(20, 34) Source(10, 91) + SourceIndex(0) +5 >Emitted(20, 36) Source(10, 93) + SourceIndex(0) +6 >Emitted(20, 37) Source(10, 94) + SourceIndex(0) +--- +>>> // Two variants of qualifying a peer type +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> + > + > +2 > // Two variants of qualifying a peer type +1->Emitted(21, 21) Source(12, 21) + SourceIndex(0) +2 >Emitted(21, 62) Source(12, 62) + SourceIndex(0) +--- +>>> var b1; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > b1: ClassB +4 > ; +1 >Emitted(22, 21) Source(13, 21) + SourceIndex(0) +2 >Emitted(22, 25) Source(13, 25) + SourceIndex(0) +3 >Emitted(22, 27) Source(13, 35) + SourceIndex(0) +4 >Emitted(22, 28) Source(13, 36) + SourceIndex(0) +--- +>>> b1.BisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > b1 +3 > . +4 > BisIn1_1_1 +5 > () +6 > ; +1->Emitted(23, 21) Source(13, 37) + SourceIndex(0) +2 >Emitted(23, 23) Source(13, 39) + SourceIndex(0) +3 >Emitted(23, 24) Source(13, 40) + SourceIndex(0) +4 >Emitted(23, 34) Source(13, 50) + SourceIndex(0) +5 >Emitted(23, 36) Source(13, 52) + SourceIndex(0) +6 >Emitted(23, 37) Source(13, 53) + SourceIndex(0) +--- +>>> var b2; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB +4 > ; +1 >Emitted(24, 21) Source(14, 21) + SourceIndex(0) +2 >Emitted(24, 25) Source(14, 25) + SourceIndex(0) +3 >Emitted(24, 27) Source(14, 76) + SourceIndex(0) +4 >Emitted(24, 28) Source(14, 77) + SourceIndex(0) +--- +>>> b2.BisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^-> +1-> +2 > b2 +3 > . +4 > BisIn1_1_1 +5 > () +6 > ; +1->Emitted(25, 21) Source(14, 78) + SourceIndex(0) +2 >Emitted(25, 23) Source(14, 80) + SourceIndex(0) +3 >Emitted(25, 24) Source(14, 81) + SourceIndex(0) +4 >Emitted(25, 34) Source(14, 91) + SourceIndex(0) +5 >Emitted(25, 36) Source(14, 93) + SourceIndex(0) +6 >Emitted(25, 37) Source(14, 94) + SourceIndex(0) +--- +>>> // Type only accessible from the root +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> + > + > +2 > // Type only accessible from the root +1->Emitted(26, 21) Source(16, 21) + SourceIndex(0) +2 >Emitted(26, 58) Source(16, 58) + SourceIndex(0) +--- +>>> var c1; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA +4 > ; +1 >Emitted(27, 21) Source(17, 21) + SourceIndex(0) +2 >Emitted(27, 25) Source(17, 25) + SourceIndex(0) +3 >Emitted(27, 27) Source(17, 76) + SourceIndex(0) +4 >Emitted(27, 28) Source(17, 77) + SourceIndex(0) +--- +>>> c1.AisIn1_2_2(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^-> +1-> +2 > c1 +3 > . +4 > AisIn1_2_2 +5 > () +6 > ; +1->Emitted(28, 21) Source(17, 78) + SourceIndex(0) +2 >Emitted(28, 23) Source(17, 80) + SourceIndex(0) +3 >Emitted(28, 24) Source(17, 81) + SourceIndex(0) +4 >Emitted(28, 34) Source(17, 91) + SourceIndex(0) +5 >Emitted(28, 36) Source(17, 93) + SourceIndex(0) +6 >Emitted(28, 37) Source(17, 94) + SourceIndex(0) +--- +>>> // Interface reference +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^ +1-> + > + > +2 > // Interface reference +1->Emitted(29, 21) Source(19, 21) + SourceIndex(0) +2 >Emitted(29, 43) Source(19, 43) + SourceIndex(0) +--- +>>> var d1; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > d1: InterfaceX +4 > ; +1 >Emitted(30, 21) Source(20, 21) + SourceIndex(0) +2 >Emitted(30, 25) Source(20, 25) + SourceIndex(0) +3 >Emitted(30, 27) Source(20, 39) + SourceIndex(0) +4 >Emitted(30, 28) Source(20, 40) + SourceIndex(0) +--- +>>> d1.XisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > d1 +3 > . +4 > XisIn1_1_1 +5 > () +6 > ; +1->Emitted(31, 21) Source(20, 41) + SourceIndex(0) +2 >Emitted(31, 23) Source(20, 43) + SourceIndex(0) +3 >Emitted(31, 24) Source(20, 44) + SourceIndex(0) +4 >Emitted(31, 34) Source(20, 54) + SourceIndex(0) +5 >Emitted(31, 36) Source(20, 56) + SourceIndex(0) +6 >Emitted(31, 37) Source(20, 57) + SourceIndex(0) +--- +>>> var d2; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > d2: SubSubModule1.InterfaceX +4 > ; +1 >Emitted(32, 21) Source(21, 21) + SourceIndex(0) +2 >Emitted(32, 25) Source(21, 25) + SourceIndex(0) +3 >Emitted(32, 27) Source(21, 53) + SourceIndex(0) +4 >Emitted(32, 28) Source(21, 54) + SourceIndex(0) +--- +>>> d2.XisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > d2 +3 > . +4 > XisIn1_1_1 +5 > () +6 > ; +1->Emitted(33, 21) Source(21, 55) + SourceIndex(0) +2 >Emitted(33, 23) Source(21, 57) + SourceIndex(0) +3 >Emitted(33, 24) Source(21, 58) + SourceIndex(0) +4 >Emitted(33, 34) Source(21, 68) + SourceIndex(0) +5 >Emitted(33, 36) Source(21, 70) + SourceIndex(0) +6 >Emitted(33, 37) Source(21, 71) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^^^^ +2 > ^ +1 > + > +2 > } +1 >Emitted(34, 17) Source(22, 17) + SourceIndex(0) +2 >Emitted(34, 18) Source(22, 18) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > } +1 >Emitted(35, 14) Source(23, 14) + SourceIndex(0) +--- +>>> SubSubModule1.ClassA = ClassA; +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^ +5 > ^ +1-> +2 > +3 > ClassA +4 > { + > public AisIn1_1_1() { + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } +5 > +1->Emitted(36, 13) Source(4, 26) + SourceIndex(0) +2 >Emitted(36, 27) Source(4, 26) + SourceIndex(0) +3 >Emitted(36, 33) Source(4, 32) + SourceIndex(0) +4 >Emitted(36, 42) Source(23, 14) + SourceIndex(0) +5 >Emitted(36, 43) Source(23, 14) + SourceIndex(0) +--- +>>> class ClassB { +1 >^^^^^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^-> +1 > + > +2 > export class +3 > ClassB +1 >Emitted(37, 13) Source(24, 13) + SourceIndex(0) +2 >Emitted(37, 19) Source(24, 26) + SourceIndex(0) +3 >Emitted(37, 25) Source(24, 32) + SourceIndex(0) +--- +>>> BisIn1_1_1() { +1->^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> { + > public +2 > BisIn1_1_1 +1->Emitted(38, 17) Source(25, 24) + SourceIndex(0) +2 >Emitted(38, 27) Source(25, 34) + SourceIndex(0) +--- +>>> /** Exactly the same as above in AisIn1_1_1 **/ +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1->() { + > +2 > /** Exactly the same as above in AisIn1_1_1 **/ +1->Emitted(39, 21) Source(26, 21) + SourceIndex(0) +2 >Emitted(39, 68) Source(26, 68) + SourceIndex(0) +--- +>>> // Try all qualified names of this type +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1 > + > + > +2 > // Try all qualified names of this type +1 >Emitted(40, 21) Source(28, 21) + SourceIndex(0) +2 >Emitted(40, 60) Source(28, 60) + SourceIndex(0) +--- +>>> var a1; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a1: ClassA +4 > ; +1 >Emitted(41, 21) Source(29, 21) + SourceIndex(0) +2 >Emitted(41, 25) Source(29, 25) + SourceIndex(0) +3 >Emitted(41, 27) Source(29, 35) + SourceIndex(0) +4 >Emitted(41, 28) Source(29, 36) + SourceIndex(0) +--- +>>> a1.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a1 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(42, 21) Source(29, 37) + SourceIndex(0) +2 >Emitted(42, 23) Source(29, 39) + SourceIndex(0) +3 >Emitted(42, 24) Source(29, 40) + SourceIndex(0) +4 >Emitted(42, 34) Source(29, 50) + SourceIndex(0) +5 >Emitted(42, 36) Source(29, 52) + SourceIndex(0) +6 >Emitted(42, 37) Source(29, 53) + SourceIndex(0) +--- +>>> var a2; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a2: SubSubModule1.ClassA +4 > ; +1 >Emitted(43, 21) Source(30, 21) + SourceIndex(0) +2 >Emitted(43, 25) Source(30, 25) + SourceIndex(0) +3 >Emitted(43, 27) Source(30, 49) + SourceIndex(0) +4 >Emitted(43, 28) Source(30, 50) + SourceIndex(0) +--- +>>> a2.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a2 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(44, 21) Source(30, 51) + SourceIndex(0) +2 >Emitted(44, 23) Source(30, 53) + SourceIndex(0) +3 >Emitted(44, 24) Source(30, 54) + SourceIndex(0) +4 >Emitted(44, 34) Source(30, 64) + SourceIndex(0) +5 >Emitted(44, 36) Source(30, 66) + SourceIndex(0) +6 >Emitted(44, 37) Source(30, 67) + SourceIndex(0) +--- +>>> var a3; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a3: SubModule1.SubSubModule1.ClassA +4 > ; +1 >Emitted(45, 21) Source(31, 21) + SourceIndex(0) +2 >Emitted(45, 25) Source(31, 25) + SourceIndex(0) +3 >Emitted(45, 27) Source(31, 60) + SourceIndex(0) +4 >Emitted(45, 28) Source(31, 61) + SourceIndex(0) +--- +>>> a3.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a3 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(46, 21) Source(31, 62) + SourceIndex(0) +2 >Emitted(46, 23) Source(31, 64) + SourceIndex(0) +3 >Emitted(46, 24) Source(31, 65) + SourceIndex(0) +4 >Emitted(46, 34) Source(31, 75) + SourceIndex(0) +5 >Emitted(46, 36) Source(31, 77) + SourceIndex(0) +6 >Emitted(46, 37) Source(31, 78) + SourceIndex(0) +--- +>>> var a4; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA +4 > ; +1 >Emitted(47, 21) Source(32, 21) + SourceIndex(0) +2 >Emitted(47, 25) Source(32, 25) + SourceIndex(0) +3 >Emitted(47, 27) Source(32, 76) + SourceIndex(0) +4 >Emitted(47, 28) Source(32, 77) + SourceIndex(0) +--- +>>> a4.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> +2 > a4 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(48, 21) Source(32, 78) + SourceIndex(0) +2 >Emitted(48, 23) Source(32, 80) + SourceIndex(0) +3 >Emitted(48, 24) Source(32, 81) + SourceIndex(0) +4 >Emitted(48, 34) Source(32, 91) + SourceIndex(0) +5 >Emitted(48, 36) Source(32, 93) + SourceIndex(0) +6 >Emitted(48, 37) Source(32, 94) + SourceIndex(0) +--- +>>> // Two variants of qualifying a peer type +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> + > + > +2 > // Two variants of qualifying a peer type +1->Emitted(49, 21) Source(34, 21) + SourceIndex(0) +2 >Emitted(49, 62) Source(34, 62) + SourceIndex(0) +--- +>>> var b1; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > b1: ClassB +4 > ; +1 >Emitted(50, 21) Source(35, 21) + SourceIndex(0) +2 >Emitted(50, 25) Source(35, 25) + SourceIndex(0) +3 >Emitted(50, 27) Source(35, 35) + SourceIndex(0) +4 >Emitted(50, 28) Source(35, 36) + SourceIndex(0) +--- +>>> b1.BisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > b1 +3 > . +4 > BisIn1_1_1 +5 > () +6 > ; +1->Emitted(51, 21) Source(35, 37) + SourceIndex(0) +2 >Emitted(51, 23) Source(35, 39) + SourceIndex(0) +3 >Emitted(51, 24) Source(35, 40) + SourceIndex(0) +4 >Emitted(51, 34) Source(35, 50) + SourceIndex(0) +5 >Emitted(51, 36) Source(35, 52) + SourceIndex(0) +6 >Emitted(51, 37) Source(35, 53) + SourceIndex(0) +--- +>>> var b2; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB +4 > ; +1 >Emitted(52, 21) Source(36, 21) + SourceIndex(0) +2 >Emitted(52, 25) Source(36, 25) + SourceIndex(0) +3 >Emitted(52, 27) Source(36, 76) + SourceIndex(0) +4 >Emitted(52, 28) Source(36, 77) + SourceIndex(0) +--- +>>> b2.BisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^-> +1-> +2 > b2 +3 > . +4 > BisIn1_1_1 +5 > () +6 > ; +1->Emitted(53, 21) Source(36, 78) + SourceIndex(0) +2 >Emitted(53, 23) Source(36, 80) + SourceIndex(0) +3 >Emitted(53, 24) Source(36, 81) + SourceIndex(0) +4 >Emitted(53, 34) Source(36, 91) + SourceIndex(0) +5 >Emitted(53, 36) Source(36, 93) + SourceIndex(0) +6 >Emitted(53, 37) Source(36, 94) + SourceIndex(0) +--- +>>> // Type only accessible from the root +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> + > + > +2 > // Type only accessible from the root +1->Emitted(54, 21) Source(38, 21) + SourceIndex(0) +2 >Emitted(54, 58) Source(38, 58) + SourceIndex(0) +--- +>>> var c1; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA +4 > ; +1 >Emitted(55, 21) Source(39, 21) + SourceIndex(0) +2 >Emitted(55, 25) Source(39, 25) + SourceIndex(0) +3 >Emitted(55, 27) Source(39, 76) + SourceIndex(0) +4 >Emitted(55, 28) Source(39, 77) + SourceIndex(0) +--- +>>> c1.AisIn1_2_2(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > c1 +3 > . +4 > AisIn1_2_2 +5 > () +6 > ; +1->Emitted(56, 21) Source(39, 78) + SourceIndex(0) +2 >Emitted(56, 23) Source(39, 80) + SourceIndex(0) +3 >Emitted(56, 24) Source(39, 81) + SourceIndex(0) +4 >Emitted(56, 34) Source(39, 91) + SourceIndex(0) +5 >Emitted(56, 36) Source(39, 93) + SourceIndex(0) +6 >Emitted(56, 37) Source(39, 94) + SourceIndex(0) +--- +>>> var c2; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^-> +1 > + > +2 > var +3 > c2: TopLevelModule2.SubModule3.ClassA +4 > ; +1 >Emitted(57, 21) Source(40, 21) + SourceIndex(0) +2 >Emitted(57, 25) Source(40, 25) + SourceIndex(0) +3 >Emitted(57, 27) Source(40, 62) + SourceIndex(0) +4 >Emitted(57, 28) Source(40, 63) + SourceIndex(0) +--- +>>> c2.AisIn2_3(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^-> +1-> +2 > c2 +3 > . +4 > AisIn2_3 +5 > () +6 > ; +1->Emitted(58, 21) Source(40, 64) + SourceIndex(0) +2 >Emitted(58, 23) Source(40, 66) + SourceIndex(0) +3 >Emitted(58, 24) Source(40, 67) + SourceIndex(0) +4 >Emitted(58, 32) Source(40, 75) + SourceIndex(0) +5 >Emitted(58, 34) Source(40, 77) + SourceIndex(0) +6 >Emitted(58, 35) Source(40, 78) + SourceIndex(0) +--- +>>> // Interface reference +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^ +1-> + > + > +2 > // Interface reference +1->Emitted(59, 21) Source(42, 21) + SourceIndex(0) +2 >Emitted(59, 43) Source(42, 43) + SourceIndex(0) +--- +>>> var d1; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > d1: InterfaceX +4 > ; +1 >Emitted(60, 21) Source(43, 21) + SourceIndex(0) +2 >Emitted(60, 25) Source(43, 25) + SourceIndex(0) +3 >Emitted(60, 27) Source(43, 39) + SourceIndex(0) +4 >Emitted(60, 28) Source(43, 40) + SourceIndex(0) +--- +>>> d1.XisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > d1 +3 > . +4 > XisIn1_1_1 +5 > () +6 > ; +1->Emitted(61, 21) Source(43, 41) + SourceIndex(0) +2 >Emitted(61, 23) Source(43, 43) + SourceIndex(0) +3 >Emitted(61, 24) Source(43, 44) + SourceIndex(0) +4 >Emitted(61, 34) Source(43, 54) + SourceIndex(0) +5 >Emitted(61, 36) Source(43, 56) + SourceIndex(0) +6 >Emitted(61, 37) Source(43, 57) + SourceIndex(0) +--- +>>> var d2; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > d2: SubSubModule1.InterfaceX +4 > ; +1 >Emitted(62, 21) Source(44, 21) + SourceIndex(0) +2 >Emitted(62, 25) Source(44, 25) + SourceIndex(0) +3 >Emitted(62, 27) Source(44, 53) + SourceIndex(0) +4 >Emitted(62, 28) Source(44, 54) + SourceIndex(0) +--- +>>> d2.XisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > d2 +3 > . +4 > XisIn1_1_1 +5 > () +6 > ; +1->Emitted(63, 21) Source(44, 55) + SourceIndex(0) +2 >Emitted(63, 23) Source(44, 57) + SourceIndex(0) +3 >Emitted(63, 24) Source(44, 58) + SourceIndex(0) +4 >Emitted(63, 34) Source(44, 68) + SourceIndex(0) +5 >Emitted(63, 36) Source(44, 70) + SourceIndex(0) +6 >Emitted(63, 37) Source(44, 71) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^^^^ +2 > ^ +1 > + > +2 > } +1 >Emitted(64, 17) Source(45, 17) + SourceIndex(0) +2 >Emitted(64, 18) Source(45, 18) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > } +1 >Emitted(65, 14) Source(46, 14) + SourceIndex(0) +--- +>>> SubSubModule1.ClassB = ClassB; +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^ +5 > ^ +1-> +2 > +3 > ClassB +4 > { + > public BisIn1_1_1() { + > /** Exactly the same as above in AisIn1_1_1 **/ + > + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } +5 > +1->Emitted(66, 13) Source(24, 26) + SourceIndex(0) +2 >Emitted(66, 27) Source(24, 26) + SourceIndex(0) +3 >Emitted(66, 33) Source(24, 32) + SourceIndex(0) +4 >Emitted(66, 42) Source(46, 14) + SourceIndex(0) +5 >Emitted(66, 43) Source(46, 14) + SourceIndex(0) +--- +>>> class NonExportedClassQ { +1 >^^^^^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^^^^^^^^^^^^ +1 > + > export interface InterfaceX { XisIn1_1_1(); } + > +2 > class +3 > NonExportedClassQ +1 >Emitted(67, 13) Source(48, 13) + SourceIndex(0) +2 >Emitted(67, 19) Source(48, 19) + SourceIndex(0) +3 >Emitted(67, 36) Source(48, 36) + SourceIndex(0) +--- +>>> constructor() { +1 >^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^-> +1 > { + > +1 >Emitted(68, 17) Source(49, 17) + SourceIndex(0) +--- +>>> function QQ() { +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^ +3 > ^^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1->constructor() { + > +2 > function +3 > QQ +1->Emitted(69, 21) Source(50, 21) + SourceIndex(0) +2 >Emitted(69, 30) Source(50, 30) + SourceIndex(0) +3 >Emitted(69, 32) Source(50, 32) + SourceIndex(0) +--- +>>> /* Sampling of stuff from AisIn1_1_1 */ +1->^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1->() { + > +2 > /* Sampling of stuff from AisIn1_1_1 */ +1->Emitted(70, 25) Source(51, 25) + SourceIndex(0) +2 >Emitted(70, 64) Source(51, 64) + SourceIndex(0) +--- +>>> var a4; +1 >^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA +4 > ; +1 >Emitted(71, 25) Source(52, 25) + SourceIndex(0) +2 >Emitted(71, 29) Source(52, 29) + SourceIndex(0) +3 >Emitted(71, 31) Source(52, 80) + SourceIndex(0) +4 >Emitted(71, 32) Source(52, 81) + SourceIndex(0) +--- +>>> a4.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a4 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(72, 25) Source(52, 82) + SourceIndex(0) +2 >Emitted(72, 27) Source(52, 84) + SourceIndex(0) +3 >Emitted(72, 28) Source(52, 85) + SourceIndex(0) +4 >Emitted(72, 38) Source(52, 95) + SourceIndex(0) +5 >Emitted(72, 40) Source(52, 97) + SourceIndex(0) +6 >Emitted(72, 41) Source(52, 98) + SourceIndex(0) +--- +>>> var c1; +1 >^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA +4 > ; +1 >Emitted(73, 25) Source(53, 25) + SourceIndex(0) +2 >Emitted(73, 29) Source(53, 29) + SourceIndex(0) +3 >Emitted(73, 31) Source(53, 80) + SourceIndex(0) +4 >Emitted(73, 32) Source(53, 81) + SourceIndex(0) +--- +>>> c1.AisIn1_2_2(); +1->^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > c1 +3 > . +4 > AisIn1_2_2 +5 > () +6 > ; +1->Emitted(74, 25) Source(53, 82) + SourceIndex(0) +2 >Emitted(74, 27) Source(53, 84) + SourceIndex(0) +3 >Emitted(74, 28) Source(53, 85) + SourceIndex(0) +4 >Emitted(74, 38) Source(53, 95) + SourceIndex(0) +5 >Emitted(74, 40) Source(53, 97) + SourceIndex(0) +6 >Emitted(74, 41) Source(53, 98) + SourceIndex(0) +--- +>>> var d1; +1 >^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > d1: InterfaceX +4 > ; +1 >Emitted(75, 25) Source(54, 25) + SourceIndex(0) +2 >Emitted(75, 29) Source(54, 29) + SourceIndex(0) +3 >Emitted(75, 31) Source(54, 43) + SourceIndex(0) +4 >Emitted(75, 32) Source(54, 44) + SourceIndex(0) +--- +>>> d1.XisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > d1 +3 > . +4 > XisIn1_1_1 +5 > () +6 > ; +1->Emitted(76, 25) Source(54, 45) + SourceIndex(0) +2 >Emitted(76, 27) Source(54, 47) + SourceIndex(0) +3 >Emitted(76, 28) Source(54, 48) + SourceIndex(0) +4 >Emitted(76, 38) Source(54, 58) + SourceIndex(0) +5 >Emitted(76, 40) Source(54, 60) + SourceIndex(0) +6 >Emitted(76, 41) Source(54, 61) + SourceIndex(0) +--- +>>> var c2; +1 >^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^-> +1 > + > +2 > var +3 > c2: TopLevelModule2.SubModule3.ClassA +4 > ; +1 >Emitted(77, 25) Source(55, 25) + SourceIndex(0) +2 >Emitted(77, 29) Source(55, 29) + SourceIndex(0) +3 >Emitted(77, 31) Source(55, 66) + SourceIndex(0) +4 >Emitted(77, 32) Source(55, 67) + SourceIndex(0) +--- +>>> c2.AisIn2_3(); +1->^^^^^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > c2 +3 > . +4 > AisIn2_3 +5 > () +6 > ; +1->Emitted(78, 25) Source(55, 68) + SourceIndex(0) +2 >Emitted(78, 27) Source(55, 70) + SourceIndex(0) +3 >Emitted(78, 28) Source(55, 71) + SourceIndex(0) +4 >Emitted(78, 36) Source(55, 79) + SourceIndex(0) +5 >Emitted(78, 38) Source(55, 81) + SourceIndex(0) +6 >Emitted(78, 39) Source(55, 82) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^ +1 > + > +2 > } +1 >Emitted(79, 21) Source(56, 21) + SourceIndex(0) +2 >Emitted(79, 22) Source(56, 22) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^^^^ +2 > ^ +1 > + > +2 > } +1 >Emitted(80, 17) Source(57, 17) + SourceIndex(0) +2 >Emitted(80, 18) Source(57, 18) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > } +1 >Emitted(81, 14) Source(58, 14) + SourceIndex(0) +--- +>>> })(SubSubModule1 = SubModule1.SubSubModule1 || (SubModule1.SubSubModule1 = {})); +1->^^^^^^^^ +2 > ^ +3 > ^^ +4 > ^^^^^^^^^^^^^ +5 > ^^^ +6 > ^^^^^^^^^^^ +7 > ^^^^^^^^^^^^^ +8 > ^^^^^ +9 > ^^^^^^^^^^^ +10> ^^^^^^^^^^^^^ +11> ^^^^^^^^ +1-> + > +2 > } +3 > +4 > SubSubModule1 +5 > +6 > +7 > SubSubModule1 +8 > +9 > +10> SubSubModule1 +11> { + > export class ClassA { + > public AisIn1_1_1() { + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export class ClassB { + > public BisIn1_1_1() { + > /** Exactly the same as above in AisIn1_1_1 **/ + > + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export interface InterfaceX { XisIn1_1_1(); } + > class NonExportedClassQ { + > constructor() { + > function QQ() { + > /* Sampling of stuff from AisIn1_1_1 */ + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > } + > } + > } + > } +1->Emitted(82, 9) Source(59, 9) + SourceIndex(0) +2 >Emitted(82, 10) Source(59, 10) + SourceIndex(0) +3 >Emitted(82, 12) Source(3, 26) + SourceIndex(0) +4 >Emitted(82, 25) Source(3, 39) + SourceIndex(0) +5 >Emitted(82, 28) Source(3, 26) + SourceIndex(0) +6 >Emitted(82, 39) Source(3, 26) + SourceIndex(0) +7 >Emitted(82, 52) Source(3, 39) + SourceIndex(0) +8 >Emitted(82, 57) Source(3, 26) + SourceIndex(0) +9 >Emitted(82, 68) Source(3, 26) + SourceIndex(0) +10>Emitted(82, 81) Source(3, 39) + SourceIndex(0) +11>Emitted(82, 89) Source(59, 10) + SourceIndex(0) +--- +>>> // Should have no effect on S1.SS1.ClassA above because it is not exported +1 >^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1 > + > + > +2 > // Should have no effect on S1.SS1.ClassA above because it is not exported +1 >Emitted(83, 9) Source(61, 9) + SourceIndex(0) +2 >Emitted(83, 83) Source(61, 83) + SourceIndex(0) +--- +>>> class ClassA { +1 >^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^-> +1 > + > +2 > class +3 > ClassA +1 >Emitted(84, 9) Source(62, 9) + SourceIndex(0) +2 >Emitted(84, 15) Source(62, 15) + SourceIndex(0) +3 >Emitted(84, 21) Source(62, 21) + SourceIndex(0) +--- +>>> constructor() { +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^-> +1-> { + > +1->Emitted(85, 13) Source(63, 13) + SourceIndex(0) +--- +>>> function AA() { +1->^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^ +3 > ^^ +4 > ^-> +1->constructor() { + > +2 > function +3 > AA +1->Emitted(86, 17) Source(64, 17) + SourceIndex(0) +2 >Emitted(86, 26) Source(64, 26) + SourceIndex(0) +3 >Emitted(86, 28) Source(64, 28) + SourceIndex(0) +--- +>>> var a2; +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1->() { + > +2 > var +3 > a2: SubSubModule1.ClassA +4 > ; +1->Emitted(87, 21) Source(65, 21) + SourceIndex(0) +2 >Emitted(87, 25) Source(65, 25) + SourceIndex(0) +3 >Emitted(87, 27) Source(65, 49) + SourceIndex(0) +4 >Emitted(87, 28) Source(65, 50) + SourceIndex(0) +--- +>>> a2.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a2 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(88, 21) Source(65, 51) + SourceIndex(0) +2 >Emitted(88, 23) Source(65, 53) + SourceIndex(0) +3 >Emitted(88, 24) Source(65, 54) + SourceIndex(0) +4 >Emitted(88, 34) Source(65, 64) + SourceIndex(0) +5 >Emitted(88, 36) Source(65, 66) + SourceIndex(0) +6 >Emitted(88, 37) Source(65, 67) + SourceIndex(0) +--- +>>> var a3; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a3: SubModule1.SubSubModule1.ClassA +4 > ; +1 >Emitted(89, 21) Source(66, 21) + SourceIndex(0) +2 >Emitted(89, 25) Source(66, 25) + SourceIndex(0) +3 >Emitted(89, 27) Source(66, 60) + SourceIndex(0) +4 >Emitted(89, 28) Source(66, 61) + SourceIndex(0) +--- +>>> a3.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > a3 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(90, 21) Source(66, 62) + SourceIndex(0) +2 >Emitted(90, 23) Source(66, 64) + SourceIndex(0) +3 >Emitted(90, 24) Source(66, 65) + SourceIndex(0) +4 >Emitted(90, 34) Source(66, 75) + SourceIndex(0) +5 >Emitted(90, 36) Source(66, 77) + SourceIndex(0) +6 >Emitted(90, 37) Source(66, 78) + SourceIndex(0) +--- +>>> var a4; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA +4 > ; +1 >Emitted(91, 21) Source(67, 21) + SourceIndex(0) +2 >Emitted(91, 25) Source(67, 25) + SourceIndex(0) +3 >Emitted(91, 27) Source(67, 76) + SourceIndex(0) +4 >Emitted(91, 28) Source(67, 77) + SourceIndex(0) +--- +>>> a4.AisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^-> +1-> +2 > a4 +3 > . +4 > AisIn1_1_1 +5 > () +6 > ; +1->Emitted(92, 21) Source(67, 78) + SourceIndex(0) +2 >Emitted(92, 23) Source(67, 80) + SourceIndex(0) +3 >Emitted(92, 24) Source(67, 81) + SourceIndex(0) +4 >Emitted(92, 34) Source(67, 91) + SourceIndex(0) +5 >Emitted(92, 36) Source(67, 93) + SourceIndex(0) +6 >Emitted(92, 37) Source(67, 94) + SourceIndex(0) +--- +>>> // Interface reference +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^ +1-> + > + > +2 > // Interface reference +1->Emitted(93, 21) Source(69, 21) + SourceIndex(0) +2 >Emitted(93, 43) Source(69, 43) + SourceIndex(0) +--- +>>> var d2; +1 >^^^^^^^^^^^^^^^^^^^^ +2 > ^^^^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > +2 > var +3 > d2: SubSubModule1.InterfaceX +4 > ; +1 >Emitted(94, 21) Source(70, 21) + SourceIndex(0) +2 >Emitted(94, 25) Source(70, 25) + SourceIndex(0) +3 >Emitted(94, 27) Source(70, 53) + SourceIndex(0) +4 >Emitted(94, 28) Source(70, 54) + SourceIndex(0) +--- +>>> d2.XisIn1_1_1(); +1->^^^^^^^^^^^^^^^^^^^^ +2 > ^^ +3 > ^ +4 > ^^^^^^^^^^ +5 > ^^ +6 > ^ +1-> +2 > d2 +3 > . +4 > XisIn1_1_1 +5 > () +6 > ; +1->Emitted(95, 21) Source(70, 55) + SourceIndex(0) +2 >Emitted(95, 23) Source(70, 57) + SourceIndex(0) +3 >Emitted(95, 24) Source(70, 58) + SourceIndex(0) +4 >Emitted(95, 34) Source(70, 68) + SourceIndex(0) +5 >Emitted(95, 36) Source(70, 70) + SourceIndex(0) +6 >Emitted(95, 37) Source(70, 71) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^^^^ +2 > ^ +1 > + > +2 > } +1 >Emitted(96, 17) Source(71, 17) + SourceIndex(0) +2 >Emitted(96, 18) Source(71, 18) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^ +2 > ^ +1 > + > +2 > } +1 >Emitted(97, 13) Source(72, 13) + SourceIndex(0) +2 >Emitted(97, 14) Source(72, 14) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > } +1 >Emitted(98, 10) Source(73, 10) + SourceIndex(0) +--- +>>> })(SubModule1 = TopLevelModule1.SubModule1 || (TopLevelModule1.SubModule1 = {})); +1->^^^^ +2 > ^ +3 > ^^ +4 > ^^^^^^^^^^ +5 > ^^^ +6 > ^^^^^^^^^^^^^^^^ +7 > ^^^^^^^^^^ +8 > ^^^^^ +9 > ^^^^^^^^^^^^^^^^ +10> ^^^^^^^^^^ +11> ^^^^^^^^ +1-> + > +2 > } +3 > +4 > SubModule1 +5 > +6 > +7 > SubModule1 +8 > +9 > +10> SubModule1 +11> { + > export namespace SubSubModule1 { + > export class ClassA { + > public AisIn1_1_1() { + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export class ClassB { + > public BisIn1_1_1() { + > /** Exactly the same as above in AisIn1_1_1 **/ + > + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export interface InterfaceX { XisIn1_1_1(); } + > class NonExportedClassQ { + > constructor() { + > function QQ() { + > /* Sampling of stuff from AisIn1_1_1 */ + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > } + > } + > } + > } + > + > // Should have no effect on S1.SS1.ClassA above because it is not exported + > class ClassA { + > constructor() { + > function AA() { + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Interface reference + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > } + > } +1->Emitted(99, 5) Source(74, 5) + SourceIndex(0) +2 >Emitted(99, 6) Source(74, 6) + SourceIndex(0) +3 >Emitted(99, 8) Source(2, 22) + SourceIndex(0) +4 >Emitted(99, 18) Source(2, 32) + SourceIndex(0) +5 >Emitted(99, 21) Source(2, 22) + SourceIndex(0) +6 >Emitted(99, 37) Source(2, 22) + SourceIndex(0) +7 >Emitted(99, 47) Source(2, 32) + SourceIndex(0) +8 >Emitted(99, 52) Source(2, 22) + SourceIndex(0) +9 >Emitted(99, 68) Source(2, 22) + SourceIndex(0) +10>Emitted(99, 78) Source(2, 32) + SourceIndex(0) +11>Emitted(99, 86) Source(74, 6) + SourceIndex(0) +--- +>>> let SubModule2; +1 >^^^^ +2 > ^^^^ +3 > ^^^^^^^^^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > + > +2 > export namespace +3 > SubModule2 +4 > { + > export namespace SubSubModule2 { + > // No code here since these are the mirror of the above calls + > export class ClassA { public AisIn1_2_2() { } } + > export class ClassB { public BisIn1_2_2() { } } + > export class ClassC { public CisIn1_2_2() { } } + > export interface InterfaceY { YisIn1_2_2(); } + > interface NonExportedInterfaceQ { } + > } + > + > export interface InterfaceY { YisIn1_2(); } + > } +1 >Emitted(100, 5) Source(76, 5) + SourceIndex(0) +2 >Emitted(100, 9) Source(76, 22) + SourceIndex(0) +3 >Emitted(100, 19) Source(76, 32) + SourceIndex(0) +4 >Emitted(100, 20) Source(87, 6) + SourceIndex(0) +--- +>>> (function (SubModule2) { +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^ +4 > ^^-> +1-> +2 > export namespace +3 > SubModule2 +1->Emitted(101, 5) Source(76, 5) + SourceIndex(0) +2 >Emitted(101, 16) Source(76, 22) + SourceIndex(0) +3 >Emitted(101, 26) Source(76, 32) + SourceIndex(0) +--- +>>> let SubSubModule2; +1->^^^^^^^^ +2 > ^^^^ +3 > ^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^^^^^^-> +1-> { + > +2 > export namespace +3 > SubSubModule2 +4 > { + > // No code here since these are the mirror of the above calls + > export class ClassA { public AisIn1_2_2() { } } + > export class ClassB { public BisIn1_2_2() { } } + > export class ClassC { public CisIn1_2_2() { } } + > export interface InterfaceY { YisIn1_2_2(); } + > interface NonExportedInterfaceQ { } + > } +1->Emitted(102, 9) Source(77, 9) + SourceIndex(0) +2 >Emitted(102, 13) Source(77, 26) + SourceIndex(0) +3 >Emitted(102, 26) Source(77, 39) + SourceIndex(0) +4 >Emitted(102, 27) Source(84, 10) + SourceIndex(0) +--- +>>> (function (SubSubModule2) { +1->^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> +2 > export namespace +3 > SubSubModule2 +1->Emitted(103, 9) Source(77, 9) + SourceIndex(0) +2 >Emitted(103, 20) Source(77, 26) + SourceIndex(0) +3 >Emitted(103, 33) Source(77, 39) + SourceIndex(0) +--- +>>> // No code here since these are the mirror of the above calls +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1-> { + > +2 > // No code here since these are the mirror of the above calls +1->Emitted(104, 13) Source(78, 13) + SourceIndex(0) +2 >Emitted(104, 74) Source(78, 74) + SourceIndex(0) +--- +>>> class ClassA { +1 >^^^^^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^-> +1 > + > +2 > export class +3 > ClassA +1 >Emitted(105, 13) Source(79, 13) + SourceIndex(0) +2 >Emitted(105, 19) Source(79, 26) + SourceIndex(0) +3 >Emitted(105, 25) Source(79, 32) + SourceIndex(0) +--- +>>> AisIn1_2_2() { } +1->^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^ +3 > ^^^^^ +4 > ^ +1-> { public +2 > AisIn1_2_2 +3 > () { +4 > } +1->Emitted(106, 17) Source(79, 42) + SourceIndex(0) +2 >Emitted(106, 27) Source(79, 52) + SourceIndex(0) +3 >Emitted(106, 32) Source(79, 57) + SourceIndex(0) +4 >Emitted(106, 33) Source(79, 58) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > } +1 >Emitted(107, 14) Source(79, 60) + SourceIndex(0) +--- +>>> SubSubModule2.ClassA = ClassA; +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^ +5 > ^ +1-> +2 > +3 > ClassA +4 > { public AisIn1_2_2() { } } +5 > +1->Emitted(108, 13) Source(79, 26) + SourceIndex(0) +2 >Emitted(108, 27) Source(79, 26) + SourceIndex(0) +3 >Emitted(108, 33) Source(79, 32) + SourceIndex(0) +4 >Emitted(108, 42) Source(79, 60) + SourceIndex(0) +5 >Emitted(108, 43) Source(79, 60) + SourceIndex(0) +--- +>>> class ClassB { +1 >^^^^^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^-> +1 > + > +2 > export class +3 > ClassB +1 >Emitted(109, 13) Source(80, 13) + SourceIndex(0) +2 >Emitted(109, 19) Source(80, 26) + SourceIndex(0) +3 >Emitted(109, 25) Source(80, 32) + SourceIndex(0) +--- +>>> BisIn1_2_2() { } +1->^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^ +3 > ^^^^^ +4 > ^ +1-> { public +2 > BisIn1_2_2 +3 > () { +4 > } +1->Emitted(110, 17) Source(80, 42) + SourceIndex(0) +2 >Emitted(110, 27) Source(80, 52) + SourceIndex(0) +3 >Emitted(110, 32) Source(80, 57) + SourceIndex(0) +4 >Emitted(110, 33) Source(80, 58) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > } +1 >Emitted(111, 14) Source(80, 60) + SourceIndex(0) +--- +>>> SubSubModule2.ClassB = ClassB; +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^ +5 > ^ +1-> +2 > +3 > ClassB +4 > { public BisIn1_2_2() { } } +5 > +1->Emitted(112, 13) Source(80, 26) + SourceIndex(0) +2 >Emitted(112, 27) Source(80, 26) + SourceIndex(0) +3 >Emitted(112, 33) Source(80, 32) + SourceIndex(0) +4 >Emitted(112, 42) Source(80, 60) + SourceIndex(0) +5 >Emitted(112, 43) Source(80, 60) + SourceIndex(0) +--- +>>> class ClassC { +1 >^^^^^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^-> +1 > + > +2 > export class +3 > ClassC +1 >Emitted(113, 13) Source(81, 13) + SourceIndex(0) +2 >Emitted(113, 19) Source(81, 26) + SourceIndex(0) +3 >Emitted(113, 25) Source(81, 32) + SourceIndex(0) +--- +>>> CisIn1_2_2() { } +1->^^^^^^^^^^^^^^^^ +2 > ^^^^^^^^^^ +3 > ^^^^^ +4 > ^ +1-> { public +2 > CisIn1_2_2 +3 > () { +4 > } +1->Emitted(114, 17) Source(81, 42) + SourceIndex(0) +2 >Emitted(114, 27) Source(81, 52) + SourceIndex(0) +3 >Emitted(114, 32) Source(81, 57) + SourceIndex(0) +4 >Emitted(114, 33) Source(81, 58) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > } +1 >Emitted(115, 14) Source(81, 60) + SourceIndex(0) +--- +>>> SubSubModule2.ClassC = ClassC; +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^ +5 > ^ +6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> +2 > +3 > ClassC +4 > { public CisIn1_2_2() { } } +5 > +1->Emitted(116, 13) Source(81, 26) + SourceIndex(0) +2 >Emitted(116, 27) Source(81, 26) + SourceIndex(0) +3 >Emitted(116, 33) Source(81, 32) + SourceIndex(0) +4 >Emitted(116, 42) Source(81, 60) + SourceIndex(0) +5 >Emitted(116, 43) Source(81, 60) + SourceIndex(0) +--- +>>> })(SubSubModule2 = SubModule2.SubSubModule2 || (SubModule2.SubSubModule2 = {})); +1->^^^^^^^^ +2 > ^ +3 > ^^ +4 > ^^^^^^^^^^^^^ +5 > ^^^ +6 > ^^^^^^^^^^^ +7 > ^^^^^^^^^^^^^ +8 > ^^^^^ +9 > ^^^^^^^^^^^ +10> ^^^^^^^^^^^^^ +11> ^^^^^^^^ +1-> + > export interface InterfaceY { YisIn1_2_2(); } + > interface NonExportedInterfaceQ { } + > +2 > } +3 > +4 > SubSubModule2 +5 > +6 > +7 > SubSubModule2 +8 > +9 > +10> SubSubModule2 +11> { + > // No code here since these are the mirror of the above calls + > export class ClassA { public AisIn1_2_2() { } } + > export class ClassB { public BisIn1_2_2() { } } + > export class ClassC { public CisIn1_2_2() { } } + > export interface InterfaceY { YisIn1_2_2(); } + > interface NonExportedInterfaceQ { } + > } +1->Emitted(117, 9) Source(84, 9) + SourceIndex(0) +2 >Emitted(117, 10) Source(84, 10) + SourceIndex(0) +3 >Emitted(117, 12) Source(77, 26) + SourceIndex(0) +4 >Emitted(117, 25) Source(77, 39) + SourceIndex(0) +5 >Emitted(117, 28) Source(77, 26) + SourceIndex(0) +6 >Emitted(117, 39) Source(77, 26) + SourceIndex(0) +7 >Emitted(117, 52) Source(77, 39) + SourceIndex(0) +8 >Emitted(117, 57) Source(77, 26) + SourceIndex(0) +9 >Emitted(117, 68) Source(77, 26) + SourceIndex(0) +10>Emitted(117, 81) Source(77, 39) + SourceIndex(0) +11>Emitted(117, 89) Source(84, 10) + SourceIndex(0) +--- +>>> })(SubModule2 = TopLevelModule1.SubModule2 || (TopLevelModule1.SubModule2 = {})); +1 >^^^^ +2 > ^ +3 > ^^ +4 > ^^^^^^^^^^ +5 > ^^^ +6 > ^^^^^^^^^^^^^^^^ +7 > ^^^^^^^^^^ +8 > ^^^^^ +9 > ^^^^^^^^^^^^^^^^ +10> ^^^^^^^^^^ +11> ^^^^^^^^ +1 > + > + > export interface InterfaceY { YisIn1_2(); } + > +2 > } +3 > +4 > SubModule2 +5 > +6 > +7 > SubModule2 +8 > +9 > +10> SubModule2 +11> { + > export namespace SubSubModule2 { + > // No code here since these are the mirror of the above calls + > export class ClassA { public AisIn1_2_2() { } } + > export class ClassB { public BisIn1_2_2() { } } + > export class ClassC { public CisIn1_2_2() { } } + > export interface InterfaceY { YisIn1_2_2(); } + > interface NonExportedInterfaceQ { } + > } + > + > export interface InterfaceY { YisIn1_2(); } + > } +1 >Emitted(118, 5) Source(87, 5) + SourceIndex(0) +2 >Emitted(118, 6) Source(87, 6) + SourceIndex(0) +3 >Emitted(118, 8) Source(76, 22) + SourceIndex(0) +4 >Emitted(118, 18) Source(76, 32) + SourceIndex(0) +5 >Emitted(118, 21) Source(76, 22) + SourceIndex(0) +6 >Emitted(118, 37) Source(76, 22) + SourceIndex(0) +7 >Emitted(118, 47) Source(76, 32) + SourceIndex(0) +8 >Emitted(118, 52) Source(76, 22) + SourceIndex(0) +9 >Emitted(118, 68) Source(76, 22) + SourceIndex(0) +10>Emitted(118, 78) Source(76, 32) + SourceIndex(0) +11>Emitted(118, 86) Source(87, 6) + SourceIndex(0) +--- +>>> class ClassA { +1 >^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +4 > ^^^^^-> +1 > + > + > +2 > class +3 > ClassA +1 >Emitted(119, 5) Source(89, 5) + SourceIndex(0) +2 >Emitted(119, 11) Source(89, 11) + SourceIndex(0) +3 >Emitted(119, 17) Source(89, 17) + SourceIndex(0) +--- +>>> AisIn1() { } +1->^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^ +4 > ^ +1-> { + > public +2 > AisIn1 +3 > () { +4 > } +1->Emitted(120, 9) Source(90, 16) + SourceIndex(0) +2 >Emitted(120, 15) Source(90, 22) + SourceIndex(0) +3 >Emitted(120, 20) Source(90, 27) + SourceIndex(0) +4 >Emitted(120, 21) Source(90, 28) + SourceIndex(0) +--- +>>> } +1 >^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > } +1 >Emitted(121, 6) Source(91, 6) + SourceIndex(0) +--- +>>> let NotExportedModule; +1->^^^^ +2 > ^^^^ +3 > ^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^^^^^^-> +1-> + > + > interface InterfaceY { + > YisIn1(); + > } + > + > +2 > namespace +3 > NotExportedModule +4 > { + > export class ClassA { } + > } +1->Emitted(122, 5) Source(97, 5) + SourceIndex(0) +2 >Emitted(122, 9) Source(97, 15) + SourceIndex(0) +3 >Emitted(122, 26) Source(97, 32) + SourceIndex(0) +4 >Emitted(122, 27) Source(99, 6) + SourceIndex(0) +--- +>>> (function (NotExportedModule) { +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^ +1-> +2 > namespace +3 > NotExportedModule +1->Emitted(123, 5) Source(97, 5) + SourceIndex(0) +2 >Emitted(123, 16) Source(97, 15) + SourceIndex(0) +3 >Emitted(123, 33) Source(97, 32) + SourceIndex(0) +--- +>>> class ClassA { +1 >^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +1 > { + > +2 > export class +3 > ClassA +1 >Emitted(124, 9) Source(98, 9) + SourceIndex(0) +2 >Emitted(124, 15) Source(98, 22) + SourceIndex(0) +3 >Emitted(124, 21) Source(98, 28) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > { } +1 >Emitted(125, 10) Source(98, 32) + SourceIndex(0) +--- +>>> NotExportedModule.ClassA = ClassA; +1->^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^ +5 > ^ +6 > ^^^^^^^^^^^^^-> +1-> +2 > +3 > ClassA +4 > { } +5 > +1->Emitted(126, 9) Source(98, 22) + SourceIndex(0) +2 >Emitted(126, 27) Source(98, 22) + SourceIndex(0) +3 >Emitted(126, 33) Source(98, 28) + SourceIndex(0) +4 >Emitted(126, 42) Source(98, 32) + SourceIndex(0) +5 >Emitted(126, 43) Source(98, 32) + SourceIndex(0) +--- +>>> })(NotExportedModule || (NotExportedModule = {})); +1->^^^^ +2 > ^ +3 > ^^ +4 > ^^^^^^^^^^^^^^^^^ +5 > ^^^^^ +6 > ^^^^^^^^^^^^^^^^^ +7 > ^^^^^^^^ +8 > ^^^^^^^^^^^^^^^^^^^-> +1-> + > +2 > } +3 > +4 > NotExportedModule +5 > +6 > NotExportedModule +7 > { + > export class ClassA { } + > } +1->Emitted(127, 5) Source(99, 5) + SourceIndex(0) +2 >Emitted(127, 6) Source(99, 6) + SourceIndex(0) +3 >Emitted(127, 8) Source(97, 15) + SourceIndex(0) +4 >Emitted(127, 25) Source(97, 32) + SourceIndex(0) +5 >Emitted(127, 30) Source(97, 15) + SourceIndex(0) +6 >Emitted(127, 47) Source(97, 32) + SourceIndex(0) +7 >Emitted(127, 55) Source(99, 6) + SourceIndex(0) +--- +>>>})(TopLevelModule1 || (exports.TopLevelModule1 = TopLevelModule1 = {})); +1-> +2 >^ +3 > ^^ +4 > ^^^^^^^^^^^^^^^ +5 > ^^^^^^^^^^^^^ +6 > ^^^^^^^^^^^^^^^ +7 > ^^^ +8 > ^^^^^^^^^^^^^^^ +9 > ^^^^^^^^ +1-> + > +2 >} +3 > +4 > TopLevelModule1 +5 > +6 > TopLevelModule1 +7 > +8 > TopLevelModule1 +9 > { + > export namespace SubModule1 { + > export namespace SubSubModule1 { + > export class ClassA { + > public AisIn1_1_1() { + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export class ClassB { + > public BisIn1_1_1() { + > /** Exactly the same as above in AisIn1_1_1 **/ + > + > // Try all qualified names of this type + > var a1: ClassA; a1.AisIn1_1_1(); + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Two variants of qualifying a peer type + > var b1: ClassB; b1.BisIn1_1_1(); + > var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); + > + > // Type only accessible from the root + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > + > // Interface reference + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > export interface InterfaceX { XisIn1_1_1(); } + > class NonExportedClassQ { + > constructor() { + > function QQ() { + > /* Sampling of stuff from AisIn1_1_1 */ + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); + > var d1: InterfaceX; d1.XisIn1_1_1(); + > var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); + > } + > } + > } + > } + > + > // Should have no effect on S1.SS1.ClassA above because it is not exported + > class ClassA { + > constructor() { + > function AA() { + > var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); + > var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); + > var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); + > + > // Interface reference + > var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); + > } + > } + > } + > } + > + > export namespace SubModule2 { + > export namespace SubSubModule2 { + > // No code here since these are the mirror of the above calls + > export class ClassA { public AisIn1_2_2() { } } + > export class ClassB { public BisIn1_2_2() { } } + > export class ClassC { public CisIn1_2_2() { } } + > export interface InterfaceY { YisIn1_2_2(); } + > interface NonExportedInterfaceQ { } + > } + > + > export interface InterfaceY { YisIn1_2(); } + > } + > + > class ClassA { + > public AisIn1() { } + > } + > + > interface InterfaceY { + > YisIn1(); + > } + > + > namespace NotExportedModule { + > export class ClassA { } + > } + > } +1->Emitted(128, 1) Source(100, 1) + SourceIndex(0) +2 >Emitted(128, 2) Source(100, 2) + SourceIndex(0) +3 >Emitted(128, 4) Source(1, 18) + SourceIndex(0) +4 >Emitted(128, 19) Source(1, 33) + SourceIndex(0) +5 >Emitted(128, 32) Source(1, 18) + SourceIndex(0) +6 >Emitted(128, 47) Source(1, 33) + SourceIndex(0) +7 >Emitted(128, 50) Source(1, 18) + SourceIndex(0) +8 >Emitted(128, 65) Source(1, 33) + SourceIndex(0) +9 >Emitted(128, 73) Source(100, 2) + SourceIndex(0) +--- +>>>var TopLevelModule2; +1 > +2 >^^^^ +3 > ^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > + > + > +2 >namespace +3 > TopLevelModule2 +4 > { + > export namespace SubModule3 { + > export class ClassA { + > public AisIn2_3() { } + > } + > } + > } +1 >Emitted(129, 1) Source(102, 1) + SourceIndex(0) +2 >Emitted(129, 5) Source(102, 11) + SourceIndex(0) +3 >Emitted(129, 20) Source(102, 26) + SourceIndex(0) +4 >Emitted(129, 21) Source(108, 2) + SourceIndex(0) +--- +>>>(function (TopLevelModule2) { +1-> +2 >^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^ +1-> +2 >namespace +3 > TopLevelModule2 +1->Emitted(130, 1) Source(102, 1) + SourceIndex(0) +2 >Emitted(130, 12) Source(102, 11) + SourceIndex(0) +3 >Emitted(130, 27) Source(102, 26) + SourceIndex(0) +--- +>>> let SubModule3; +1 >^^^^ +2 > ^^^^ +3 > ^^^^^^^^^^ +4 > ^ +5 > ^^^^^^^^^^-> +1 > { + > +2 > export namespace +3 > SubModule3 +4 > { + > export class ClassA { + > public AisIn2_3() { } + > } + > } +1 >Emitted(131, 5) Source(103, 5) + SourceIndex(0) +2 >Emitted(131, 9) Source(103, 22) + SourceIndex(0) +3 >Emitted(131, 19) Source(103, 32) + SourceIndex(0) +4 >Emitted(131, 20) Source(107, 6) + SourceIndex(0) +--- +>>> (function (SubModule3) { +1->^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^ +1-> +2 > export namespace +3 > SubModule3 +1->Emitted(132, 5) Source(103, 5) + SourceIndex(0) +2 >Emitted(132, 16) Source(103, 22) + SourceIndex(0) +3 >Emitted(132, 26) Source(103, 32) + SourceIndex(0) +--- +>>> class ClassA { +1 >^^^^^^^^ +2 > ^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^-> +1 > { + > +2 > export class +3 > ClassA +1 >Emitted(133, 9) Source(104, 9) + SourceIndex(0) +2 >Emitted(133, 15) Source(104, 22) + SourceIndex(0) +3 >Emitted(133, 21) Source(104, 28) + SourceIndex(0) +--- +>>> AisIn2_3() { } +1->^^^^^^^^^^^^ +2 > ^^^^^^^^ +3 > ^^^^^ +4 > ^ +1-> { + > public +2 > AisIn2_3 +3 > () { +4 > } +1->Emitted(134, 13) Source(105, 20) + SourceIndex(0) +2 >Emitted(134, 21) Source(105, 28) + SourceIndex(0) +3 >Emitted(134, 26) Source(105, 33) + SourceIndex(0) +4 >Emitted(134, 27) Source(105, 34) + SourceIndex(0) +--- +>>> } +1 >^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > } +1 >Emitted(135, 10) Source(106, 10) + SourceIndex(0) +--- +>>> SubModule3.ClassA = ClassA; +1->^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^ +4 > ^^^^^^^^^ +5 > ^ +6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> +2 > +3 > ClassA +4 > { + > public AisIn2_3() { } + > } +5 > +1->Emitted(136, 9) Source(104, 22) + SourceIndex(0) +2 >Emitted(136, 20) Source(104, 22) + SourceIndex(0) +3 >Emitted(136, 26) Source(104, 28) + SourceIndex(0) +4 >Emitted(136, 35) Source(106, 10) + SourceIndex(0) +5 >Emitted(136, 36) Source(106, 10) + SourceIndex(0) +--- +>>> })(SubModule3 = TopLevelModule2.SubModule3 || (TopLevelModule2.SubModule3 = {})); +1->^^^^ +2 > ^ +3 > ^^ +4 > ^^^^^^^^^^ +5 > ^^^ +6 > ^^^^^^^^^^^^^^^^ +7 > ^^^^^^^^^^ +8 > ^^^^^ +9 > ^^^^^^^^^^^^^^^^ +10> ^^^^^^^^^^ +11> ^^^^^^^^ +1-> + > +2 > } +3 > +4 > SubModule3 +5 > +6 > +7 > SubModule3 +8 > +9 > +10> SubModule3 +11> { + > export class ClassA { + > public AisIn2_3() { } + > } + > } +1->Emitted(137, 5) Source(107, 5) + SourceIndex(0) +2 >Emitted(137, 6) Source(107, 6) + SourceIndex(0) +3 >Emitted(137, 8) Source(103, 22) + SourceIndex(0) +4 >Emitted(137, 18) Source(103, 32) + SourceIndex(0) +5 >Emitted(137, 21) Source(103, 22) + SourceIndex(0) +6 >Emitted(137, 37) Source(103, 22) + SourceIndex(0) +7 >Emitted(137, 47) Source(103, 32) + SourceIndex(0) +8 >Emitted(137, 52) Source(103, 22) + SourceIndex(0) +9 >Emitted(137, 68) Source(103, 22) + SourceIndex(0) +10>Emitted(137, 78) Source(103, 32) + SourceIndex(0) +11>Emitted(137, 86) Source(107, 6) + SourceIndex(0) +--- +>>>})(TopLevelModule2 || (TopLevelModule2 = {})); +1 > +2 >^ +3 > ^^ +4 > ^^^^^^^^^^^^^^^ +5 > ^^^^^ +6 > ^^^^^^^^^^^^^^^ +7 > ^^^^^^^^ +1 > + > +2 >} +3 > +4 > TopLevelModule2 +5 > +6 > TopLevelModule2 +7 > { + > export namespace SubModule3 { + > export class ClassA { + > public AisIn2_3() { } + > } + > } + > } +1 >Emitted(138, 1) Source(108, 1) + SourceIndex(0) +2 >Emitted(138, 2) Source(108, 2) + SourceIndex(0) +3 >Emitted(138, 4) Source(102, 11) + SourceIndex(0) +4 >Emitted(138, 19) Source(102, 26) + SourceIndex(0) +5 >Emitted(138, 24) Source(102, 11) + SourceIndex(0) +6 >Emitted(138, 39) Source(102, 26) + SourceIndex(0) +7 >Emitted(138, 47) Source(108, 2) + SourceIndex(0) +--- +>>>//# sourceMappingURL=typeResolution.js.map \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/typeResolution.symbols b/tsc/testdata/baselines/reference/compiler/typeResolution.symbols new file mode 100644 index 0000000000000..1053d13fe98c8 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeResolution.symbols @@ -0,0 +1,367 @@ +//// [tests/cases/compiler/typeResolution.ts] //// + +=== typeResolution.ts === +export namespace TopLevelModule1 { +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) + + export namespace SubModule1 { +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) + + export namespace SubSubModule1 { +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) + + export class ClassA { +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) + + public AisIn1_1_1() { +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + // Try all qualified names of this type + var a1: ClassA; a1.AisIn1_1_1(); +>a1 : Symbol(a1, Decl(typeResolution.ts, 6, 23)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a1.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a1 : Symbol(a1, Decl(typeResolution.ts, 6, 23)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); +>a2 : Symbol(a2, Decl(typeResolution.ts, 7, 23)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a2.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a2 : Symbol(a2, Decl(typeResolution.ts, 7, 23)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); +>a3 : Symbol(a3, Decl(typeResolution.ts, 8, 23)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a3.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a3 : Symbol(a3, Decl(typeResolution.ts, 8, 23)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); +>a4 : Symbol(a4, Decl(typeResolution.ts, 9, 23)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a4.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a4 : Symbol(a4, Decl(typeResolution.ts, 9, 23)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + // Two variants of qualifying a peer type + var b1: ClassB; b1.BisIn1_1_1(); +>b1 : Symbol(b1, Decl(typeResolution.ts, 12, 23)) +>ClassB : Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) +>b1.BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) +>b1 : Symbol(b1, Decl(typeResolution.ts, 12, 23)) +>BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) + + var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); +>b2 : Symbol(b2, Decl(typeResolution.ts, 13, 23)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassB : Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) +>b2.BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) +>b2 : Symbol(b2, Decl(typeResolution.ts, 13, 23)) +>BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) + + // Type only accessible from the root + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); +>c1 : Symbol(c1, Decl(typeResolution.ts, 16, 23)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule2 : Symbol(SubModule2, Decl(typeResolution.ts, 73, 5)) +>SubSubModule2 : Symbol(SubModule2.SubSubModule2, Decl(typeResolution.ts, 75, 33)) +>ClassA : Symbol(SubModule2.SubSubModule2.ClassA, Decl(typeResolution.ts, 76, 40)) +>c1.AisIn1_2_2 : Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) +>c1 : Symbol(c1, Decl(typeResolution.ts, 16, 23)) +>AisIn1_2_2 : Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) + + // Interface reference + var d1: InterfaceX; d1.XisIn1_1_1(); +>d1 : Symbol(d1, Decl(typeResolution.ts, 19, 23)) +>InterfaceX : Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) +>d1.XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) +>d1 : Symbol(d1, Decl(typeResolution.ts, 19, 23)) +>XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) + + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); +>d2 : Symbol(d2, Decl(typeResolution.ts, 20, 23)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>InterfaceX : Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) +>d2.XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) +>d2 : Symbol(d2, Decl(typeResolution.ts, 20, 23)) +>XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) + } + } + export class ClassB { +>ClassB : Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) + + public BisIn1_1_1() { +>BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) + + /** Exactly the same as above in AisIn1_1_1 **/ + + // Try all qualified names of this type + var a1: ClassA; a1.AisIn1_1_1(); +>a1 : Symbol(a1, Decl(typeResolution.ts, 28, 23)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a1.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a1 : Symbol(a1, Decl(typeResolution.ts, 28, 23)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); +>a2 : Symbol(a2, Decl(typeResolution.ts, 29, 23)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a2.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a2 : Symbol(a2, Decl(typeResolution.ts, 29, 23)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); +>a3 : Symbol(a3, Decl(typeResolution.ts, 30, 23)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a3.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a3 : Symbol(a3, Decl(typeResolution.ts, 30, 23)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); +>a4 : Symbol(a4, Decl(typeResolution.ts, 31, 23)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a4.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a4 : Symbol(a4, Decl(typeResolution.ts, 31, 23)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + // Two variants of qualifying a peer type + var b1: ClassB; b1.BisIn1_1_1(); +>b1 : Symbol(b1, Decl(typeResolution.ts, 34, 23)) +>ClassB : Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) +>b1.BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) +>b1 : Symbol(b1, Decl(typeResolution.ts, 34, 23)) +>BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) + + var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); +>b2 : Symbol(b2, Decl(typeResolution.ts, 35, 23)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassB : Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) +>b2.BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) +>b2 : Symbol(b2, Decl(typeResolution.ts, 35, 23)) +>BisIn1_1_1 : Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) + + // Type only accessible from the root + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); +>c1 : Symbol(c1, Decl(typeResolution.ts, 38, 23)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule2 : Symbol(SubModule2, Decl(typeResolution.ts, 73, 5)) +>SubSubModule2 : Symbol(SubModule2.SubSubModule2, Decl(typeResolution.ts, 75, 33)) +>ClassA : Symbol(SubModule2.SubSubModule2.ClassA, Decl(typeResolution.ts, 76, 40)) +>c1.AisIn1_2_2 : Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) +>c1 : Symbol(c1, Decl(typeResolution.ts, 38, 23)) +>AisIn1_2_2 : Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) + + var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); +>c2 : Symbol(c2, Decl(typeResolution.ts, 39, 23)) +>TopLevelModule2 : Symbol(TopLevelModule2, Decl(typeResolution.ts, 99, 1)) +>SubModule3 : Symbol(TopLevelModule2.SubModule3, Decl(typeResolution.ts, 101, 27)) +>ClassA : Symbol(TopLevelModule2.SubModule3.ClassA, Decl(typeResolution.ts, 102, 33)) +>c2.AisIn2_3 : Symbol(TopLevelModule2.SubModule3.ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) +>c2 : Symbol(c2, Decl(typeResolution.ts, 39, 23)) +>AisIn2_3 : Symbol(TopLevelModule2.SubModule3.ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) + + // Interface reference + var d1: InterfaceX; d1.XisIn1_1_1(); +>d1 : Symbol(d1, Decl(typeResolution.ts, 42, 23)) +>InterfaceX : Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) +>d1.XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) +>d1 : Symbol(d1, Decl(typeResolution.ts, 42, 23)) +>XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) + + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); +>d2 : Symbol(d2, Decl(typeResolution.ts, 43, 23)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>InterfaceX : Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) +>d2.XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) +>d2 : Symbol(d2, Decl(typeResolution.ts, 43, 23)) +>XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) + } + } + export interface InterfaceX { XisIn1_1_1(); } +>InterfaceX : Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) +>XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) + + class NonExportedClassQ { +>NonExportedClassQ : Symbol(NonExportedClassQ, Decl(typeResolution.ts, 46, 57)) + + constructor() { + function QQ() { +>QQ : Symbol(QQ, Decl(typeResolution.ts, 48, 31)) + + /* Sampling of stuff from AisIn1_1_1 */ + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); +>a4 : Symbol(a4, Decl(typeResolution.ts, 51, 27)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 2, 40)) +>a4.AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a4 : Symbol(a4, Decl(typeResolution.ts, 51, 27)) +>AisIn1_1_1 : Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); +>c1 : Symbol(c1, Decl(typeResolution.ts, 52, 27)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule2 : Symbol(SubModule2, Decl(typeResolution.ts, 73, 5)) +>SubSubModule2 : Symbol(SubModule2.SubSubModule2, Decl(typeResolution.ts, 75, 33)) +>ClassA : Symbol(SubModule2.SubSubModule2.ClassA, Decl(typeResolution.ts, 76, 40)) +>c1.AisIn1_2_2 : Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) +>c1 : Symbol(c1, Decl(typeResolution.ts, 52, 27)) +>AisIn1_2_2 : Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) + + var d1: InterfaceX; d1.XisIn1_1_1(); +>d1 : Symbol(d1, Decl(typeResolution.ts, 53, 27)) +>InterfaceX : Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) +>d1.XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) +>d1 : Symbol(d1, Decl(typeResolution.ts, 53, 27)) +>XisIn1_1_1 : Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) + + var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); +>c2 : Symbol(c2, Decl(typeResolution.ts, 54, 27)) +>TopLevelModule2 : Symbol(TopLevelModule2, Decl(typeResolution.ts, 99, 1)) +>SubModule3 : Symbol(TopLevelModule2.SubModule3, Decl(typeResolution.ts, 101, 27)) +>ClassA : Symbol(TopLevelModule2.SubModule3.ClassA, Decl(typeResolution.ts, 102, 33)) +>c2.AisIn2_3 : Symbol(TopLevelModule2.SubModule3.ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) +>c2 : Symbol(c2, Decl(typeResolution.ts, 54, 27)) +>AisIn2_3 : Symbol(TopLevelModule2.SubModule3.ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) + } + } + } + } + + // Should have no effect on S1.SS1.ClassA above because it is not exported + class ClassA { +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 58, 9)) + + constructor() { + function AA() { +>AA : Symbol(AA, Decl(typeResolution.ts, 62, 27)) + + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); +>a2 : Symbol(a2, Decl(typeResolution.ts, 64, 23)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(SubSubModule1.ClassA, Decl(typeResolution.ts, 2, 40)) +>a2.AisIn1_1_1 : Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a2 : Symbol(a2, Decl(typeResolution.ts, 64, 23)) +>AisIn1_1_1 : Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); +>a3 : Symbol(a3, Decl(typeResolution.ts, 65, 23)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(SubSubModule1.ClassA, Decl(typeResolution.ts, 2, 40)) +>a3.AisIn1_1_1 : Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a3 : Symbol(a3, Decl(typeResolution.ts, 65, 23)) +>AisIn1_1_1 : Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); +>a4 : Symbol(a4, Decl(typeResolution.ts, 66, 23)) +>TopLevelModule1 : Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) +>SubModule1 : Symbol(SubModule1, Decl(typeResolution.ts, 0, 34)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>ClassA : Symbol(SubSubModule1.ClassA, Decl(typeResolution.ts, 2, 40)) +>a4.AisIn1_1_1 : Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) +>a4 : Symbol(a4, Decl(typeResolution.ts, 66, 23)) +>AisIn1_1_1 : Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) + + // Interface reference + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); +>d2 : Symbol(d2, Decl(typeResolution.ts, 69, 23)) +>SubSubModule1 : Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 33)) +>InterfaceX : Symbol(SubSubModule1.InterfaceX, Decl(typeResolution.ts, 45, 13)) +>d2.XisIn1_1_1 : Symbol(SubSubModule1.InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) +>d2 : Symbol(d2, Decl(typeResolution.ts, 69, 23)) +>XisIn1_1_1 : Symbol(SubSubModule1.InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) + } + } + } + } + + export namespace SubModule2 { +>SubModule2 : Symbol(SubModule2, Decl(typeResolution.ts, 73, 5)) + + export namespace SubSubModule2 { +>SubSubModule2 : Symbol(SubSubModule2, Decl(typeResolution.ts, 75, 33)) + + // No code here since these are the mirror of the above calls + export class ClassA { public AisIn1_2_2() { } } +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 76, 40)) +>AisIn1_2_2 : Symbol(ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) + + export class ClassB { public BisIn1_2_2() { } } +>ClassB : Symbol(ClassB, Decl(typeResolution.ts, 78, 59)) +>BisIn1_2_2 : Symbol(ClassB.BisIn1_2_2, Decl(typeResolution.ts, 79, 33)) + + export class ClassC { public CisIn1_2_2() { } } +>ClassC : Symbol(ClassC, Decl(typeResolution.ts, 79, 59)) +>CisIn1_2_2 : Symbol(ClassC.CisIn1_2_2, Decl(typeResolution.ts, 80, 33)) + + export interface InterfaceY { YisIn1_2_2(); } +>InterfaceY : Symbol(InterfaceY, Decl(typeResolution.ts, 80, 59)) +>YisIn1_2_2 : Symbol(InterfaceY.YisIn1_2_2, Decl(typeResolution.ts, 81, 41)) + + interface NonExportedInterfaceQ { } +>NonExportedInterfaceQ : Symbol(NonExportedInterfaceQ, Decl(typeResolution.ts, 81, 57)) + } + + export interface InterfaceY { YisIn1_2(); } +>InterfaceY : Symbol(InterfaceY, Decl(typeResolution.ts, 83, 9)) +>YisIn1_2 : Symbol(InterfaceY.YisIn1_2, Decl(typeResolution.ts, 85, 37)) + } + + class ClassA { +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 86, 5)) + + public AisIn1() { } +>AisIn1 : Symbol(ClassA.AisIn1, Decl(typeResolution.ts, 88, 18)) + } + + interface InterfaceY { +>InterfaceY : Symbol(InterfaceY, Decl(typeResolution.ts, 90, 5)) + + YisIn1(); +>YisIn1 : Symbol(InterfaceY.YisIn1, Decl(typeResolution.ts, 92, 26)) + } + + namespace NotExportedModule { +>NotExportedModule : Symbol(NotExportedModule, Decl(typeResolution.ts, 94, 5)) + + export class ClassA { } +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 96, 33)) + } +} + +namespace TopLevelModule2 { +>TopLevelModule2 : Symbol(TopLevelModule2, Decl(typeResolution.ts, 99, 1)) + + export namespace SubModule3 { +>SubModule3 : Symbol(SubModule3, Decl(typeResolution.ts, 101, 27)) + + export class ClassA { +>ClassA : Symbol(ClassA, Decl(typeResolution.ts, 102, 33)) + + public AisIn2_3() { } +>AisIn2_3 : Symbol(ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) + } + } +} + + diff --git a/tsc/testdata/baselines/reference/compiler/typeResolution.types b/tsc/testdata/baselines/reference/compiler/typeResolution.types new file mode 100644 index 0000000000000..67b33292f9c35 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/typeResolution.types @@ -0,0 +1,361 @@ +//// [tests/cases/compiler/typeResolution.ts] //// + +=== typeResolution.ts === +export namespace TopLevelModule1 { +>TopLevelModule1 : typeof TopLevelModule1 + + export namespace SubModule1 { +>SubModule1 : typeof SubModule1 + + export namespace SubSubModule1 { +>SubSubModule1 : typeof SubSubModule1 + + export class ClassA { +>ClassA : ClassA + + public AisIn1_1_1() { +>AisIn1_1_1 : () => void + + // Try all qualified names of this type + var a1: ClassA; a1.AisIn1_1_1(); +>a1 : ClassA +>a1.AisIn1_1_1() : void +>a1.AisIn1_1_1 : () => void +>a1 : ClassA +>AisIn1_1_1 : () => void + + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); +>a2 : ClassA +>SubSubModule1 : any +>a2.AisIn1_1_1() : void +>a2.AisIn1_1_1 : () => void +>a2 : ClassA +>AisIn1_1_1 : () => void + + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); +>a3 : ClassA +>SubModule1 : any +>SubSubModule1 : any +>a3.AisIn1_1_1() : void +>a3.AisIn1_1_1 : () => void +>a3 : ClassA +>AisIn1_1_1 : () => void + + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); +>a4 : ClassA +>TopLevelModule1 : any +>SubModule1 : any +>SubSubModule1 : any +>a4.AisIn1_1_1() : void +>a4.AisIn1_1_1 : () => void +>a4 : ClassA +>AisIn1_1_1 : () => void + + // Two variants of qualifying a peer type + var b1: ClassB; b1.BisIn1_1_1(); +>b1 : ClassB +>b1.BisIn1_1_1() : void +>b1.BisIn1_1_1 : () => void +>b1 : ClassB +>BisIn1_1_1 : () => void + + var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); +>b2 : ClassB +>TopLevelModule1 : any +>SubModule1 : any +>SubSubModule1 : any +>b2.BisIn1_1_1() : void +>b2.BisIn1_1_1 : () => void +>b2 : ClassB +>BisIn1_1_1 : () => void + + // Type only accessible from the root + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); +>c1 : SubModule2.SubSubModule2.ClassA +>TopLevelModule1 : any +>SubModule2 : any +>SubSubModule2 : any +>c1.AisIn1_2_2() : void +>c1.AisIn1_2_2 : () => void +>c1 : SubModule2.SubSubModule2.ClassA +>AisIn1_2_2 : () => void + + // Interface reference + var d1: InterfaceX; d1.XisIn1_1_1(); +>d1 : InterfaceX +>d1.XisIn1_1_1() : any +>d1.XisIn1_1_1 : () => any +>d1 : InterfaceX +>XisIn1_1_1 : () => any + + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); +>d2 : InterfaceX +>SubSubModule1 : any +>d2.XisIn1_1_1() : any +>d2.XisIn1_1_1 : () => any +>d2 : InterfaceX +>XisIn1_1_1 : () => any + } + } + export class ClassB { +>ClassB : ClassB + + public BisIn1_1_1() { +>BisIn1_1_1 : () => void + + /** Exactly the same as above in AisIn1_1_1 **/ + + // Try all qualified names of this type + var a1: ClassA; a1.AisIn1_1_1(); +>a1 : ClassA +>a1.AisIn1_1_1() : void +>a1.AisIn1_1_1 : () => void +>a1 : ClassA +>AisIn1_1_1 : () => void + + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); +>a2 : ClassA +>SubSubModule1 : any +>a2.AisIn1_1_1() : void +>a2.AisIn1_1_1 : () => void +>a2 : ClassA +>AisIn1_1_1 : () => void + + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); +>a3 : ClassA +>SubModule1 : any +>SubSubModule1 : any +>a3.AisIn1_1_1() : void +>a3.AisIn1_1_1 : () => void +>a3 : ClassA +>AisIn1_1_1 : () => void + + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); +>a4 : ClassA +>TopLevelModule1 : any +>SubModule1 : any +>SubSubModule1 : any +>a4.AisIn1_1_1() : void +>a4.AisIn1_1_1 : () => void +>a4 : ClassA +>AisIn1_1_1 : () => void + + // Two variants of qualifying a peer type + var b1: ClassB; b1.BisIn1_1_1(); +>b1 : ClassB +>b1.BisIn1_1_1() : void +>b1.BisIn1_1_1 : () => void +>b1 : ClassB +>BisIn1_1_1 : () => void + + var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); +>b2 : ClassB +>TopLevelModule1 : any +>SubModule1 : any +>SubSubModule1 : any +>b2.BisIn1_1_1() : void +>b2.BisIn1_1_1 : () => void +>b2 : ClassB +>BisIn1_1_1 : () => void + + // Type only accessible from the root + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); +>c1 : SubModule2.SubSubModule2.ClassA +>TopLevelModule1 : any +>SubModule2 : any +>SubSubModule2 : any +>c1.AisIn1_2_2() : void +>c1.AisIn1_2_2 : () => void +>c1 : SubModule2.SubSubModule2.ClassA +>AisIn1_2_2 : () => void + + var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); +>c2 : TopLevelModule2.SubModule3.ClassA +>TopLevelModule2 : any +>SubModule3 : any +>c2.AisIn2_3() : void +>c2.AisIn2_3 : () => void +>c2 : TopLevelModule2.SubModule3.ClassA +>AisIn2_3 : () => void + + // Interface reference + var d1: InterfaceX; d1.XisIn1_1_1(); +>d1 : InterfaceX +>d1.XisIn1_1_1() : any +>d1.XisIn1_1_1 : () => any +>d1 : InterfaceX +>XisIn1_1_1 : () => any + + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); +>d2 : InterfaceX +>SubSubModule1 : any +>d2.XisIn1_1_1() : any +>d2.XisIn1_1_1 : () => any +>d2 : InterfaceX +>XisIn1_1_1 : () => any + } + } + export interface InterfaceX { XisIn1_1_1(); } +>XisIn1_1_1 : () => any + + class NonExportedClassQ { +>NonExportedClassQ : NonExportedClassQ + + constructor() { + function QQ() { +>QQ : () => void + + /* Sampling of stuff from AisIn1_1_1 */ + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); +>a4 : ClassA +>TopLevelModule1 : any +>SubModule1 : any +>SubSubModule1 : any +>a4.AisIn1_1_1() : void +>a4.AisIn1_1_1 : () => void +>a4 : ClassA +>AisIn1_1_1 : () => void + + var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); +>c1 : SubModule2.SubSubModule2.ClassA +>TopLevelModule1 : any +>SubModule2 : any +>SubSubModule2 : any +>c1.AisIn1_2_2() : void +>c1.AisIn1_2_2 : () => void +>c1 : SubModule2.SubSubModule2.ClassA +>AisIn1_2_2 : () => void + + var d1: InterfaceX; d1.XisIn1_1_1(); +>d1 : InterfaceX +>d1.XisIn1_1_1() : any +>d1.XisIn1_1_1 : () => any +>d1 : InterfaceX +>XisIn1_1_1 : () => any + + var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); +>c2 : TopLevelModule2.SubModule3.ClassA +>TopLevelModule2 : any +>SubModule3 : any +>c2.AisIn2_3() : void +>c2.AisIn2_3 : () => void +>c2 : TopLevelModule2.SubModule3.ClassA +>AisIn2_3 : () => void + } + } + } + } + + // Should have no effect on S1.SS1.ClassA above because it is not exported + class ClassA { +>ClassA : ClassA + + constructor() { + function AA() { +>AA : () => void + + var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); +>a2 : SubSubModule1.ClassA +>SubSubModule1 : any +>a2.AisIn1_1_1() : void +>a2.AisIn1_1_1 : () => void +>a2 : SubSubModule1.ClassA +>AisIn1_1_1 : () => void + + var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); +>a3 : SubSubModule1.ClassA +>SubModule1 : any +>SubSubModule1 : any +>a3.AisIn1_1_1() : void +>a3.AisIn1_1_1 : () => void +>a3 : SubSubModule1.ClassA +>AisIn1_1_1 : () => void + + var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); +>a4 : SubSubModule1.ClassA +>TopLevelModule1 : any +>SubModule1 : any +>SubSubModule1 : any +>a4.AisIn1_1_1() : void +>a4.AisIn1_1_1 : () => void +>a4 : SubSubModule1.ClassA +>AisIn1_1_1 : () => void + + // Interface reference + var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); +>d2 : SubSubModule1.InterfaceX +>SubSubModule1 : any +>d2.XisIn1_1_1() : any +>d2.XisIn1_1_1 : () => any +>d2 : SubSubModule1.InterfaceX +>XisIn1_1_1 : () => any + } + } + } + } + + export namespace SubModule2 { +>SubModule2 : typeof SubModule2 + + export namespace SubSubModule2 { +>SubSubModule2 : typeof SubSubModule2 + + // No code here since these are the mirror of the above calls + export class ClassA { public AisIn1_2_2() { } } +>ClassA : ClassA +>AisIn1_2_2 : () => void + + export class ClassB { public BisIn1_2_2() { } } +>ClassB : ClassB +>BisIn1_2_2 : () => void + + export class ClassC { public CisIn1_2_2() { } } +>ClassC : ClassC +>CisIn1_2_2 : () => void + + export interface InterfaceY { YisIn1_2_2(); } +>YisIn1_2_2 : () => any + + interface NonExportedInterfaceQ { } + } + + export interface InterfaceY { YisIn1_2(); } +>YisIn1_2 : () => any + } + + class ClassA { +>ClassA : ClassA + + public AisIn1() { } +>AisIn1 : () => void + } + + interface InterfaceY { + YisIn1(); +>YisIn1 : () => any + } + + namespace NotExportedModule { +>NotExportedModule : typeof NotExportedModule + + export class ClassA { } +>ClassA : ClassA + } +} + +namespace TopLevelModule2 { +>TopLevelModule2 : typeof TopLevelModule2 + + export namespace SubModule3 { +>SubModule3 : typeof SubModule3 + + export class ClassA { +>ClassA : ClassA + + public AisIn2_3() { } +>AisIn2_3 : () => void + } + } +} + + diff --git a/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.js b/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.js new file mode 100644 index 0000000000000..b23a0bf3c001e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.js @@ -0,0 +1,46 @@ +//// [tests/cases/compiler/varArgsOnConstructorTypes.ts] //// + +//// [varArgsOnConstructorTypes.ts] +export class A { + constructor(ctor) { } +} + +export class B extends A { + private p1: number; + private p2: string; + + constructor(element: any, url: string) { + super(element); + this.p1 = element; + this.p2 = url; + } +} + +export interface I1 { + register(inputClass: new(...params: any[]) => A); + register(inputClass: { new (...params: any[]): A; }[]); +} + + +var reg: I1; +reg.register(B); + + +//// [varArgsOnConstructorTypes.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.B = exports.A = void 0; +class A { + constructor(ctor) { } +} +exports.A = A; +class B extends A { + constructor(element, url) { + super(element); + this.p1 = element; + this.p2 = url; + } +} +exports.B = B; +var reg; +reg.register(B); diff --git a/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.symbols b/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.symbols new file mode 100644 index 0000000000000..12efcca3871d4 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.symbols @@ -0,0 +1,69 @@ +//// [tests/cases/compiler/varArgsOnConstructorTypes.ts] //// + +=== varArgsOnConstructorTypes.ts === +export class A { +>A : Symbol(A, Decl(varArgsOnConstructorTypes.ts, 0, 0)) + + constructor(ctor) { } +>ctor : Symbol(ctor, Decl(varArgsOnConstructorTypes.ts, 1, 16)) +} + +export class B extends A { +>B : Symbol(B, Decl(varArgsOnConstructorTypes.ts, 2, 1)) +>A : Symbol(A, Decl(varArgsOnConstructorTypes.ts, 0, 0)) + + private p1: number; +>p1 : Symbol(B.p1, Decl(varArgsOnConstructorTypes.ts, 4, 26)) + + private p2: string; +>p2 : Symbol(B.p2, Decl(varArgsOnConstructorTypes.ts, 5, 23)) + + constructor(element: any, url: string) { +>element : Symbol(element, Decl(varArgsOnConstructorTypes.ts, 8, 16)) +>url : Symbol(url, Decl(varArgsOnConstructorTypes.ts, 8, 29)) + + super(element); +>super : Symbol(A, Decl(varArgsOnConstructorTypes.ts, 0, 0)) +>element : Symbol(element, Decl(varArgsOnConstructorTypes.ts, 8, 16)) + + this.p1 = element; +>this.p1 : Symbol(B.p1, Decl(varArgsOnConstructorTypes.ts, 4, 26)) +>this : Symbol(B, Decl(varArgsOnConstructorTypes.ts, 2, 1)) +>p1 : Symbol(B.p1, Decl(varArgsOnConstructorTypes.ts, 4, 26)) +>element : Symbol(element, Decl(varArgsOnConstructorTypes.ts, 8, 16)) + + this.p2 = url; +>this.p2 : Symbol(B.p2, Decl(varArgsOnConstructorTypes.ts, 5, 23)) +>this : Symbol(B, Decl(varArgsOnConstructorTypes.ts, 2, 1)) +>p2 : Symbol(B.p2, Decl(varArgsOnConstructorTypes.ts, 5, 23)) +>url : Symbol(url, Decl(varArgsOnConstructorTypes.ts, 8, 29)) + } +} + +export interface I1 { +>I1 : Symbol(I1, Decl(varArgsOnConstructorTypes.ts, 13, 1)) + + register(inputClass: new(...params: any[]) => A); +>register : Symbol(I1.register, Decl(varArgsOnConstructorTypes.ts, 15, 21), Decl(varArgsOnConstructorTypes.ts, 16, 53)) +>inputClass : Symbol(inputClass, Decl(varArgsOnConstructorTypes.ts, 16, 13)) +>params : Symbol(params, Decl(varArgsOnConstructorTypes.ts, 16, 29)) +>A : Symbol(A, Decl(varArgsOnConstructorTypes.ts, 0, 0)) + + register(inputClass: { new (...params: any[]): A; }[]); +>register : Symbol(I1.register, Decl(varArgsOnConstructorTypes.ts, 15, 21), Decl(varArgsOnConstructorTypes.ts, 16, 53)) +>inputClass : Symbol(inputClass, Decl(varArgsOnConstructorTypes.ts, 17, 13)) +>params : Symbol(params, Decl(varArgsOnConstructorTypes.ts, 17, 32)) +>A : Symbol(A, Decl(varArgsOnConstructorTypes.ts, 0, 0)) +} + + +var reg: I1; +>reg : Symbol(reg, Decl(varArgsOnConstructorTypes.ts, 21, 3)) +>I1 : Symbol(I1, Decl(varArgsOnConstructorTypes.ts, 13, 1)) + +reg.register(B); +>reg.register : Symbol(I1.register, Decl(varArgsOnConstructorTypes.ts, 15, 21), Decl(varArgsOnConstructorTypes.ts, 16, 53)) +>reg : Symbol(reg, Decl(varArgsOnConstructorTypes.ts, 21, 3)) +>register : Symbol(I1.register, Decl(varArgsOnConstructorTypes.ts, 15, 21), Decl(varArgsOnConstructorTypes.ts, 16, 53)) +>B : Symbol(B, Decl(varArgsOnConstructorTypes.ts, 2, 1)) + diff --git a/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.types b/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.types new file mode 100644 index 0000000000000..ebe8d09308a70 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/varArgsOnConstructorTypes.types @@ -0,0 +1,68 @@ +//// [tests/cases/compiler/varArgsOnConstructorTypes.ts] //// + +=== varArgsOnConstructorTypes.ts === +export class A { +>A : A + + constructor(ctor) { } +>ctor : any +} + +export class B extends A { +>B : B +>A : A + + private p1: number; +>p1 : number + + private p2: string; +>p2 : string + + constructor(element: any, url: string) { +>element : any +>url : string + + super(element); +>super(element) : void +>super : typeof A +>element : any + + this.p1 = element; +>this.p1 = element : any +>this.p1 : number +>this : this +>p1 : number +>element : any + + this.p2 = url; +>this.p2 = url : string +>this.p2 : string +>this : this +>p2 : string +>url : string + } +} + +export interface I1 { + register(inputClass: new(...params: any[]) => A); +>register : { (inputClass: new (...params: any[]) => A): any; (inputClass: { new (...params: any[]): A; }[]): any; } +>inputClass : new (...params: any[]) => A +>params : any[] + + register(inputClass: { new (...params: any[]): A; }[]); +>register : { (inputClass: new (...params: any[]) => A): any; (inputClass: { new (...params: any[]): A; }[]): any; } +>inputClass : (new (...params: any[]) => A)[] +>params : any[] +} + + +var reg: I1; +>reg : I1 + +reg.register(B); +>reg.register(B) : any +>reg.register : { (inputClass: new (...params: any[]) => A): any; (inputClass: { new (...params: any[]): A; }[]): any; } +>reg : I1 +>register : { (inputClass: new (...params: any[]) => A): any; (inputClass: { new (...params: any[]): A; }[]): any; } +>B : typeof B + diff --git a/tsc/testdata/baselines/reference/compiler/withExportDecl.js b/tsc/testdata/baselines/reference/compiler/withExportDecl.js new file mode 100644 index 0000000000000..f3d6e48a4333b --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/withExportDecl.js @@ -0,0 +1,132 @@ +//// [tests/cases/compiler/withExportDecl.ts] //// + +//// [withExportDecl.ts] +var simpleVar; +export var exportedSimpleVar; + +var anotherVar: any; +var varWithSimpleType: number; +var varWithArrayType: number[]; + +var varWithInitialValue = 30; +export var exportedVarWithInitialValue = 70; + +var withComplicatedValue = { x: 30, y: 70, desc: "position" }; +export var exportedWithComplicatedValue = { x: 30, y: 70, desc: "position" }; + +declare var declaredVar; +declare var declareVar2 + +declare var declaredVar; +declare var deckareVarWithType: number; +export declare var exportedDeclaredVar: number; + +var arrayVar: string[] = ['a', 'b']; + +export var exportedArrayVar: { x: number; y: string; }[] ; +exportedArrayVar.push({ x: 30, y : 'hello world' }); + +function simpleFunction() { + return { + x: "Hello", + y: "word", + n: 2 + }; +} + +export function exportedFunction() { + return simpleFunction(); +} + +namespace m1 { + export function foo() { + return "Hello"; + } +} +export declare namespace m2 { + + export var a: number; +} + + +export namespace m3 { + + export function foo() { + return m1.foo(); + } +} + +export var eVar1, eVar2 = 10; +var eVar22; +export var eVar3 = 10, eVar4, eVar5; + +//// [withExportDecl.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.eVar5 = exports.eVar4 = exports.eVar3 = exports.eVar2 = exports.eVar1 = exports.m3 = exports.exportedArrayVar = exports.exportedWithComplicatedValue = exports.exportedVarWithInitialValue = exports.exportedSimpleVar = void 0; +exports.exportedFunction = exportedFunction; +var simpleVar; +var anotherVar; +var varWithSimpleType; +var varWithArrayType; +var varWithInitialValue = 30; +exports.exportedVarWithInitialValue = 70; +var withComplicatedValue = { x: 30, y: 70, desc: "position" }; +exports.exportedWithComplicatedValue = { x: 30, y: 70, desc: "position" }; +var arrayVar = ['a', 'b']; +exports.exportedArrayVar.push({ x: 30, y: 'hello world' }); +function simpleFunction() { + return { + x: "Hello", + y: "word", + n: 2 + }; +} +function exportedFunction() { + return simpleFunction(); +} +var m1; +(function (m1) { + function foo() { + return "Hello"; + } + m1.foo = foo; +})(m1 || (m1 = {})); +var m3; +(function (m3) { + function foo() { + return m1.foo(); + } + m3.foo = foo; +})(m3 || (exports.m3 = m3 = {})); +exports.eVar2 = 10; +var eVar22; +exports.eVar3 = 10; + + +//// [withExportDecl.d.ts] +export declare var exportedSimpleVar: any; +export declare var exportedVarWithInitialValue: number; +export declare var exportedWithComplicatedValue: { + x: number; + y: number; + desc: string; +}; +export declare var exportedDeclaredVar: number; +export declare var exportedArrayVar: { + x: number; + y: string; +}[]; +export declare function exportedFunction(): { + x: string; + y: string; + n: number; +}; +export declare namespace m2 { + var a: number; +} +export declare namespace m3 { + function foo(): string; +} +export declare var eVar1: any, eVar2: number; +export declare var eVar3: number, eVar4: any, eVar5: any; diff --git a/tsc/testdata/baselines/reference/compiler/withExportDecl.symbols b/tsc/testdata/baselines/reference/compiler/withExportDecl.symbols new file mode 100644 index 0000000000000..52d799ce3f784 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/withExportDecl.symbols @@ -0,0 +1,131 @@ +//// [tests/cases/compiler/withExportDecl.ts] //// + +=== withExportDecl.ts === +var simpleVar; +>simpleVar : Symbol(simpleVar, Decl(withExportDecl.ts, 0, 3)) + +export var exportedSimpleVar; +>exportedSimpleVar : Symbol(exportedSimpleVar, Decl(withExportDecl.ts, 1, 10)) + +var anotherVar: any; +>anotherVar : Symbol(anotherVar, Decl(withExportDecl.ts, 3, 3)) + +var varWithSimpleType: number; +>varWithSimpleType : Symbol(varWithSimpleType, Decl(withExportDecl.ts, 4, 3)) + +var varWithArrayType: number[]; +>varWithArrayType : Symbol(varWithArrayType, Decl(withExportDecl.ts, 5, 3)) + +var varWithInitialValue = 30; +>varWithInitialValue : Symbol(varWithInitialValue, Decl(withExportDecl.ts, 7, 3)) + +export var exportedVarWithInitialValue = 70; +>exportedVarWithInitialValue : Symbol(exportedVarWithInitialValue, Decl(withExportDecl.ts, 8, 10)) + +var withComplicatedValue = { x: 30, y: 70, desc: "position" }; +>withComplicatedValue : Symbol(withComplicatedValue, Decl(withExportDecl.ts, 10, 3)) +>x : Symbol(x, Decl(withExportDecl.ts, 10, 28)) +>y : Symbol(y, Decl(withExportDecl.ts, 10, 35)) +>desc : Symbol(desc, Decl(withExportDecl.ts, 10, 42)) + +export var exportedWithComplicatedValue = { x: 30, y: 70, desc: "position" }; +>exportedWithComplicatedValue : Symbol(exportedWithComplicatedValue, Decl(withExportDecl.ts, 11, 10)) +>x : Symbol(x, Decl(withExportDecl.ts, 11, 43)) +>y : Symbol(y, Decl(withExportDecl.ts, 11, 50)) +>desc : Symbol(desc, Decl(withExportDecl.ts, 11, 57)) + +declare var declaredVar; +>declaredVar : Symbol(declaredVar, Decl(withExportDecl.ts, 13, 11), Decl(withExportDecl.ts, 16, 11)) + +declare var declareVar2 +>declareVar2 : Symbol(declareVar2, Decl(withExportDecl.ts, 14, 11)) + +declare var declaredVar; +>declaredVar : Symbol(declaredVar, Decl(withExportDecl.ts, 13, 11), Decl(withExportDecl.ts, 16, 11)) + +declare var deckareVarWithType: number; +>deckareVarWithType : Symbol(deckareVarWithType, Decl(withExportDecl.ts, 17, 11)) + +export declare var exportedDeclaredVar: number; +>exportedDeclaredVar : Symbol(exportedDeclaredVar, Decl(withExportDecl.ts, 18, 18)) + +var arrayVar: string[] = ['a', 'b']; +>arrayVar : Symbol(arrayVar, Decl(withExportDecl.ts, 20, 3)) + +export var exportedArrayVar: { x: number; y: string; }[] ; +>exportedArrayVar : Symbol(exportedArrayVar, Decl(withExportDecl.ts, 22, 10)) +>x : Symbol(x, Decl(withExportDecl.ts, 22, 30)) +>y : Symbol(y, Decl(withExportDecl.ts, 22, 41)) + +exportedArrayVar.push({ x: 30, y : 'hello world' }); +>exportedArrayVar.push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --)) +>exportedArrayVar : Symbol(exportedArrayVar, Decl(withExportDecl.ts, 22, 10)) +>push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(withExportDecl.ts, 23, 23)) +>y : Symbol(y, Decl(withExportDecl.ts, 23, 30)) + +function simpleFunction() { +>simpleFunction : Symbol(simpleFunction, Decl(withExportDecl.ts, 23, 52)) + + return { + x: "Hello", +>x : Symbol(x, Decl(withExportDecl.ts, 26, 12)) + + y: "word", +>y : Symbol(y, Decl(withExportDecl.ts, 27, 19)) + + n: 2 +>n : Symbol(n, Decl(withExportDecl.ts, 28, 18)) + + }; +} + +export function exportedFunction() { +>exportedFunction : Symbol(exportedFunction, Decl(withExportDecl.ts, 31, 1)) + + return simpleFunction(); +>simpleFunction : Symbol(simpleFunction, Decl(withExportDecl.ts, 23, 52)) +} + +namespace m1 { +>m1 : Symbol(m1, Decl(withExportDecl.ts, 35, 1)) + + export function foo() { +>foo : Symbol(foo, Decl(withExportDecl.ts, 37, 14)) + + return "Hello"; + } +} +export declare namespace m2 { +>m2 : Symbol(m2, Decl(withExportDecl.ts, 41, 1)) + + export var a: number; +>a : Symbol(a, Decl(withExportDecl.ts, 44, 14)) +} + + +export namespace m3 { +>m3 : Symbol(m3, Decl(withExportDecl.ts, 45, 1)) + + export function foo() { +>foo : Symbol(foo, Decl(withExportDecl.ts, 48, 21)) + + return m1.foo(); +>m1.foo : Symbol(m1.foo, Decl(withExportDecl.ts, 37, 14)) +>m1 : Symbol(m1, Decl(withExportDecl.ts, 35, 1)) +>foo : Symbol(m1.foo, Decl(withExportDecl.ts, 37, 14)) + } +} + +export var eVar1, eVar2 = 10; +>eVar1 : Symbol(eVar1, Decl(withExportDecl.ts, 55, 10)) +>eVar2 : Symbol(eVar2, Decl(withExportDecl.ts, 55, 17)) + +var eVar22; +>eVar22 : Symbol(eVar22, Decl(withExportDecl.ts, 56, 3)) + +export var eVar3 = 10, eVar4, eVar5; +>eVar3 : Symbol(eVar3, Decl(withExportDecl.ts, 57, 10)) +>eVar4 : Symbol(eVar4, Decl(withExportDecl.ts, 57, 22)) +>eVar5 : Symbol(eVar5, Decl(withExportDecl.ts, 57, 29)) + diff --git a/tsc/testdata/baselines/reference/compiler/withExportDecl.types b/tsc/testdata/baselines/reference/compiler/withExportDecl.types new file mode 100644 index 0000000000000..90be465bd948e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/withExportDecl.types @@ -0,0 +1,158 @@ +//// [tests/cases/compiler/withExportDecl.ts] //// + +=== withExportDecl.ts === +var simpleVar; +>simpleVar : any + +export var exportedSimpleVar; +>exportedSimpleVar : any + +var anotherVar: any; +>anotherVar : any + +var varWithSimpleType: number; +>varWithSimpleType : number + +var varWithArrayType: number[]; +>varWithArrayType : number[] + +var varWithInitialValue = 30; +>varWithInitialValue : number +>30 : 30 + +export var exportedVarWithInitialValue = 70; +>exportedVarWithInitialValue : number +>70 : 70 + +var withComplicatedValue = { x: 30, y: 70, desc: "position" }; +>withComplicatedValue : { x: number; y: number; desc: string; } +>{ x: 30, y: 70, desc: "position" } : { x: number; y: number; desc: string; } +>x : number +>30 : 30 +>y : number +>70 : 70 +>desc : string +>"position" : "position" + +export var exportedWithComplicatedValue = { x: 30, y: 70, desc: "position" }; +>exportedWithComplicatedValue : { x: number; y: number; desc: string; } +>{ x: 30, y: 70, desc: "position" } : { x: number; y: number; desc: string; } +>x : number +>30 : 30 +>y : number +>70 : 70 +>desc : string +>"position" : "position" + +declare var declaredVar; +>declaredVar : any + +declare var declareVar2 +>declareVar2 : any + +declare var declaredVar; +>declaredVar : any + +declare var deckareVarWithType: number; +>deckareVarWithType : number + +export declare var exportedDeclaredVar: number; +>exportedDeclaredVar : number + +var arrayVar: string[] = ['a', 'b']; +>arrayVar : string[] +>['a', 'b'] : string[] +>'a' : "a" +>'b' : "b" + +export var exportedArrayVar: { x: number; y: string; }[] ; +>exportedArrayVar : { x: number; y: string; }[] +>x : number +>y : string + +exportedArrayVar.push({ x: 30, y : 'hello world' }); +>exportedArrayVar.push({ x: 30, y : 'hello world' }) : number +>exportedArrayVar.push : (...items: { x: number; y: string; }[]) => number +>exportedArrayVar : { x: number; y: string; }[] +>push : (...items: { x: number; y: string; }[]) => number +>{ x: 30, y : 'hello world' } : { x: number; y: string; } +>x : number +>30 : 30 +>y : string +>'hello world' : "hello world" + +function simpleFunction() { +>simpleFunction : () => { x: string; y: string; n: number; } + + return { +>{ x: "Hello", y: "word", n: 2 } : { x: string; y: string; n: number; } + + x: "Hello", +>x : string +>"Hello" : "Hello" + + y: "word", +>y : string +>"word" : "word" + + n: 2 +>n : number +>2 : 2 + + }; +} + +export function exportedFunction() { +>exportedFunction : () => { x: string; y: string; n: number; } + + return simpleFunction(); +>simpleFunction() : { x: string; y: string; n: number; } +>simpleFunction : () => { x: string; y: string; n: number; } +} + +namespace m1 { +>m1 : typeof m1 + + export function foo() { +>foo : () => string + + return "Hello"; +>"Hello" : "Hello" + } +} +export declare namespace m2 { +>m2 : typeof m2 + + export var a: number; +>a : number +} + + +export namespace m3 { +>m3 : typeof m3 + + export function foo() { +>foo : () => string + + return m1.foo(); +>m1.foo() : string +>m1.foo : () => string +>m1 : typeof m1 +>foo : () => string + } +} + +export var eVar1, eVar2 = 10; +>eVar1 : any +>eVar2 : number +>10 : 10 + +var eVar22; +>eVar22 : any + +export var eVar3 = 10, eVar4, eVar5; +>eVar3 : number +>10 : 10 +>eVar4 : any +>eVar5 : any + diff --git a/tsc/testdata/baselines/reference/compiler/withImportDecl.errors.txt b/tsc/testdata/baselines/reference/compiler/withImportDecl.errors.txt new file mode 100644 index 0000000000000..4d0d96f6a41a9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/withImportDecl.errors.txt @@ -0,0 +1,47 @@ +withImportDecl_1.ts(35,21): error TS2307: Cannot find module 'withImportDecl_0' or its corresponding type declarations. + + +==== withImportDecl_1.ts (1 errors) ==== + /// + var simpleVar; + + var anotherVar: any; + var varWithSimpleType: number; + var varWithArrayType: number[]; + + var varWithInitialValue = 30; + + var withComplicatedValue = { x: 30, y: 70, desc: "position" }; + + declare var declaredVar; + declare var declareVar2 + + declare var declaredVar; + declare var deckareVarWithType: number; + + var arrayVar: string[] = ['a', 'b']; + + + function simpleFunction() { + return { + x: "Hello", + y: "word", + n: 2 + }; + } + + namespace m1 { + export function foo() { + return "Hello"; + } + } + + import m3 = require("withImportDecl_0"); + ~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'withImportDecl_0' or its corresponding type declarations. + + var b = new m3.A(); + b.foo; +==== withImportDecl_0.ts (0 errors) ==== + export class A { foo: string; } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/withImportDecl.js b/tsc/testdata/baselines/reference/compiler/withImportDecl.js new file mode 100644 index 0000000000000..60042244b7280 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/withImportDecl.js @@ -0,0 +1,88 @@ +//// [tests/cases/compiler/withImportDecl.ts] //// + +//// [withImportDecl_0.ts] +export class A { foo: string; } + +//// [withImportDecl_1.ts] +/// +var simpleVar; + +var anotherVar: any; +var varWithSimpleType: number; +var varWithArrayType: number[]; + +var varWithInitialValue = 30; + +var withComplicatedValue = { x: 30, y: 70, desc: "position" }; + +declare var declaredVar; +declare var declareVar2 + +declare var declaredVar; +declare var deckareVarWithType: number; + +var arrayVar: string[] = ['a', 'b']; + + +function simpleFunction() { + return { + x: "Hello", + y: "word", + n: 2 + }; +} + +namespace m1 { + export function foo() { + return "Hello"; + } +} + +import m3 = require("withImportDecl_0"); + +var b = new m3.A(); +b.foo; + +//// [withImportDecl_0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.A = void 0; +class A { +} +exports.A = A; +//// [withImportDecl_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +var simpleVar; +var anotherVar; +var varWithSimpleType; +var varWithArrayType; +var varWithInitialValue = 30; +var withComplicatedValue = { x: 30, y: 70, desc: "position" }; +var arrayVar = ['a', 'b']; +function simpleFunction() { + return { + x: "Hello", + y: "word", + n: 2 + }; +} +var m1; +(function (m1) { + function foo() { + return "Hello"; + } + m1.foo = foo; +})(m1 || (m1 = {})); +const m3 = require("withImportDecl_0"); +var b = new m3.A(); +b.foo; + + +//// [withImportDecl_0.d.ts] +export declare class A { + foo: string; +} +//// [withImportDecl_1.d.ts] +export {}; diff --git a/tsc/testdata/baselines/reference/compiler/withImportDecl.symbols b/tsc/testdata/baselines/reference/compiler/withImportDecl.symbols new file mode 100644 index 0000000000000..74620828811b9 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/withImportDecl.symbols @@ -0,0 +1,82 @@ +//// [tests/cases/compiler/withImportDecl.ts] //// + +=== withImportDecl_1.ts === +/// +var simpleVar; +>simpleVar : Symbol(simpleVar, Decl(withImportDecl_1.ts, 1, 3)) + +var anotherVar: any; +>anotherVar : Symbol(anotherVar, Decl(withImportDecl_1.ts, 3, 3)) + +var varWithSimpleType: number; +>varWithSimpleType : Symbol(varWithSimpleType, Decl(withImportDecl_1.ts, 4, 3)) + +var varWithArrayType: number[]; +>varWithArrayType : Symbol(varWithArrayType, Decl(withImportDecl_1.ts, 5, 3)) + +var varWithInitialValue = 30; +>varWithInitialValue : Symbol(varWithInitialValue, Decl(withImportDecl_1.ts, 7, 3)) + +var withComplicatedValue = { x: 30, y: 70, desc: "position" }; +>withComplicatedValue : Symbol(withComplicatedValue, Decl(withImportDecl_1.ts, 9, 3)) +>x : Symbol(x, Decl(withImportDecl_1.ts, 9, 28)) +>y : Symbol(y, Decl(withImportDecl_1.ts, 9, 35)) +>desc : Symbol(desc, Decl(withImportDecl_1.ts, 9, 42)) + +declare var declaredVar; +>declaredVar : Symbol(declaredVar, Decl(withImportDecl_1.ts, 11, 11), Decl(withImportDecl_1.ts, 14, 11)) + +declare var declareVar2 +>declareVar2 : Symbol(declareVar2, Decl(withImportDecl_1.ts, 12, 11)) + +declare var declaredVar; +>declaredVar : Symbol(declaredVar, Decl(withImportDecl_1.ts, 11, 11), Decl(withImportDecl_1.ts, 14, 11)) + +declare var deckareVarWithType: number; +>deckareVarWithType : Symbol(deckareVarWithType, Decl(withImportDecl_1.ts, 15, 11)) + +var arrayVar: string[] = ['a', 'b']; +>arrayVar : Symbol(arrayVar, Decl(withImportDecl_1.ts, 17, 3)) + + +function simpleFunction() { +>simpleFunction : Symbol(simpleFunction, Decl(withImportDecl_1.ts, 17, 36)) + + return { + x: "Hello", +>x : Symbol(x, Decl(withImportDecl_1.ts, 21, 12)) + + y: "word", +>y : Symbol(y, Decl(withImportDecl_1.ts, 22, 19)) + + n: 2 +>n : Symbol(n, Decl(withImportDecl_1.ts, 23, 18)) + + }; +} + +namespace m1 { +>m1 : Symbol(m1, Decl(withImportDecl_1.ts, 26, 1)) + + export function foo() { +>foo : Symbol(foo, Decl(withImportDecl_1.ts, 28, 14)) + + return "Hello"; + } +} + +import m3 = require("withImportDecl_0"); +>m3 : Symbol(m3, Decl(withImportDecl_1.ts, 32, 1)) + +var b = new m3.A(); +>b : Symbol(b, Decl(withImportDecl_1.ts, 36, 3)) +>m3 : Symbol(m3, Decl(withImportDecl_1.ts, 32, 1)) + +b.foo; +>b : Symbol(b, Decl(withImportDecl_1.ts, 36, 3)) + +=== withImportDecl_0.ts === +export class A { foo: string; } +>A : Symbol(A, Decl(withImportDecl_0.ts, 0, 0)) +>foo : Symbol(A.foo, Decl(withImportDecl_0.ts, 0, 16)) + diff --git a/tsc/testdata/baselines/reference/compiler/withImportDecl.types b/tsc/testdata/baselines/reference/compiler/withImportDecl.types new file mode 100644 index 0000000000000..6b9e37c558881 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/withImportDecl.types @@ -0,0 +1,101 @@ +//// [tests/cases/compiler/withImportDecl.ts] //// + +=== withImportDecl_1.ts === +/// +var simpleVar; +>simpleVar : any + +var anotherVar: any; +>anotherVar : any + +var varWithSimpleType: number; +>varWithSimpleType : number + +var varWithArrayType: number[]; +>varWithArrayType : number[] + +var varWithInitialValue = 30; +>varWithInitialValue : number +>30 : 30 + +var withComplicatedValue = { x: 30, y: 70, desc: "position" }; +>withComplicatedValue : { x: number; y: number; desc: string; } +>{ x: 30, y: 70, desc: "position" } : { x: number; y: number; desc: string; } +>x : number +>30 : 30 +>y : number +>70 : 70 +>desc : string +>"position" : "position" + +declare var declaredVar; +>declaredVar : any + +declare var declareVar2 +>declareVar2 : any + +declare var declaredVar; +>declaredVar : any + +declare var deckareVarWithType: number; +>deckareVarWithType : number + +var arrayVar: string[] = ['a', 'b']; +>arrayVar : string[] +>['a', 'b'] : string[] +>'a' : "a" +>'b' : "b" + + +function simpleFunction() { +>simpleFunction : () => { x: string; y: string; n: number; } + + return { +>{ x: "Hello", y: "word", n: 2 } : { x: string; y: string; n: number; } + + x: "Hello", +>x : string +>"Hello" : "Hello" + + y: "word", +>y : string +>"word" : "word" + + n: 2 +>n : number +>2 : 2 + + }; +} + +namespace m1 { +>m1 : typeof m1 + + export function foo() { +>foo : () => string + + return "Hello"; +>"Hello" : "Hello" + } +} + +import m3 = require("withImportDecl_0"); +>m3 : any + +var b = new m3.A(); +>b : any +>new m3.A() : any +>m3.A : any +>m3 : any +>A : any + +b.foo; +>b.foo : any +>b : any +>foo : any + +=== withImportDecl_0.ts === +export class A { foo: string; } +>A : A +>foo : string + diff --git a/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.js b/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.js new file mode 100644 index 0000000000000..0be1dc9525e36 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/ambient/ambientExternalModuleMerging.ts] //// + +//// [ambientExternalModuleMerging_use.ts] +import M = require("M"); +// Should be strings +var x = M.x; +var y = M.y; + +//// [ambientExternalModuleMerging_declare.ts] +declare module "M" { + export var x: string; +} + +// Merge +declare module "M" { + export var y: string; +} + +//// [ambientExternalModuleMerging_use.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const M = require("M"); +// Should be strings +var x = M.x; +var y = M.y; +//// [ambientExternalModuleMerging_declare.js] +"use strict"; diff --git a/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.symbols b/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.symbols new file mode 100644 index 0000000000000..28fa6d9e9c683 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.symbols @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/ambient/ambientExternalModuleMerging.ts] //// + +=== ambientExternalModuleMerging_use.ts === +import M = require("M"); +>M : Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) + +// Should be strings +var x = M.x; +>x : Symbol(x, Decl(ambientExternalModuleMerging_use.ts, 2, 3)) +>M.x : Symbol(M.x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) +>M : Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) +>x : Symbol(M.x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) + +var y = M.y; +>y : Symbol(y, Decl(ambientExternalModuleMerging_use.ts, 3, 3)) +>M.y : Symbol(M.y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) +>M : Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) +>y : Symbol(M.y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) + +=== ambientExternalModuleMerging_declare.ts === +declare module "M" { +>"M" : Symbol("M", Decl(ambientExternalModuleMerging_declare.ts, 0, 0), Decl(ambientExternalModuleMerging_declare.ts, 2, 1)) + + export var x: string; +>x : Symbol(x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) +} + +// Merge +declare module "M" { +>"M" : Symbol("M", Decl(ambientExternalModuleMerging_declare.ts, 0, 0), Decl(ambientExternalModuleMerging_declare.ts, 2, 1)) + + export var y: string; +>y : Symbol(y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) +} diff --git a/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.types b/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.types new file mode 100644 index 0000000000000..4b1cc7f1ae26c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/ambientExternalModuleMerging.types @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/ambient/ambientExternalModuleMerging.ts] //// + +=== ambientExternalModuleMerging_use.ts === +import M = require("M"); +>M : typeof M + +// Should be strings +var x = M.x; +>x : string +>M.x : string +>M : typeof M +>x : string + +var y = M.y; +>y : string +>M.y : string +>M : typeof M +>y : string + +=== ambientExternalModuleMerging_declare.ts === +declare module "M" { +>"M" : typeof import("M") + + export var x: string; +>x : string +} + +// Merge +declare module "M" { +>"M" : typeof import("M") + + export var y: string; +>y : string +} diff --git a/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.js b/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.js new file mode 100644 index 0000000000000..0683bd59c7575 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.js @@ -0,0 +1,12 @@ +//// [tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts] //// + +//// [ambientInsideNonAmbientExternalModule.ts] +export declare var x; +export declare function f(); +export declare class C { } +export declare enum E { } +export declare namespace M { } + +//// [ambientInsideNonAmbientExternalModule.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.symbols b/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.symbols new file mode 100644 index 0000000000000..a524c1088f3ab --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.symbols @@ -0,0 +1,18 @@ +//// [tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts] //// + +=== ambientInsideNonAmbientExternalModule.ts === +export declare var x; +>x : Symbol(x, Decl(ambientInsideNonAmbientExternalModule.ts, 0, 18)) + +export declare function f(); +>f : Symbol(f, Decl(ambientInsideNonAmbientExternalModule.ts, 0, 21)) + +export declare class C { } +>C : Symbol(C, Decl(ambientInsideNonAmbientExternalModule.ts, 1, 28)) + +export declare enum E { } +>E : Symbol(E, Decl(ambientInsideNonAmbientExternalModule.ts, 2, 26)) + +export declare namespace M { } +>M : Symbol(M, Decl(ambientInsideNonAmbientExternalModule.ts, 3, 25)) + diff --git a/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.types b/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.types new file mode 100644 index 0000000000000..f4306fe653cd6 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/ambientInsideNonAmbientExternalModule.types @@ -0,0 +1,16 @@ +//// [tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts] //// + +=== ambientInsideNonAmbientExternalModule.ts === +export declare var x; +>x : any + +export declare function f(); +>f : () => any + +export declare class C { } +>C : C + +export declare enum E { } +>E : E + +export declare namespace M { } diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.js b/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.js new file mode 100644 index 0000000000000..3778f9662b9e9 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentCircularModules.ts] //// + +//// [foo_0.ts] +import foo1 = require('./foo_1'); +namespace Foo { + export var x = foo1.x; +} +export = Foo; + +//// [foo_1.ts] +import foo2 = require("./foo_2"); +namespace Foo { + export var x = foo2.x; +} +export = Foo; + +//// [foo_2.ts] +import foo0 = require("./foo_0"); +namespace Foo { + export var x = foo0.x; +} +export = Foo; + + +//// [foo_1.js] +"use strict"; +const foo2 = require("./foo_2"); +var Foo; +(function (Foo) { + Foo.x = foo2.x; +})(Foo || (Foo = {})); +module.exports = Foo; +//// [foo_0.js] +"use strict"; +const foo1 = require("./foo_1"); +var Foo; +(function (Foo) { + Foo.x = foo1.x; +})(Foo || (Foo = {})); +module.exports = Foo; +//// [foo_2.js] +"use strict"; +const foo0 = require("./foo_0"); +var Foo; +(function (Foo) { + Foo.x = foo0.x; +})(Foo || (Foo = {})); +module.exports = Foo; diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.symbols b/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.symbols new file mode 100644 index 0000000000000..a1827af48de18 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.symbols @@ -0,0 +1,50 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentCircularModules.ts] //// + +=== foo_2.ts === +import foo0 = require("./foo_0"); +>foo0 : Symbol(foo0, Decl(foo_2.ts, 0, 0)) + +namespace Foo { +>Foo : Symbol(Foo, Decl(foo_2.ts, 0, 33)) + + export var x = foo0.x; +>x : Symbol(x, Decl(foo_2.ts, 2, 11)) +>foo0.x : Symbol(foo0.x, Decl(foo_0.ts, 2, 11)) +>foo0 : Symbol(foo0, Decl(foo_2.ts, 0, 0)) +>x : Symbol(foo0.x, Decl(foo_0.ts, 2, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_2.ts, 0, 33)) + +=== foo_0.ts === +import foo1 = require('./foo_1'); +>foo1 : Symbol(foo1, Decl(foo_0.ts, 0, 0)) + +namespace Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 33)) + + export var x = foo1.x; +>x : Symbol(x, Decl(foo_0.ts, 2, 11)) +>foo1.x : Symbol(foo1.x, Decl(foo_1.ts, 2, 11)) +>foo1 : Symbol(foo1, Decl(foo_0.ts, 0, 0)) +>x : Symbol(foo1.x, Decl(foo_1.ts, 2, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 33)) + +=== foo_1.ts === +import foo2 = require("./foo_2"); +>foo2 : Symbol(foo2, Decl(foo_1.ts, 0, 0)) + +namespace Foo { +>Foo : Symbol(Foo, Decl(foo_1.ts, 0, 33)) + + export var x = foo2.x; +>x : Symbol(x, Decl(foo_1.ts, 2, 11)) +>foo2.x : Symbol(foo2.x, Decl(foo_2.ts, 2, 11)) +>foo2 : Symbol(foo2, Decl(foo_1.ts, 0, 0)) +>x : Symbol(foo2.x, Decl(foo_2.ts, 2, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_1.ts, 0, 33)) + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.types b/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.types new file mode 100644 index 0000000000000..faa4bd3fbf786 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentCircularModules.types @@ -0,0 +1,50 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentCircularModules.ts] //// + +=== foo_2.ts === +import foo0 = require("./foo_0"); +>foo0 : typeof foo0 + +namespace Foo { +>Foo : typeof Foo + + export var x = foo0.x; +>x : any +>foo0.x : any +>foo0 : typeof foo0 +>x : any +} +export = Foo; +>Foo : typeof Foo + +=== foo_0.ts === +import foo1 = require('./foo_1'); +>foo1 : typeof foo1 + +namespace Foo { +>Foo : typeof Foo + + export var x = foo1.x; +>x : any +>foo1.x : any +>foo1 : typeof foo1 +>x : any +} +export = Foo; +>Foo : typeof Foo + +=== foo_1.ts === +import foo2 = require("./foo_2"); +>foo2 : typeof foo2 + +namespace Foo { +>Foo : typeof Foo + + export var x = foo2.x; +>x : any +>foo2.x : any +>foo2 : typeof foo2 +>x : any +} +export = Foo; +>Foo : typeof Foo + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.errors.txt b/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.errors.txt new file mode 100644 index 0000000000000..b8b131863f2fc --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.errors.txt @@ -0,0 +1,38 @@ +foo_1.ts(3,1): error TS2454: Variable 'x' is used before being assigned. +foo_1.ts(4,1): error TS2454: Variable 'x' is used before being assigned. +foo_1.ts(5,17): error TS2454: Variable 'x' is used before being assigned. +foo_1.ts(6,6): error TS2454: Variable 'x' is used before being assigned. +foo_1.ts(8,5): error TS2454: Variable 'x' is used before being assigned. + + +==== foo_1.ts (5 errors) ==== + import foo = require("./foo_0"); + var x: foo; + x("test"); + ~ +!!! error TS2454: Variable 'x' is used before being assigned. + x(42); + ~ +!!! error TS2454: Variable 'x' is used before being assigned. + var y: string = x.b; + ~ +!!! error TS2454: Variable 'x' is used before being assigned. + if(!!x.c){ } + ~ +!!! error TS2454: Variable 'x' is used before being assigned. + var z = {x: 1, y: 2}; + z = x.d; + ~ +!!! error TS2454: Variable 'x' is used before being assigned. +==== foo_0.ts (0 errors) ==== + interface Foo { + (a: string): void; + b: string; + } + interface Foo { + (a: number): number; + c: boolean; + d: {x: number; y: number}; + } + export = Foo; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.js b/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.js new file mode 100644 index 0000000000000..87b85be130720 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentMergedInterface.ts] //// + +//// [foo_0.ts] +interface Foo { + (a: string): void; + b: string; +} +interface Foo { + (a: number): number; + c: boolean; + d: {x: number; y: number}; +} +export = Foo; + +//// [foo_1.ts] +import foo = require("./foo_0"); +var x: foo; +x("test"); +x(42); +var y: string = x.b; +if(!!x.c){ } +var z = {x: 1, y: 2}; +z = x.d; + +//// [foo_0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//// [foo_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var x; +x("test"); +x(42); +var y = x.b; +if (!!x.c) { } +var z = { x: 1, y: 2 }; +z = x.d; diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.symbols b/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.symbols new file mode 100644 index 0000000000000..5c8cdc64b1c4e --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.symbols @@ -0,0 +1,65 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentMergedInterface.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +var x: foo; +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +x("test"); +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) + +x(42); +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) + +var y: string = x.b; +>y : Symbol(y, Decl(foo_1.ts, 4, 3)) +>x.b : Symbol(foo.b, Decl(foo_0.ts, 1, 19)) +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>b : Symbol(foo.b, Decl(foo_0.ts, 1, 19)) + +if(!!x.c){ } +>x.c : Symbol(foo.c, Decl(foo_0.ts, 5, 21)) +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>c : Symbol(foo.c, Decl(foo_0.ts, 5, 21)) + +var z = {x: 1, y: 2}; +>z : Symbol(z, Decl(foo_1.ts, 6, 3)) +>x : Symbol(x, Decl(foo_1.ts, 6, 9)) +>y : Symbol(y, Decl(foo_1.ts, 6, 14)) + +z = x.d; +>z : Symbol(z, Decl(foo_1.ts, 6, 3)) +>x.d : Symbol(foo.d, Decl(foo_0.ts, 6, 12)) +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>d : Symbol(foo.d, Decl(foo_0.ts, 6, 12)) + +=== foo_0.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) + + (a: string): void; +>a : Symbol(a, Decl(foo_0.ts, 1, 2)) + + b: string; +>b : Symbol(Foo.b, Decl(foo_0.ts, 1, 19)) +} +interface Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) + + (a: number): number; +>a : Symbol(a, Decl(foo_0.ts, 5, 2)) + + c: boolean; +>c : Symbol(Foo.c, Decl(foo_0.ts, 5, 21)) + + d: {x: number; y: number}; +>d : Symbol(Foo.d, Decl(foo_0.ts, 6, 12)) +>x : Symbol(x, Decl(foo_0.ts, 7, 5)) +>y : Symbol(y, Decl(foo_0.ts, 7, 15)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.types b/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.types new file mode 100644 index 0000000000000..702f8fbcb5a2c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentMergedInterface.types @@ -0,0 +1,70 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentMergedInterface.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : any + +var x: foo; +>x : foo + +x("test"); +>x("test") : void +>x : foo +>"test" : "test" + +x(42); +>x(42) : number +>x : foo +>42 : 42 + +var y: string = x.b; +>y : string +>x.b : string +>x : foo +>b : string + +if(!!x.c){ } +>!!x.c : boolean +>!x.c : boolean +>x.c : boolean +>x : foo +>c : boolean + +var z = {x: 1, y: 2}; +>z : { x: number; y: number; } +>{x: 1, y: 2} : { x: number; y: number; } +>x : number +>1 : 1 +>y : number +>2 : 2 + +z = x.d; +>z = x.d : { x: number; y: number; } +>z : { x: number; y: number; } +>x.d : { x: number; y: number; } +>x : foo +>d : { x: number; y: number; } + +=== foo_0.ts === +interface Foo { + (a: string): void; +>a : string + + b: string; +>b : string +} +interface Foo { + (a: number): number; +>a : number + + c: boolean; +>c : boolean + + d: {x: number; y: number}; +>d : { x: number; y: number; } +>x : number +>y : number +} +export = Foo; +>Foo : Foo + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.js b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.js new file mode 100644 index 0000000000000..320991a888122 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.js @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelClodule.ts] //// + +//// [foo_0.ts] +class Foo { + test = "test"; +} +namespace Foo { + export var answer = 42; +} +export = Foo; + +//// [foo_1.ts] +import foo = require("./foo_0"); +if(foo.answer === 42){ + var x = new foo(); +} + + +//// [foo_0.js] +"use strict"; +class Foo { + constructor() { + this.test = "test"; + } +} +(function (Foo) { + Foo.answer = 42; +})(Foo || (Foo = {})); +module.exports = Foo; +//// [foo_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const foo = require("./foo_0"); +if (foo.answer === 42) { + var x = new foo(); +} diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.symbols b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.symbols new file mode 100644 index 0000000000000..e270edb857366 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.symbols @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelClodule.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(foo.answer === 42){ +>foo.answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) + + var x = new foo(); +>x : Symbol(x, Decl(foo_1.ts, 2, 4)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +} + +=== foo_0.ts === +class Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + test = "test"; +>test : Symbol(Foo.test, Decl(foo_0.ts, 0, 11)) +} +namespace Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 4, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.types b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.types new file mode 100644 index 0000000000000..6e1dd0dda177f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelClodule.types @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelClodule.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : typeof foo + +if(foo.answer === 42){ +>foo.answer === 42 : boolean +>foo.answer : number +>foo : typeof foo +>answer : number +>42 : 42 + + var x = new foo(); +>x : foo +>new foo() : foo +>foo : typeof foo +} + +=== foo_0.ts === +class Foo { +>Foo : Foo + + test = "test"; +>test : string +>"test" : "test" +} +namespace Foo { +>Foo : typeof Foo + + export var answer = 42; +>answer : number +>42 : 42 +} +export = Foo; +>Foo : Foo + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.errors.txt b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.errors.txt new file mode 100644 index 0000000000000..d5b48708002d5 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.errors.txt @@ -0,0 +1,21 @@ +foo_1.ts(3,4): error TS2454: Variable 'color' is used before being assigned. + + +==== foo_1.ts (1 errors) ==== + import foo = require("./foo_0"); + var color: foo; + if(color === foo.green){ + ~~~~~ +!!! error TS2454: Variable 'color' is used before being assigned. + color = foo.answer; + } + +==== foo_0.ts (0 errors) ==== + enum foo { + red, green, blue + } + namespace foo { + export var answer = 42; + } + export = foo; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.js b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.js new file mode 100644 index 0000000000000..0a0ce9f7762b5 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelEnumdule.ts] //// + +//// [foo_0.ts] +enum foo { + red, green, blue +} +namespace foo { + export var answer = 42; +} +export = foo; + +//// [foo_1.ts] +import foo = require("./foo_0"); +var color: foo; +if(color === foo.green){ + color = foo.answer; +} + + +//// [foo_0.js] +"use strict"; +var foo; +(function (foo) { + foo[foo["red"] = 0] = "red"; + foo[foo["green"] = 1] = "green"; + foo[foo["blue"] = 2] = "blue"; +})(foo || (foo = {})); +(function (foo) { + foo.answer = 42; +})(foo || (foo = {})); +module.exports = foo; +//// [foo_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const foo = require("./foo_0"); +var color; +if (color === foo.green) { + color = foo.answer; +} diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.symbols b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.symbols new file mode 100644 index 0000000000000..9c52258532e2f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.symbols @@ -0,0 +1,41 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelEnumdule.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +var color: foo; +>color : Symbol(color, Decl(foo_1.ts, 1, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(color === foo.green){ +>color : Symbol(color, Decl(foo_1.ts, 1, 3)) +>foo.green : Symbol(foo.green, Decl(foo_0.ts, 1, 5)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>green : Symbol(foo.green, Decl(foo_0.ts, 1, 5)) + + color = foo.answer; +>color : Symbol(color, Decl(foo_1.ts, 1, 3)) +>foo.answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +} + +=== foo_0.ts === +enum foo { +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + red, green, blue +>red : Symbol(foo.red, Decl(foo_0.ts, 0, 10)) +>green : Symbol(foo.green, Decl(foo_0.ts, 1, 5)) +>blue : Symbol(foo.blue, Decl(foo_0.ts, 1, 12)) +} +namespace foo { +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 4, 11)) +} +export = foo; +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.types b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.types new file mode 100644 index 0000000000000..748422c047ef7 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelEnumdule.types @@ -0,0 +1,43 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelEnumdule.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : typeof foo + +var color: foo; +>color : foo + +if(color === foo.green){ +>color === foo.green : boolean +>color : foo +>foo.green : foo.green +>foo : typeof foo +>green : foo.green + + color = foo.answer; +>color = foo.answer : number +>color : foo +>foo.answer : number +>foo : typeof foo +>answer : number +} + +=== foo_0.ts === +enum foo { +>foo : foo + + red, green, blue +>red : foo.red +>green : foo.green +>blue : foo.blue +} +namespace foo { +>foo : typeof foo + + export var answer = 42; +>answer : number +>42 : 42 +} +export = foo; +>foo : foo + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.js b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.js new file mode 100644 index 0000000000000..52c57b5b1072d --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.js @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelFundule.ts] //// + +//// [foo_0.ts] +function foo() { + return "test"; +} +namespace foo { + export var answer = 42; +} +export = foo; + +//// [foo_1.ts] +import foo = require("./foo_0"); +if(foo.answer === 42){ + var x = foo(); +} + + +//// [foo_0.js] +"use strict"; +function foo() { + return "test"; +} +(function (foo) { + foo.answer = 42; +})(foo || (foo = {})); +module.exports = foo; +//// [foo_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const foo = require("./foo_0"); +if (foo.answer === 42) { + var x = foo(); +} diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.symbols b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.symbols new file mode 100644 index 0000000000000..ff32937a6a268 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.symbols @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelFundule.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(foo.answer === 42){ +>foo.answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) + + var x = foo(); +>x : Symbol(x, Decl(foo_1.ts, 2, 4)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +} + +=== foo_0.ts === +function foo() { +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + return "test"; +} +namespace foo { +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 4, 11)) +} +export = foo; +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.types b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.types new file mode 100644 index 0000000000000..20358b10132a9 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelFundule.types @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelFundule.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : typeof foo + +if(foo.answer === 42){ +>foo.answer === 42 : boolean +>foo.answer : number +>foo : typeof foo +>answer : number +>42 : 42 + + var x = foo(); +>x : string +>foo() : string +>foo : typeof foo +} + +=== foo_0.ts === +function foo() { +>foo : typeof foo + + return "test"; +>"test" : "test" +} +namespace foo { +>foo : typeof foo + + export var answer = 42; +>answer : number +>42 : 42 +} +export = foo; +>foo : typeof foo + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.js b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.js new file mode 100644 index 0000000000000..c1a08507f886c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.js @@ -0,0 +1,28 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelIdentifier.ts] //// + +//// [foo_0.ts] +namespace Foo { + export var answer = 42; +} +export = Foo; + +//// [foo_1.ts] +import foo = require("./foo_0"); +if(foo.answer === 42){ + +} + + +//// [foo_0.js] +"use strict"; +var Foo; +(function (Foo) { + Foo.answer = 42; +})(Foo || (Foo = {})); +module.exports = Foo; +//// [foo_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const foo = require("./foo_0"); +if (foo.answer === 42) { +} diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.symbols b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.symbols new file mode 100644 index 0000000000000..e7dfb0f255bc2 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.symbols @@ -0,0 +1,23 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelIdentifier.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(foo.answer === 42){ +>foo.answer : Symbol(foo.answer, Decl(foo_0.ts, 1, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>answer : Symbol(foo.answer, Decl(foo_0.ts, 1, 11)) + +} + +=== foo_0.ts === +namespace Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 1, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0)) + diff --git a/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.types b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.types new file mode 100644 index 0000000000000..da6868037198c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/exportAssignmentTopLevelIdentifier.types @@ -0,0 +1,26 @@ +//// [tests/cases/conformance/externalModules/exportAssignmentTopLevelIdentifier.ts] //// + +=== foo_1.ts === +import foo = require("./foo_0"); +>foo : typeof foo + +if(foo.answer === 42){ +>foo.answer === 42 : boolean +>foo.answer : number +>foo : typeof foo +>answer : number +>42 : 42 + +} + +=== foo_0.ts === +namespace Foo { +>Foo : typeof Foo + + export var answer = 42; +>answer : number +>42 : 42 +} +export = Foo; +>Foo : typeof Foo + diff --git a/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.js b/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.js new file mode 100644 index 0000000000000..de474167890c4 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/externalModules/importImportOnlyModule.ts] //// + +//// [foo_0.ts] +export class C1 { + m1 = 42; + static s1 = true; +} + +//// [foo_1.ts] +import c1 = require('./foo_0'); // Makes this an external module +var answer = 42; // No exports + +//// [foo_2.ts] +import foo = require("./foo_1"); +var x = foo; // Cause a runtime dependency + + +//// [foo_0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.C1 = void 0; +class C1 { + constructor() { + this.m1 = 42; + } +} +exports.C1 = C1; +C1.s1 = true; +//// [foo_1.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var answer = 42; // No exports +//// [foo_2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const foo = require("./foo_1"); +var x = foo; // Cause a runtime dependency diff --git a/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.symbols b/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.symbols new file mode 100644 index 0000000000000..9741389ab8cb8 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/conformance/externalModules/importImportOnlyModule.ts] //// + +=== foo_2.ts === +import foo = require("./foo_1"); +>foo : Symbol(foo, Decl(foo_2.ts, 0, 0)) + +var x = foo; // Cause a runtime dependency +>x : Symbol(x, Decl(foo_2.ts, 1, 3)) +>foo : Symbol(foo, Decl(foo_2.ts, 0, 0)) + +=== foo_0.ts === +export class C1 { +>C1 : Symbol(C1, Decl(foo_0.ts, 0, 0)) + + m1 = 42; +>m1 : Symbol(C1.m1, Decl(foo_0.ts, 0, 17)) + + static s1 = true; +>s1 : Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +} + +=== foo_1.ts === +import c1 = require('./foo_0'); // Makes this an external module +>c1 : Symbol(c1, Decl(foo_1.ts, 0, 0)) + +var answer = 42; // No exports +>answer : Symbol(answer, Decl(foo_1.ts, 1, 3)) + diff --git a/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.types b/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.types new file mode 100644 index 0000000000000..adc73ebe43b85 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/importImportOnlyModule.types @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/externalModules/importImportOnlyModule.ts] //// + +=== foo_2.ts === +import foo = require("./foo_1"); +>foo : typeof foo + +var x = foo; // Cause a runtime dependency +>x : typeof foo +>foo : typeof foo + +=== foo_0.ts === +export class C1 { +>C1 : C1 + + m1 = 42; +>m1 : number +>42 : 42 + + static s1 = true; +>s1 : boolean +>true : true +} + +=== foo_1.ts === +import c1 = require('./foo_0'); // Makes this an external module +>c1 : typeof c1 + +var answer = 42; // No exports +>answer : number +>42 : 42 + diff --git a/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.js b/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.js new file mode 100644 index 0000000000000..a48fbeea31d3b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/jsx/tsxElementResolution17.tsx] //// + +//// [file.tsx] +declare namespace JSX { + interface Element { } + interface IntrinsicElements { } +} + +declare module 'elements1' { + class MyElement { + + } +} + +declare module 'elements2' { + class MyElement { + + } +} + +//// [consumer.tsx] +/// +// Should keep s1 and elide s2 +import s1 = require('elements1'); +import s2 = require('elements2'); +; + + +//// [file.jsx] +"use strict"; +//// [consumer.jsx] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +// Should keep s1 and elide s2 +const s1 = require("elements1"); +; diff --git a/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.symbols b/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.symbols new file mode 100644 index 0000000000000..e7f12702bb2fb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.symbols @@ -0,0 +1,45 @@ +//// [tests/cases/conformance/jsx/tsxElementResolution17.tsx] //// + +=== consumer.tsx === +/// +// Should keep s1 and elide s2 +import s1 = require('elements1'); +>s1 : Symbol(s1, Decl(consumer.tsx, 0, 0)) + +import s2 = require('elements2'); +>s2 : Symbol(s2, Decl(consumer.tsx, 2, 33)) + +; +>s1.MyElement : Symbol(s1.MyElement, Decl(file.tsx, 5, 28)) +>s1 : Symbol(s1, Decl(consumer.tsx, 0, 0)) +>MyElement : Symbol(s1.MyElement, Decl(file.tsx, 5, 28)) + +=== file.tsx === +declare namespace JSX { +>JSX : Symbol(JSX, Decl(file.tsx, 0, 0)) + + interface Element { } +>Element : Symbol(Element, Decl(file.tsx, 0, 23)) + + interface IntrinsicElements { } +>IntrinsicElements : Symbol(IntrinsicElements, Decl(file.tsx, 1, 22)) +} + +declare module 'elements1' { +>'elements1' : Symbol("elements1", Decl(file.tsx, 3, 1)) + + class MyElement { +>MyElement : Symbol(MyElement, Decl(file.tsx, 5, 28)) + + } +} + +declare module 'elements2' { +>'elements2' : Symbol("elements2", Decl(file.tsx, 9, 1)) + + class MyElement { +>MyElement : Symbol(MyElement, Decl(file.tsx, 11, 28)) + + } +} + diff --git a/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.types b/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.types new file mode 100644 index 0000000000000..65c2f7bb55afc --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxElementResolution17.types @@ -0,0 +1,41 @@ +//// [tests/cases/conformance/jsx/tsxElementResolution17.tsx] //// + +=== consumer.tsx === +/// +// Should keep s1 and elide s2 +import s1 = require('elements1'); +>s1 : typeof s1 + +import s2 = require('elements2'); +>s2 : typeof s2 + +; +> : JSX.Element +>s1.MyElement : typeof s1.MyElement +>s1 : typeof s1 +>MyElement : typeof s1.MyElement + +=== file.tsx === +declare namespace JSX { + interface Element { } + interface IntrinsicElements { } +} + +declare module 'elements1' { +>'elements1' : typeof import("elements1") + + class MyElement { +>MyElement : MyElement + + } +} + +declare module 'elements2' { +>'elements2' : typeof import("elements2") + + class MyElement { +>MyElement : MyElement + + } +} + diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).errors.txt b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).errors.txt new file mode 100644 index 0000000000000..f29dc7a565fad --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).errors.txt @@ -0,0 +1,39 @@ +test.tsx(2,24): error TS2307: Cannot find module 'react' or its corresponding type declarations. +test.tsx(3,30): error TS2307: Cannot find module 'react-router' or its corresponding type declarations. + + +==== test.tsx (2 errors) ==== + // Should emit 'react-router' in the AMD dependency list + import React = require('react'); + ~~~~~~~ +!!! error TS2307: Cannot find module 'react' or its corresponding type declarations. + import ReactRouter = require('react-router'); + ~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'react-router' or its corresponding type declarations. + + import Route = ReactRouter.Route; + + var routes1 = ; + + namespace M { + export var X: any; + } + namespace M { + // Should emit 'M.X' in both opening and closing tags + var y = ; + } + +==== react.d.ts (0 errors) ==== + declare module 'react' { + var x: any; + export = x; + } + + declare namespace ReactRouter { + var Route: any; + interface Thing { } + } + declare module 'react-router' { + export = ReactRouter; + } + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).js b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).js new file mode 100644 index 0000000000000..922a25b10ac83 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit1.tsx] //// + +//// [react.d.ts] +declare module 'react' { + var x: any; + export = x; +} + +declare namespace ReactRouter { + var Route: any; + interface Thing { } +} +declare module 'react-router' { + export = ReactRouter; +} + +//// [test.tsx] +// Should emit 'react-router' in the AMD dependency list +import React = require('react'); +import ReactRouter = require('react-router'); + +import Route = ReactRouter.Route; + +var routes1 = ; + +namespace M { + export var X: any; +} +namespace M { + // Should emit 'M.X' in both opening and closing tags + var y = ; +} + + +//// [test.jsx] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// Should emit 'react-router' in the AMD dependency list +const React = require("react"); +const ReactRouter = require("react-router"); +var Route = ReactRouter.Route; +var routes1 = ; +var M; +(function (M) { +})(M || (M = {})); +(function (M) { + // Should emit 'M.X' in both opening and closing tags + var y = ; +})(M || (M = {})); diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).symbols b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).symbols new file mode 100644 index 0000000000000..1e42706598adf --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).symbols @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit1.tsx] //// + +=== test.tsx === +// Should emit 'react-router' in the AMD dependency list +import React = require('react'); +>React : Symbol(React, Decl(test.tsx, 0, 0)) + +import ReactRouter = require('react-router'); +>ReactRouter : Symbol(ReactRouter, Decl(test.tsx, 1, 32)) + +import Route = ReactRouter.Route; +>Route : Symbol(Route, Decl(test.tsx, 2, 45)) +>ReactRouter : Symbol(ReactRouter, Decl(test.tsx, 1, 32)) +>Route : Symbol(React) + +var routes1 = ; +>routes1 : Symbol(routes1, Decl(test.tsx, 6, 3)) +>Route : Symbol(Route, Decl(test.tsx, 2, 45)) + +namespace M { +>M : Symbol(M, Decl(test.tsx, 6, 24), Decl(test.tsx, 10, 1)) + + export var X: any; +>X : Symbol(X, Decl(test.tsx, 9, 11)) +} +namespace M { +>M : Symbol(M, Decl(test.tsx, 6, 24), Decl(test.tsx, 10, 1)) + + // Should emit 'M.X' in both opening and closing tags + var y = ; +>y : Symbol(y, Decl(test.tsx, 13, 4)) +>X : Symbol(X, Decl(test.tsx, 9, 11)) +>X : Symbol(X, Decl(test.tsx, 9, 11)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).types b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).types new file mode 100644 index 0000000000000..cea9d9953400a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).types @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit1.tsx] //// + +=== test.tsx === +// Should emit 'react-router' in the AMD dependency list +import React = require('react'); +>React : any + +import ReactRouter = require('react-router'); +>ReactRouter : any + +import Route = ReactRouter.Route; +>Route : any +>ReactRouter : any +>Route : any + +var routes1 = ; +>routes1 : any +> : any +>Route : any + +namespace M { +>M : typeof M + + export var X: any; +>X : any +} +namespace M { +>M : typeof M + + // Should emit 'M.X' in both opening and closing tags + var y = ; +>y : any +> : any +>X : any +>X : any +} + diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).js b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).js new file mode 100644 index 0000000000000..9356f17108118 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).js @@ -0,0 +1,11 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit2.tsx] //// + +//// [test.tsx] +var Route: any; +var routes1 = ; + + +//// [test.jsx] +"use strict"; +var Route; +var routes1 = ; diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).symbols b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).symbols new file mode 100644 index 0000000000000..2814b37a7ff86 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).symbols @@ -0,0 +1,10 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit2.tsx] //// + +=== test.tsx === +var Route: any; +>Route : Symbol(Route, Decl(test.tsx, 0, 3)) + +var routes1 = ; +>routes1 : Symbol(routes1, Decl(test.tsx, 1, 3)) +>Route : Symbol(Route, Decl(test.tsx, 0, 3)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).types b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).types new file mode 100644 index 0000000000000..0a2187015afe1 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit2(target=es2015).types @@ -0,0 +1,11 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit2.tsx] //// + +=== test.tsx === +var Route: any; +>Route : any + +var routes1 = ; +>routes1 : error +> : error +>Route : any + diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.errors.txt b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.errors.txt new file mode 100644 index 0000000000000..bd220d5c84d83 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.errors.txt @@ -0,0 +1,20 @@ +test.d.ts(1,12): error TS7005: Variable 'React' implicitly has an 'any' type. + + +==== file.tsx (0 errors) ==== + declare namespace JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } + } + +==== test.d.ts (1 errors) ==== + export var React; + ~~~~~ +!!! error TS7005: Variable 'React' implicitly has an 'any' type. + +==== react-consumer.tsx (0 errors) ==== + // This import should be elided + import {React} from "./test"; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.js b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.js new file mode 100644 index 0000000000000..d17d72ba1a052 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.js @@ -0,0 +1,23 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit3.tsx] //// + +//// [file.tsx] +declare namespace JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } +} + +//// [test.d.ts] +export var React; + +//// [react-consumer.tsx] +// This import should be elided +import {React} from "./test"; + + +//// [file.jsx] +"use strict"; +//// [react-consumer.jsx] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.symbols b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.symbols new file mode 100644 index 0000000000000..ad6a03e6d0982 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.symbols @@ -0,0 +1,26 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit3.tsx] //// + +=== file.tsx === +declare namespace JSX { +>JSX : Symbol(JSX, Decl(file.tsx, 0, 0)) + + interface Element { } +>Element : Symbol(Element, Decl(file.tsx, 0, 23)) + + interface IntrinsicElements { +>IntrinsicElements : Symbol(IntrinsicElements, Decl(file.tsx, 1, 22)) + + [s: string]: any; +>s : Symbol(s, Decl(file.tsx, 3, 3)) + } +} + +=== test.d.ts === +export var React; +>React : Symbol(React, Decl(test.d.ts, 0, 10)) + +=== react-consumer.tsx === +// This import should be elided +import {React} from "./test"; +>React : Symbol(React, Decl(react-consumer.tsx, 1, 8)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.types b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.types new file mode 100644 index 0000000000000..cb1834dff8507 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit3.types @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit3.tsx] //// + +=== file.tsx === +declare namespace JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; +>s : string + } +} + +=== test.d.ts === +export var React; +>React : any + +=== react-consumer.tsx === +// This import should be elided +import {React} from "./test"; +>React : any + diff --git a/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.js b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.js new file mode 100644 index 0000000000000..08ea6320d6996 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/jsx/tsxSfcReturnNull.tsx] //// + +//// [file.tsx] +/// + +import React = require('react'); + +const Foo = (props: any) => null; + +function Greet(x: {name?: string}) { + return null; +} + +const foo = ; +const G = ; + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +const Foo = (props) => null; +function Greet(x) { + return null; +} +const foo = ; +const G = ; diff --git a/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.symbols b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.symbols new file mode 100644 index 0000000000000..67872d09dcad9 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/conformance/jsx/tsxSfcReturnNull.tsx] //// + +=== file.tsx === +/// + +import React = require('react'); +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +const Foo = (props: any) => null; +>Foo : Symbol(Foo, Decl(file.tsx, 4, 5)) +>props : Symbol(props, Decl(file.tsx, 4, 13)) + +function Greet(x: {name?: string}) { +>Greet : Symbol(Greet, Decl(file.tsx, 4, 33)) +>x : Symbol(x, Decl(file.tsx, 6, 15)) +>name : Symbol(name, Decl(file.tsx, 6, 19)) + + return null; +} + +const foo = ; +>foo : Symbol(foo, Decl(file.tsx, 10, 5)) +>Foo : Symbol(Foo, Decl(file.tsx, 4, 5)) + +const G = ; +>G : Symbol(G, Decl(file.tsx, 11, 5)) +>Greet : Symbol(Greet, Decl(file.tsx, 4, 33)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.types b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.types new file mode 100644 index 0000000000000..bc2487fc32fd9 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNull.types @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/jsx/tsxSfcReturnNull.tsx] //// + +=== file.tsx === +/// + +import React = require('react'); +>React : typeof React + +const Foo = (props: any) => null; +>Foo : (props: any) => null +>(props: any) => null : (props: any) => null +>props : any + +function Greet(x: {name?: string}) { +>Greet : (x: { name?: string; }) => null +>x : { name?: string; } +>name : string | undefined + + return null; +} + +const foo = ; +>foo : JSX.Element +> : JSX.Element +>Foo : (props: any) => null + +const G = ; +>G : JSX.Element +> : JSX.Element +>Greet : (x: { name?: string; }) => null + diff --git a/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.js b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.js new file mode 100644 index 0000000000000..ad72d6692bd75 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.js @@ -0,0 +1,27 @@ +//// [tests/cases/conformance/jsx/tsxSfcReturnNullStrictNullChecks.tsx] //// + +//// [file.tsx] +/// + +import React = require('react'); + +const Foo = (props: any) => null; + +function Greet(x: {name?: string}) { + return null; +} + +const foo = ; +const G = ; + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +const Foo = (props) => null; +function Greet(x) { + return null; +} +const foo = ; +const G = ; diff --git a/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.symbols b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.symbols new file mode 100644 index 0000000000000..824e15c88a8ac --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.symbols @@ -0,0 +1,28 @@ +//// [tests/cases/conformance/jsx/tsxSfcReturnNullStrictNullChecks.tsx] //// + +=== file.tsx === +/// + +import React = require('react'); +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +const Foo = (props: any) => null; +>Foo : Symbol(Foo, Decl(file.tsx, 4, 5)) +>props : Symbol(props, Decl(file.tsx, 4, 13)) + +function Greet(x: {name?: string}) { +>Greet : Symbol(Greet, Decl(file.tsx, 4, 33)) +>x : Symbol(x, Decl(file.tsx, 6, 15)) +>name : Symbol(name, Decl(file.tsx, 6, 19)) + + return null; +} + +const foo = ; +>foo : Symbol(foo, Decl(file.tsx, 10, 5)) +>Foo : Symbol(Foo, Decl(file.tsx, 4, 5)) + +const G = ; +>G : Symbol(G, Decl(file.tsx, 11, 5)) +>Greet : Symbol(Greet, Decl(file.tsx, 4, 33)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.types b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.types new file mode 100644 index 0000000000000..a4cab487ce758 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxSfcReturnNullStrictNullChecks.types @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/jsx/tsxSfcReturnNullStrictNullChecks.tsx] //// + +=== file.tsx === +/// + +import React = require('react'); +>React : typeof React + +const Foo = (props: any) => null; +>Foo : (props: any) => null +>(props: any) => null : (props: any) => null +>props : any + +function Greet(x: {name?: string}) { +>Greet : (x: { name?: string; }) => null +>x : { name?: string; } +>name : string | undefined + + return null; +} + +const foo = ; +>foo : JSX.Element +> : JSX.Element +>Foo : (props: any) => null + +const G = ; +>G : JSX.Element +> : JSX.Element +>Greet : (x: { name?: string; }) => null + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.errors.txt b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.errors.txt new file mode 100644 index 0000000000000..71e35b677e11b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.errors.txt @@ -0,0 +1,54 @@ +file.tsx(19,39): error TS2842: 'string' is an unused renaming of 'y1'. Did you intend to use it as a type annotation? +file.tsx(19,39): error TS7031: Binding element 'string' implicitly has an 'any' type. + + +==== file.tsx (2 errors) ==== + /// + + import React = require('react') + + declare function OneThing(k: {yxx: string}): JSX.Element; + declare function OneThing(k: {yxx1: string, children: string}): JSX.Element; + declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; + declare function OneThing(l: {yy: number, yy1: string, yy2: boolean}): JSX.Element; + declare function OneThing(l1: {data: string, "data-prop": boolean}): JSX.Element; + + // OK + const c1 = + const c2 = + const c3 = + const c4 = + const c5 = Hello + + + declare function TestingOneThing({y1: string}): JSX.Element; + ~~~~~~ +!!! error TS2842: 'string' is an unused renaming of 'y1'. Did you intend to use it as a type annotation? +!!! related TS2843 file.tsx:19:46: We can only write a type for 'y1' by adding a type for the entire parameter here. + ~~~~~~ +!!! error TS7031: Binding element 'string' implicitly has an 'any' type. + declare function TestingOneThing(j: {"extra-data": string, yy?: string}): JSX.Element; + declare function TestingOneThing(n: {yy: number, direction?: number}): JSX.Element; + declare function TestingOneThing(n: {yy: string, name: string}): JSX.Element; + + // OK + const d1 = ; + const d2 = ; + const d3 = ; + const d4 = ; + const d5 = ; + + + declare function TestingOptional(a: {y1?: string, y2?: number}): JSX.Element; + declare function TestingOptional(a: {y1: boolean, y2?: number, y3: boolean}): JSX.Element; + + // OK + const e1 = + const e3 = + const e4 = + const e5 = + const e6 = + const e2 = + + + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.js new file mode 100644 index 0000000000000..722baae9a2aab --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.js @@ -0,0 +1,72 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload1.tsx] //// + +//// [file.tsx] +/// + +import React = require('react') + +declare function OneThing(k: {yxx: string}): JSX.Element; +declare function OneThing(k: {yxx1: string, children: string}): JSX.Element; +declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; +declare function OneThing(l: {yy: number, yy1: string, yy2: boolean}): JSX.Element; +declare function OneThing(l1: {data: string, "data-prop": boolean}): JSX.Element; + +// OK +const c1 = +const c2 = +const c3 = +const c4 = +const c5 = Hello + + +declare function TestingOneThing({y1: string}): JSX.Element; +declare function TestingOneThing(j: {"extra-data": string, yy?: string}): JSX.Element; +declare function TestingOneThing(n: {yy: number, direction?: number}): JSX.Element; +declare function TestingOneThing(n: {yy: string, name: string}): JSX.Element; + +// OK +const d1 = ; +const d2 = ; +const d3 = ; +const d4 = ; +const d5 = ; + + +declare function TestingOptional(a: {y1?: string, y2?: number}): JSX.Element; +declare function TestingOptional(a: {y1: boolean, y2?: number, y3: boolean}): JSX.Element; + +// OK +const e1 = +const e3 = +const e4 = +const e5 = +const e6 = +const e2 = + + + + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +// OK +const c1 = ; +const c2 = ; +const c3 = ; +const c4 = ; +const c5 = Hello; +// OK +const d1 = ; +const d2 = ; +const d3 = ; +const d4 = ; +const d5 = ; +// OK +const e1 = ; +const e3 = ; +const e4 = ; +const e5 = ; +const e6 = ; +const e2 = ; diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.symbols new file mode 100644 index 0000000000000..f8b9875be7f83 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.symbols @@ -0,0 +1,198 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload1.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +declare function OneThing(k: {yxx: string}): JSX.Element; +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>k : Symbol(k, Decl(file.tsx, 4, 26)) +>yxx : Symbol(yxx, Decl(file.tsx, 4, 30)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function OneThing(k: {yxx1: string, children: string}): JSX.Element; +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>k : Symbol(k, Decl(file.tsx, 5, 26)) +>yxx1 : Symbol(yxx1, Decl(file.tsx, 5, 30)) +>children : Symbol(children, Decl(file.tsx, 5, 43)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>l : Symbol(l, Decl(file.tsx, 6, 26)) +>yy : Symbol(yy, Decl(file.tsx, 6, 30)) +>yy1 : Symbol(yy1, Decl(file.tsx, 6, 41)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function OneThing(l: {yy: number, yy1: string, yy2: boolean}): JSX.Element; +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>l : Symbol(l, Decl(file.tsx, 7, 26)) +>yy : Symbol(yy, Decl(file.tsx, 7, 30)) +>yy1 : Symbol(yy1, Decl(file.tsx, 7, 41)) +>yy2 : Symbol(yy2, Decl(file.tsx, 7, 54)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function OneThing(l1: {data: string, "data-prop": boolean}): JSX.Element; +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>l1 : Symbol(l1, Decl(file.tsx, 8, 26)) +>data : Symbol(data, Decl(file.tsx, 8, 31)) +>"data-prop" : Symbol("data-prop", Decl(file.tsx, 8, 44)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// OK +const c1 = +>c1 : Symbol(c1, Decl(file.tsx, 11, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>yxx : Symbol(yxx, Decl(file.tsx, 11, 20)) + +const c2 = +>c2 : Symbol(c2, Decl(file.tsx, 12, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>yy : Symbol(yy, Decl(file.tsx, 12, 20)) +>yy1 : Symbol(yy1, Decl(file.tsx, 12, 29)) + +const c3 = +>c3 : Symbol(c3, Decl(file.tsx, 13, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>yxx : Symbol(yxx, Decl(file.tsx, 13, 20)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 13, 32)) + +const c4 = +>c4 : Symbol(c4, Decl(file.tsx, 14, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>data : Symbol(data, Decl(file.tsx, 14, 20)) +>data-prop : Symbol(data-prop, Decl(file.tsx, 14, 33)) + +const c5 = Hello +>c5 : Symbol(c5, Decl(file.tsx, 15, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) +>yxx1 : Symbol(yxx1, Decl(file.tsx, 15, 20)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 57), Decl(file.tsx, 5, 76), Decl(file.tsx, 6, 69), Decl(file.tsx, 7, 83)) + + +declare function TestingOneThing({y1: string}): JSX.Element; +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>y1 : Symbol(y1) +>string : Symbol(string, Decl(file.tsx, 18, 34)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function TestingOneThing(j: {"extra-data": string, yy?: string}): JSX.Element; +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>j : Symbol(j, Decl(file.tsx, 19, 33)) +>"extra-data" : Symbol("extra-data", Decl(file.tsx, 19, 37)) +>yy : Symbol(yy, Decl(file.tsx, 19, 58)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function TestingOneThing(n: {yy: number, direction?: number}): JSX.Element; +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>n : Symbol(n, Decl(file.tsx, 20, 33)) +>yy : Symbol(yy, Decl(file.tsx, 20, 37)) +>direction : Symbol(direction, Decl(file.tsx, 20, 48)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function TestingOneThing(n: {yy: string, name: string}): JSX.Element; +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>n : Symbol(n, Decl(file.tsx, 21, 33)) +>yy : Symbol(yy, Decl(file.tsx, 21, 37)) +>name : Symbol(name, Decl(file.tsx, 21, 48)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// OK +const d1 = ; +>d1 : Symbol(d1, Decl(file.tsx, 24, 5)) +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>y1 : Symbol(y1, Decl(file.tsx, 24, 27)) +>extra-data : Symbol(extra-data, Decl(file.tsx, 24, 30)) + +const d2 = ; +>d2 : Symbol(d2, Decl(file.tsx, 25, 5)) +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>extra-data : Symbol(extra-data, Decl(file.tsx, 25, 27)) + +const d3 = ; +>d3 : Symbol(d3, Decl(file.tsx, 26, 5)) +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>extra-data : Symbol(extra-data, Decl(file.tsx, 26, 27)) +>yy : Symbol(yy, Decl(file.tsx, 26, 46)) + +const d4 = ; +>d4 : Symbol(d4, Decl(file.tsx, 27, 5)) +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>extra-data : Symbol(extra-data, Decl(file.tsx, 27, 27)) +>yy : Symbol(yy, Decl(file.tsx, 27, 46)) +>direction : Symbol(direction, Decl(file.tsx, 27, 53)) + +const d5 = ; +>d5 : Symbol(d5, Decl(file.tsx, 28, 5)) +>TestingOneThing : Symbol(TestingOneThing, Decl(file.tsx, 15, 47), Decl(file.tsx, 18, 60), Decl(file.tsx, 19, 86), Decl(file.tsx, 20, 83)) +>extra-data : Symbol(extra-data, Decl(file.tsx, 28, 27)) +>yy : Symbol(yy, Decl(file.tsx, 28, 46)) +>name : Symbol(name, Decl(file.tsx, 28, 57)) + + +declare function TestingOptional(a: {y1?: string, y2?: number}): JSX.Element; +>TestingOptional : Symbol(TestingOptional, Decl(file.tsx, 28, 72), Decl(file.tsx, 31, 77)) +>a : Symbol(a, Decl(file.tsx, 31, 33)) +>y1 : Symbol(y1, Decl(file.tsx, 31, 37)) +>y2 : Symbol(y2, Decl(file.tsx, 31, 49)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function TestingOptional(a: {y1: boolean, y2?: number, y3: boolean}): JSX.Element; +>TestingOptional : Symbol(TestingOptional, Decl(file.tsx, 28, 72), Decl(file.tsx, 31, 77)) +>a : Symbol(a, Decl(file.tsx, 32, 33)) +>y1 : Symbol(y1, Decl(file.tsx, 32, 37)) +>y2 : Symbol(y2, Decl(file.tsx, 32, 49)) +>y3 : Symbol(y3, Decl(file.tsx, 32, 62)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// OK +const e1 = +>e1 : Symbol(e1, Decl(file.tsx, 35, 5)) +>TestingOptional : Symbol(TestingOptional, Decl(file.tsx, 28, 72), Decl(file.tsx, 31, 77)) + +const e3 = +>e3 : Symbol(e3, Decl(file.tsx, 36, 5)) +>TestingOptional : Symbol(TestingOptional, Decl(file.tsx, 28, 72), Decl(file.tsx, 31, 77)) +>y1 : Symbol(y1, Decl(file.tsx, 36, 27)) + +const e4 = +>e4 : Symbol(e4, Decl(file.tsx, 37, 5)) +>TestingOptional : Symbol(TestingOptional, Decl(file.tsx, 28, 72), Decl(file.tsx, 31, 77)) +>y1 : Symbol(y1, Decl(file.tsx, 37, 27)) +>y2 : Symbol(y2, Decl(file.tsx, 37, 38)) + +const e5 = +>e5 : Symbol(e5, Decl(file.tsx, 38, 5)) +>TestingOptional : Symbol(TestingOptional, Decl(file.tsx, 28, 72), Decl(file.tsx, 31, 77)) +>y1 : Symbol(y1, Decl(file.tsx, 38, 27)) +>y3 : Symbol(y3, Decl(file.tsx, 38, 30)) + +const e6 = +>e6 : Symbol(e6, Decl(file.tsx, 39, 5)) +>TestingOptional : Symbol(TestingOptional, Decl(file.tsx, 28, 72), Decl(file.tsx, 31, 77)) +>y1 : Symbol(y1, Decl(file.tsx, 39, 27)) +>y3 : Symbol(y3, Decl(file.tsx, 39, 30)) +>y2 : Symbol(y2, Decl(file.tsx, 39, 33)) + +const e2 = +>e2 : Symbol(e2, Decl(file.tsx, 40, 5)) +>TestingOptional : Symbol(TestingOptional, Decl(file.tsx, 28, 72), Decl(file.tsx, 31, 77)) +>y1 : Symbol(y1, Decl(file.tsx, 40, 27)) +>y3 : Symbol(y3, Decl(file.tsx, 40, 30)) +>extra-prop : Symbol(extra-prop, Decl(file.tsx, 40, 33)) + + + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.types new file mode 100644 index 0000000000000..41724d73eaa8e --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload1.types @@ -0,0 +1,208 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload1.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : typeof React + +declare function OneThing(k: {yxx: string}): JSX.Element; +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>k : { yxx: string; } +>yxx : string +>JSX : any + +declare function OneThing(k: {yxx1: string, children: string}): JSX.Element; +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>k : { yxx1: string; children: string; } +>yxx1 : string +>children : string +>JSX : any + +declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>l : { yy: number; yy1: string; } +>yy : number +>yy1 : string +>JSX : any + +declare function OneThing(l: {yy: number, yy1: string, yy2: boolean}): JSX.Element; +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>l : { yy: number; yy1: string; yy2: boolean; } +>yy : number +>yy1 : string +>yy2 : boolean +>JSX : any + +declare function OneThing(l1: {data: string, "data-prop": boolean}): JSX.Element; +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>l1 : { data: string; "data-prop": boolean; } +>data : string +>"data-prop" : boolean +>JSX : any + +// OK +const c1 = +>c1 : JSX.Element +> : JSX.Element +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>yxx : string + +const c2 = +>c2 : JSX.Element +> : JSX.Element +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>yy : number +>100 : 100 +>yy1 : string + +const c3 = +>c3 : JSX.Element +> : JSX.Element +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>yxx : string +>ignore-prop : true + +const c4 = +>c4 : JSX.Element +> : JSX.Element +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>data : string +>data-prop : true + +const c5 = Hello +>c5 : JSX.Element +>Hello : JSX.Element +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } +>yxx1 : string +>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; } + + +declare function TestingOneThing({y1: string}): JSX.Element; +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>y1 : any +>string : any +>JSX : any + +declare function TestingOneThing(j: {"extra-data": string, yy?: string}): JSX.Element; +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>j : { "extra-data": string; yy?: string; } +>"extra-data" : string +>yy : string | undefined +>JSX : any + +declare function TestingOneThing(n: {yy: number, direction?: number}): JSX.Element; +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>n : { yy: number; direction?: number; } +>yy : number +>direction : number | undefined +>JSX : any + +declare function TestingOneThing(n: {yy: string, name: string}): JSX.Element; +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>n : { yy: string; name: string; } +>yy : string +>name : string +>JSX : any + +// OK +const d1 = ; +>d1 : JSX.Element +> : JSX.Element +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>y1 : true +>extra-data : true + +const d2 = ; +>d2 : JSX.Element +> : JSX.Element +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>extra-data : string + +const d3 = ; +>d3 : JSX.Element +> : JSX.Element +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>extra-data : string +>yy : string + +const d4 = ; +>d4 : JSX.Element +> : JSX.Element +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>extra-data : string +>yy : number +>9 : 9 +>direction : number +>10 : 10 + +const d5 = ; +>d5 : JSX.Element +> : JSX.Element +>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; } +>extra-data : string +>yy : string +>name : string + + +declare function TestingOptional(a: {y1?: string, y2?: number}): JSX.Element; +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>a : { y1?: string; y2?: number; } +>y1 : string | undefined +>y2 : number | undefined +>JSX : any + +declare function TestingOptional(a: {y1: boolean, y2?: number, y3: boolean}): JSX.Element; +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>a : { y1: boolean; y2?: number; y3: boolean; } +>y1 : boolean +>y2 : number | undefined +>y3 : boolean +>JSX : any + +// OK +const e1 = +>e1 : JSX.Element +> : JSX.Element +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } + +const e3 = +>e3 : JSX.Element +> : JSX.Element +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>y1 : string + +const e4 = +>e4 : JSX.Element +> : JSX.Element +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>y1 : string +>y2 : number +>1000 : 1000 + +const e5 = +>e5 : JSX.Element +> : JSX.Element +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>y1 : true +>y3 : true + +const e6 = +>e6 : JSX.Element +> : JSX.Element +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>y1 : true +>y3 : true +>y2 : number +>10 : 10 + +const e2 = +>e2 : JSX.Element +> : JSX.Element +>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; } +>y1 : true +>y3 : true +>extra-prop : true + + + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.errors.txt b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.errors.txt new file mode 100644 index 0000000000000..6acb0cad10542 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.errors.txt @@ -0,0 +1,41 @@ +file.tsx(30,38): error TS2783: 'yy' is specified more than once, so this usage will be overwritten. + + +==== file.tsx (1 errors) ==== + /// + + import React = require('react') + declare function OneThing(): JSX.Element; + declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; + + let obj = { + yy: 10, + yy1: "hello" + } + + let obj1 = { + yy: true + } + + let obj2 = { + yy: 500, + "ignore-prop": "hello" + } + + let defaultObj: any; + + // OK + const c1 = + const c2 = + const c3 = + const c4 = + const c5 = + const c6 = + const c7 = ; // No error. should pick second overload + ~~ +!!! error TS2783: 'yy' is specified more than once, so this usage will be overwritten. +!!! related TS2785 file.tsx:30:41: This spread always overwrites this property. + const c8 = + const c9 = ; + const c10 = ; + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.js new file mode 100644 index 0000000000000..c240fe08255fd --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.js @@ -0,0 +1,66 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload2.tsx] //// + +//// [file.tsx] +/// + +import React = require('react') +declare function OneThing(): JSX.Element; +declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; + +let obj = { + yy: 10, + yy1: "hello" +} + +let obj1 = { + yy: true +} + +let obj2 = { + yy: 500, + "ignore-prop": "hello" +} + +let defaultObj: any; + +// OK +const c1 = +const c2 = +const c3 = +const c4 = +const c5 = +const c6 = +const c7 = ; // No error. should pick second overload +const c8 = +const c9 = ; +const c10 = ; + + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +let obj = { + yy: 10, + yy1: "hello" +}; +let obj1 = { + yy: true +}; +let obj2 = { + yy: 500, + "ignore-prop": "hello" +}; +let defaultObj; +// OK +const c1 = ; +const c2 = ; +const c3 = ; +const c4 = ; +const c5 = ; +const c6 = ; +const c7 = ; // No error. should pick second overload +const c8 = ; +const c9 = ; +const c10 = ; diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.symbols new file mode 100644 index 0000000000000..5da80de8fb78b --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.symbols @@ -0,0 +1,108 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload2.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +declare function OneThing(): JSX.Element; +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>l : Symbol(l, Decl(file.tsx, 4, 26)) +>yy : Symbol(yy, Decl(file.tsx, 4, 30)) +>yy1 : Symbol(yy1, Decl(file.tsx, 4, 41)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +let obj = { +>obj : Symbol(obj, Decl(file.tsx, 6, 3)) + + yy: 10, +>yy : Symbol(yy, Decl(file.tsx, 6, 11)) + + yy1: "hello" +>yy1 : Symbol(yy1, Decl(file.tsx, 7, 11)) +} + +let obj1 = { +>obj1 : Symbol(obj1, Decl(file.tsx, 11, 3)) + + yy: true +>yy : Symbol(yy, Decl(file.tsx, 11, 12)) +} + +let obj2 = { +>obj2 : Symbol(obj2, Decl(file.tsx, 15, 3)) + + yy: 500, +>yy : Symbol(yy, Decl(file.tsx, 15, 12)) + + "ignore-prop": "hello" +>"ignore-prop" : Symbol("ignore-prop", Decl(file.tsx, 16, 12)) +} + +let defaultObj: any; +>defaultObj : Symbol(defaultObj, Decl(file.tsx, 20, 3)) + +// OK +const c1 = +>c1 : Symbol(c1, Decl(file.tsx, 23, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) + +const c2 = +>c2 : Symbol(c2, Decl(file.tsx, 24, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>obj : Symbol(obj, Decl(file.tsx, 6, 3)) + +const c3 = +>c3 : Symbol(c3, Decl(file.tsx, 25, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) + +const c4 = +>c4 : Symbol(c4, Decl(file.tsx, 26, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>obj1 : Symbol(obj1, Decl(file.tsx, 11, 3)) +>obj : Symbol(obj, Decl(file.tsx, 6, 3)) + +const c5 = +>c5 : Symbol(c5, Decl(file.tsx, 27, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>obj1 : Symbol(obj1, Decl(file.tsx, 11, 3)) +>yy : Symbol(yy, Decl(file.tsx, 27, 30)) +>yy1 : Symbol(yy1, Decl(file.tsx, 27, 44)) + +const c6 = +>c6 : Symbol(c6, Decl(file.tsx, 28, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>obj1 : Symbol(obj1, Decl(file.tsx, 11, 3)) +>yy : Symbol(yy, Decl(file.tsx, 28, 36)) +>yy1 : Symbol(yy1, Decl(file.tsx, 28, 46)) + +const c7 = ; // No error. should pick second overload +>c7 : Symbol(c7, Decl(file.tsx, 29, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>defaultObj : Symbol(defaultObj, Decl(file.tsx, 20, 3)) +>yy : Symbol(yy, Decl(file.tsx, 29, 36)) +>obj : Symbol(obj, Decl(file.tsx, 6, 3)) + +const c8 = +>c8 : Symbol(c8, Decl(file.tsx, 30, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 30, 20)) + +const c9 = ; +>c9 : Symbol(c9, Decl(file.tsx, 31, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>"ignore-prop" : Symbol("ignore-prop", Decl(file.tsx, 31, 26)) + +const c10 = ; +>c10 : Symbol(c10, Decl(file.tsx, 32, 5)) +>OneThing : Symbol(OneThing, Decl(file.tsx, 2, 31), Decl(file.tsx, 3, 41)) +>obj2 : Symbol(obj2, Decl(file.tsx, 15, 3)) +>yy1 : Symbol(yy1, Decl(file.tsx, 32, 31)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.types new file mode 100644 index 0000000000000..6176df2bc1fe0 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload2.types @@ -0,0 +1,134 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload2.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : typeof React + +declare function OneThing(): JSX.Element; +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>JSX : any + +declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>l : { yy: number; yy1: string; } +>yy : number +>yy1 : string +>JSX : any + +let obj = { +>obj : { yy: number; yy1: string; } +>{ yy: 10, yy1: "hello"} : { yy: number; yy1: string; } + + yy: 10, +>yy : number +>10 : 10 + + yy1: "hello" +>yy1 : string +>"hello" : "hello" +} + +let obj1 = { +>obj1 : { yy: boolean; } +>{ yy: true} : { yy: boolean; } + + yy: true +>yy : boolean +>true : true +} + +let obj2 = { +>obj2 : { yy: number; "ignore-prop": string; } +>{ yy: 500, "ignore-prop": "hello"} : { yy: number; "ignore-prop": string; } + + yy: 500, +>yy : number +>500 : 500 + + "ignore-prop": "hello" +>"ignore-prop" : string +>"hello" : "hello" +} + +let defaultObj: any; +>defaultObj : any + +// OK +const c1 = +>c1 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } + +const c2 = +>c2 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>obj : { yy: number; yy1: string; } + +const c3 = +>c3 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>{} : {} + +const c4 = +>c4 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>obj1 : { yy: boolean; } +>obj : { yy: number; yy1: string; } + +const c5 = +>c5 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>obj1 : { yy: boolean; } +>yy : number +>42 : 42 +>{yy1: "hi"} : { yy1: string; } +>yy1 : string +>"hi" : "hi" + +const c6 = +>c6 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>obj1 : { yy: boolean; } +>{yy: 10000, yy1: "true"} : { yy: number; yy1: string; } +>yy : number +>10000 : 10000 +>yy1 : string +>"true" : "true" + +const c7 = ; // No error. should pick second overload +>c7 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>defaultObj : any +>yy : true +>obj : { yy: number; yy1: string; } + +const c8 = +>c8 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>ignore-prop : number +>100 : 100 + +const c9 = ; +>c9 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>{ "ignore-prop":200 } : { "ignore-prop": number; } +>"ignore-prop" : number +>200 : 200 + +const c10 = ; +>c10 : JSX.Element +> : JSX.Element +>OneThing : { (): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; } +>obj2 : { yy: number; "ignore-prop": string; } +>yy1 : string + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.js new file mode 100644 index 0000000000000..baf92561178fd --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.js @@ -0,0 +1,43 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload3.tsx] //// + +//// [file.tsx] +/// + +interface Context { + color: any; +} +declare function ZeroThingOrTwoThing(): JSX.Element; +declare function ZeroThingOrTwoThing(l: {yy: number, yy1: string}, context: Context): JSX.Element; + +let obj2: any; + +// OK +const two1 = ; +const two2 = ; +const two3 = ; // it is just any so we allow it to pass through +const two4 = ; // it is just any so we allow it to pass through +const two5 = ; // it is just any so we allow it to pass through + +declare function ThreeThing(l: {y1: string}): JSX.Element; +declare function ThreeThing(l: {y2: string}): JSX.Element; +declare function ThreeThing(l: {yy: number, yy1: string}, context: Context, updater: any): JSX.Element; + +// OK +const three1 = ; +const three2 = ; +const three3 = ; // it is just any so we allow it to pass through + +//// [file.jsx] +"use strict"; +/// +let obj2; +// OK +const two1 = ; +const two2 = ; +const two3 = ; // it is just any so we allow it to pass through +const two4 = ; // it is just any so we allow it to pass through +const two5 = ; // it is just any so we allow it to pass through +// OK +const three1 = ; +const three2 = ; +const three3 = ; // it is just any so we allow it to pass through diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.symbols new file mode 100644 index 0000000000000..6a8d5d0adfd0a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.symbols @@ -0,0 +1,100 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload3.tsx] //// + +=== file.tsx === +/// + +interface Context { +>Context : Symbol(Context, Decl(file.tsx, 0, 0)) + + color: any; +>color : Symbol(Context.color, Decl(file.tsx, 2, 19)) +} +declare function ZeroThingOrTwoThing(): JSX.Element; +>ZeroThingOrTwoThing : Symbol(ZeroThingOrTwoThing, Decl(file.tsx, 4, 1), Decl(file.tsx, 5, 52)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function ZeroThingOrTwoThing(l: {yy: number, yy1: string}, context: Context): JSX.Element; +>ZeroThingOrTwoThing : Symbol(ZeroThingOrTwoThing, Decl(file.tsx, 4, 1), Decl(file.tsx, 5, 52)) +>l : Symbol(l, Decl(file.tsx, 6, 37)) +>yy : Symbol(yy, Decl(file.tsx, 6, 41)) +>yy1 : Symbol(yy1, Decl(file.tsx, 6, 52)) +>context : Symbol(context, Decl(file.tsx, 6, 66)) +>Context : Symbol(Context, Decl(file.tsx, 0, 0)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +let obj2: any; +>obj2 : Symbol(obj2, Decl(file.tsx, 8, 3)) + +// OK +const two1 = ; +>two1 : Symbol(two1, Decl(file.tsx, 11, 5)) +>ZeroThingOrTwoThing : Symbol(ZeroThingOrTwoThing, Decl(file.tsx, 4, 1), Decl(file.tsx, 5, 52)) + +const two2 = ; +>two2 : Symbol(two2, Decl(file.tsx, 12, 5)) +>ZeroThingOrTwoThing : Symbol(ZeroThingOrTwoThing, Decl(file.tsx, 4, 1), Decl(file.tsx, 5, 52)) +>yy : Symbol(yy, Decl(file.tsx, 12, 33)) +>yy1 : Symbol(yy1, Decl(file.tsx, 12, 42)) + +const two3 = ; // it is just any so we allow it to pass through +>two3 : Symbol(two3, Decl(file.tsx, 13, 5)) +>ZeroThingOrTwoThing : Symbol(ZeroThingOrTwoThing, Decl(file.tsx, 4, 1), Decl(file.tsx, 5, 52)) +>obj2 : Symbol(obj2, Decl(file.tsx, 8, 3)) + +const two4 = ; // it is just any so we allow it to pass through +>two4 : Symbol(two4, Decl(file.tsx, 14, 5)) +>ZeroThingOrTwoThing : Symbol(ZeroThingOrTwoThing, Decl(file.tsx, 4, 1), Decl(file.tsx, 5, 52)) +>yy : Symbol(yy, Decl(file.tsx, 14, 33)) +>obj2 : Symbol(obj2, Decl(file.tsx, 8, 3)) + +const two5 = ; // it is just any so we allow it to pass through +>two5 : Symbol(two5, Decl(file.tsx, 15, 5)) +>ZeroThingOrTwoThing : Symbol(ZeroThingOrTwoThing, Decl(file.tsx, 4, 1), Decl(file.tsx, 5, 52)) +>obj2 : Symbol(obj2, Decl(file.tsx, 8, 3)) +>yy : Symbol(yy, Decl(file.tsx, 15, 44)) + +declare function ThreeThing(l: {y1: string}): JSX.Element; +>ThreeThing : Symbol(ThreeThing, Decl(file.tsx, 15, 58), Decl(file.tsx, 17, 58), Decl(file.tsx, 18, 58)) +>l : Symbol(l, Decl(file.tsx, 17, 28)) +>y1 : Symbol(y1, Decl(file.tsx, 17, 32)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function ThreeThing(l: {y2: string}): JSX.Element; +>ThreeThing : Symbol(ThreeThing, Decl(file.tsx, 15, 58), Decl(file.tsx, 17, 58), Decl(file.tsx, 18, 58)) +>l : Symbol(l, Decl(file.tsx, 18, 28)) +>y2 : Symbol(y2, Decl(file.tsx, 18, 32)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function ThreeThing(l: {yy: number, yy1: string}, context: Context, updater: any): JSX.Element; +>ThreeThing : Symbol(ThreeThing, Decl(file.tsx, 15, 58), Decl(file.tsx, 17, 58), Decl(file.tsx, 18, 58)) +>l : Symbol(l, Decl(file.tsx, 19, 28)) +>yy : Symbol(yy, Decl(file.tsx, 19, 32)) +>yy1 : Symbol(yy1, Decl(file.tsx, 19, 43)) +>context : Symbol(context, Decl(file.tsx, 19, 57)) +>Context : Symbol(Context, Decl(file.tsx, 0, 0)) +>updater : Symbol(updater, Decl(file.tsx, 19, 75)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// OK +const three1 = ; +>three1 : Symbol(three1, Decl(file.tsx, 22, 5)) +>ThreeThing : Symbol(ThreeThing, Decl(file.tsx, 15, 58), Decl(file.tsx, 17, 58), Decl(file.tsx, 18, 58)) +>yy : Symbol(yy, Decl(file.tsx, 22, 26)) +>yy1 : Symbol(yy1, Decl(file.tsx, 22, 34)) + +const three2 = ; +>three2 : Symbol(three2, Decl(file.tsx, 23, 5)) +>ThreeThing : Symbol(ThreeThing, Decl(file.tsx, 15, 58), Decl(file.tsx, 17, 58), Decl(file.tsx, 18, 58)) +>y2 : Symbol(y2, Decl(file.tsx, 23, 26)) + +const three3 = ; // it is just any so we allow it to pass through +>three3 : Symbol(three3, Decl(file.tsx, 24, 5)) +>ThreeThing : Symbol(ThreeThing, Decl(file.tsx, 15, 58), Decl(file.tsx, 17, 58), Decl(file.tsx, 18, 58)) +>obj2 : Symbol(obj2, Decl(file.tsx, 8, 3)) +>y2 : Symbol(y2, Decl(file.tsx, 24, 36)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.types new file mode 100644 index 0000000000000..79f3a29f6704f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentOverload3.types @@ -0,0 +1,104 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload3.tsx] //// + +=== file.tsx === +/// + +interface Context { + color: any; +>color : any +} +declare function ZeroThingOrTwoThing(): JSX.Element; +>ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string; }, context: Context): JSX.Element; } +>JSX : any + +declare function ZeroThingOrTwoThing(l: {yy: number, yy1: string}, context: Context): JSX.Element; +>ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string; }, context: Context): JSX.Element; } +>l : { yy: number; yy1: string; } +>yy : number +>yy1 : string +>context : Context +>JSX : any + +let obj2: any; +>obj2 : any + +// OK +const two1 = ; +>two1 : JSX.Element +> : JSX.Element +>ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string; }, context: Context): JSX.Element; } + +const two2 = ; +>two2 : JSX.Element +> : JSX.Element +>ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string; }, context: Context): JSX.Element; } +>yy : number +>100 : 100 +>yy1 : string + +const two3 = ; // it is just any so we allow it to pass through +>two3 : JSX.Element +> : JSX.Element +>ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string; }, context: Context): JSX.Element; } +>obj2 : any + +const two4 = ; // it is just any so we allow it to pass through +>two4 : JSX.Element +> : JSX.Element +>ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string; }, context: Context): JSX.Element; } +>yy : number +>1000 : 1000 +>obj2 : any + +const two5 = ; // it is just any so we allow it to pass through +>two5 : JSX.Element +> : JSX.Element +>ZeroThingOrTwoThing : { (): JSX.Element; (l: { yy: number; yy1: string; }, context: Context): JSX.Element; } +>obj2 : any +>yy : number +>1000 : 1000 + +declare function ThreeThing(l: {y1: string}): JSX.Element; +>ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>l : { y1: string; } +>y1 : string +>JSX : any + +declare function ThreeThing(l: {y2: string}): JSX.Element; +>ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>l : { y2: string; } +>y2 : string +>JSX : any + +declare function ThreeThing(l: {yy: number, yy1: string}, context: Context, updater: any): JSX.Element; +>ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>l : { yy: number; yy1: string; } +>yy : number +>yy1 : string +>context : Context +>updater : any +>JSX : any + +// OK +const three1 = ; +>three1 : JSX.Element +> : JSX.Element +>ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>yy : number +>99 : 99 +>yy1 : string + +const three2 = ; +>three2 : JSX.Element +> : JSX.Element +>ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>y2 : string + +const three3 = ; // it is just any so we allow it to pass through +>three3 : JSX.Element +> : JSX.Element +>ThreeThing : { (l: { y1: string; }): JSX.Element; (l: { y2: string; }): JSX.Element; (l: { yy: number; yy1: string; }, context: Context, updater: any): JSX.Element; } +>obj2 : any +>y2 : number +>10 : 10 + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.js new file mode 100644 index 0000000000000..55d8e801beec0 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.js @@ -0,0 +1,30 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter1.tsx] //// + +//// [file.tsx] +/// + +import React = require('react') + +interface MyComponentProp { + values: string; +} + +function MyComponent(attr: T) { + return
attr.values
+} + +// OK +let i = ; // We infer type arguments here +let i1 = ; + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +function MyComponent(attr) { + return
attr.values
; +} +// OK +let i = ; // We infer type arguments here +let i1 = ; diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.symbols new file mode 100644 index 0000000000000..75e322e3d8135 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.symbols @@ -0,0 +1,38 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter1.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +interface MyComponentProp { +>MyComponentProp : Symbol(MyComponentProp, Decl(file.tsx, 2, 31)) + + values: string; +>values : Symbol(MyComponentProp.values, Decl(file.tsx, 4, 27)) +} + +function MyComponent(attr: T) { +>MyComponent : Symbol(MyComponent, Decl(file.tsx, 6, 1)) +>T : Symbol(T, Decl(file.tsx, 8, 21)) +>MyComponentProp : Symbol(MyComponentProp, Decl(file.tsx, 2, 31)) +>attr : Symbol(attr, Decl(file.tsx, 8, 42)) +>T : Symbol(T, Decl(file.tsx, 8, 21)) + + return
attr.values
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) +} + +// OK +let i = ; // We infer type arguments here +>i : Symbol(i, Decl(file.tsx, 13, 3)) +>MyComponent : Symbol(MyComponent, Decl(file.tsx, 6, 1)) +>values : Symbol(values, Decl(file.tsx, 13, 20)) + +let i1 = ; +>i1 : Symbol(i1, Decl(file.tsx, 14, 3)) +>MyComponent : Symbol(MyComponent, Decl(file.tsx, 6, 1)) +>values : Symbol(values, Decl(file.tsx, 14, 21)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.types new file mode 100644 index 0000000000000..ec15ad2c5ec25 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter1.types @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter1.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : typeof React + +interface MyComponentProp { + values: string; +>values : string +} + +function MyComponent(attr: T) { +>MyComponent : (attr: T) => JSX.Element +>attr : T + + return
attr.values
+>
attr.values
: JSX.Element +>div : any +>div : any +} + +// OK +let i = ; // We infer type arguments here +>i : JSX.Element +> : JSX.Element +>MyComponent : (attr: T) => JSX.Element +>values : true + +let i1 = ; +>i1 : JSX.Element +> : JSX.Element +>MyComponent : (attr: T) => JSX.Element +>values : string + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.errors.txt b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.errors.txt new file mode 100644 index 0000000000000..6938c305d7ecb --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.errors.txt @@ -0,0 +1,22 @@ +file.tsx(15,24): error TS2322: Type 'number' is not assignable to type 'string'. + + +==== file.tsx (1 errors) ==== + /// + + import React = require('react') + + interface MyComponentProp { + values: string; + } + + function MyComponent1(attr: T) { + return
attr.values
+ } + + + // Error + let i1 = ; + ~~~~~~ +!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! related TS6500 file.tsx:6:5: The expected type comes from property 'values' which is declared here on type 'IntrinsicAttributes & MyComponentProp' \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.js new file mode 100644 index 0000000000000..e880d4ce72bc1 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.js @@ -0,0 +1,29 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter2.tsx] //// + +//// [file.tsx] +/// + +import React = require('react') + +interface MyComponentProp { + values: string; +} + +function MyComponent1(attr: T) { + return
attr.values
+} + + +// Error +let i1 = ; + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +function MyComponent1(attr) { + return
attr.values
; +} +// Error +let i1 = ; diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.symbols new file mode 100644 index 0000000000000..85f3637966da2 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.symbols @@ -0,0 +1,34 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter2.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +interface MyComponentProp { +>MyComponentProp : Symbol(MyComponentProp, Decl(file.tsx, 2, 31)) + + values: string; +>values : Symbol(MyComponentProp.values, Decl(file.tsx, 4, 27)) +} + +function MyComponent1(attr: T) { +>MyComponent1 : Symbol(MyComponent1, Decl(file.tsx, 6, 1)) +>T : Symbol(T, Decl(file.tsx, 8, 22)) +>MyComponentProp : Symbol(MyComponentProp, Decl(file.tsx, 2, 31)) +>attr : Symbol(attr, Decl(file.tsx, 8, 49)) +>T : Symbol(T, Decl(file.tsx, 8, 22)) + + return
attr.values
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) +} + + +// Error +let i1 = ; +>i1 : Symbol(i1, Decl(file.tsx, 14, 3)) +>MyComponent1 : Symbol(MyComponent1, Decl(file.tsx, 6, 1)) +>values : Symbol(values, Decl(file.tsx, 14, 22)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types new file mode 100644 index 0000000000000..0d3d30653110f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter2.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : typeof React + +interface MyComponentProp { + values: string; +>values : string +} + +function MyComponent1(attr: T) { +>MyComponent1 : (attr: T) => JSX.Element +>attr : T + + return
attr.values
+>
attr.values
: JSX.Element +>div : any +>div : any +} + + +// Error +let i1 = ; +>i1 : JSX.Element +> : JSX.Element +>MyComponent1 : (attr: T) => JSX.Element +>values : number +>5 : 5 + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.errors.txt b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.errors.txt new file mode 100644 index 0000000000000..b3ba99bf357ee --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.errors.txt @@ -0,0 +1,25 @@ +file.tsx(15,37): error TS7008: Member 'children' implicitly has an 'any' type. + + +==== file.tsx (1 errors) ==== + /// + + import React = require('react'); + + const Foo = (props: any) =>
; + // Should be OK + const foo = ; + + + // Should be OK + var MainMenu: React.StatelessComponent<{}> = (props) => (
+

Main Menu

+
); + + var App: React.StatelessComponent<{ children }> = ({children}) => ( + ~~~~~~~~ +!!! error TS7008: Member 'children' implicitly has an 'any' type. +
+ +
+ ); \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.js new file mode 100644 index 0000000000000..ea420419f6d4c --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.js @@ -0,0 +1,38 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponents3.tsx] //// + +//// [file.tsx] +/// + +import React = require('react'); + +const Foo = (props: any) =>
; +// Should be OK +const foo = ; + + +// Should be OK +var MainMenu: React.StatelessComponent<{}> = (props) => (
+

Main Menu

+
); + +var App: React.StatelessComponent<{ children }> = ({children}) => ( +
+ +
+); + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +const Foo = (props) =>
; +// Should be OK +const foo = ; +// Should be OK +var MainMenu = (props) => (
+

Main Menu

+
); +var App = ({ children }) => (
+ +
); diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.symbols new file mode 100644 index 0000000000000..9c7b44f0df781 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.symbols @@ -0,0 +1,51 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponents3.tsx] //// + +=== file.tsx === +/// + +import React = require('react'); +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +const Foo = (props: any) =>
; +>Foo : Symbol(Foo, Decl(file.tsx, 4, 5)) +>props : Symbol(props, Decl(file.tsx, 4, 13)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) + +// Should be OK +const foo = ; +>foo : Symbol(foo, Decl(file.tsx, 6, 5)) +>Foo : Symbol(Foo, Decl(file.tsx, 4, 5)) + + +// Should be OK +var MainMenu: React.StatelessComponent<{}> = (props) => (
+>MainMenu : Symbol(MainMenu, Decl(file.tsx, 10, 3)) +>React : Symbol(React, Decl(file.tsx, 0, 0)) +>StatelessComponent : Symbol(React.StatelessComponent, Decl(react.d.ts, 198, 40)) +>props : Symbol(props, Decl(file.tsx, 10, 46)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) + +

Main Menu

+>h3 : Symbol(JSX.IntrinsicElements.h3, Decl(react.d.ts, 2414, 48)) +>h3 : Symbol(JSX.IntrinsicElements.h3, Decl(react.d.ts, 2414, 48)) + +
); +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) + +var App: React.StatelessComponent<{ children }> = ({children}) => ( +>App : Symbol(App, Decl(file.tsx, 14, 3)) +>React : Symbol(React, Decl(file.tsx, 0, 0)) +>StatelessComponent : Symbol(React.StatelessComponent, Decl(react.d.ts, 198, 40)) +>children : Symbol(children, Decl(file.tsx, 14, 35)) +>children : Symbol(children, Decl(file.tsx, 14, 52)) + +
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) + + +>MainMenu : Symbol(MainMenu, Decl(file.tsx, 10, 3)) + +
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2402, 45)) + +); diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.types new file mode 100644 index 0000000000000..e1be6e320dc9d --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponents3.types @@ -0,0 +1,60 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponents3.tsx] //// + +=== file.tsx === +/// + +import React = require('react'); +>React : typeof React + +const Foo = (props: any) =>
; +>Foo : (props: any) => JSX.Element +>(props: any) =>
: (props: any) => JSX.Element +>props : any +>
: JSX.Element +>div : any + +// Should be OK +const foo = ; +>foo : JSX.Element +> : JSX.Element +>Foo : (props: any) => JSX.Element + + +// Should be OK +var MainMenu: React.StatelessComponent<{}> = (props) => (
+>MainMenu : React.StatelessComponent<{}> +>React : any +>(props) => (

Main Menu

) : (props: { children?: React.ReactNode; }) => JSX.Element +>props : { children?: React.ReactNode; } +>(

Main Menu

) : JSX.Element +>

Main Menu

: JSX.Element +>div : any + +

Main Menu

+>

Main Menu

: JSX.Element +>h3 : any +>h3 : any + +
); +>div : any + +var App: React.StatelessComponent<{ children }> = ({children}) => ( +>App : React.StatelessComponent<{ children: any; }> +>React : any +>children : any +>({children}) => (
) : ({ children }: { children: any; } & { children?: React.ReactNode; }) => JSX.Element +>children : any +>(
) : JSX.Element + +
+>
: JSX.Element +>div : any + + +> : JSX.Element +>MainMenu : React.StatelessComponent<{}> + +
+>div : any + +); diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.js new file mode 100644 index 0000000000000..7fec55241f3b1 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.js @@ -0,0 +1,55 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments1.tsx] //// + +//// [file.tsx] +/// + +import React = require('react') + +declare function ComponentWithTwoAttributes(l: {key1: K, value: V}): JSX.Element; + +// OK +function Baz(key1: T, value: U) { + let a0 = + let a1 = +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; + +// OK +function createLink(func: (a: number)=>void) { + let o = +} + +function createLink1(func: (a: number)=>boolean) { + let o = +} + +interface InferParamProp { + values: Array; + selectHandler: (selectedVal: T) => void; +} + +declare function InferParamComponent(attr: InferParamProp): JSX.Element; + +// OK +let i = { }} />; + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +// OK +function Baz(key1, value) { + let a0 = ; + let a1 = ; +} +// OK +function createLink(func) { + let o = ; +} +function createLink1(func) { + let o = ; +} +// OK +let i = { }}/>; diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.symbols new file mode 100644 index 0000000000000..0c3d1c5e83a57 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.symbols @@ -0,0 +1,114 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments1.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +declare function ComponentWithTwoAttributes(l: {key1: K, value: V}): JSX.Element; +>ComponentWithTwoAttributes : Symbol(ComponentWithTwoAttributes, Decl(file.tsx, 2, 31)) +>K : Symbol(K, Decl(file.tsx, 4, 44)) +>V : Symbol(V, Decl(file.tsx, 4, 46)) +>l : Symbol(l, Decl(file.tsx, 4, 49)) +>key1 : Symbol(key1, Decl(file.tsx, 4, 53)) +>K : Symbol(K, Decl(file.tsx, 4, 44)) +>value : Symbol(value, Decl(file.tsx, 4, 61)) +>V : Symbol(V, Decl(file.tsx, 4, 46)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// OK +function Baz(key1: T, value: U) { +>Baz : Symbol(Baz, Decl(file.tsx, 4, 86)) +>T : Symbol(T, Decl(file.tsx, 7, 13)) +>U : Symbol(U, Decl(file.tsx, 7, 15)) +>key1 : Symbol(key1, Decl(file.tsx, 7, 18)) +>T : Symbol(T, Decl(file.tsx, 7, 13)) +>value : Symbol(value, Decl(file.tsx, 7, 26)) +>U : Symbol(U, Decl(file.tsx, 7, 15)) + + let a0 = +>a0 : Symbol(a0, Decl(file.tsx, 8, 7)) +>ComponentWithTwoAttributes : Symbol(ComponentWithTwoAttributes, Decl(file.tsx, 2, 31)) +>key1 : Symbol(key1, Decl(file.tsx, 8, 40)) +>key1 : Symbol(key1, Decl(file.tsx, 7, 18)) +>value : Symbol(value, Decl(file.tsx, 8, 52)) +>value : Symbol(value, Decl(file.tsx, 7, 26)) + + let a1 = +>a1 : Symbol(a1, Decl(file.tsx, 9, 7)) +>ComponentWithTwoAttributes : Symbol(ComponentWithTwoAttributes, Decl(file.tsx, 2, 31)) +>key1 : Symbol(key1, Decl(file.tsx, 9, 46)) +>value : Symbol(value, Decl(file.tsx, 9, 51)) +>value : Symbol(value, Decl(file.tsx, 7, 26)) +>key : Symbol(key, Decl(file.tsx, 9, 66)) +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; +>Link : Symbol(Link, Decl(file.tsx, 10, 1)) +>U : Symbol(U, Decl(file.tsx, 12, 22)) +>l : Symbol(l, Decl(file.tsx, 12, 25)) +>func : Symbol(func, Decl(file.tsx, 12, 29)) +>arg : Symbol(arg, Decl(file.tsx, 12, 36)) +>U : Symbol(U, Decl(file.tsx, 12, 22)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// OK +function createLink(func: (a: number)=>void) { +>createLink : Symbol(createLink, Decl(file.tsx, 12, 65)) +>func : Symbol(func, Decl(file.tsx, 15, 20)) +>a : Symbol(a, Decl(file.tsx, 15, 27)) + + let o = +>o : Symbol(o, Decl(file.tsx, 16, 7)) +>Link : Symbol(Link, Decl(file.tsx, 10, 1)) +>func : Symbol(func, Decl(file.tsx, 16, 17)) +>func : Symbol(func, Decl(file.tsx, 15, 20)) +} + +function createLink1(func: (a: number)=>boolean) { +>createLink1 : Symbol(createLink1, Decl(file.tsx, 17, 1)) +>func : Symbol(func, Decl(file.tsx, 19, 21)) +>a : Symbol(a, Decl(file.tsx, 19, 28)) + + let o = +>o : Symbol(o, Decl(file.tsx, 20, 7)) +>Link : Symbol(Link, Decl(file.tsx, 10, 1)) +>func : Symbol(func, Decl(file.tsx, 20, 17)) +>func : Symbol(func, Decl(file.tsx, 19, 21)) +} + +interface InferParamProp { +>InferParamProp : Symbol(InferParamProp, Decl(file.tsx, 21, 1)) +>T : Symbol(T, Decl(file.tsx, 23, 25)) + + values: Array; +>values : Symbol(InferParamProp.values, Decl(file.tsx, 23, 29)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(file.tsx, 23, 25)) + + selectHandler: (selectedVal: T) => void; +>selectHandler : Symbol(InferParamProp.selectHandler, Decl(file.tsx, 24, 21)) +>selectedVal : Symbol(selectedVal, Decl(file.tsx, 25, 20)) +>T : Symbol(T, Decl(file.tsx, 23, 25)) +} + +declare function InferParamComponent(attr: InferParamProp): JSX.Element; +>InferParamComponent : Symbol(InferParamComponent, Decl(file.tsx, 26, 1)) +>T : Symbol(T, Decl(file.tsx, 28, 37)) +>attr : Symbol(attr, Decl(file.tsx, 28, 40)) +>InferParamProp : Symbol(InferParamProp, Decl(file.tsx, 21, 1)) +>T : Symbol(T, Decl(file.tsx, 28, 37)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// OK +let i = { }} />; +>i : Symbol(i, Decl(file.tsx, 31, 3)) +>InferParamComponent : Symbol(InferParamComponent, Decl(file.tsx, 26, 1)) +>values : Symbol(values, Decl(file.tsx, 31, 28)) +>selectHandler : Symbol(selectHandler, Decl(file.tsx, 31, 50)) +>val : Symbol(val, Decl(file.tsx, 31, 67)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.types new file mode 100644 index 0000000000000..e7ee8500f68f2 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments1.types @@ -0,0 +1,104 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments1.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : typeof React + +declare function ComponentWithTwoAttributes(l: {key1: K, value: V}): JSX.Element; +>ComponentWithTwoAttributes : (l: { key1: K; value: V; }) => JSX.Element +>l : { key1: K; value: V; } +>key1 : K +>value : V +>JSX : any + +// OK +function Baz(key1: T, value: U) { +>Baz : (key1: T, value: U) => void +>key1 : T +>value : U + + let a0 = +>a0 : JSX.Element +> : JSX.Element +>ComponentWithTwoAttributes : (l: { key1: K; value: V; }) => JSX.Element +>key1 : T +>key1 : T +>value : U +>value : U + + let a1 = +>a1 : JSX.Element +> : JSX.Element +>ComponentWithTwoAttributes : (l: { key1: K; value: V; }) => JSX.Element +>{key1, value: value} : { key1: T; value: U; } +>key1 : T +>value : U +>value : U +>key : string +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; +>Link : (l: { func: (arg: U) => void; }) => JSX.Element +>l : { func: (arg: U) => void; } +>func : (arg: U) => void +>arg : U +>JSX : any + +// OK +function createLink(func: (a: number)=>void) { +>createLink : (func: (a: number) => void) => void +>func : (a: number) => void +>a : number + + let o = +>o : JSX.Element +> : JSX.Element +>Link : (l: { func: (arg: U) => void; }) => JSX.Element +>func : (a: number) => void +>func : (a: number) => void +} + +function createLink1(func: (a: number)=>boolean) { +>createLink1 : (func: (a: number) => boolean) => void +>func : (a: number) => boolean +>a : number + + let o = +>o : JSX.Element +> : JSX.Element +>Link : (l: { func: (arg: U) => void; }) => JSX.Element +>func : (a: number) => boolean +>func : (a: number) => boolean +} + +interface InferParamProp { + values: Array; +>values : T[] + + selectHandler: (selectedVal: T) => void; +>selectHandler : (selectedVal: T) => void +>selectedVal : T +} + +declare function InferParamComponent(attr: InferParamProp): JSX.Element; +>InferParamComponent : (attr: InferParamProp) => JSX.Element +>attr : InferParamProp +>JSX : any + +// OK +let i = { }} />; +>i : JSX.Element +> { }} /> : JSX.Element +>InferParamComponent : (attr: InferParamProp) => JSX.Element +>values : number[] +>[1, 2, 3, 4] : number[] +>1 : 1 +>2 : 2 +>3 : 3 +>4 : 4 +>selectHandler : (val: number) => void +>(val) => { } : (val: number) => void +>val : number + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.errors.txt b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.errors.txt new file mode 100644 index 0000000000000..b89d3943596f4 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.errors.txt @@ -0,0 +1,71 @@ +file.tsx(10,15): error TS2322: Type 'T & { "ignore-prop": number; }' is not assignable to type 'IntrinsicAttributes & { prop: number; "ignore-prop": string; }'. + Type 'T & { "ignore-prop": number; }' is not assignable to type '{ prop: number; "ignore-prop": string; }'. + Types of property '"ignore-prop"' are incompatible. + Type 'number' is not assignable to type 'string'. +file.tsx(15,15): error TS2322: Type 'T' is not assignable to type 'IntrinsicAttributes & { prop: unknown; "ignore-prop": string; }'. + Type 'T' is not assignable to type 'IntrinsicAttributes'. +file.tsx(22,19): error TS2322: Type '(a: number, b: string) => void' is not assignable to type '(arg: number) => void'. + Target signature provides too few arguments. Expected 2 or more, but got 1. +file.tsx(33,39): error TS2322: Type 'number' is not assignable to type 'string'. +file.tsx(33,42): error TS2322: Type 'number' is not assignable to type 'string'. +file.tsx(33,45): error TS2322: Type 'number' is not assignable to type 'string'. +file.tsx(33,48): error TS2322: Type 'number' is not assignable to type 'string'. + + +==== file.tsx (7 errors) ==== + /// + + import React = require('react') + + declare function ComponentSpecific1(l: {prop: U, "ignore-prop": string}): JSX.Element; + declare function ComponentSpecific2(l: {prop: U}): JSX.Element; + + // Error + function Bar(arg: T) { + let a1 = ; + ~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type 'T & { "ignore-prop": number; }' is not assignable to type 'IntrinsicAttributes & { prop: number; "ignore-prop": string; }'. +!!! error TS2322: Type 'T & { "ignore-prop": number; }' is not assignable to type '{ prop: number; "ignore-prop": string; }'. +!!! error TS2322: Types of property '"ignore-prop"' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. + } + + // Error + function Baz(arg: T) { + let a0 = + ~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type 'T' is not assignable to type 'IntrinsicAttributes & { prop: unknown; "ignore-prop": string; }'. +!!! error TS2322: Type 'T' is not assignable to type 'IntrinsicAttributes'. +!!! related TS2208 file.tsx:14:14: This type parameter might need an `extends IntrinsicAttributes` constraint. +!!! related TS2208 file.tsx:14:14: This type parameter might need an `extends IntrinsicAttributes & { prop: unknown; "ignore-prop": string; }` constraint. + } + + declare function Link(l: {func: (arg: U)=>void}): JSX.Element; + + // Error + function createLink(func: (a: number, b: string)=>void) { + let o = + ~~~~ +!!! error TS2322: Type '(a: number, b: string) => void' is not assignable to type '(arg: number) => void'. +!!! error TS2322: Target signature provides too few arguments. Expected 2 or more, but got 1. +!!! related TS6500 file.tsx:18:30: The expected type comes from property 'func' which is declared here on type 'IntrinsicAttributes & { func: (arg: number) => void; }' + } + + interface InferParamProp { + values: Array; + selectHandler: (selectedVal: T) => void; + } + + declare function InferParamComponent(attr: InferParamProp): JSX.Element; + + // Error + let i = { }} />; + ~ +!!! error TS2322: Type 'number' is not assignable to type 'string'. + ~ +!!! error TS2322: Type 'number' is not assignable to type 'string'. + ~ +!!! error TS2322: Type 'number' is not assignable to type 'string'. + ~ +!!! error TS2322: Type 'number' is not assignable to type 'string'. + \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.js new file mode 100644 index 0000000000000..ba143b00747b3 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.js @@ -0,0 +1,57 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments2.tsx] //// + +//// [file.tsx] +/// + +import React = require('react') + +declare function ComponentSpecific1(l: {prop: U, "ignore-prop": string}): JSX.Element; +declare function ComponentSpecific2(l: {prop: U}): JSX.Element; + +// Error +function Bar(arg: T) { + let a1 = ; + } + +// Error +function Baz(arg: T) { + let a0 = +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; + +// Error +function createLink(func: (a: number, b: string)=>void) { + let o = +} + +interface InferParamProp { + values: Array; + selectHandler: (selectedVal: T) => void; +} + +declare function InferParamComponent(attr: InferParamProp): JSX.Element; + +// Error +let i = { }} />; + + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +// Error +function Bar(arg) { + let a1 = ; +} +// Error +function Baz(arg) { + let a0 = ; +} +// Error +function createLink(func) { + let o = ; +} +// Error +let i = { }}/>; diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.symbols new file mode 100644 index 0000000000000..efea72d3d6804 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.symbols @@ -0,0 +1,111 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments2.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +declare function ComponentSpecific1(l: {prop: U, "ignore-prop": string}): JSX.Element; +>ComponentSpecific1 : Symbol(ComponentSpecific1, Decl(file.tsx, 2, 31)) +>U : Symbol(U, Decl(file.tsx, 4, 36)) +>l : Symbol(l, Decl(file.tsx, 4, 39)) +>prop : Symbol(prop, Decl(file.tsx, 4, 43)) +>U : Symbol(U, Decl(file.tsx, 4, 36)) +>"ignore-prop" : Symbol("ignore-prop", Decl(file.tsx, 4, 51)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function ComponentSpecific2(l: {prop: U}): JSX.Element; +>ComponentSpecific2 : Symbol(ComponentSpecific2, Decl(file.tsx, 4, 89)) +>U : Symbol(U, Decl(file.tsx, 5, 36)) +>l : Symbol(l, Decl(file.tsx, 5, 39)) +>prop : Symbol(prop, Decl(file.tsx, 5, 43)) +>U : Symbol(U, Decl(file.tsx, 5, 36)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// Error +function Bar(arg: T) { +>Bar : Symbol(Bar, Decl(file.tsx, 5, 66)) +>T : Symbol(T, Decl(file.tsx, 8, 13)) +>prop : Symbol(prop, Decl(file.tsx, 8, 24)) +>arg : Symbol(arg, Decl(file.tsx, 8, 39)) +>T : Symbol(T, Decl(file.tsx, 8, 13)) + + let a1 = ; +>a1 : Symbol(a1, Decl(file.tsx, 9, 7)) +>ComponentSpecific1 : Symbol(ComponentSpecific1, Decl(file.tsx, 2, 31)) +>arg : Symbol(arg, Decl(file.tsx, 8, 39)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 9, 41)) + } + +// Error +function Baz(arg: T) { +>Baz : Symbol(Baz, Decl(file.tsx, 10, 2)) +>T : Symbol(T, Decl(file.tsx, 13, 13)) +>arg : Symbol(arg, Decl(file.tsx, 13, 16)) +>T : Symbol(T, Decl(file.tsx, 13, 13)) + + let a0 = +>a0 : Symbol(a0, Decl(file.tsx, 14, 7)) +>ComponentSpecific1 : Symbol(ComponentSpecific1, Decl(file.tsx, 2, 31)) +>arg : Symbol(arg, Decl(file.tsx, 13, 16)) +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; +>Link : Symbol(Link, Decl(file.tsx, 15, 1)) +>U : Symbol(U, Decl(file.tsx, 17, 22)) +>l : Symbol(l, Decl(file.tsx, 17, 25)) +>func : Symbol(func, Decl(file.tsx, 17, 29)) +>arg : Symbol(arg, Decl(file.tsx, 17, 36)) +>U : Symbol(U, Decl(file.tsx, 17, 22)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// Error +function createLink(func: (a: number, b: string)=>void) { +>createLink : Symbol(createLink, Decl(file.tsx, 17, 65)) +>func : Symbol(func, Decl(file.tsx, 20, 20)) +>a : Symbol(a, Decl(file.tsx, 20, 27)) +>b : Symbol(b, Decl(file.tsx, 20, 37)) + + let o = +>o : Symbol(o, Decl(file.tsx, 21, 7)) +>Link : Symbol(Link, Decl(file.tsx, 15, 1)) +>func : Symbol(func, Decl(file.tsx, 21, 17)) +>func : Symbol(func, Decl(file.tsx, 20, 20)) +} + +interface InferParamProp { +>InferParamProp : Symbol(InferParamProp, Decl(file.tsx, 22, 1)) +>T : Symbol(T, Decl(file.tsx, 24, 25)) + + values: Array; +>values : Symbol(InferParamProp.values, Decl(file.tsx, 24, 29)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(file.tsx, 24, 25)) + + selectHandler: (selectedVal: T) => void; +>selectHandler : Symbol(InferParamProp.selectHandler, Decl(file.tsx, 25, 21)) +>selectedVal : Symbol(selectedVal, Decl(file.tsx, 26, 20)) +>T : Symbol(T, Decl(file.tsx, 24, 25)) +} + +declare function InferParamComponent(attr: InferParamProp): JSX.Element; +>InferParamComponent : Symbol(InferParamComponent, Decl(file.tsx, 27, 1)) +>T : Symbol(T, Decl(file.tsx, 29, 37)) +>attr : Symbol(attr, Decl(file.tsx, 29, 40)) +>InferParamProp : Symbol(InferParamProp, Decl(file.tsx, 22, 1)) +>T : Symbol(T, Decl(file.tsx, 29, 37)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// Error +let i = { }} />; +>i : Symbol(i, Decl(file.tsx, 32, 3)) +>InferParamComponent : Symbol(InferParamComponent, Decl(file.tsx, 27, 1)) +>values : Symbol(values, Decl(file.tsx, 32, 28)) +>selectHandler : Symbol(selectHandler, Decl(file.tsx, 32, 50)) +>val : Symbol(val, Decl(file.tsx, 32, 67)) + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.types new file mode 100644 index 0000000000000..6c06cf69c1556 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments2.types @@ -0,0 +1,99 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments2.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : typeof React + +declare function ComponentSpecific1(l: {prop: U, "ignore-prop": string}): JSX.Element; +>ComponentSpecific1 : (l: { prop: U; "ignore-prop": string; }) => JSX.Element +>l : { prop: U; "ignore-prop": string; } +>prop : U +>"ignore-prop" : string +>JSX : any + +declare function ComponentSpecific2(l: {prop: U}): JSX.Element; +>ComponentSpecific2 : (l: { prop: U; }) => JSX.Element +>l : { prop: U; } +>prop : U +>JSX : any + +// Error +function Bar(arg: T) { +>Bar : (arg: T) => void +>prop : number +>arg : T + + let a1 = ; +>a1 : JSX.Element +> : JSX.Element +>ComponentSpecific1 : (l: { prop: U; "ignore-prop": string; }) => JSX.Element +>arg : T +>ignore-prop : number +>10 : 10 + } + +// Error +function Baz(arg: T) { +>Baz : (arg: T) => void +>arg : T + + let a0 = +>a0 : JSX.Element +> : JSX.Element +>ComponentSpecific1 : (l: { prop: U; "ignore-prop": string; }) => JSX.Element +>arg : T +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; +>Link : (l: { func: (arg: U) => void; }) => JSX.Element +>l : { func: (arg: U) => void; } +>func : (arg: U) => void +>arg : U +>JSX : any + +// Error +function createLink(func: (a: number, b: string)=>void) { +>createLink : (func: (a: number, b: string) => void) => void +>func : (a: number, b: string) => void +>a : number +>b : string + + let o = +>o : JSX.Element +> : JSX.Element +>Link : (l: { func: (arg: U) => void; }) => JSX.Element +>func : (a: number, b: string) => void +>func : (a: number, b: string) => void +} + +interface InferParamProp { + values: Array; +>values : T[] + + selectHandler: (selectedVal: T) => void; +>selectHandler : (selectedVal: T) => void +>selectedVal : T +} + +declare function InferParamComponent(attr: InferParamProp): JSX.Element; +>InferParamComponent : (attr: InferParamProp) => JSX.Element +>attr : InferParamProp +>JSX : any + +// Error +let i = { }} />; +>i : JSX.Element +> { }} /> : JSX.Element +>InferParamComponent : (attr: InferParamProp) => JSX.Element +>values : number[] +>[1, 2, 3, 4] : number[] +>1 : 1 +>2 : 2 +>3 : 3 +>4 : 4 +>selectHandler : (val: string) => void +>(val: string) => { } : (val: string) => void +>val : string + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.js new file mode 100644 index 0000000000000..0dde609e50bbe --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.js @@ -0,0 +1,48 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments3.tsx] //// + +//// [file.tsx] +/// + +import React = require('react') + +declare function OverloadComponent(): JSX.Element; +declare function OverloadComponent(attr: {b: U, a?: string, "ignore-prop": boolean}): JSX.Element; +declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; + +// OK +function Baz(arg1: T, arg2: U) { + let a0 = ; + let a1 = ; + let a2 = ; + let a3 = ; + let a4 = ; + let a5 = ; + let a6 = ; +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; +declare function Link(l: {func: (arg1:U, arg2: string)=>void}): JSX.Element; +function createLink(func: (a: number)=>void) { + let o = + let o1 = {}} />; +} + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +// OK +function Baz(arg1, arg2) { + let a0 = ; + let a1 = ; + let a2 = ; + let a3 = ; + let a4 = ; + let a5 = ; + let a6 = ; +} +function createLink(func) { + let o = ; + let o1 = { }}/>; +} diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.symbols new file mode 100644 index 0000000000000..10bef22af0ce7 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.symbols @@ -0,0 +1,132 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments3.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +declare function OverloadComponent(): JSX.Element; +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>U : Symbol(U, Decl(file.tsx, 4, 35)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function OverloadComponent(attr: {b: U, a?: string, "ignore-prop": boolean}): JSX.Element; +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>U : Symbol(U, Decl(file.tsx, 5, 35)) +>attr : Symbol(attr, Decl(file.tsx, 5, 38)) +>b : Symbol(b, Decl(file.tsx, 5, 45)) +>U : Symbol(U, Decl(file.tsx, 5, 35)) +>a : Symbol(a, Decl(file.tsx, 5, 50)) +>"ignore-prop" : Symbol("ignore-prop", Decl(file.tsx, 5, 62)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>T : Symbol(T, Decl(file.tsx, 6, 35)) +>U : Symbol(U, Decl(file.tsx, 6, 37)) +>attr : Symbol(attr, Decl(file.tsx, 6, 41)) +>b : Symbol(b, Decl(file.tsx, 6, 48)) +>U : Symbol(U, Decl(file.tsx, 6, 37)) +>a : Symbol(a, Decl(file.tsx, 6, 53)) +>T : Symbol(T, Decl(file.tsx, 6, 35)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +// OK +function Baz(arg1: T, arg2: U) { +>Baz : Symbol(Baz, Decl(file.tsx, 6, 74)) +>T : Symbol(T, Decl(file.tsx, 9, 13)) +>b : Symbol(b, Decl(file.tsx, 9, 24)) +>U : Symbol(U, Decl(file.tsx, 9, 35)) +>a : Symbol(a, Decl(file.tsx, 9, 47)) +>b : Symbol(b, Decl(file.tsx, 9, 58)) +>arg1 : Symbol(arg1, Decl(file.tsx, 9, 70)) +>T : Symbol(T, Decl(file.tsx, 9, 13)) +>arg2 : Symbol(arg2, Decl(file.tsx, 9, 78)) +>U : Symbol(U, Decl(file.tsx, 9, 35)) + + let a0 = ; +>a0 : Symbol(a0, Decl(file.tsx, 10, 7)) +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>arg1 : Symbol(arg1, Decl(file.tsx, 9, 70)) +>a : Symbol(a, Decl(file.tsx, 10, 41)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 10, 51)) + + let a1 = ; +>a1 : Symbol(a1, Decl(file.tsx, 11, 7)) +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>arg2 : Symbol(arg2, Decl(file.tsx, 9, 78)) +>ignore-pro : Symbol(ignore-pro, Decl(file.tsx, 11, 41)) + + let a2 = ; +>a2 : Symbol(a2, Decl(file.tsx, 12, 7)) +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>arg2 : Symbol(arg2, Decl(file.tsx, 9, 78)) + + let a3 = ; +>a3 : Symbol(a3, Decl(file.tsx, 13, 7)) +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>arg1 : Symbol(arg1, Decl(file.tsx, 9, 70)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 13, 41)) + + let a4 = ; +>a4 : Symbol(a4, Decl(file.tsx, 14, 7)) +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) + + let a5 = ; +>a5 : Symbol(a5, Decl(file.tsx, 15, 7)) +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>arg2 : Symbol(arg2, Decl(file.tsx, 9, 78)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 15, 41)) +>arg1 : Symbol(arg1, Decl(file.tsx, 9, 70)) + + let a6 = ; +>a6 : Symbol(a6, Decl(file.tsx, 16, 7)) +>OverloadComponent : Symbol(OverloadComponent, Decl(file.tsx, 2, 31), Decl(file.tsx, 4, 53), Decl(file.tsx, 5, 101)) +>arg2 : Symbol(arg2, Decl(file.tsx, 9, 78)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 16, 41)) +>arg1 : Symbol(arg1, Decl(file.tsx, 9, 70)) +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; +>Link : Symbol(Link, Decl(file.tsx, 17, 1), Decl(file.tsx, 19, 65)) +>U : Symbol(U, Decl(file.tsx, 19, 22)) +>l : Symbol(l, Decl(file.tsx, 19, 25)) +>func : Symbol(func, Decl(file.tsx, 19, 29)) +>arg : Symbol(arg, Decl(file.tsx, 19, 36)) +>U : Symbol(U, Decl(file.tsx, 19, 22)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function Link(l: {func: (arg1:U, arg2: string)=>void}): JSX.Element; +>Link : Symbol(Link, Decl(file.tsx, 17, 1), Decl(file.tsx, 19, 65)) +>U : Symbol(U, Decl(file.tsx, 20, 22)) +>l : Symbol(l, Decl(file.tsx, 20, 25)) +>func : Symbol(func, Decl(file.tsx, 20, 29)) +>arg1 : Symbol(arg1, Decl(file.tsx, 20, 36)) +>U : Symbol(U, Decl(file.tsx, 20, 22)) +>arg2 : Symbol(arg2, Decl(file.tsx, 20, 43)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +function createLink(func: (a: number)=>void) { +>createLink : Symbol(createLink, Decl(file.tsx, 20, 79)) +>func : Symbol(func, Decl(file.tsx, 21, 20)) +>a : Symbol(a, Decl(file.tsx, 21, 27)) + + let o = +>o : Symbol(o, Decl(file.tsx, 22, 7)) +>Link : Symbol(Link, Decl(file.tsx, 17, 1), Decl(file.tsx, 19, 65)) +>func : Symbol(func, Decl(file.tsx, 22, 17)) +>func : Symbol(func, Decl(file.tsx, 21, 20)) + + let o1 = {}} />; +>o1 : Symbol(o1, Decl(file.tsx, 23, 7)) +>Link : Symbol(Link, Decl(file.tsx, 17, 1), Decl(file.tsx, 19, 65)) +>func : Symbol(func, Decl(file.tsx, 23, 18)) +>a : Symbol(a, Decl(file.tsx, 23, 26)) +>b : Symbol(b, Decl(file.tsx, 23, 35)) +} diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.types new file mode 100644 index 0000000000000..4d6b7f118c066 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments3.types @@ -0,0 +1,122 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments3.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : typeof React + +declare function OverloadComponent(): JSX.Element; +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T; }): JSX.Element; } +>JSX : any + +declare function OverloadComponent(attr: {b: U, a?: string, "ignore-prop": boolean}): JSX.Element; +>OverloadComponent : { (): JSX.Element; (attr: { b: U; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T; }): JSX.Element; } +>attr : { b: U; a?: string; "ignore-prop": boolean; } +>b : U +>a : string | undefined +>"ignore-prop" : boolean +>JSX : any + +declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } +>attr : { b: U; a: T; } +>b : U +>a : T +>JSX : any + +// OK +function Baz(arg1: T, arg2: U) { +>Baz : (arg1: T, arg2: U) => void +>b : number +>a : boolean +>b : string +>arg1 : T +>arg2 : U + + let a0 = ; +>a0 : JSX.Element +> : JSX.Element +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } +>arg1 : T +>a : string +>ignore-prop : true + + let a1 = ; +>a1 : JSX.Element +> : JSX.Element +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } +>arg2 : U +>ignore-pro : string + + let a2 = ; +>a2 : JSX.Element +> : JSX.Element +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } +>arg2 : U + + let a3 = ; +>a3 : JSX.Element +> : JSX.Element +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } +>arg1 : T +>ignore-prop : true + + let a4 = ; +>a4 : JSX.Element +> : JSX.Element +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } + + let a5 = ; +>a5 : JSX.Element +> : JSX.Element +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } +>arg2 : U +>ignore-prop : string +>arg1 : T + + let a6 = ; +>a6 : JSX.Element +> : JSX.Element +>OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } +>arg2 : U +>ignore-prop : true +>arg1 : T +} + +declare function Link(l: {func: (arg: U)=>void}): JSX.Element; +>Link : { (l: { func: (arg: U) => void; }): JSX.Element; (l: { func: (arg1: U_1, arg2: string) => void; }): JSX.Element; } +>l : { func: (arg: U) => void; } +>func : (arg: U) => void +>arg : U +>JSX : any + +declare function Link(l: {func: (arg1:U, arg2: string)=>void}): JSX.Element; +>Link : { (l: { func: (arg: U_1) => void; }): JSX.Element; (l: { func: (arg1: U, arg2: string) => void; }): JSX.Element; } +>l : { func: (arg1: U, arg2: string) => void; } +>func : (arg1: U, arg2: string) => void +>arg1 : U +>arg2 : string +>JSX : any + +function createLink(func: (a: number)=>void) { +>createLink : (func: (a: number) => void) => void +>func : (a: number) => void +>a : number + + let o = +>o : JSX.Element +> : JSX.Element +>Link : { (l: { func: (arg: U) => void; }): JSX.Element; (l: { func: (arg1: U, arg2: string) => void; }): JSX.Element; } +>func : (a: number) => void +>func : (a: number) => void + + let o1 = {}} />; +>o1 : JSX.Element +>{}} /> : JSX.Element +>Link : { (l: { func: (arg: U) => void; }): JSX.Element; (l: { func: (arg1: U, arg2: string) => void; }): JSX.Element; } +>func : (a: number, b: string) => void +>(a:number, b:string)=>{} : (a: number, b: string) => void +>a : number +>b : string +} diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.js b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.js new file mode 100644 index 0000000000000..dc5d8aae9b0e6 --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments5.tsx] //// + +//// [file.tsx] +/// + +import React = require('react') + +declare function Component(l: U): JSX.Element; +function createComponent(arg: T) { + let a1 = ; + let a2 = ; +} + +declare function ComponentSpecific(l: { prop: U }): JSX.Element; +declare function ComponentSpecific1(l: { prop: U, "ignore-prop": number }): JSX.Element; + +function Bar(arg: T) { + let a1 = ; // U is number + let a2 = ; // U is number + let a3 = ; // U is "hello" + let a4 = ; // U is "hello" +} + + +//// [file.jsx] +"use strict"; +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const React = require("react"); +function createComponent(arg) { + let a1 = ; + let a2 = ; +} +function Bar(arg) { + let a1 = ; // U is number + let a2 = ; // U is number + let a3 = ; // U is "hello" + let a4 = ; // U is "hello" +} diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.symbols b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.symbols new file mode 100644 index 0000000000000..8e31b5d18f24f --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.symbols @@ -0,0 +1,86 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments5.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : Symbol(React, Decl(file.tsx, 0, 0)) + +declare function Component(l: U): JSX.Element; +>Component : Symbol(Component, Decl(file.tsx, 2, 31)) +>U : Symbol(U, Decl(file.tsx, 4, 27)) +>l : Symbol(l, Decl(file.tsx, 4, 30)) +>U : Symbol(U, Decl(file.tsx, 4, 27)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +function createComponent(arg: T) { +>createComponent : Symbol(createComponent, Decl(file.tsx, 4, 49)) +>T : Symbol(T, Decl(file.tsx, 5, 25)) +>prop : Symbol(prop, Decl(file.tsx, 5, 36)) +>arg : Symbol(arg, Decl(file.tsx, 5, 53)) +>T : Symbol(T, Decl(file.tsx, 5, 25)) + + let a1 = ; +>a1 : Symbol(a1, Decl(file.tsx, 6, 7)) +>Component : Symbol(Component, Decl(file.tsx, 2, 31)) +>arg : Symbol(arg, Decl(file.tsx, 5, 53)) + + let a2 = ; +>a2 : Symbol(a2, Decl(file.tsx, 7, 7)) +>Component : Symbol(Component, Decl(file.tsx, 2, 31)) +>arg : Symbol(arg, Decl(file.tsx, 5, 53)) +>prop1 : Symbol(prop1, Decl(file.tsx, 7, 32)) +} + +declare function ComponentSpecific(l: { prop: U }): JSX.Element; +>ComponentSpecific : Symbol(ComponentSpecific, Decl(file.tsx, 8, 1)) +>U : Symbol(U, Decl(file.tsx, 10, 35)) +>l : Symbol(l, Decl(file.tsx, 10, 38)) +>prop : Symbol(prop, Decl(file.tsx, 10, 42)) +>U : Symbol(U, Decl(file.tsx, 10, 35)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +declare function ComponentSpecific1(l: { prop: U, "ignore-prop": number }): JSX.Element; +>ComponentSpecific1 : Symbol(ComponentSpecific1, Decl(file.tsx, 10, 67)) +>U : Symbol(U, Decl(file.tsx, 11, 36)) +>l : Symbol(l, Decl(file.tsx, 11, 39)) +>prop : Symbol(prop, Decl(file.tsx, 11, 43)) +>U : Symbol(U, Decl(file.tsx, 11, 36)) +>"ignore-prop" : Symbol("ignore-prop", Decl(file.tsx, 11, 52)) +>JSX : Symbol(JSX, Decl(react.d.ts, 2355, 1)) +>Element : Symbol(JSX.Element, Decl(react.d.ts, 2358, 27)) + +function Bar(arg: T) { +>Bar : Symbol(Bar, Decl(file.tsx, 11, 91)) +>T : Symbol(T, Decl(file.tsx, 13, 13)) +>prop : Symbol(prop, Decl(file.tsx, 13, 24)) +>arg : Symbol(arg, Decl(file.tsx, 13, 41)) +>T : Symbol(T, Decl(file.tsx, 13, 13)) + + let a1 = ; // U is number +>a1 : Symbol(a1, Decl(file.tsx, 14, 7)) +>ComponentSpecific : Symbol(ComponentSpecific, Decl(file.tsx, 8, 1)) +>arg : Symbol(arg, Decl(file.tsx, 13, 41)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 14, 40)) + + let a2 = ; // U is number +>a2 : Symbol(a2, Decl(file.tsx, 15, 7)) +>ComponentSpecific1 : Symbol(ComponentSpecific1, Decl(file.tsx, 10, 67)) +>arg : Symbol(arg, Decl(file.tsx, 13, 41)) +>ignore-prop : Symbol(ignore-prop, Decl(file.tsx, 15, 41)) + + let a3 = ; // U is "hello" +>a3 : Symbol(a3, Decl(file.tsx, 16, 7)) +>ComponentSpecific : Symbol(ComponentSpecific, Decl(file.tsx, 8, 1)) +>arg : Symbol(arg, Decl(file.tsx, 13, 41)) +>prop : Symbol(prop, Decl(file.tsx, 16, 40)) + + let a4 = ; // U is "hello" +>a4 : Symbol(a4, Decl(file.tsx, 17, 7)) +>ComponentSpecific : Symbol(ComponentSpecific, Decl(file.tsx, 8, 1)) +>arg : Symbol(arg, Decl(file.tsx, 13, 41)) +>prop1 : Symbol(prop1, Decl(file.tsx, 17, 40)) +} + diff --git a/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.types b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.types new file mode 100644 index 0000000000000..99d14e5b5d03a --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/tsxStatelessFunctionComponentsWithTypeArguments5.types @@ -0,0 +1,80 @@ +//// [tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments5.tsx] //// + +=== file.tsx === +/// + +import React = require('react') +>React : typeof React + +declare function Component(l: U): JSX.Element; +>Component : (l: U) => JSX.Element +>l : U +>JSX : any + +function createComponent(arg: T) { +>createComponent : (arg: T) => void +>prop : number +>arg : T + + let a1 = ; +>a1 : JSX.Element +> : JSX.Element +>Component : (l: U) => JSX.Element +>arg : T + + let a2 = ; +>a2 : JSX.Element +> : JSX.Element +>Component : (l: U) => JSX.Element +>arg : T +>prop1 : true +} + +declare function ComponentSpecific(l: { prop: U }): JSX.Element; +>ComponentSpecific : (l: { prop: U; }) => JSX.Element +>l : { prop: U; } +>prop : U +>JSX : any + +declare function ComponentSpecific1(l: { prop: U, "ignore-prop": number }): JSX.Element; +>ComponentSpecific1 : (l: { prop: U; "ignore-prop": number; }) => JSX.Element +>l : { prop: U; "ignore-prop": number; } +>prop : U +>"ignore-prop" : number +>JSX : any + +function Bar(arg: T) { +>Bar : (arg: T) => void +>prop : number +>arg : T + + let a1 = ; // U is number +>a1 : JSX.Element +> : JSX.Element +>ComponentSpecific : (l: { prop: U; }) => JSX.Element +>arg : T +>ignore-prop : string + + let a2 = ; // U is number +>a2 : JSX.Element +> : JSX.Element +>ComponentSpecific1 : (l: { prop: U; "ignore-prop": number; }) => JSX.Element +>arg : T +>ignore-prop : number +>10 : 10 + + let a3 = ; // U is "hello" +>a3 : JSX.Element +> : JSX.Element +>ComponentSpecific : (l: { prop: U; }) => JSX.Element +>arg : T +>prop : string + + let a4 = ; // U is "hello" +>a4 : JSX.Element +> : JSX.Element +>ComponentSpecific : (l: { prop: U; }) => JSX.Element +>arg : T +>prop1 : string +} + diff --git a/tsc/testdata/baselines/reference/conformance/usingDeclarationsTopLevelOfModule.2.js b/tsc/testdata/baselines/reference/conformance/usingDeclarationsTopLevelOfModule.2.js new file mode 100644 index 0000000000000..f9e2147667d2e --- /dev/null +++ b/tsc/testdata/baselines/reference/conformance/usingDeclarationsTopLevelOfModule.2.js @@ -0,0 +1,29 @@ +//// [tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.2.ts] //// + +//// [usingDeclarationsTopLevelOfModule.2.ts] +using z = { [Symbol.dispose]() {} }; + +const y = 2; + +console.log(y, z); +export = 4; + + +//// [usingDeclarationsTopLevelOfModule.2.js] +"use strict"; +var z, y, _default; +const env_1 = { stack: [], error: void 0, hasError: false }; +try { + z = __addDisposableResource(env_1, { [Symbol.dispose]() { } }, false); + y = 2; + console.log(y, z); + _default = 4; +} +catch (e_1) { + env_1.error = e_1; + env_1.hasError = true; +} +finally { + __disposeResources(env_1); +} +module.exports = _default; diff --git a/tsc/testdata/tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration.ts b/tsc/testdata/tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration.ts index 792083dbc4e12..e8302e599a910 100644 --- a/tsc/testdata/tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration.ts +++ b/tsc/testdata/tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: ambientExternalModuleWithInternalImportDeclaration_0.ts declare module 'M' { namespace C { diff --git a/tsc/testdata/tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration.ts b/tsc/testdata/tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration.ts index bea48c88597f2..f2e31898c8ff1 100644 --- a/tsc/testdata/tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration.ts +++ b/tsc/testdata/tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: ambientExternalModuleWithoutInternalImportDeclaration_0.ts declare module 'M' { namespace C { diff --git a/tsc/testdata/tests/cases/compiler/augmentExportEquals1_1.ts b/tsc/testdata/tests/cases/compiler/augmentExportEquals1_1.ts index eb082fc6be5ec..5296e87d2d670 100644 --- a/tsc/testdata/tests/cases/compiler/augmentExportEquals1_1.ts +++ b/tsc/testdata/tests/cases/compiler/augmentExportEquals1_1.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.d.ts declare module "file1" { diff --git a/tsc/testdata/tests/cases/compiler/augmentExportEquals2_1.ts b/tsc/testdata/tests/cases/compiler/augmentExportEquals2_1.ts index 61c356182b1c6..8fc38bb595ef9 100644 --- a/tsc/testdata/tests/cases/compiler/augmentExportEquals2_1.ts +++ b/tsc/testdata/tests/cases/compiler/augmentExportEquals2_1.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.d.ts declare module "file1" { diff --git a/tsc/testdata/tests/cases/compiler/augmentExportEquals3_1.ts b/tsc/testdata/tests/cases/compiler/augmentExportEquals3_1.ts index 7d874492b4020..0a93f24e885a3 100644 --- a/tsc/testdata/tests/cases/compiler/augmentExportEquals3_1.ts +++ b/tsc/testdata/tests/cases/compiler/augmentExportEquals3_1.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.d.ts declare module "file1" { function foo(): void; diff --git a/tsc/testdata/tests/cases/compiler/augmentExportEquals4_1.ts b/tsc/testdata/tests/cases/compiler/augmentExportEquals4_1.ts index db0c6d9becb02..cbb69f8cd3c15 100644 --- a/tsc/testdata/tests/cases/compiler/augmentExportEquals4_1.ts +++ b/tsc/testdata/tests/cases/compiler/augmentExportEquals4_1.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.d.ts declare module "file1" { diff --git a/tsc/testdata/tests/cases/compiler/augmentExportEquals6_1.ts b/tsc/testdata/tests/cases/compiler/augmentExportEquals6_1.ts index 54d39d9e57348..8c0dfa0391801 100644 --- a/tsc/testdata/tests/cases/compiler/augmentExportEquals6_1.ts +++ b/tsc/testdata/tests/cases/compiler/augmentExportEquals6_1.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.d.ts declare module "file1" { diff --git a/tsc/testdata/tests/cases/compiler/augmentedTypesExternalModule1.ts b/tsc/testdata/tests/cases/compiler/augmentedTypesExternalModule1.ts index 9d378f73c01b2..931bdfdb41eec 100644 --- a/tsc/testdata/tests/cases/compiler/augmentedTypesExternalModule1.ts +++ b/tsc/testdata/tests/cases/compiler/augmentedTypesExternalModule1.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export var a = 1; class c5 { public foo() { } } namespace c5 { } // should be ok everywhere \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/bangInModuleName.ts b/tsc/testdata/tests/cases/compiler/bangInModuleName.ts index 70a888e40231e..27052d2dc4970 100644 --- a/tsc/testdata/tests/cases/compiler/bangInModuleName.ts +++ b/tsc/testdata/tests/cases/compiler/bangInModuleName.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @filename: a.d.ts diff --git a/tsc/testdata/tests/cases/compiler/blockScopedNamespaceDifferentFile.ts b/tsc/testdata/tests/cases/compiler/blockScopedNamespaceDifferentFile.ts index 8f68221e64493..74d763b90a50b 100644 --- a/tsc/testdata/tests/cases/compiler/blockScopedNamespaceDifferentFile.ts +++ b/tsc/testdata/tests/cases/compiler/blockScopedNamespaceDifferentFile.ts @@ -1,6 +1,7 @@ // @strict: false // @target: es5, es2015 -// @module: amd +// @outDir: out +// @module: commonjs // #15734 failed when test.ts comes before typings.d.ts // @Filename: test.ts diff --git a/tsc/testdata/tests/cases/compiler/cacheResolutions.ts b/tsc/testdata/tests/cases/compiler/cacheResolutions.ts index 20c47d3032270..7e1f6d42f174a 100644 --- a/tsc/testdata/tests/cases/compiler/cacheResolutions.ts +++ b/tsc/testdata/tests/cases/compiler/cacheResolutions.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @importHelpers: true // @traceResolution: true diff --git a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndClass.ts b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndClass.ts index 645be3e6ea2f8..8052d61de9d91 100644 --- a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndClass.ts +++ b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndClass.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: collisionExportsRequireAndClass_externalmodule.ts export class require { } diff --git a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndEnum.ts b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndEnum.ts index 1ed5596a0f72e..37759a6804556 100644 --- a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndEnum.ts +++ b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndEnum.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: collisionExportsRequireAndEnum_externalmodule.ts export enum require { // Error _thisVal1, diff --git a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndFunction.ts b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndFunction.ts index 805678bc4d7d2..41a644c5c57c5 100644 --- a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndFunction.ts +++ b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndFunction.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export function exports() { return 1; } diff --git a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndInternalModuleAlias.ts b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndInternalModuleAlias.ts index d1e22dc5d86cf..d98aacdd017cd 100644 --- a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndInternalModuleAlias.ts +++ b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndInternalModuleAlias.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export namespace m { export class c { } diff --git a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndModule.ts b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndModule.ts index 827cd7269ab82..0e8747132eca3 100644 --- a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndModule.ts +++ b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndModule.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: collisionExportsRequireAndModule_externalmodule.ts export namespace require { export interface I { diff --git a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts index bf34c2215e6e4..e59289c7174e1 100644 --- a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts +++ b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export namespace require { // no error export interface I { } diff --git a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndVar.ts b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndVar.ts index b3d2179fdc0e3..86dbf06bf09f5 100644 --- a/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndVar.ts +++ b/tsc/testdata/tests/cases/compiler/collisionExportsRequireAndVar.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: collisionExportsRequireAndVar_externalmodule.ts export function foo() { } diff --git a/tsc/testdata/tests/cases/compiler/commentsBeforeVariableStatement1.ts b/tsc/testdata/tests/cases/compiler/commentsBeforeVariableStatement1.ts index 351de35d82f81..1d3ae0bd85395 100644 --- a/tsc/testdata/tests/cases/compiler/commentsBeforeVariableStatement1.ts +++ b/tsc/testdata/tests/cases/compiler/commentsBeforeVariableStatement1.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @removeComments: false /** b's comment*/ export var b: number; diff --git a/tsc/testdata/tests/cases/compiler/commentsDottedModuleName.ts b/tsc/testdata/tests/cases/compiler/commentsDottedModuleName.ts index c7af1bb9a5f1a..4830ab9051b83 100644 --- a/tsc/testdata/tests/cases/compiler/commentsDottedModuleName.ts +++ b/tsc/testdata/tests/cases/compiler/commentsDottedModuleName.ts @@ -1,4 +1,4 @@ -// @module: amd +// @module: commonjs // @target: ES5, ES2015 // @declaration: true // @removeComments: false diff --git a/tsc/testdata/tests/cases/compiler/commentsExternalModules.ts b/tsc/testdata/tests/cases/compiler/commentsExternalModules.ts index 0d4738e002780..67ece3cc31bb4 100644 --- a/tsc/testdata/tests/cases/compiler/commentsExternalModules.ts +++ b/tsc/testdata/tests/cases/compiler/commentsExternalModules.ts @@ -1,4 +1,4 @@ -// @module: amd +// @module: commonjs // @target: ES5, ES2015 // @declaration: true // @removeComments: false diff --git a/tsc/testdata/tests/cases/compiler/commentsExternalModules2.ts b/tsc/testdata/tests/cases/compiler/commentsExternalModules2.ts index c6e5380701f74..bc02532bd9665 100644 --- a/tsc/testdata/tests/cases/compiler/commentsExternalModules2.ts +++ b/tsc/testdata/tests/cases/compiler/commentsExternalModules2.ts @@ -1,4 +1,4 @@ -// @module: amd +// @module: commonjs // @target: ES5, ES2015 // @declaration: true // @removeComments: false diff --git a/tsc/testdata/tests/cases/compiler/commentsMultiModuleMultiFile.ts b/tsc/testdata/tests/cases/compiler/commentsMultiModuleMultiFile.ts index 2748b2f4a301c..74c2ee1f2ea1d 100644 --- a/tsc/testdata/tests/cases/compiler/commentsMultiModuleMultiFile.ts +++ b/tsc/testdata/tests/cases/compiler/commentsMultiModuleMultiFile.ts @@ -1,4 +1,4 @@ -// @module: amd +// @module: commonjs // @target: ES5, ES2015 // @declaration: true // @removeComments: false diff --git a/tsc/testdata/tests/cases/compiler/constEnumExternalModule.ts b/tsc/testdata/tests/cases/compiler/constEnumExternalModule.ts index 879f9adbc3990..26af2ee4f6e7f 100644 --- a/tsc/testdata/tests/cases/compiler/constEnumExternalModule.ts +++ b/tsc/testdata/tests/cases/compiler/constEnumExternalModule.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@Filename: m1.ts const enum E { V = 100 diff --git a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues1.ts b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues1.ts index bc617aa184e5e..ecc2b0dfcf2dd 100644 --- a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues1.ts +++ b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues1.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: m1.ts function foo() {} diff --git a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues2.ts b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues2.ts index b498cba8296c8..2c17b1f201c73 100644 --- a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues2.ts +++ b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues2.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: m1.ts class foo {} diff --git a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues3.ts b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues3.ts index b1fbc055befec..e9b2f2029c5eb 100644 --- a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues3.ts +++ b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues3.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: m1.ts enum foo { A } diff --git a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues4.ts b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues4.ts index feb8bc84c1240..e33a31c91f4e0 100644 --- a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues4.ts +++ b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues4.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: m1.ts namespace foo { diff --git a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues5.ts b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues5.ts index cecf77a7a56be..07141934f495d 100644 --- a/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues5.ts +++ b/tsc/testdata/tests/cases/compiler/constEnumMergingWithValues5.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@filename: m1.ts //@preserveConstEnums: true diff --git a/tsc/testdata/tests/cases/compiler/crashIntypeCheckObjectCreationExpression.ts b/tsc/testdata/tests/cases/compiler/crashIntypeCheckObjectCreationExpression.ts index 79b460fff5774..8b1a77d090b0f 100644 --- a/tsc/testdata/tests/cases/compiler/crashIntypeCheckObjectCreationExpression.ts +++ b/tsc/testdata/tests/cases/compiler/crashIntypeCheckObjectCreationExpression.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export class BuildWorkspaceService { public injectRequestService(service: P0) { this.injectBuildService(new X(service)); diff --git a/tsc/testdata/tests/cases/compiler/declFileExportAssignmentOfGenericInterface.ts b/tsc/testdata/tests/cases/compiler/declFileExportAssignmentOfGenericInterface.ts index e8d049203f3ad..0c813a9e51faf 100644 --- a/tsc/testdata/tests/cases/compiler/declFileExportAssignmentOfGenericInterface.ts +++ b/tsc/testdata/tests/cases/compiler/declFileExportAssignmentOfGenericInterface.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true // @Filename: declFileExportAssignmentOfGenericInterface_0.ts diff --git a/tsc/testdata/tests/cases/compiler/declFileExportImportChain.ts b/tsc/testdata/tests/cases/compiler/declFileExportImportChain.ts index bdfed64d81a49..16fa7fac178bf 100644 --- a/tsc/testdata/tests/cases/compiler/declFileExportImportChain.ts +++ b/tsc/testdata/tests/cases/compiler/declFileExportImportChain.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true // @Filename: declFileExportImportChain_a.ts diff --git a/tsc/testdata/tests/cases/compiler/declFileExportImportChain2.ts b/tsc/testdata/tests/cases/compiler/declFileExportImportChain2.ts index afb57311cbc66..19dd4a6e7b9e6 100644 --- a/tsc/testdata/tests/cases/compiler/declFileExportImportChain2.ts +++ b/tsc/testdata/tests/cases/compiler/declFileExportImportChain2.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true // @Filename: declFileExportImportChain2_a.ts diff --git a/tsc/testdata/tests/cases/compiler/declarationMerging2.ts b/tsc/testdata/tests/cases/compiler/declarationMerging2.ts index b4e69e967f63e..40a7d146df9d0 100644 --- a/tsc/testdata/tests/cases/compiler/declarationMerging2.ts +++ b/tsc/testdata/tests/cases/compiler/declarationMerging2.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: a.ts export class A { diff --git a/tsc/testdata/tests/cases/compiler/dependencyViaImportAlias.ts b/tsc/testdata/tests/cases/compiler/dependencyViaImportAlias.ts index 09caf8eac3351..78d4033e6a6df 100644 --- a/tsc/testdata/tests/cases/compiler/dependencyViaImportAlias.ts +++ b/tsc/testdata/tests/cases/compiler/dependencyViaImportAlias.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@Filename: A.ts export class A { } diff --git a/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions2.ts b/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions2.ts index 36feaf1ff8d05..1d8fe90d5f250 100644 --- a/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions2.ts +++ b/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions2.ts @@ -2,9 +2,9 @@ // @typeScriptVersion: 5.0 // @filename: /foo/tsconfig.json { - "compilerOptions": { - "module": "amd", - "target": "ES3", + "compilerOptions": { + "module": "commonjs", + "target": "ES3", "noImplicitUseStrict": true, "keyofStringsOnly": true, "suppressExcessPropertyErrors": true, diff --git a/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions6.ts b/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions6.ts index 466d9677e7abc..432b1074da336 100644 --- a/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions6.ts +++ b/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions6.ts @@ -1,9 +1,9 @@ // @typeScriptVersion: 5.0 // @filename: /foo/tsconfig.json { - "compilerOptions": { - "module": "amd", - "target": "ES3", + "compilerOptions": { + "module": "commonjs", + "target": "ES3", "noImplicitUseStrict": true, "keyofStringsOnly": true, "suppressExcessPropertyErrors": true, diff --git a/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations3.ts b/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations3.ts index 7881b3073a1aa..275564c07c59d 100644 --- a/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations3.ts +++ b/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations3.ts @@ -1,5 +1,5 @@ // @target: es6 -// @module: amd +// @module: commonjs export let { toString } = 1; { let { toFixed } = 1; diff --git a/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations4.ts b/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations4.ts index 81ed4d04c4e9f..07190dddd5211 100644 --- a/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations4.ts +++ b/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations4.ts @@ -1,5 +1,5 @@ // @target: es6 -// @module: amd +// @module: commonjs let { toString } = 1; { let { toFixed } = 1; diff --git a/tsc/testdata/tests/cases/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.ts b/tsc/testdata/tests/cases/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.ts index bff66da21cbe0..2ae5c135191f6 100644 --- a/tsc/testdata/tests/cases/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.ts +++ b/tsc/testdata/tests/cases/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @FileName: duplicateIdentifierShouldNotShortCircuitBaseTypeBinding_0.ts export interface IPoint {} diff --git a/tsc/testdata/tests/cases/compiler/dynamicRequire.ts b/tsc/testdata/tests/cases/compiler/dynamicRequire.ts index 4e52e90c0ef46..d9b2743be30ed 100644 --- a/tsc/testdata/tests/cases/compiler/dynamicRequire.ts +++ b/tsc/testdata/tests/cases/compiler/dynamicRequire.ts @@ -1,6 +1,7 @@ // @target: es2015 // @allowJs: true -// @module: amd +// @module: commonjs +// @outDir: out // @filename: a.js function foo(name) { diff --git a/tsc/testdata/tests/cases/compiler/emitHelpersWithLocalCollisions.ts b/tsc/testdata/tests/cases/compiler/emitHelpersWithLocalCollisions.ts index 510cfa9d3ec6b..f1aeaef0149d4 100644 --- a/tsc/testdata/tests/cases/compiler/emitHelpersWithLocalCollisions.ts +++ b/tsc/testdata/tests/cases/compiler/emitHelpersWithLocalCollisions.ts @@ -1,5 +1,5 @@ // @target: es6 -// @module: * +// @module: *, -amd // @experimentalDecorators: true // @filename: a.ts // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport.ts b/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport.ts index ceeb933a60a35..37512dbc32372 100644 --- a/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport.ts +++ b/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding1WithExport.ts @@ -1,4 +1,4 @@ -// @module: amd +// @module: commonjs // @declaration: true // @target: ES5, ES2015 diff --git a/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.ts b/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.ts index 7fb7426ef9b86..24f847175e66e 100644 --- a/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.ts +++ b/tsc/testdata/tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.ts @@ -1,4 +1,4 @@ -// @module: amd +// @module: commonjs // @declaration: true // @target: ES5, ES2015 diff --git a/tsc/testdata/tests/cases/compiler/es6ImportNameSpaceImportWithExport.ts b/tsc/testdata/tests/cases/compiler/es6ImportNameSpaceImportWithExport.ts index 37d3845501bce..d54bc035dde97 100644 --- a/tsc/testdata/tests/cases/compiler/es6ImportNameSpaceImportWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/es6ImportNameSpaceImportWithExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @declaration: true // @filename: server.ts diff --git a/tsc/testdata/tests/cases/compiler/exportAssignedTypeAsTypeAnnotation.ts b/tsc/testdata/tests/cases/compiler/exportAssignedTypeAsTypeAnnotation.ts index e43d3219cc8e4..b7b6b004386c7 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignedTypeAsTypeAnnotation.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignedTypeAsTypeAnnotation.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: exportAssignedTypeAsTypeAnnotation_0.ts interface x { diff --git a/tsc/testdata/tests/cases/compiler/exportAssignmentClass.ts b/tsc/testdata/tests/cases/compiler/exportAssignmentClass.ts index 8f806ebda6deb..878b121122854 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignmentClass.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignmentClass.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: exportAssignmentClass_A.ts class C { public p = 0; } diff --git a/tsc/testdata/tests/cases/compiler/exportAssignmentError.ts b/tsc/testdata/tests/cases/compiler/exportAssignmentError.ts index 628940f154ee5..d6002a51de4da 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignmentError.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignmentError.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs // @Filename: exportEqualsModule_A.ts namespace M { export var x; diff --git a/tsc/testdata/tests/cases/compiler/exportAssignmentFunction.ts b/tsc/testdata/tests/cases/compiler/exportAssignmentFunction.ts index f8a0c6850ce6e..1113bc056c662 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignmentFunction.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignmentFunction.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: exportAssignmentFunction_A.ts function foo() { return 0; } diff --git a/tsc/testdata/tests/cases/compiler/exportAssignmentInterface.ts b/tsc/testdata/tests/cases/compiler/exportAssignmentInterface.ts index dcf51458576d8..a05df34708b54 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignmentInterface.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignmentInterface.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: exportAssignmentInterface_A.ts interface A { p1: number; diff --git a/tsc/testdata/tests/cases/compiler/exportAssignmentInternalModule.ts b/tsc/testdata/tests/cases/compiler/exportAssignmentInternalModule.ts index eb621ea2adc96..06ee398a4e2a7 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignmentInternalModule.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignmentInternalModule.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs // @Filename: exportAssignmentInternalModule_A.ts namespace M { export var x; diff --git a/tsc/testdata/tests/cases/compiler/exportAssignmentOfGenericType1.ts b/tsc/testdata/tests/cases/compiler/exportAssignmentOfGenericType1.ts index e7b3ff90fc65a..6e2a7ef3264c2 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignmentOfGenericType1.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignmentOfGenericType1.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: exportAssignmentOfGenericType1_0.ts export = T; class T { foo: X; } diff --git a/tsc/testdata/tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts b/tsc/testdata/tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts index 1a0bb39a3e454..44cb21740bf8d 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs namespace m2 { export interface connectModule { (res, req, next): void; diff --git a/tsc/testdata/tests/cases/compiler/exportAssignmentWithPrivacyError.ts b/tsc/testdata/tests/cases/compiler/exportAssignmentWithPrivacyError.ts index fa2547349e8a7..212a40c25b973 100644 --- a/tsc/testdata/tests/cases/compiler/exportAssignmentWithPrivacyError.ts +++ b/tsc/testdata/tests/cases/compiler/exportAssignmentWithPrivacyError.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs interface connectmodule { (res, req, next): void; } diff --git a/tsc/testdata/tests/cases/compiler/exportEmptyArrayBindingPattern.ts b/tsc/testdata/tests/cases/compiler/exportEmptyArrayBindingPattern.ts index b12beac7c59cc..70b87a19af8ee 100644 --- a/tsc/testdata/tests/cases/compiler/exportEmptyArrayBindingPattern.ts +++ b/tsc/testdata/tests/cases/compiler/exportEmptyArrayBindingPattern.ts @@ -1,4 +1,4 @@ -// @module: commonjs,amd,system,es2015,esnext +// @module: commonjs,system,es2015,esnext // @target: esnext,es5 // @noEmitHelpers: true // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/exportEmptyObjectBindingPattern.ts b/tsc/testdata/tests/cases/compiler/exportEmptyObjectBindingPattern.ts index 6db95fb094b15..c26edf1047e12 100644 --- a/tsc/testdata/tests/cases/compiler/exportEmptyObjectBindingPattern.ts +++ b/tsc/testdata/tests/cases/compiler/exportEmptyObjectBindingPattern.ts @@ -1,4 +1,4 @@ -// @module: commonjs,amd,system,es2015,esnext +// @module: commonjs,system,es2015,esnext // @target: esnext,es5 // @noEmitHelpers: true // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/exportEqualCallable.ts b/tsc/testdata/tests/cases/compiler/exportEqualCallable.ts index eed90ff091046..7f2d2983432c7 100644 --- a/tsc/testdata/tests/cases/compiler/exportEqualCallable.ts +++ b/tsc/testdata/tests/cases/compiler/exportEqualCallable.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: exportEqualCallable_0.ts var server: { diff --git a/tsc/testdata/tests/cases/compiler/exportEqualNamespaces.ts b/tsc/testdata/tests/cases/compiler/exportEqualNamespaces.ts index 8e0ef0892542d..59e8270cb26c3 100644 --- a/tsc/testdata/tests/cases/compiler/exportEqualNamespaces.ts +++ b/tsc/testdata/tests/cases/compiler/exportEqualNamespaces.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs declare namespace server { interface Server extends Object { } } diff --git a/tsc/testdata/tests/cases/compiler/exportImport.ts b/tsc/testdata/tests/cases/compiler/exportImport.ts index 35b7c4577e3c2..4b492e2ccc9ce 100644 --- a/tsc/testdata/tests/cases/compiler/exportImport.ts +++ b/tsc/testdata/tests/cases/compiler/exportImport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true // @Filename: w1.ts diff --git a/tsc/testdata/tests/cases/compiler/exportImportCanSubstituteConstEnumForValue.ts b/tsc/testdata/tests/cases/compiler/exportImportCanSubstituteConstEnumForValue.ts index c2a76604102fd..bc5929790e244 100644 --- a/tsc/testdata/tests/cases/compiler/exportImportCanSubstituteConstEnumForValue.ts +++ b/tsc/testdata/tests/cases/compiler/exportImportCanSubstituteConstEnumForValue.ts @@ -1,4 +1,4 @@ -// @module: amd +// @module: commonjs // @declaration: true // @target: es5, es2015 namespace MsPortalFx.ViewModels.Dialogs { diff --git a/tsc/testdata/tests/cases/compiler/exportImportMultipleFiles.ts b/tsc/testdata/tests/cases/compiler/exportImportMultipleFiles.ts index 6d9cd24a5413e..2499ac5971ad9 100644 --- a/tsc/testdata/tests/cases/compiler/exportImportMultipleFiles.ts +++ b/tsc/testdata/tests/cases/compiler/exportImportMultipleFiles.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs // @Filename: exportImportMultipleFiles_math.ts export function add(a, b) { return a + b; } diff --git a/tsc/testdata/tests/cases/compiler/exportImportNonInstantiatedModule2.ts b/tsc/testdata/tests/cases/compiler/exportImportNonInstantiatedModule2.ts index 80e2abe10e328..e56c46f449290 100644 --- a/tsc/testdata/tests/cases/compiler/exportImportNonInstantiatedModule2.ts +++ b/tsc/testdata/tests/cases/compiler/exportImportNonInstantiatedModule2.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true // @Filename: w1.ts diff --git a/tsc/testdata/tests/cases/compiler/exportObjectRest.ts b/tsc/testdata/tests/cases/compiler/exportObjectRest.ts index cbc314a7e11ba..c0d19d70c2e9e 100644 --- a/tsc/testdata/tests/cases/compiler/exportObjectRest.ts +++ b/tsc/testdata/tests/cases/compiler/exportObjectRest.ts @@ -1,4 +1,4 @@ -// @module: commonjs,amd,system,es2015,esnext +// @module: commonjs,system,es2015,esnext // @target: esnext,es5 // @noEmitHelpers: true // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/exportStarForValues.ts b/tsc/testdata/tests/cases/compiler/exportStarForValues.ts index 77f4f6aa881df..afb48ddf7ceed 100644 --- a/tsc/testdata/tests/cases/compiler/exportStarForValues.ts +++ b/tsc/testdata/tests/cases/compiler/exportStarForValues.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.ts export interface Foo { x } diff --git a/tsc/testdata/tests/cases/compiler/exportStarForValues2.ts b/tsc/testdata/tests/cases/compiler/exportStarForValues2.ts index ad45e388db471..9052a5de23801 100644 --- a/tsc/testdata/tests/cases/compiler/exportStarForValues2.ts +++ b/tsc/testdata/tests/cases/compiler/exportStarForValues2.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.ts export interface Foo { x } diff --git a/tsc/testdata/tests/cases/compiler/exportStarForValues3.ts b/tsc/testdata/tests/cases/compiler/exportStarForValues3.ts index df933a4a2abca..03221a6e32053 100644 --- a/tsc/testdata/tests/cases/compiler/exportStarForValues3.ts +++ b/tsc/testdata/tests/cases/compiler/exportStarForValues3.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.ts export interface Foo { x } diff --git a/tsc/testdata/tests/cases/compiler/exportStarForValues4.ts b/tsc/testdata/tests/cases/compiler/exportStarForValues4.ts index 07b20ddbb2089..1ddc895810310 100644 --- a/tsc/testdata/tests/cases/compiler/exportStarForValues4.ts +++ b/tsc/testdata/tests/cases/compiler/exportStarForValues4.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.ts export interface Foo { x } diff --git a/tsc/testdata/tests/cases/compiler/exportStarForValues5.ts b/tsc/testdata/tests/cases/compiler/exportStarForValues5.ts index 4772e6e4bfe35..2dd49ef55f53b 100644 --- a/tsc/testdata/tests/cases/compiler/exportStarForValues5.ts +++ b/tsc/testdata/tests/cases/compiler/exportStarForValues5.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.ts export interface Foo { x } diff --git a/tsc/testdata/tests/cases/compiler/exportStarForValues7.ts b/tsc/testdata/tests/cases/compiler/exportStarForValues7.ts index 08387c6fe1979..7e1f05238e0c1 100644 --- a/tsc/testdata/tests/cases/compiler/exportStarForValues7.ts +++ b/tsc/testdata/tests/cases/compiler/exportStarForValues7.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.ts export interface Foo { x } diff --git a/tsc/testdata/tests/cases/compiler/exportStarForValues8.ts b/tsc/testdata/tests/cases/compiler/exportStarForValues8.ts index 89ff33c77dba2..e065a579bc119 100644 --- a/tsc/testdata/tests/cases/compiler/exportStarForValues8.ts +++ b/tsc/testdata/tests/cases/compiler/exportStarForValues8.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.ts export interface Foo { x } diff --git a/tsc/testdata/tests/cases/compiler/exportStarForValues9.ts b/tsc/testdata/tests/cases/compiler/exportStarForValues9.ts index f0d4536ccf62b..8b024aa6657f9 100644 --- a/tsc/testdata/tests/cases/compiler/exportStarForValues9.ts +++ b/tsc/testdata/tests/cases/compiler/exportStarForValues9.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @filename: file1.ts export interface Foo { x } diff --git a/tsc/testdata/tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts b/tsc/testdata/tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts index a6c16156a2250..68ca7a63cfe7d 100644 --- a/tsc/testdata/tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts +++ b/tsc/testdata/tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export interface ProgressCallback { (progress:any):any; } diff --git a/tsc/testdata/tests/cases/compiler/exportedVariable1.ts b/tsc/testdata/tests/cases/compiler/exportedVariable1.ts index 4a5d50674ac29..06b4b238ace8f 100644 --- a/tsc/testdata/tests/cases/compiler/exportedVariable1.ts +++ b/tsc/testdata/tests/cases/compiler/exportedVariable1.ts @@ -1,4 +1,4 @@ // @target: es2015 -//@module: amd +//@module: commonjs export var foo = {name: "Bill"}; var upper = foo.name.toUpperCase(); diff --git a/tsc/testdata/tests/cases/compiler/exportingContainingVisibleType.ts b/tsc/testdata/tests/cases/compiler/exportingContainingVisibleType.ts index b409ae4a8839a..a77bc2feeddd6 100644 --- a/tsc/testdata/tests/cases/compiler/exportingContainingVisibleType.ts +++ b/tsc/testdata/tests/cases/compiler/exportingContainingVisibleType.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs class Foo { public get foo() { var i: Foo; diff --git a/tsc/testdata/tests/cases/compiler/exportsInAmbientModules1.ts b/tsc/testdata/tests/cases/compiler/exportsInAmbientModules1.ts index c551bc71f21df..e4ec202c84036 100644 --- a/tsc/testdata/tests/cases/compiler/exportsInAmbientModules1.ts +++ b/tsc/testdata/tests/cases/compiler/exportsInAmbientModules1.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @filename: external.d.ts export var x: number diff --git a/tsc/testdata/tests/cases/compiler/exportsInAmbientModules2.ts b/tsc/testdata/tests/cases/compiler/exportsInAmbientModules2.ts index 605f08ac22cd5..b34e562a21728 100644 --- a/tsc/testdata/tests/cases/compiler/exportsInAmbientModules2.ts +++ b/tsc/testdata/tests/cases/compiler/exportsInAmbientModules2.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @filename: external.d.ts export default class C {} diff --git a/tsc/testdata/tests/cases/compiler/externalModuleAssignToVar.ts b/tsc/testdata/tests/cases/compiler/externalModuleAssignToVar.ts index 9e65b7a5f9a00..4b9e316e496db 100644 --- a/tsc/testdata/tests/cases/compiler/externalModuleAssignToVar.ts +++ b/tsc/testdata/tests/cases/compiler/externalModuleAssignToVar.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: externalModuleAssignToVar_ext.ts class D { foo: string; } export = D; diff --git a/tsc/testdata/tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.ts b/tsc/testdata/tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.ts index 4929b1e951609..c5f50aab35c2d 100644 --- a/tsc/testdata/tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.ts +++ b/tsc/testdata/tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts export function foo() { }; diff --git a/tsc/testdata/tests/cases/compiler/genericClassesInModule2.ts b/tsc/testdata/tests/cases/compiler/genericClassesInModule2.ts index 50863fe2cb3a6..3d4eeefc50d1c 100644 --- a/tsc/testdata/tests/cases/compiler/genericClassesInModule2.ts +++ b/tsc/testdata/tests/cases/compiler/genericClassesInModule2.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs export class A{ constructor( public callback: (self: A) => void) { var child = new B(this); diff --git a/tsc/testdata/tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts b/tsc/testdata/tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts index 48f0c7daac474..29a05277dbf0d 100644 --- a/tsc/testdata/tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts +++ b/tsc/testdata/tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export interface IFoo
{ } export function foo(fn: (ifoo: IFoo) => void) { foo(fn); // Invocation is necessary to repro (!) diff --git a/tsc/testdata/tests/cases/compiler/genericRecursiveImplicitConstructorErrors1.ts b/tsc/testdata/tests/cases/compiler/genericRecursiveImplicitConstructorErrors1.ts index c1d09c23ef6c5..f9715fe5e153e 100644 --- a/tsc/testdata/tests/cases/compiler/genericRecursiveImplicitConstructorErrors1.ts +++ b/tsc/testdata/tests/cases/compiler/genericRecursiveImplicitConstructorErrors1.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export declare namespace TypeScript { class PullSymbol { } class PullSignatureSymbol extends PullSymbol { diff --git a/tsc/testdata/tests/cases/compiler/genericTypeWithMultipleBases2.ts b/tsc/testdata/tests/cases/compiler/genericTypeWithMultipleBases2.ts index 6a0ced170cdfa..f3d0a9c32044f 100644 --- a/tsc/testdata/tests/cases/compiler/genericTypeWithMultipleBases2.ts +++ b/tsc/testdata/tests/cases/compiler/genericTypeWithMultipleBases2.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export interface I1 { m1: () => void; } diff --git a/tsc/testdata/tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts b/tsc/testdata/tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts index 11fb6adfd5f93..23944eb8abf08 100644 --- a/tsc/testdata/tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts +++ b/tsc/testdata/tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export class Collection { _itemsByKey: { [key: string]: TItem; }; } diff --git a/tsc/testdata/tests/cases/compiler/impliedNodeFormatEmit1.ts b/tsc/testdata/tests/cases/compiler/impliedNodeFormatEmit1.ts index 1f0eded0c4896..52aa780d76d28 100644 --- a/tsc/testdata/tests/cases/compiler/impliedNodeFormatEmit1.ts +++ b/tsc/testdata/tests/cases/compiler/impliedNodeFormatEmit1.ts @@ -2,7 +2,7 @@ // @allowJs: true // @checkJs: true // @outDir: dist -// @module: esnext, commonjs, amd, system, umd, preserve +// @module: esnext, commonjs, system, umd, preserve // @moduleResolution: bundler // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/importDeclWithExportModifier.ts b/tsc/testdata/tests/cases/compiler/importDeclWithExportModifier.ts index 1ba02c79e525b..9244cdce63382 100644 --- a/tsc/testdata/tests/cases/compiler/importDeclWithExportModifier.ts +++ b/tsc/testdata/tests/cases/compiler/importDeclWithExportModifier.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs namespace x { interface c { } diff --git a/tsc/testdata/tests/cases/compiler/importHelpersWithExportStarAs.ts b/tsc/testdata/tests/cases/compiler/importHelpersWithExportStarAs.ts index 4dae5fca0a2c7..aba787d01a5d9 100644 --- a/tsc/testdata/tests/cases/compiler/importHelpersWithExportStarAs.ts +++ b/tsc/testdata/tests/cases/compiler/importHelpersWithExportStarAs.ts @@ -1,6 +1,6 @@ // @importHelpers: true // @target: es2017 -// @module: commonjs,system,amd,es2015,es2020 +// @module: commonjs,system,es2015,es2020 // @esModuleInterop: true,false // @filename: a.ts export class A { } diff --git a/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefault.ts b/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefault.ts index a314deaf1f24b..07347eb64a493 100644 --- a/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefault.ts +++ b/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefault.ts @@ -1,6 +1,6 @@ // @importHelpers: true // @target: es2017 -// @module: commonjs,system,amd,es2015,es2020 +// @module: commonjs,system,es2015,es2020 // @esModuleInterop: true,false // @filename: a.ts export default class { } diff --git a/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.1.ts b/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.1.ts index f8d5639d277ba..38734589ac161 100644 --- a/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.1.ts +++ b/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.1.ts @@ -1,6 +1,6 @@ // @importHelpers: true // @target: es2017 -// @module: commonjs,system,amd,es2015,es2020 +// @module: commonjs,system,es2015,es2020 // @esModuleInterop: true,false // @noEmit: true // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.2.ts b/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.2.ts index 66d99d7cd8305..fffee9176454a 100644 --- a/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.2.ts +++ b/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.2.ts @@ -1,6 +1,6 @@ // @importHelpers: true // @target: es2017 -// @module: commonjs,system,amd,es2015,es2020 +// @module: commonjs,system,es2015,es2020 // @esModuleInterop: true,false // @noEmit: true // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.3.ts b/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.3.ts index f8c2fdafc9fc1..c42e18a754381 100644 --- a/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.3.ts +++ b/tsc/testdata/tests/cases/compiler/importHelpersWithImportOrExportDefaultNoTslib.3.ts @@ -1,6 +1,6 @@ // @importHelpers: true // @target: es2017 -// @module: commonjs,system,amd,es2015,es2020 +// @module: commonjs,system,es2015,es2020 // @esModuleInterop: true,false // @noEmit: true // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/importHelpersWithImportStarAs.ts b/tsc/testdata/tests/cases/compiler/importHelpersWithImportStarAs.ts index e4e97c35381ec..71130b5b90b37 100644 --- a/tsc/testdata/tests/cases/compiler/importHelpersWithImportStarAs.ts +++ b/tsc/testdata/tests/cases/compiler/importHelpersWithImportStarAs.ts @@ -1,6 +1,6 @@ // @importHelpers: true // @target: es2017 -// @module: commonjs,system,amd,es2015,es2020 +// @module: commonjs,system,es2015,es2020 // @esModuleInterop: true,false // @filename: a.ts export class A { } diff --git a/tsc/testdata/tests/cases/compiler/importHelpersWithLocalCollisions.ts b/tsc/testdata/tests/cases/compiler/importHelpersWithLocalCollisions.ts index 3994e1bb03054..68ddbc15c16e3 100644 --- a/tsc/testdata/tests/cases/compiler/importHelpersWithLocalCollisions.ts +++ b/tsc/testdata/tests/cases/compiler/importHelpersWithLocalCollisions.ts @@ -1,6 +1,6 @@ // @importHelpers: true // @target: es6 -// @module: commonjs, system, amd, es2015 +// @module: commonjs, system, es2015 // @experimentalDecorators: true // @filename: a.ts // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/importShadowsGlobalName.ts b/tsc/testdata/tests/cases/compiler/importShadowsGlobalName.ts index f38ede20020c6..4759adc7e1ad2 100644 --- a/tsc/testdata/tests/cases/compiler/importShadowsGlobalName.ts +++ b/tsc/testdata/tests/cases/compiler/importShadowsGlobalName.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename:Foo.ts class Foo {} diff --git a/tsc/testdata/tests/cases/compiler/import_reference-exported-alias.ts b/tsc/testdata/tests/cases/compiler/import_reference-exported-alias.ts index 72be0f46b45ca..5f802228fb8ed 100644 --- a/tsc/testdata/tests/cases/compiler/import_reference-exported-alias.ts +++ b/tsc/testdata/tests/cases/compiler/import_reference-exported-alias.ts @@ -14,7 +14,7 @@ import Mod = App; export = Mod; // @Filename: file2.ts -// @module: amd +// @module: commonjs import appJs = require("file1"); import Services = appJs.Services; import UserServices = Services.UserServices; diff --git a/tsc/testdata/tests/cases/compiler/import_reference-to-type-alias.ts b/tsc/testdata/tests/cases/compiler/import_reference-to-type-alias.ts index 771ab84ec859a..33a451e2196d5 100644 --- a/tsc/testdata/tests/cases/compiler/import_reference-to-type-alias.ts +++ b/tsc/testdata/tests/cases/compiler/import_reference-to-type-alias.ts @@ -11,7 +11,7 @@ export namespace App { } // @Filename: file2.ts -// @module: amd +// @module: commonjs import appJs = require("file1"); import Services = appJs.App.Services; var x = new Services.UserServices().getUserName(); diff --git a/tsc/testdata/tests/cases/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.ts b/tsc/testdata/tests/cases/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.ts index 5f75c64798f03..4d7964b4b1b36 100644 --- a/tsc/testdata/tests/cases/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.ts +++ b/tsc/testdata/tests/cases/compiler/import_unneeded-require-when-referenecing-aliased-type-throug-array.ts @@ -8,7 +8,7 @@ declare module "ITest" { } // @Filename: a.ts -//@module: amd +//@module: commonjs /// import ITest = require('ITest'); var testData: ITest[]; diff --git a/tsc/testdata/tests/cases/compiler/import_var-referencing-an-imported-module-alias.ts b/tsc/testdata/tests/cases/compiler/import_var-referencing-an-imported-module-alias.ts index b66a8b53b3c83..150b82bd0a758 100644 --- a/tsc/testdata/tests/cases/compiler/import_var-referencing-an-imported-module-alias.ts +++ b/tsc/testdata/tests/cases/compiler/import_var-referencing-an-imported-module-alias.ts @@ -3,7 +3,7 @@ export class Host { } // @Filename: consumer.ts -// @module: amd +// @module: commonjs import host = require("host"); var hostVar = host; diff --git a/tsc/testdata/tests/cases/compiler/importedAliasesInTypePositions.ts b/tsc/testdata/tests/cases/compiler/importedAliasesInTypePositions.ts index a390ad7275061..c7ab12e223b5e 100644 --- a/tsc/testdata/tests/cases/compiler/importedAliasesInTypePositions.ts +++ b/tsc/testdata/tests/cases/compiler/importedAliasesInTypePositions.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module:amd +// @module:commonjs // @Filename: file1.ts export namespace elaborate.nested.mod.name { export class ReferredTo { @@ -9,7 +9,7 @@ export namespace elaborate.nested.mod.name { } // @Filename: file2.ts -// @module: amd +// @module: commonjs import RT_ALIAS = require("file1"); import ReferredTo = RT_ALIAS.elaborate.nested.mod.name.ReferredTo; diff --git a/tsc/testdata/tests/cases/compiler/importedModuleClassNameClash.ts b/tsc/testdata/tests/cases/compiler/importedModuleClassNameClash.ts index ae26822ee1fc3..de60d7fe0514d 100644 --- a/tsc/testdata/tests/cases/compiler/importedModuleClassNameClash.ts +++ b/tsc/testdata/tests/cases/compiler/importedModuleClassNameClash.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs import foo = m1; export namespace m1 { } diff --git a/tsc/testdata/tests/cases/compiler/importsInAmbientModules1.ts b/tsc/testdata/tests/cases/compiler/importsInAmbientModules1.ts index f9682336c90a3..cbcd0ace8b83c 100644 --- a/tsc/testdata/tests/cases/compiler/importsInAmbientModules1.ts +++ b/tsc/testdata/tests/cases/compiler/importsInAmbientModules1.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @filename: external.d.ts export var x: number diff --git a/tsc/testdata/tests/cases/compiler/importsInAmbientModules2.ts b/tsc/testdata/tests/cases/compiler/importsInAmbientModules2.ts index 943f8e7e0a5a5..2178e3ca58b32 100644 --- a/tsc/testdata/tests/cases/compiler/importsInAmbientModules2.ts +++ b/tsc/testdata/tests/cases/compiler/importsInAmbientModules2.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @filename: external.d.ts export default class C {} diff --git a/tsc/testdata/tests/cases/compiler/importsInAmbientModules3.ts b/tsc/testdata/tests/cases/compiler/importsInAmbientModules3.ts index 13cb7d0198086..d7dcb1f11fe8e 100644 --- a/tsc/testdata/tests/cases/compiler/importsInAmbientModules3.ts +++ b/tsc/testdata/tests/cases/compiler/importsInAmbientModules3.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @filename: external.d.ts export default class C {} diff --git a/tsc/testdata/tests/cases/compiler/instanceOfInExternalModules.ts b/tsc/testdata/tests/cases/compiler/instanceOfInExternalModules.ts index 3cd6e36feb10b..0106742db7862 100644 --- a/tsc/testdata/tests/cases/compiler/instanceOfInExternalModules.ts +++ b/tsc/testdata/tests/cases/compiler/instanceOfInExternalModules.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @Filename: instanceOfInExternalModules_require.ts export class Foo { foo: string; } diff --git a/tsc/testdata/tests/cases/compiler/interfaceDeclaration5.ts b/tsc/testdata/tests/cases/compiler/interfaceDeclaration5.ts index 70719cb1c030a..7dca6f2c0cb41 100644 --- a/tsc/testdata/tests/cases/compiler/interfaceDeclaration5.ts +++ b/tsc/testdata/tests/cases/compiler/interfaceDeclaration5.ts @@ -1,4 +1,4 @@ // @target: es2015 -//@module: amd +//@module: commonjs export interface I1 { item:string; } export class C1 { } diff --git a/tsc/testdata/tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts index 7c19e53ebe2e0..83810641524cc 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export enum weekend { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts index 2b40f2b57c1d4..4fad7a64c91e5 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export enum weekend { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts index cdf758f513fa2..f426aa40bf0de 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export function foo(x: number) { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts index c85e527fab0dd..0be87f2e09f28 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export namespace b { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts index 58607152bf8e5..4048475a1171c 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export namespace b { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts index 1e59674cc76ca..a798ee969554e 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export interface I { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts index 3c61d6baa0a1b..e90077b7a4f83 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export interface I { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts index 2554a437b7db6..4238ba6828dc8 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export interface I { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts index cf6ef7a25696f..3494d814d8edd 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export namespace b { diff --git a/tsc/testdata/tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts index 329c218c39529..2227b743fe6fa 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export var x = 10; diff --git a/tsc/testdata/tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts index 08c0e4ee679b7..55f755b0d802c 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export var x = 10; diff --git a/tsc/testdata/tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts b/tsc/testdata/tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts index 1237d01946864..c9125145f2c6a 100644 --- a/tsc/testdata/tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @declaration: true export namespace a { export var x = 10; diff --git a/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts b/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts index 7029acd13915f..38906d04a4ff0 100644 --- a/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts +++ b/tsc/testdata/tests/cases/compiler/jsFileCompilationRestParamJsDocFunction.ts @@ -1,6 +1,7 @@ // @target: es2015 // @allowJs: true -// @module: amd +// @outDir: out +// @module: commonjs // @filename: _apply.js /** diff --git a/tsc/testdata/tests/cases/compiler/keepImportsInDts1.ts b/tsc/testdata/tests/cases/compiler/keepImportsInDts1.ts index 7432ec9f257ab..2070eee4cb61c 100644 --- a/tsc/testdata/tests/cases/compiler/keepImportsInDts1.ts +++ b/tsc/testdata/tests/cases/compiler/keepImportsInDts1.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @declaration: true // @filename: c:/test.d.ts diff --git a/tsc/testdata/tests/cases/compiler/keepImportsInDts2.ts b/tsc/testdata/tests/cases/compiler/keepImportsInDts2.ts index 5879d3b4a45dd..9bca2bdc223bd 100644 --- a/tsc/testdata/tests/cases/compiler/keepImportsInDts2.ts +++ b/tsc/testdata/tests/cases/compiler/keepImportsInDts2.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @declaration: true // @filename: folder/test.ts diff --git a/tsc/testdata/tests/cases/compiler/memberAccessMustUseModuleInstances.ts b/tsc/testdata/tests/cases/compiler/memberAccessMustUseModuleInstances.ts index 08a9791637d15..57c937c354c39 100644 --- a/tsc/testdata/tests/cases/compiler/memberAccessMustUseModuleInstances.ts +++ b/tsc/testdata/tests/cases/compiler/memberAccessMustUseModuleInstances.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: memberAccessMustUseModuleInstances_0.ts export class Promise { static timeout(delay: number): Promise { diff --git a/tsc/testdata/tests/cases/compiler/mergedDeclarations6.ts b/tsc/testdata/tests/cases/compiler/mergedDeclarations6.ts index ed5705e8397a1..547d0614bc510 100644 --- a/tsc/testdata/tests/cases/compiler/mergedDeclarations6.ts +++ b/tsc/testdata/tests/cases/compiler/mergedDeclarations6.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @filename: a.ts export class A { diff --git a/tsc/testdata/tests/cases/compiler/moduleAliasAsFunctionArgument.ts b/tsc/testdata/tests/cases/compiler/moduleAliasAsFunctionArgument.ts index 2b5302b3904e8..56ce055d8185b 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAliasAsFunctionArgument.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAliasAsFunctionArgument.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: moduleAliasAsFunctionArgument_0.ts export var x: number; diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationCollidingNamesInAugmentation1.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationCollidingNamesInAugmentation1.ts index 54ce0717d7d4d..3c98075869487 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationCollidingNamesInAugmentation1.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationCollidingNamesInAugmentation1.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @declaration: true // @filename: map1.ts diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports1.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports1.ts index 185f22d223217..03718841c404c 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports1.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports1.ts @@ -1,6 +1,7 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @declaration: true +// @outDir: out // @filename: a.ts export class A {} diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports2.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports2.ts index a0469f01f952f..1aa186993ad83 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports2.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports2.ts @@ -1,6 +1,7 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @declaration: true +// @outDir: out // @filename: a.ts export class A {} diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports3.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports3.ts index a76bde6d84949..935854df040bd 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports3.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports3.ts @@ -1,6 +1,7 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @declaration: true +// @outDir: out // @filename: a.ts export class A {} diff --git a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports4.ts b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports4.ts index a902680882533..33b61c048131e 100644 --- a/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports4.ts +++ b/tsc/testdata/tests/cases/compiler/moduleAugmentationsImports4.ts @@ -1,6 +1,7 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @declaration: true +// @outDir: out // @filename: a.ts export class A {} diff --git a/tsc/testdata/tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts b/tsc/testdata/tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts index a7444e782612d..1a74a6aaac405 100644 --- a/tsc/testdata/tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts +++ b/tsc/testdata/tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: moduleImportedForTypeArgumentPosition_0.ts export interface M2C { } diff --git a/tsc/testdata/tests/cases/compiler/moduleMergeConstructor.ts b/tsc/testdata/tests/cases/compiler/moduleMergeConstructor.ts index 38de9e4dea789..d5322d2b223a8 100644 --- a/tsc/testdata/tests/cases/compiler/moduleMergeConstructor.ts +++ b/tsc/testdata/tests/cases/compiler/moduleMergeConstructor.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @filename: foo.d.ts declare module "foo" { diff --git a/tsc/testdata/tests/cases/compiler/objectIndexer.ts b/tsc/testdata/tests/cases/compiler/objectIndexer.ts index 08a2c25b093db..e8d782e6ccd7d 100644 --- a/tsc/testdata/tests/cases/compiler/objectIndexer.ts +++ b/tsc/testdata/tests/cases/compiler/objectIndexer.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export interface Callback { (value: any): void; } diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution2_classic.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution2_classic.ts index 37be368024675..662312a7803ac 100644 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution2_classic.ts +++ b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution2_classic.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @traceResolution: true // baseurl is defined in tsconfig.json diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution3_classic.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution3_classic.ts index ca3383ea28008..d55b7aeb50eca 100644 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution3_classic.ts +++ b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution3_classic.ts @@ -1,6 +1,6 @@ // @target: es2015 // @moduleResolution: classic -// @module: amd +// @module: commonjs // @baseUrl: c:/root // @traceResolution: true diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution4_classic.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution4_classic.ts index fcd67b6ef5caa..9a28f32fe6516 100644 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution4_classic.ts +++ b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution4_classic.ts @@ -1,6 +1,6 @@ // @target: es2015 // @moduleResolution: classic -// @module: amd +// @module: commonjs // @traceResolution: true // baseUrl set via command line diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution5_classic.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution5_classic.ts index d100afeed22ef..9180af591fe6a 100644 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution5_classic.ts +++ b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution5_classic.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @traceResolution: true // paths is defined in tsconfig.json diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution6_classic.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution6_classic.ts index e3b5e869b1774..4339ef28f959f 100644 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution6_classic.ts +++ b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution6_classic.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @traceResolution: true // @filename: c:/root/src/tsconfig.json diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution7_classic.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution7_classic.ts index 26ca3c9002a47..f9dc3cd87474c 100644 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution7_classic.ts +++ b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution7_classic.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @traceResolution: true // @filename: c:/root/src/tsconfig.json diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution8_classic.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution8_classic.ts index a2b2b3b0f5360..3df48f023db3f 100644 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution8_classic.ts +++ b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution8_classic.ts @@ -1,6 +1,6 @@ // @target: es2015 // @moduleResolution: classic -// @module: amd +// @module: commonjs // @traceResolution: true // @filename: c:/root/tsconfig.json diff --git a/tsc/testdata/tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts b/tsc/testdata/tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts index 1694fcda5b43e..8eb8834b5bc04 100644 --- a/tsc/testdata/tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts +++ b/tsc/testdata/tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true export var x = 1; // Makes this an external module interface Iterator { x: T } diff --git a/tsc/testdata/tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts b/tsc/testdata/tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts index f07d070a9264f..1011fe546d5b8 100644 --- a/tsc/testdata/tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts +++ b/tsc/testdata/tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs //@declaration: true export interface A { f1(callback: (p: T) => any); diff --git a/tsc/testdata/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts b/tsc/testdata/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts index 0dd48a526a9a2..3ebb3c22d79ec 100644 --- a/tsc/testdata/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts +++ b/tsc/testdata/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true export = Foo; diff --git a/tsc/testdata/tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts b/tsc/testdata/tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts index 51d89d5e41e49..0de505d5b8dd1 100644 --- a/tsc/testdata/tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts +++ b/tsc/testdata/tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true export class A{ constructor(callback: (self: A) => void) { diff --git a/tsc/testdata/tests/cases/compiler/privacyGetter.ts b/tsc/testdata/tests/cases/compiler/privacyGetter.ts index b0d28e88c640c..b2d7f1254c7de 100644 --- a/tsc/testdata/tests/cases/compiler/privacyGetter.ts +++ b/tsc/testdata/tests/cases/compiler/privacyGetter.ts @@ -1,5 +1,5 @@ // @target: ES5, ES2015 -//@module: amd +//@module: commonjs export namespace m1 { export class C1_public { private f1() { diff --git a/tsc/testdata/tests/cases/compiler/privacyGloFunc.ts b/tsc/testdata/tests/cases/compiler/privacyGloFunc.ts index b70840f4be945..edd4fb3bb7eaa 100644 --- a/tsc/testdata/tests/cases/compiler/privacyGloFunc.ts +++ b/tsc/testdata/tests/cases/compiler/privacyGloFunc.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export namespace m1 { export class C1_public { private f1() { diff --git a/tsc/testdata/tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts b/tsc/testdata/tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts index 9a29093d31bec..50c48ecbbdc19 100644 --- a/tsc/testdata/tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts +++ b/tsc/testdata/tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true // private elements namespace m_private { diff --git a/tsc/testdata/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts b/tsc/testdata/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts index 7a7138c441715..18cc95b35aed6 100644 --- a/tsc/testdata/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts +++ b/tsc/testdata/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true // private elements namespace m_private { diff --git a/tsc/testdata/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts b/tsc/testdata/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts index 2f51481ff7c8a..a0b6d44c1227e 100644 --- a/tsc/testdata/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts +++ b/tsc/testdata/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs //@declaration: true // private elements diff --git a/tsc/testdata/tests/cases/compiler/privatePropertyUsingObjectType.ts b/tsc/testdata/tests/cases/compiler/privatePropertyUsingObjectType.ts index b0f9346febd4e..bcd35f01e494a 100644 --- a/tsc/testdata/tests/cases/compiler/privatePropertyUsingObjectType.ts +++ b/tsc/testdata/tests/cases/compiler/privatePropertyUsingObjectType.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs export class FilterManager { private _filterProviders: { index: IFilterProvider; }; private _filterProviders2: { [index: number]: IFilterProvider; }; diff --git a/tsc/testdata/tests/cases/compiler/relativeNamesInClassicResolution.ts b/tsc/testdata/tests/cases/compiler/relativeNamesInClassicResolution.ts index c6efea5d319b3..e57a8781952b5 100644 --- a/tsc/testdata/tests/cases/compiler/relativeNamesInClassicResolution.ts +++ b/tsc/testdata/tests/cases/compiler/relativeNamesInClassicResolution.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module:amd +// @module:commonjs // @filename: somefolder/a.ts import {x} from "./b" diff --git a/tsc/testdata/tests/cases/compiler/requireEmitSemicolon.ts b/tsc/testdata/tests/cases/compiler/requireEmitSemicolon.ts index 43b6bbdcd1fc7..f9cbdc47cc42c 100644 --- a/tsc/testdata/tests/cases/compiler/requireEmitSemicolon.ts +++ b/tsc/testdata/tests/cases/compiler/requireEmitSemicolon.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs // @Filename: requireEmitSemicolon_0.ts export namespace Models { export class Person { diff --git a/tsc/testdata/tests/cases/compiler/sourceMapValidationExportAssignment.ts b/tsc/testdata/tests/cases/compiler/sourceMapValidationExportAssignment.ts index 0ed8f66498b8b..8fd9f66e557cc 100644 --- a/tsc/testdata/tests/cases/compiler/sourceMapValidationExportAssignment.ts +++ b/tsc/testdata/tests/cases/compiler/sourceMapValidationExportAssignment.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs // @sourcemap: true class a { public c; diff --git a/tsc/testdata/tests/cases/compiler/topLevelExports.ts b/tsc/testdata/tests/cases/compiler/topLevelExports.ts index b8c0ddf3a0782..0ba6de92417a6 100644 --- a/tsc/testdata/tests/cases/compiler/topLevelExports.ts +++ b/tsc/testdata/tests/cases/compiler/topLevelExports.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs export var foo = 3; function log(n:number) { return n;} diff --git a/tsc/testdata/tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts b/tsc/testdata/tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts index 9ab0a199ab50e..c9f7f218ce7cb 100644 --- a/tsc/testdata/tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts +++ b/tsc/testdata/tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts @@ -2,7 +2,7 @@ // @filename: tsconfig.json { "compilerOptions": { - "module": "AmD" + "module": "CoMmOnJs" } } @@ -14,4 +14,4 @@ import Answer from "./other.js"; const x = 10 + Answer; export { x -}; \ No newline at end of file +}; diff --git a/tsc/testdata/tests/cases/compiler/typeAliasDeclarationEmit2.ts b/tsc/testdata/tests/cases/compiler/typeAliasDeclarationEmit2.ts index 411d1a3fbfb09..bd06bdae52ffb 100644 --- a/tsc/testdata/tests/cases/compiler/typeAliasDeclarationEmit2.ts +++ b/tsc/testdata/tests/cases/compiler/typeAliasDeclarationEmit2.ts @@ -1,5 +1,5 @@ // @target: ES5, ES2015 -// @module: AMD +// @module: commonjs // @declaration: true export type A = { value: a }; \ No newline at end of file diff --git a/tsc/testdata/tests/cases/compiler/typeParameterCompatibilityAccrossDeclarations.ts b/tsc/testdata/tests/cases/compiler/typeParameterCompatibilityAccrossDeclarations.ts index 8adec131a0f83..493e9eb0e0b22 100644 --- a/tsc/testdata/tests/cases/compiler/typeParameterCompatibilityAccrossDeclarations.ts +++ b/tsc/testdata/tests/cases/compiler/typeParameterCompatibilityAccrossDeclarations.ts @@ -1,5 +1,5 @@ // @target: es2015 -//@module: amd +//@module: commonjs var a = { x: function (y: T): T { return null; } } diff --git a/tsc/testdata/tests/cases/compiler/typeResolution.ts b/tsc/testdata/tests/cases/compiler/typeResolution.ts index 8e91331636209..0a58baec27a9c 100644 --- a/tsc/testdata/tests/cases/compiler/typeResolution.ts +++ b/tsc/testdata/tests/cases/compiler/typeResolution.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs // @sourcemap: true export namespace TopLevelModule1 { export namespace SubModule1 { diff --git a/tsc/testdata/tests/cases/compiler/varArgsOnConstructorTypes.ts b/tsc/testdata/tests/cases/compiler/varArgsOnConstructorTypes.ts index 224a6721ce20f..71bfa1cb8840e 100644 --- a/tsc/testdata/tests/cases/compiler/varArgsOnConstructorTypes.ts +++ b/tsc/testdata/tests/cases/compiler/varArgsOnConstructorTypes.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs export class A { constructor(ctor) { } } diff --git a/tsc/testdata/tests/cases/compiler/withExportDecl.ts b/tsc/testdata/tests/cases/compiler/withExportDecl.ts index 342609c93454a..dc60bc7258a28 100644 --- a/tsc/testdata/tests/cases/compiler/withExportDecl.ts +++ b/tsc/testdata/tests/cases/compiler/withExportDecl.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs // @declaration: true var simpleVar; export var exportedSimpleVar; diff --git a/tsc/testdata/tests/cases/compiler/withImportDecl.ts b/tsc/testdata/tests/cases/compiler/withImportDecl.ts index 116b7c71b7401..6bc0d7d1a70a0 100644 --- a/tsc/testdata/tests/cases/compiler/withImportDecl.ts +++ b/tsc/testdata/tests/cases/compiler/withImportDecl.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -//@module: amd +//@module: commonjs // @declaration: true // @Filename: withImportDecl_0.ts export class A { foo: string; } diff --git a/tsc/testdata/tests/cases/conformance/ambient/ambientExternalModuleMerging.ts b/tsc/testdata/tests/cases/conformance/ambient/ambientExternalModuleMerging.ts index f31a71846b168..d7597c2c4e232 100644 --- a/tsc/testdata/tests/cases/conformance/ambient/ambientExternalModuleMerging.ts +++ b/tsc/testdata/tests/cases/conformance/ambient/ambientExternalModuleMerging.ts @@ -1,6 +1,6 @@ // @target: es2015 //@filename: ambientExternalModuleMerging_use.ts -//@module: amd +//@module: commonjs import M = require("M"); // Should be strings var x = M.x; diff --git a/tsc/testdata/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts b/tsc/testdata/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts index e23f1261a4bac..3d6d0d4308853 100644 --- a/tsc/testdata/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts +++ b/tsc/testdata/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs export declare var x; export declare function f(); export declare class C { } diff --git a/tsc/testdata/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts b/tsc/testdata/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts index a50711f3f4489..1d9fecc49306a 100644 --- a/tsc/testdata/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts +++ b/tsc/testdata/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: commonjs, es2015, es2020, es2022, UMD, AMD, System, esnext +// @module: commonjs, es2015, es2020, es2022, UMD, System, esnext export class C { static x: number; diff --git a/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace1.ts b/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace1.ts index c3fc309269bed..a68d04933f570 100644 --- a/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace1.ts +++ b/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace1.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: esnext, es2015, commonjs, amd, system, umd +// @module: esnext, es2015, commonjs, system, umd // @filename: 0.ts // @declaration: true export const a = 1; diff --git a/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace2.ts b/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace2.ts index 70d95e3900adb..68a5d3a289b68 100644 --- a/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace2.ts +++ b/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace2.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: esnext, es2015, commonjs, amd, system, umd +// @module: esnext, es2015, commonjs, system, umd // @filename: 0.ts // @declaration: true // @esModuleInterop: true diff --git a/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace3.ts b/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace3.ts index 5a731c237ea56..8ab6c15b1e281 100644 --- a/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace3.ts +++ b/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace3.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: esnext, es2015, commonjs, amd, system, umd +// @module: esnext, es2015, commonjs, system, umd // @filename: 0.ts // @declaration: true // @esModuleInterop: true diff --git a/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace4.ts b/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace4.ts index a84ae343eeb85..1f4ad623deaf3 100644 --- a/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace4.ts +++ b/tsc/testdata/tests/cases/conformance/es2020/modules/exportAsNamespace4.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: esnext, es2015, commonjs, amd, system, umd +// @module: esnext, es2015, commonjs, system, umd // @filename: 0.ts // @declaration: true // @esModuleInterop: true diff --git a/tsc/testdata/tests/cases/conformance/es2022/arbitraryModuleNamespaceIdentifiers/arbitraryModuleNamespaceIdentifiers_module.ts b/tsc/testdata/tests/cases/conformance/es2022/arbitraryModuleNamespaceIdentifiers/arbitraryModuleNamespaceIdentifiers_module.ts index e69f71ef71794..8eb2a886a6563 100644 --- a/tsc/testdata/tests/cases/conformance/es2022/arbitraryModuleNamespaceIdentifiers/arbitraryModuleNamespaceIdentifiers_module.ts +++ b/tsc/testdata/tests/cases/conformance/es2022/arbitraryModuleNamespaceIdentifiers/arbitraryModuleNamespaceIdentifiers_module.ts @@ -1,4 +1,4 @@ -//@module: * +//@module: *, -amd //@target: ES2022 //@declaration: true diff --git a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentCircularModules.ts b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentCircularModules.ts index b63db4ab68728..176c769603da5 100644 --- a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentCircularModules.ts +++ b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentCircularModules.ts @@ -1,6 +1,6 @@ // @target: es2015 // @strict: false -// @module: amd +// @module: commonjs // @Filename: foo_0.ts import foo1 = require('./foo_1'); namespace Foo { diff --git a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentMergedInterface.ts b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentMergedInterface.ts index b4650ec92909c..7a7a313564ded 100644 --- a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentMergedInterface.ts +++ b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentMergedInterface.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @Filename: foo_0.ts interface Foo { (a: string): void; diff --git a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelClodule.ts b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelClodule.ts index f68e2d4e160e5..530eacf93bed5 100644 --- a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelClodule.ts +++ b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelClodule.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @Filename: foo_0.ts class Foo { test = "test"; diff --git a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelEnumdule.ts b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelEnumdule.ts index 52a86b874a157..c6902049c98ca 100644 --- a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelEnumdule.ts +++ b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelEnumdule.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @Filename: foo_0.ts enum foo { red, green, blue diff --git a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelFundule.ts b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelFundule.ts index 1da2a08078d9c..dfca53016d846 100644 --- a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelFundule.ts +++ b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelFundule.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @Filename: foo_0.ts function foo() { return "test"; diff --git a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelIdentifier.ts b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelIdentifier.ts index c972a635f5148..77abc3e3cfa10 100644 --- a/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelIdentifier.ts +++ b/tsc/testdata/tests/cases/conformance/externalModules/exportAssignmentTopLevelIdentifier.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @Filename: foo_0.ts namespace Foo { export var answer = 42; diff --git a/tsc/testdata/tests/cases/conformance/externalModules/importImportOnlyModule.ts b/tsc/testdata/tests/cases/conformance/externalModules/importImportOnlyModule.ts index 8405954d635ec..e14b0161f56e3 100644 --- a/tsc/testdata/tests/cases/conformance/externalModules/importImportOnlyModule.ts +++ b/tsc/testdata/tests/cases/conformance/externalModules/importImportOnlyModule.ts @@ -1,5 +1,5 @@ // @target: es2015 -// @module: amd +// @module: commonjs // @Filename: foo_0.ts export class C1 { m1 = 42; diff --git a/tsc/testdata/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts b/tsc/testdata/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts index 20c7cf5be17a5..cb99eb306c238 100644 --- a/tsc/testdata/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts +++ b/tsc/testdata/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts @@ -1,5 +1,5 @@ // @target: es2015 // @preserveValueImports: true -// @module: amd,system,commonjs,es2015 +// @module: system,commonjs,es2015 // @noTypesAndSymbols: true export {}; diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxElementResolution17.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxElementResolution17.tsx index f48a843cde24f..d6961cdb8b42f 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxElementResolution17.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxElementResolution17.tsx @@ -1,6 +1,6 @@ // @target: es2015 //@jsx: preserve -//@module: amd +//@module: commonjs //@filename: file.tsx declare namespace JSX { diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx index b0d0c4beaec4a..5cbc21a092af6 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx @@ -1,4 +1,4 @@ -//@module: amd +//@module: commonjs //@jsx: preserve //@target: ES5, ES2015 diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx index d48a3c45ad639..fd6b63eed10bd 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx @@ -1,4 +1,4 @@ -//@module: amd +//@module: commonjs //@jsx: preserve //@target: ES5, ES2015 diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx index 01fc5e76ba11a..1674fa70e4237 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx @@ -1,6 +1,6 @@ // @target: es2015 //@jsx: preserve -//@module: amd +//@module: commonjs //@filename: file.tsx declare namespace JSX { diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxSfcReturnNull.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxSfcReturnNull.tsx index 0867596b6513d..1032ceef02134 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxSfcReturnNull.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxSfcReturnNull.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxSfcReturnNullStrictNullChecks.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxSfcReturnNullStrictNullChecks.tsx index 16fd6c07d7bfc..afe656f86ca39 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxSfcReturnNullStrictNullChecks.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxSfcReturnNullStrictNullChecks.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @strictNullChecks: true // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload1.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload1.tsx index f6dee69dffc99..94948b740f4e3 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload1.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload1.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload2.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload2.tsx index 90431a3daa65d..699c9f5c41a59 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload2.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload2.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload3.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload3.tsx index a1cc0056d94c2..33dce5b45aef9 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload3.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentOverload3.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter1.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter1.tsx index 07b59dd1a30f7..02723459b77bf 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter1.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter1.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter2.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter2.tsx index 58e7d0abb04f7..dae6b40953bed 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter2.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentWithDefaultTypeParameter2.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponents3.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponents3.tsx index 7dd353659f33e..d1a84efcce38a 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponents3.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponents3.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments1.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments1.tsx index a173875b171ee..2077f8e2136ac 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments1.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments1.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true // @lib: es5 /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments2.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments2.tsx index 4a2641ed02c52..ae69d9a567c91 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments2.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments2.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true // @lib: es5 /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments3.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments3.tsx index b3ab6f6977fc4..0b5ce75690bbf 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments3.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments3.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments5.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments5.tsx index cf89a954429b1..c9d0ee9109788 100644 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments5.tsx +++ b/tsc/testdata/tests/cases/conformance/jsx/tsxStatelessFunctionComponentsWithTypeArguments5.tsx @@ -1,7 +1,7 @@ // @target: es2015 // @filename: file.tsx // @jsx: preserve -// @module: amd +// @module: commonjs // @skipLibCheck: true /// diff --git a/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.1.ts b/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.1.ts index fe7e2b6502cf5..29bdc430c0e8a 100644 --- a/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.1.ts +++ b/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.1.ts @@ -1,6 +1,6 @@ // @target: es2022 // @lib: esnext,dom -// @module: commonjs,system,esnext,amd +// @module: commonjs,system,esnext // @noTypesAndSymbols: true // @noEmitHelpers: true diff --git a/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.2.ts b/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.2.ts index bcef291f55a8c..ce24d735d0e62 100644 --- a/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.2.ts +++ b/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.2.ts @@ -1,6 +1,6 @@ // @target: es2022 // @lib: esnext,dom -// @module: commonjs,amd +// @module: commonjs // @noTypesAndSymbols: true // @noEmitHelpers: true diff --git a/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.3.ts b/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.3.ts index 2804f3e4a75b2..6bcb43bbc36c3 100644 --- a/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.3.ts +++ b/tsc/testdata/tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.3.ts @@ -1,6 +1,6 @@ // @target: es2022 // @lib: esnext,dom -// @module: commonjs,system,esnext,amd +// @module: commonjs,system,esnext // @noTypesAndSymbols: true // @noEmitHelpers: true From 5f3eef8f3c29225f52c67d8c75f67b7b3be335ae Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2026 17:52:15 +0100 Subject: [PATCH 05/16] test: reject outFile and AMD test options --- tsc/internal/testrunner/compiler_runner.go | 2 -- tsc/internal/testutil/harnessutil/harnessutil.go | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tsc/internal/testrunner/compiler_runner.go b/tsc/internal/testrunner/compiler_runner.go index 39bae630829c8..624b586e0365f 100644 --- a/tsc/internal/testrunner/compiler_runner.go +++ b/tsc/internal/testrunner/compiler_runner.go @@ -113,12 +113,10 @@ var skippedTests = []string{ "noImplicitUseStrict_system.ts", "noImplicitUseStrict_es6.ts", "noImplicitUseStrict_commonjs.ts", - "noImplicitUseStrict_amd.ts", "noImplicitAnyIndexingSuppressed.ts", "excessPropertyErrorsSuppressed.ts", "moduleNoneDynamicImport.ts", "moduleNoneErrors.ts", - "moduleNoneOutFile.ts", "noErrorUsingImportExportModuleAugmentationInDeclarationFile1.ts", "noErrorUsingImportExportModuleAugmentationInDeclarationFile2.ts", "noErrorUsingImportExportModuleAugmentationInDeclarationFile3.ts", diff --git a/tsc/internal/testutil/harnessutil/harnessutil.go b/tsc/internal/testutil/harnessutil/harnessutil.go index b4209fb9bac47..880c5248fdccd 100644 --- a/tsc/internal/testutil/harnessutil/harnessutil.go +++ b/tsc/internal/testutil/harnessutil/harnessutil.go @@ -1236,8 +1236,10 @@ func GetConfigNameFromFileName(filename string) string { func SkipUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) { t.Helper() switch options.Module { - case core.ModuleKindAMD, core.ModuleKindUMD, core.ModuleKindSystem: + case core.ModuleKindUMD, core.ModuleKindSystem: t.Skipf("unsupported module kind %s", options.Module) + case core.ModuleKindAMD: + t.Fatalf("unsupported module kind %s", options.Module) } switch options.ModuleResolution { case core.ModuleResolutionKindNode10, core.ModuleResolutionKindClassic: @@ -1253,7 +1255,7 @@ func SkipUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) t.Skipf("unsupported baseUrl %s", options.BaseUrl) } if options.OutFile != "" { - t.Skipf("unsupported outFile %s", options.OutFile) + t.Fatalf("unsupported outFile %s", options.OutFile) } switch options.Target { case core.ScriptTargetES5: From 01644355ccc6cad4e62705501c040659de26ceb9 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 08:30:13 +0100 Subject: [PATCH 06/16] Keep the triple-slash comment emit coverage --- ...doNotEmitTripleSlashCommentsInEmptyFile.js | 17 +++++++ ...EmitTripleSlashCommentsInEmptyFile.symbols | 11 +++++ ...otEmitTripleSlashCommentsInEmptyFile.types | 11 +++++ .../compiler/doNotemitTripleSlashComments.js | 47 +++++++++++++++++++ .../doNotemitTripleSlashComments.symbols | 40 ++++++++++++++++ .../doNotemitTripleSlashComments.types | 43 +++++++++++++++++ ...doNotEmitTripleSlashCommentsInEmptyFile.ts | 10 ++++ .../compiler/doNotemitTripleSlashComments.ts | 35 ++++++++++++++ 8 files changed, 214 insertions(+) create mode 100644 tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.js create mode 100644 tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.types create mode 100644 tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.js create mode 100644 tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.symbols create mode 100644 tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.types create mode 100644 tsc/testdata/tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts create mode 100644 tsc/testdata/tests/cases/compiler/doNotemitTripleSlashComments.ts diff --git a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.js b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.js new file mode 100644 index 0000000000000..49e8e2ddd284d --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts] //// + +//// [file0.ts] + +//// [file1.ts] + +//// [file2.ts] +/// +/// + + +//// [file0.js] +"use strict"; +//// [file1.js] +"use strict"; +//// [file2.js] +"use strict"; diff --git a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.symbols b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.symbols new file mode 100644 index 0000000000000..2bc5b0ecab71e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.symbols @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts] //// + +=== file2.ts === + +/// +/// + +=== file0.ts === + +=== file1.ts === + diff --git a/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.types b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.types new file mode 100644 index 0000000000000..2bc5b0ecab71e --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/doNotEmitTripleSlashCommentsInEmptyFile.types @@ -0,0 +1,11 @@ +//// [tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts] //// + +=== file2.ts === + +/// +/// + +=== file0.ts === + +=== file1.ts === + diff --git a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.js b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.js new file mode 100644 index 0000000000000..46423f8360937 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.js @@ -0,0 +1,47 @@ +//// [tests/cases/compiler/doNotemitTripleSlashComments.ts] //// + +//// [file0.ts] +/// +/// +var x = 10; + +/// +var y = "hello"; + + +/// + +//// [file1.ts] +/// + +function foo() { } + + +/// + + +var z = "world"; + +//// [file2.ts] +/// + + +/// ==================================== + + +function bar() { } + + + + +//// [file0.js] +"use strict"; +var x = 10; +var y = "hello"; +//// [file1.js] +"use strict"; +function foo() { } +var z = "world"; +//// [file2.js] +"use strict"; +function bar() { } diff --git a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.symbols b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.symbols new file mode 100644 index 0000000000000..3926e135f5dd3 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.symbols @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/doNotemitTripleSlashComments.ts] //// + +=== file2.ts === +/// + + +/// ==================================== + + +function bar() { } +>bar : Symbol(bar, Decl(file2.ts, 0, 0)) + + + +=== file0.ts === +/// +/// +var x = 10; +>x : Symbol(x, Decl(file0.ts, 2, 3)) + +/// +var y = "hello"; +>y : Symbol(y, Decl(file0.ts, 5, 3)) + + +/// + +=== file1.ts === +/// + +function foo() { } +>foo : Symbol(foo, Decl(file1.ts, 0, 0)) + + +/// + + +var z = "world"; +>z : Symbol(z, Decl(file1.ts, 8, 3)) + diff --git a/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.types b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.types new file mode 100644 index 0000000000000..54e490821a528 --- /dev/null +++ b/tsc/testdata/baselines/reference/compiler/doNotemitTripleSlashComments.types @@ -0,0 +1,43 @@ +//// [tests/cases/compiler/doNotemitTripleSlashComments.ts] //// + +=== file2.ts === +/// + + +/// ==================================== + + +function bar() { } +>bar : () => void + + + +=== file0.ts === +/// +/// +var x = 10; +>x : number +>10 : 10 + +/// +var y = "hello"; +>y : string +>"hello" : "hello" + + +/// + +=== file1.ts === +/// + +function foo() { } +>foo : () => void + + +/// + + +var z = "world"; +>z : string +>"world" : "world" + diff --git a/tsc/testdata/tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts b/tsc/testdata/tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts new file mode 100644 index 0000000000000..d7bb3717dfa6b --- /dev/null +++ b/tsc/testdata/tests/cases/compiler/doNotEmitTripleSlashCommentsInEmptyFile.ts @@ -0,0 +1,10 @@ +// @target: es2015 +// @removeComments: true + +// @Filename: file0.ts + +// @Filename: file1.ts + +// @Filename: file2.ts +/// +/// diff --git a/tsc/testdata/tests/cases/compiler/doNotemitTripleSlashComments.ts b/tsc/testdata/tests/cases/compiler/doNotemitTripleSlashComments.ts new file mode 100644 index 0000000000000..bcbfcad47aed5 --- /dev/null +++ b/tsc/testdata/tests/cases/compiler/doNotemitTripleSlashComments.ts @@ -0,0 +1,35 @@ +// @target: es2015 +// @removeComments: true + +// @Filename: file0.ts +/// +/// +var x = 10; + +/// +var y = "hello"; + + +/// + +// @Filename: file1.ts +/// + +function foo() { } + + +/// + + +var z = "world"; + +// @Filename: file2.ts +/// + + +/// ==================================== + + +function bar() { } + + From 3007025a46b8b625ffbb7b92ac4850812137ac8c Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 08:31:44 +0100 Subject: [PATCH 07/16] Drop the duplicated classic path mapping test --- ...thMappingBasedModuleResolution2_classic.ts | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution2_classic.ts diff --git a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution2_classic.ts b/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution2_classic.ts deleted file mode 100644 index 662312a7803ac..0000000000000 --- a/tsc/testdata/tests/cases/compiler/pathMappingBasedModuleResolution2_classic.ts +++ /dev/null @@ -1,19 +0,0 @@ -// @target: es2015 -// @module: commonjs -// @traceResolution: true - -// baseurl is defined in tsconfig.json -// paths has errors - -// @filename: root/tsconfig.json -{ - "compilerOptions": { - "baseUrl": "./src", - "paths": { - "*1*": [ "*2*" ] - } - } -} - -// @filename: root/src/folder1/file1.ts -export var x = 1; \ No newline at end of file From 3b74e9dc65f59555e2fbb56c46a7b623176fb6ec Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 08:32:04 +0100 Subject: [PATCH 08/16] Remove duplicate export assignment source map coverage --- .../sourceMapValidationExportAssignment.js | 14 ------ ...sourceMapValidationExportAssignment.js.map | 3 -- ...apValidationExportAssignment.sourcemap.txt | 47 ------------------- ...ourceMapValidationExportAssignment.symbols | 12 ----- .../sourceMapValidationExportAssignment.types | 12 ----- .../sourceMapValidationExportAssignment.ts | 8 ---- 6 files changed, 96 deletions(-) delete mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js delete mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js.map delete mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.sourcemap.txt delete mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.symbols delete mode 100644 tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.types delete mode 100644 tsc/testdata/tests/cases/compiler/sourceMapValidationExportAssignment.ts diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js deleted file mode 100644 index bacdb23148efe..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js +++ /dev/null @@ -1,14 +0,0 @@ -//// [tests/cases/compiler/sourceMapValidationExportAssignment.ts] //// - -//// [sourceMapValidationExportAssignment.ts] -class a { - public c; -} -export = a; - -//// [sourceMapValidationExportAssignment.js] -"use strict"; -class a { -} -module.exports = a; -//# sourceMappingURL=sourceMapValidationExportAssignment.js.map \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js.map b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js.map deleted file mode 100644 index 0a90105397a29..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.js.map +++ /dev/null @@ -1,3 +0,0 @@ -//// [sourceMapValidationExportAssignment.js.map] -{"version":3,"file":"sourceMapValidationExportAssignment.js","sourceRoot":"","sources":["sourceMapValidationExportAssignment.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC;CAEN;AACD,iBAAS,CAAC,CAAC"} -//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KY2xhc3MgYSB7DQp9DQptb2R1bGUuZXhwb3J0cyA9IGE7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uRXhwb3J0QXNzaWdubWVudC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkV4cG9ydEFzc2lnbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRXhwb3J0QXNzaWdubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxDQUFDO0NBRU47QUFDRCxpQkFBUyxDQUFDLENBQUMifQ==,Y2xhc3MgYSB7CiAgICBwdWJsaWMgYzsKfQpleHBvcnQgPSBhOw== diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.sourcemap.txt b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.sourcemap.txt deleted file mode 100644 index b5d237b760722..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.sourcemap.txt +++ /dev/null @@ -1,47 +0,0 @@ -=================================================================== -JsFile: sourceMapValidationExportAssignment.js -mapUrl: sourceMapValidationExportAssignment.js.map -sourceRoot: -sources: sourceMapValidationExportAssignment.ts -=================================================================== -------------------------------------------------------------------- -emittedFile:sourceMapValidationExportAssignment.js -sourceFile:sourceMapValidationExportAssignment.ts -------------------------------------------------------------------- ->>>"use strict"; ->>>class a { -1 > -2 >^^^^^^ -3 > ^ -1 > -2 >class -3 > a -1 >Emitted(2, 1) Source(1, 1) + SourceIndex(0) -2 >Emitted(2, 7) Source(1, 7) + SourceIndex(0) -3 >Emitted(2, 8) Source(1, 8) + SourceIndex(0) ---- ->>>} -1 >^ -2 > ^^^^^^^^^^^^^^^^^^^-> -1 > { - > public c; - >} -1 >Emitted(3, 2) Source(3, 2) + SourceIndex(0) ---- ->>>module.exports = a; -1-> -2 >^^^^^^^^^^^^^^^^^ -3 > ^ -4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1-> - > -2 >export = -3 > a -4 > ; -1->Emitted(4, 1) Source(4, 1) + SourceIndex(0) -2 >Emitted(4, 18) Source(4, 10) + SourceIndex(0) -3 >Emitted(4, 19) Source(4, 11) + SourceIndex(0) -4 >Emitted(4, 20) Source(4, 12) + SourceIndex(0) ---- ->>>//# sourceMappingURL=sourceMapValidationExportAssignment.js.map \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.symbols b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.symbols deleted file mode 100644 index 78c4d17542ed6..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.symbols +++ /dev/null @@ -1,12 +0,0 @@ -//// [tests/cases/compiler/sourceMapValidationExportAssignment.ts] //// - -=== sourceMapValidationExportAssignment.ts === -class a { ->a : Symbol(a, Decl(sourceMapValidationExportAssignment.ts, 0, 0)) - - public c; ->c : Symbol(a.c, Decl(sourceMapValidationExportAssignment.ts, 0, 9)) -} -export = a; ->a : Symbol(a, Decl(sourceMapValidationExportAssignment.ts, 0, 0)) - diff --git a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.types b/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.types deleted file mode 100644 index 67c6f9a7129e0..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/sourceMapValidationExportAssignment.types +++ /dev/null @@ -1,12 +0,0 @@ -//// [tests/cases/compiler/sourceMapValidationExportAssignment.ts] //// - -=== sourceMapValidationExportAssignment.ts === -class a { ->a : a - - public c; ->c : any -} -export = a; ->a : a - diff --git a/tsc/testdata/tests/cases/compiler/sourceMapValidationExportAssignment.ts b/tsc/testdata/tests/cases/compiler/sourceMapValidationExportAssignment.ts deleted file mode 100644 index 8fd9f66e557cc..0000000000000 --- a/tsc/testdata/tests/cases/compiler/sourceMapValidationExportAssignment.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @target: es2015 -// @strict: false -//@module: commonjs -// @sourcemap: true -class a { - public c; -} -export = a; \ No newline at end of file From 62c5f229a2cd6dd9376603486965ba405e289f3d Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 08:47:12 +0100 Subject: [PATCH 09/16] Remove the stale using declaration baseline --- ...ionsTopLevelOfModule.2(module=commonjs).js | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 tsc/testdata/baselines/reference/conformance/usingDeclarationsTopLevelOfModule.2(module=commonjs).js diff --git a/tsc/testdata/baselines/reference/conformance/usingDeclarationsTopLevelOfModule.2(module=commonjs).js b/tsc/testdata/baselines/reference/conformance/usingDeclarationsTopLevelOfModule.2(module=commonjs).js deleted file mode 100644 index f9e2147667d2e..0000000000000 --- a/tsc/testdata/baselines/reference/conformance/usingDeclarationsTopLevelOfModule.2(module=commonjs).js +++ /dev/null @@ -1,29 +0,0 @@ -//// [tests/cases/conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsTopLevelOfModule.2.ts] //// - -//// [usingDeclarationsTopLevelOfModule.2.ts] -using z = { [Symbol.dispose]() {} }; - -const y = 2; - -console.log(y, z); -export = 4; - - -//// [usingDeclarationsTopLevelOfModule.2.js] -"use strict"; -var z, y, _default; -const env_1 = { stack: [], error: void 0, hasError: false }; -try { - z = __addDisposableResource(env_1, { [Symbol.dispose]() { } }, false); - y = 2; - console.log(y, z); - _default = 4; -} -catch (e_1) { - env_1.error = e_1; - env_1.hasError = true; -} -finally { - __disposeResources(env_1); -} -module.exports = _default; From 987c8e548d817424d7db848cff73d2b52b5020b2 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 08:49:08 +0100 Subject: [PATCH 10/16] Preserve CRLF endings in compiler fixtures --- .../compiler/deprecatedCompilerOptions2.ts | 6 +-- .../compiler/deprecatedCompilerOptions6.ts | 6 +-- .../emitHelpersWithLocalCollisions.ts | 2 +- .../moduleImportedForTypeArgumentPosition.ts | 2 +- .../tsconfigMapOptionsAreCaseInsensitive.ts | 4 +- .../compiler/varArgsOnConstructorTypes.ts | 46 +++++++++---------- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions2.ts b/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions2.ts index 1d8fe90d5f250..fc816dce87727 100644 --- a/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions2.ts +++ b/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions2.ts @@ -2,9 +2,9 @@ // @typeScriptVersion: 5.0 // @filename: /foo/tsconfig.json { - "compilerOptions": { - "module": "commonjs", - "target": "ES3", + "compilerOptions": { + "module": "commonjs", + "target": "ES3", "noImplicitUseStrict": true, "keyofStringsOnly": true, "suppressExcessPropertyErrors": true, diff --git a/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions6.ts b/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions6.ts index 432b1074da336..a79a24f97b6b9 100644 --- a/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions6.ts +++ b/tsc/testdata/tests/cases/compiler/deprecatedCompilerOptions6.ts @@ -1,9 +1,9 @@ // @typeScriptVersion: 5.0 // @filename: /foo/tsconfig.json { - "compilerOptions": { - "module": "commonjs", - "target": "ES3", + "compilerOptions": { + "module": "commonjs", + "target": "ES3", "noImplicitUseStrict": true, "keyofStringsOnly": true, "suppressExcessPropertyErrors": true, diff --git a/tsc/testdata/tests/cases/compiler/emitHelpersWithLocalCollisions.ts b/tsc/testdata/tests/cases/compiler/emitHelpersWithLocalCollisions.ts index f1aeaef0149d4..ce01cb5686ffa 100644 --- a/tsc/testdata/tests/cases/compiler/emitHelpersWithLocalCollisions.ts +++ b/tsc/testdata/tests/cases/compiler/emitHelpersWithLocalCollisions.ts @@ -1,5 +1,5 @@ // @target: es6 -// @module: *, -amd +// @module: *, -amd // @experimentalDecorators: true // @filename: a.ts // @noTypesAndSymbols: true diff --git a/tsc/testdata/tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts b/tsc/testdata/tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts index 1a74a6aaac405..37d5fc37f0845 100644 --- a/tsc/testdata/tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts +++ b/tsc/testdata/tests/cases/compiler/moduleImportedForTypeArgumentPosition.ts @@ -8,4 +8,4 @@ export interface M2C { } import M2 = require("moduleImportedForTypeArgumentPosition_0"); class C1{ } class Test1 extends C1 { -} +} diff --git a/tsc/testdata/tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts b/tsc/testdata/tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts index c9f7f218ce7cb..6f64588be7ee6 100644 --- a/tsc/testdata/tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts +++ b/tsc/testdata/tests/cases/compiler/tsconfigMapOptionsAreCaseInsensitive.ts @@ -2,7 +2,7 @@ // @filename: tsconfig.json { "compilerOptions": { - "module": "CoMmOnJs" + "module": "CoMmOnJs" } } @@ -14,4 +14,4 @@ import Answer from "./other.js"; const x = 10 + Answer; export { x -}; +}; diff --git a/tsc/testdata/tests/cases/compiler/varArgsOnConstructorTypes.ts b/tsc/testdata/tests/cases/compiler/varArgsOnConstructorTypes.ts index 71bfa1cb8840e..f6cc7d7f67041 100644 --- a/tsc/testdata/tests/cases/compiler/varArgsOnConstructorTypes.ts +++ b/tsc/testdata/tests/cases/compiler/varArgsOnConstructorTypes.ts @@ -1,26 +1,26 @@ // @target: es2015 // @strict: false //@module: commonjs -export class A { - constructor(ctor) { } -} - -export class B extends A { - private p1: number; - private p2: string; - - constructor(element: any, url: string) { - super(element); - this.p1 = element; - this.p2 = url; - } -} - -export interface I1 { - register(inputClass: new(...params: any[]) => A); - register(inputClass: { new (...params: any[]): A; }[]); -} - - -var reg: I1; -reg.register(B); +export class A { + constructor(ctor) { } +} + +export class B extends A { + private p1: number; + private p2: string; + + constructor(element: any, url: string) { + super(element); + this.p1 = element; + this.p2 = url; + } +} + +export interface I1 { + register(inputClass: new(...params: any[]) => A); + register(inputClass: { new (...params: any[]): A; }[]); +} + + +var reg: I1; +reg.register(B); From 1a68930ad90d2265db99faac40675987edbee8f8 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 08:51:06 +0100 Subject: [PATCH 11/16] Remove the duplicate synthetic default import test --- ...mportAllowSyntheticDefaultImports4_test.go | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 tsc/internal/fourslash/tests/importNameCodeFixNewImportAllowSyntheticDefaultImports4_test.go diff --git a/tsc/internal/fourslash/tests/importNameCodeFixNewImportAllowSyntheticDefaultImports4_test.go b/tsc/internal/fourslash/tests/importNameCodeFixNewImportAllowSyntheticDefaultImports4_test.go deleted file mode 100644 index a860c52768ee2..0000000000000 --- a/tsc/internal/fourslash/tests/importNameCodeFixNewImportAllowSyntheticDefaultImports4_test.go +++ /dev/null @@ -1,30 +0,0 @@ -package fourslash_test - -import ( - "testing" - - "github.com/microsoft/TypeScript/tsc/internal/fourslash" - "github.com/microsoft/TypeScript/tsc/internal/testutil" -) - -func TestImportNameCodeFixNewImportAllowSyntheticDefaultImports4(t *testing.T) { - t.Parallel() - defer testutil.RecoverAndFail(t, "Panic on fourslash test") - const content = `// @AllowSyntheticDefaultImports: false -// @Module: commonjs -// @Filename: a/f1.ts -[|export var x = 0; -bar/*0*/();|] -// @Filename: a/foo.d.ts -declare function bar(): number; -export = bar; -export as namespace bar;` - f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) - defer done() - f.VerifyImportFixAtPosition(t, []string{ - `import bar = require("./foo"); - -export var x = 0; -bar();`, - }, nil /*preferences*/) -} From 568f7cefc74aa5af08fd3c2cbfd4cc284c2d85f9 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 08:53:13 +0100 Subject: [PATCH 12/16] Retire the AMD-specific JSX emit test --- ...tsxPreserveEmit1(target=es2015).errors.txt | 39 --------------- .../tsxPreserveEmit1(target=es2015).js | 49 ------------------- .../tsxPreserveEmit1(target=es2015).symbols | 35 ------------- .../tsxPreserveEmit1(target=es2015).types | 37 -------------- .../conformance/jsx/tsxPreserveEmit1.tsx | 34 ------------- 5 files changed, 194 deletions(-) delete mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).errors.txt delete mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).js delete mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).symbols delete mode 100644 tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).types delete mode 100644 tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).errors.txt b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).errors.txt deleted file mode 100644 index f29dc7a565fad..0000000000000 --- a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).errors.txt +++ /dev/null @@ -1,39 +0,0 @@ -test.tsx(2,24): error TS2307: Cannot find module 'react' or its corresponding type declarations. -test.tsx(3,30): error TS2307: Cannot find module 'react-router' or its corresponding type declarations. - - -==== test.tsx (2 errors) ==== - // Should emit 'react-router' in the AMD dependency list - import React = require('react'); - ~~~~~~~ -!!! error TS2307: Cannot find module 'react' or its corresponding type declarations. - import ReactRouter = require('react-router'); - ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module 'react-router' or its corresponding type declarations. - - import Route = ReactRouter.Route; - - var routes1 = ; - - namespace M { - export var X: any; - } - namespace M { - // Should emit 'M.X' in both opening and closing tags - var y = ; - } - -==== react.d.ts (0 errors) ==== - declare module 'react' { - var x: any; - export = x; - } - - declare namespace ReactRouter { - var Route: any; - interface Thing { } - } - declare module 'react-router' { - export = ReactRouter; - } - \ No newline at end of file diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).js b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).js deleted file mode 100644 index 922a25b10ac83..0000000000000 --- a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).js +++ /dev/null @@ -1,49 +0,0 @@ -//// [tests/cases/conformance/jsx/tsxPreserveEmit1.tsx] //// - -//// [react.d.ts] -declare module 'react' { - var x: any; - export = x; -} - -declare namespace ReactRouter { - var Route: any; - interface Thing { } -} -declare module 'react-router' { - export = ReactRouter; -} - -//// [test.tsx] -// Should emit 'react-router' in the AMD dependency list -import React = require('react'); -import ReactRouter = require('react-router'); - -import Route = ReactRouter.Route; - -var routes1 = ; - -namespace M { - export var X: any; -} -namespace M { - // Should emit 'M.X' in both opening and closing tags - var y = ; -} - - -//// [test.jsx] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -// Should emit 'react-router' in the AMD dependency list -const React = require("react"); -const ReactRouter = require("react-router"); -var Route = ReactRouter.Route; -var routes1 = ; -var M; -(function (M) { -})(M || (M = {})); -(function (M) { - // Should emit 'M.X' in both opening and closing tags - var y = ; -})(M || (M = {})); diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).symbols b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).symbols deleted file mode 100644 index 1e42706598adf..0000000000000 --- a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).symbols +++ /dev/null @@ -1,35 +0,0 @@ -//// [tests/cases/conformance/jsx/tsxPreserveEmit1.tsx] //// - -=== test.tsx === -// Should emit 'react-router' in the AMD dependency list -import React = require('react'); ->React : Symbol(React, Decl(test.tsx, 0, 0)) - -import ReactRouter = require('react-router'); ->ReactRouter : Symbol(ReactRouter, Decl(test.tsx, 1, 32)) - -import Route = ReactRouter.Route; ->Route : Symbol(Route, Decl(test.tsx, 2, 45)) ->ReactRouter : Symbol(ReactRouter, Decl(test.tsx, 1, 32)) ->Route : Symbol(React) - -var routes1 = ; ->routes1 : Symbol(routes1, Decl(test.tsx, 6, 3)) ->Route : Symbol(Route, Decl(test.tsx, 2, 45)) - -namespace M { ->M : Symbol(M, Decl(test.tsx, 6, 24), Decl(test.tsx, 10, 1)) - - export var X: any; ->X : Symbol(X, Decl(test.tsx, 9, 11)) -} -namespace M { ->M : Symbol(M, Decl(test.tsx, 6, 24), Decl(test.tsx, 10, 1)) - - // Should emit 'M.X' in both opening and closing tags - var y = ; ->y : Symbol(y, Decl(test.tsx, 13, 4)) ->X : Symbol(X, Decl(test.tsx, 9, 11)) ->X : Symbol(X, Decl(test.tsx, 9, 11)) -} - diff --git a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).types b/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).types deleted file mode 100644 index cea9d9953400a..0000000000000 --- a/tsc/testdata/baselines/reference/conformance/tsxPreserveEmit1(target=es2015).types +++ /dev/null @@ -1,37 +0,0 @@ -//// [tests/cases/conformance/jsx/tsxPreserveEmit1.tsx] //// - -=== test.tsx === -// Should emit 'react-router' in the AMD dependency list -import React = require('react'); ->React : any - -import ReactRouter = require('react-router'); ->ReactRouter : any - -import Route = ReactRouter.Route; ->Route : any ->ReactRouter : any ->Route : any - -var routes1 = ; ->routes1 : any -> : any ->Route : any - -namespace M { ->M : typeof M - - export var X: any; ->X : any -} -namespace M { ->M : typeof M - - // Should emit 'M.X' in both opening and closing tags - var y = ; ->y : any -> : any ->X : any ->X : any -} - diff --git a/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx b/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx deleted file mode 100644 index 5cbc21a092af6..0000000000000 --- a/tsc/testdata/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx +++ /dev/null @@ -1,34 +0,0 @@ -//@module: commonjs -//@jsx: preserve -//@target: ES5, ES2015 - -//@Filename: react.d.ts -declare module 'react' { - var x: any; - export = x; -} - -declare namespace ReactRouter { - var Route: any; - interface Thing { } -} -declare module 'react-router' { - export = ReactRouter; -} - -//@Filename: test.tsx -// Should emit 'react-router' in the AMD dependency list -import React = require('react'); -import ReactRouter = require('react-router'); - -import Route = ReactRouter.Route; - -var routes1 = ; - -namespace M { - export var X: any; -} -namespace M { - // Should emit 'M.X' in both opening and closing tags - var y = ; -} From bbb82834605fd4efdfff5036861608cca8b74522 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 08:54:20 +0100 Subject: [PATCH 13/16] Remove duplicate destructuring module tests --- .../destructuringInVariableDeclarations3.js | 17 ----------------- ...destructuringInVariableDeclarations3.symbols | 10 ---------- .../destructuringInVariableDeclarations3.types | 12 ------------ .../destructuringInVariableDeclarations4.js | 17 ----------------- ...destructuringInVariableDeclarations4.symbols | 11 ----------- .../destructuringInVariableDeclarations4.types | 13 ------------- .../destructuringInVariableDeclarations3.ts | 6 ------ .../destructuringInVariableDeclarations4.ts | 7 ------- 8 files changed, 93 deletions(-) delete mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.js delete mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.symbols delete mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.types delete mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.js delete mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.symbols delete mode 100644 tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.types delete mode 100644 tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations3.ts delete mode 100644 tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations4.ts diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.js b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.js deleted file mode 100644 index 2e810fbfea48e..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.js +++ /dev/null @@ -1,17 +0,0 @@ -//// [tests/cases/compiler/destructuringInVariableDeclarations3.ts] //// - -//// [destructuringInVariableDeclarations3.ts] -export let { toString } = 1; -{ - let { toFixed } = 1; -} - - -//// [destructuringInVariableDeclarations3.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.toString = void 0; -({ toString: exports.toString } = 1); -{ - let { toFixed } = 1; -} diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.symbols b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.symbols deleted file mode 100644 index 491c508939779..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.symbols +++ /dev/null @@ -1,10 +0,0 @@ -//// [tests/cases/compiler/destructuringInVariableDeclarations3.ts] //// - -=== destructuringInVariableDeclarations3.ts === -export let { toString } = 1; ->toString : Symbol(toString, Decl(destructuringInVariableDeclarations3.ts, 0, 12)) -{ - let { toFixed } = 1; ->toFixed : Symbol(toFixed, Decl(destructuringInVariableDeclarations3.ts, 2, 9)) -} - diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.types b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.types deleted file mode 100644 index 17daad7f48cfd..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations3.types +++ /dev/null @@ -1,12 +0,0 @@ -//// [tests/cases/compiler/destructuringInVariableDeclarations3.ts] //// - -=== destructuringInVariableDeclarations3.ts === -export let { toString } = 1; ->toString : (radix?: number) => string ->1 : 1 -{ - let { toFixed } = 1; ->toFixed : (fractionDigits?: number) => string ->1 : 1 -} - diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.js b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.js deleted file mode 100644 index f244117cfeb19..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.js +++ /dev/null @@ -1,17 +0,0 @@ -//// [tests/cases/compiler/destructuringInVariableDeclarations4.ts] //// - -//// [destructuringInVariableDeclarations4.ts] -let { toString } = 1; -{ - let { toFixed } = 1; -} -export {}; - - -//// [destructuringInVariableDeclarations4.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -let { toString } = 1; -{ - let { toFixed } = 1; -} diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.symbols b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.symbols deleted file mode 100644 index 2cbeabd770475..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.symbols +++ /dev/null @@ -1,11 +0,0 @@ -//// [tests/cases/compiler/destructuringInVariableDeclarations4.ts] //// - -=== destructuringInVariableDeclarations4.ts === -let { toString } = 1; ->toString : Symbol(toString, Decl(destructuringInVariableDeclarations4.ts, 0, 5)) -{ - let { toFixed } = 1; ->toFixed : Symbol(toFixed, Decl(destructuringInVariableDeclarations4.ts, 2, 9)) -} -export {}; - diff --git a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.types b/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.types deleted file mode 100644 index 5e2bfa384b308..0000000000000 --- a/tsc/testdata/baselines/reference/compiler/destructuringInVariableDeclarations4.types +++ /dev/null @@ -1,13 +0,0 @@ -//// [tests/cases/compiler/destructuringInVariableDeclarations4.ts] //// - -=== destructuringInVariableDeclarations4.ts === -let { toString } = 1; ->toString : (radix?: number) => string ->1 : 1 -{ - let { toFixed } = 1; ->toFixed : (fractionDigits?: number) => string ->1 : 1 -} -export {}; - diff --git a/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations3.ts b/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations3.ts deleted file mode 100644 index 275564c07c59d..0000000000000 --- a/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations3.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @target: es6 -// @module: commonjs -export let { toString } = 1; -{ - let { toFixed } = 1; -} diff --git a/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations4.ts b/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations4.ts deleted file mode 100644 index 07190dddd5211..0000000000000 --- a/tsc/testdata/tests/cases/compiler/destructuringInVariableDeclarations4.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @target: es6 -// @module: commonjs -let { toString } = 1; -{ - let { toFixed } = 1; -} -export {}; From cb615cbf0c028ce189ed068b838f1678dec403ed Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 09:07:53 +0100 Subject: [PATCH 14/16] Remove the last legacy outFile fixture --- tsc/internal/testrunner/compiler_runner.go | 1 - tsc/testdata/tests/cases/compiler/isolatedModulesOut.ts | 9 --------- 2 files changed, 10 deletions(-) delete mode 100644 tsc/testdata/tests/cases/compiler/isolatedModulesOut.ts diff --git a/tsc/internal/testrunner/compiler_runner.go b/tsc/internal/testrunner/compiler_runner.go index 624b586e0365f..06d3a939b7185 100644 --- a/tsc/internal/testrunner/compiler_runner.go +++ b/tsc/internal/testrunner/compiler_runner.go @@ -107,7 +107,6 @@ var skippedTests = []string{ "mappedTypeUnionConstraintInferences.ts", "lateBoundConstraintTypeChecksCorrectly.ts", "keyofDoesntContainSymbols.ts", - "isolatedModulesOut.ts", "noStrictGenericChecks.ts", "noImplicitUseStrict_umd.ts", "noImplicitUseStrict_system.ts", diff --git a/tsc/testdata/tests/cases/compiler/isolatedModulesOut.ts b/tsc/testdata/tests/cases/compiler/isolatedModulesOut.ts deleted file mode 100644 index 46455a051c1bf..0000000000000 --- a/tsc/testdata/tests/cases/compiler/isolatedModulesOut.ts +++ /dev/null @@ -1,9 +0,0 @@ -// @strict: false -// @isolatedModules: true -// @out:all.js -// @target: es6 - -// @filename: file1.ts -export var x; -// @filename: file2.ts -var y; \ No newline at end of file From 5a7da7f29fb0cac539cac0a0c78b3583dfc58f11 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 2 Sep 2026 09:16:09 +0100 Subject: [PATCH 15/16] Check compiler options in fourslash configs --- tsc/internal/fourslash/fourslash.go | 46 +++++++++++++++++++ .../testutil/harnessutil/harnessutil.go | 16 +++++-- 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/tsc/internal/fourslash/fourslash.go b/tsc/internal/fourslash/fourslash.go index fe61e1b5c4815..48f2f98df5b6f 100644 --- a/tsc/internal/fourslash/fourslash.go +++ b/tsc/internal/fourslash/fourslash.go @@ -13,6 +13,7 @@ import ( "unicode/utf8" "github.com/google/go-cmp/cmp" + "github.com/microsoft/TypeScript/tsc/internal/ast" "github.com/microsoft/TypeScript/tsc/internal/bundled" "github.com/microsoft/TypeScript/tsc/internal/collections" "github.com/microsoft/TypeScript/tsc/internal/contentmapper" @@ -29,6 +30,7 @@ import ( "github.com/microsoft/TypeScript/tsc/internal/ls/lsutil" "github.com/microsoft/TypeScript/tsc/internal/lsp" "github.com/microsoft/TypeScript/tsc/internal/lsp/lsproto" + "github.com/microsoft/TypeScript/tsc/internal/parser" "github.com/microsoft/TypeScript/tsc/internal/project" "github.com/microsoft/TypeScript/tsc/internal/spanmap" "github.com/microsoft/TypeScript/tsc/internal/stringutil" @@ -36,6 +38,8 @@ import ( "github.com/microsoft/TypeScript/tsc/internal/testutil/harnessutil" "github.com/microsoft/TypeScript/tsc/internal/testutil/lsptestutil" "github.com/microsoft/TypeScript/tsc/internal/testutil/tsbaseline" + "github.com/microsoft/TypeScript/tsc/internal/tsoptions" + "github.com/microsoft/TypeScript/tsc/internal/tsoptions/tsoptionstest" "github.com/microsoft/TypeScript/tsc/internal/tspath" "github.com/microsoft/TypeScript/tsc/internal/vfs" "github.com/microsoft/TypeScript/tsc/internal/vfs/iovfs" @@ -201,6 +205,10 @@ func newFourslash(t *testing.T, content string, options *FourslashOptions, testP testfs[filePath] = vfstest.Symlink(tspath.GetNormalizedAbsolutePath(target, rootDir)) } + for _, configOptions := range compilerOptionsFromConfigFiles(testData.Files, testData.Symlinks) { + harnessutil.FailOnUnsupportedCompilerOptions(t, configOptions) + } + // !!! use default compiler options for inferred project as base compilerOptions := &core.CompilerOptions{ SkipDefaultLibCheck: core.TSTrue, @@ -284,6 +292,44 @@ func newFourslash(t *testing.T, content string, options *FourslashOptions, testP } } +func compilerOptionsFromConfigFiles(files []*TestFileInfo, symlinks map[string]string) []*core.CompilerOptions { + var configFiles []*TestFileInfo + for _, file := range files { + if isConfigFile(file.fileName) { + configFiles = append(configFiles, file) + } + } + if len(configFiles) == 0 { + return nil + } + + compilerOptions := make([]*core.CompilerOptions, 0, len(configFiles)) + testFiles := make(map[string]string, len(files)) + for _, file := range files { + testFiles[tspath.GetNormalizedAbsolutePath(file.fileName, rootDir)] = file.Content + } + parseConfigHost := tsoptionstest.NewVFSParseConfigHostWithSymlinks(testFiles, symlinks, rootDir, true /*useCaseSensitiveFileNames*/) + for _, file := range configFiles { + configFileName := tspath.GetNormalizedAbsolutePath(file.fileName, rootDir) + configJson := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: configFileName, + Path: tspath.ToPath(configFileName, rootDir, true /*useCaseSensitiveFileNames*/), + }, file.Content, core.ScriptKindJSON) + config := tsoptions.ParseJsonSourceFileConfigFileContent( + &tsoptions.TsConfigSourceFile{SourceFile: configJson}, + parseConfigHost, + tspath.GetDirectoryPath(configFileName), + nil, /*existingOptions*/ + nil, /*existingOptionsRaw*/ + configFileName, + nil, /*resolutionStack*/ + nil, /*extendedConfigCache*/ + ) + compilerOptions = append(compilerOptions, config.ParsedConfig.CompilerOptions) + } + return compilerOptions +} + // handleServerRequest handles requests initiated by the server (e.g., workspace/configuration). func (f *FourslashTest) handleServerRequest(_ context.Context, req *lsproto.RequestMessage) *lsproto.ResponseMessage { switch req.Method { diff --git a/tsc/internal/testutil/harnessutil/harnessutil.go b/tsc/internal/testutil/harnessutil/harnessutil.go index 880c5248fdccd..f8ae9b6219510 100644 --- a/tsc/internal/testutil/harnessutil/harnessutil.go +++ b/tsc/internal/testutil/harnessutil/harnessutil.go @@ -1235,11 +1235,10 @@ func GetConfigNameFromFileName(filename string) string { func SkipUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) { t.Helper() + FailOnUnsupportedCompilerOptions(t, options) switch options.Module { case core.ModuleKindUMD, core.ModuleKindSystem: t.Skipf("unsupported module kind %s", options.Module) - case core.ModuleKindAMD: - t.Fatalf("unsupported module kind %s", options.Module) } switch options.ModuleResolution { case core.ModuleResolutionKindNode10, core.ModuleResolutionKindClassic: @@ -1254,9 +1253,6 @@ func SkipUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) if options.BaseUrl != "" { t.Skipf("unsupported baseUrl %s", options.BaseUrl) } - if options.OutFile != "" { - t.Fatalf("unsupported outFile %s", options.OutFile) - } switch options.Target { case core.ScriptTargetES5: t.Skipf("unsupported target %s", options.Target) @@ -1265,3 +1261,13 @@ func SkipUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) t.Skipf("alwaysStrict=false is unsupported") } } + +func FailOnUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) { + t.Helper() + if options.Module == core.ModuleKindAMD { + t.Fatalf("unsupported module kind %s", options.Module) + } + if options.OutFile != "" { + t.Fatalf("unsupported outFile %s", options.OutFile) + } +} From d10c04477314d613760fdf44272ff450f70fc3f0 Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 3 Sep 2026 10:26:27 +0100 Subject: [PATCH 16/16] chore: revert forslash config validation --- tsc/internal/fourslash/fourslash.go | 46 ------------------- .../testutil/harnessutil/harnessutil.go | 4 +- 2 files changed, 2 insertions(+), 48 deletions(-) diff --git a/tsc/internal/fourslash/fourslash.go b/tsc/internal/fourslash/fourslash.go index 48f2f98df5b6f..fe61e1b5c4815 100644 --- a/tsc/internal/fourslash/fourslash.go +++ b/tsc/internal/fourslash/fourslash.go @@ -13,7 +13,6 @@ import ( "unicode/utf8" "github.com/google/go-cmp/cmp" - "github.com/microsoft/TypeScript/tsc/internal/ast" "github.com/microsoft/TypeScript/tsc/internal/bundled" "github.com/microsoft/TypeScript/tsc/internal/collections" "github.com/microsoft/TypeScript/tsc/internal/contentmapper" @@ -30,7 +29,6 @@ import ( "github.com/microsoft/TypeScript/tsc/internal/ls/lsutil" "github.com/microsoft/TypeScript/tsc/internal/lsp" "github.com/microsoft/TypeScript/tsc/internal/lsp/lsproto" - "github.com/microsoft/TypeScript/tsc/internal/parser" "github.com/microsoft/TypeScript/tsc/internal/project" "github.com/microsoft/TypeScript/tsc/internal/spanmap" "github.com/microsoft/TypeScript/tsc/internal/stringutil" @@ -38,8 +36,6 @@ import ( "github.com/microsoft/TypeScript/tsc/internal/testutil/harnessutil" "github.com/microsoft/TypeScript/tsc/internal/testutil/lsptestutil" "github.com/microsoft/TypeScript/tsc/internal/testutil/tsbaseline" - "github.com/microsoft/TypeScript/tsc/internal/tsoptions" - "github.com/microsoft/TypeScript/tsc/internal/tsoptions/tsoptionstest" "github.com/microsoft/TypeScript/tsc/internal/tspath" "github.com/microsoft/TypeScript/tsc/internal/vfs" "github.com/microsoft/TypeScript/tsc/internal/vfs/iovfs" @@ -205,10 +201,6 @@ func newFourslash(t *testing.T, content string, options *FourslashOptions, testP testfs[filePath] = vfstest.Symlink(tspath.GetNormalizedAbsolutePath(target, rootDir)) } - for _, configOptions := range compilerOptionsFromConfigFiles(testData.Files, testData.Symlinks) { - harnessutil.FailOnUnsupportedCompilerOptions(t, configOptions) - } - // !!! use default compiler options for inferred project as base compilerOptions := &core.CompilerOptions{ SkipDefaultLibCheck: core.TSTrue, @@ -292,44 +284,6 @@ func newFourslash(t *testing.T, content string, options *FourslashOptions, testP } } -func compilerOptionsFromConfigFiles(files []*TestFileInfo, symlinks map[string]string) []*core.CompilerOptions { - var configFiles []*TestFileInfo - for _, file := range files { - if isConfigFile(file.fileName) { - configFiles = append(configFiles, file) - } - } - if len(configFiles) == 0 { - return nil - } - - compilerOptions := make([]*core.CompilerOptions, 0, len(configFiles)) - testFiles := make(map[string]string, len(files)) - for _, file := range files { - testFiles[tspath.GetNormalizedAbsolutePath(file.fileName, rootDir)] = file.Content - } - parseConfigHost := tsoptionstest.NewVFSParseConfigHostWithSymlinks(testFiles, symlinks, rootDir, true /*useCaseSensitiveFileNames*/) - for _, file := range configFiles { - configFileName := tspath.GetNormalizedAbsolutePath(file.fileName, rootDir) - configJson := parser.ParseSourceFile(ast.SourceFileParseOptions{ - FileName: configFileName, - Path: tspath.ToPath(configFileName, rootDir, true /*useCaseSensitiveFileNames*/), - }, file.Content, core.ScriptKindJSON) - config := tsoptions.ParseJsonSourceFileConfigFileContent( - &tsoptions.TsConfigSourceFile{SourceFile: configJson}, - parseConfigHost, - tspath.GetDirectoryPath(configFileName), - nil, /*existingOptions*/ - nil, /*existingOptionsRaw*/ - configFileName, - nil, /*resolutionStack*/ - nil, /*extendedConfigCache*/ - ) - compilerOptions = append(compilerOptions, config.ParsedConfig.CompilerOptions) - } - return compilerOptions -} - // handleServerRequest handles requests initiated by the server (e.g., workspace/configuration). func (f *FourslashTest) handleServerRequest(_ context.Context, req *lsproto.RequestMessage) *lsproto.ResponseMessage { switch req.Method { diff --git a/tsc/internal/testutil/harnessutil/harnessutil.go b/tsc/internal/testutil/harnessutil/harnessutil.go index f8ae9b6219510..0b46a9a7a7cd7 100644 --- a/tsc/internal/testutil/harnessutil/harnessutil.go +++ b/tsc/internal/testutil/harnessutil/harnessutil.go @@ -1235,7 +1235,7 @@ func GetConfigNameFromFileName(filename string) string { func SkipUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) { t.Helper() - FailOnUnsupportedCompilerOptions(t, options) + failOnUnsupportedCompilerOptions(t, options) switch options.Module { case core.ModuleKindUMD, core.ModuleKindSystem: t.Skipf("unsupported module kind %s", options.Module) @@ -1262,7 +1262,7 @@ func SkipUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) } } -func FailOnUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) { +func failOnUnsupportedCompilerOptions(t *testing.T, options *core.CompilerOptions) { t.Helper() if options.Module == core.ModuleKindAMD { t.Fatalf("unsupported module kind %s", options.Module)